Function at 0x413a53
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf0
mov ecx, dword [0x43fca4]
mov dword [esp + 0x138], 0x5b9fb376
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xf
ja 0x40eedf
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x28]
movzx edx, byte [esp + edx + 0x138]
lea esi, [eax + 0x8c]
and esi, edx
mov edi, 0x889c3073
sub edi, eax
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x2e0], edi
mov eax, dword [esp + 0x2e0]
add al, 0x2c
mov edx, dword [esp + 0x28]
mov byte [esp + edx + 0x138], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0x10
jb 0x40ee90
mov edx, dword [str.MeHdy4__p16]
mov dword [esp + 0x2e0], 0xbe766261
mov dword [esp + 0x2e4], 0x6e656076
mov dword [esp + 0x2e8], 0x66956c7e
mov dword [esp + 0x2ec], 0x6e7d7e69
mov dword [esp + 0x2f0], 0x65b47477
mov dword [esp + 0x2f4], 0xa3ab6771
mov dword [esp + 0x2f8], 0x77bca9b6
mov dword [esp + 0x2fc], 0xdfa37975
mov dword [esp + 0x300], 0
mov byte [esp + 0x304], 0
mov dword [esp + 0x260], 0
mov eax, dword [esp + 0x260]
cmp eax, 0x24
ja 0x40efc3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x260]
mov esi, dword [esp + 0x260]
movzx esi, byte [esp + esi + 0x2e0]
mov edi, eax
and edi, 0xc0e30ae0
xor eax, 0xc0e30ae0
lea eax, [eax + edi*2]
xor eax, esi
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
add al, 0xe0
mov esi, dword [esp + 0x260]
mov byte [esp + esi + 0x2e0], al
inc dword [esp + 0x260]
mov eax, dword [esp + 0x260]
cmp eax, 0x25
jb 0x40ef70
movzx ebx, byte [esp + 0x2e0]
lea eax, [esp + 0x260]
test bl, bl
je 0x40efeb
lea esi, [esp + 0x2e1]
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40efe0
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f00b
inc edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [edx]
inc edx
test bl, bl
jne 0x40f000
mov byte [eax], 0
movzx edx, byte [esp + 0x138]
test dl, dl
je 0x40f03b
lea esi, [esp + 0x139]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40f030
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f05b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], dl
inc eax
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f050
mov byte [eax], 0
lea ecx, [esp + 0x260]
mov dword [esp + 0x2e0], 0x8331815b
mov dword [esp + 0x2e4], 0x9f109d34
mov dword [esp + 0x2e8], 0x9b2e9921
mov dword [esp + 0x2ec], 0x97639516
mov dword [esp + 0x2f0], 0x931b913a
mov dword [esp + 0x2f4], 0x6fd36d22
mov dword [esp + 0x2f8], 0x6b8869a4
mov dword [esp + 0x2fc], 0x67d465c9
mov dword [esp + 0x300], 0x63d461d6
mov dword [esp + 0x304], 0x7fc17dd9
mov dword [esp + 0x308], 0x7bf479dd
mov dword [esp + 0x30c], 0x77c575c1
mov dword [esp + 0x310], 0x738171c0
mov dword [esp + 0x314], 0x4fbb4dfa
mov dword [esp + 0x318], 0x4bc149c7
mov dword [esp + 0x31c], 0x47b345c3
mov dword [esp + 0x320], 0x43f141f8
mov dword [esp + 0x324], 0x5feb5df0
mov dword [esp + 0x328], 0x5bd759a9
mov dword [esp + 0x32c], 0x57e055e8
mov dword [esp + 0x330], 0x53e651e9
mov dword [esp + 0x334], 0x2f9d2def
mov dword [esp + 0x338], 0x2b972992
mov dword [esp + 0x33c], 0x27332596
mov dword [esp + 0x340], 0x2320213c
mov dword [esp + 0x34b], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp + 0x28], 0
mov edx, dword [esp + 0x28]
cmp edx, 0x6e
ja 0x40f213
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
movzx edi, byte [esp + esi + 0x2e0]
lea esi, [edx - 0x3379a215]
mov ebx, esi
and ebx, edi
xor esi, edi
add edx, 0xeb
and edx, edi
add edx, ebx
sub esi, edx
lea edx, [esi + ebx*2]
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x138]
mov esi, edx
or esi, 0x92
and edx, 0x92
add edx, esi
inc dl
mov esi, dword [esp + 0x28]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x28]
mov edx, dword [esp + 0x28]
cmp edx, 0x6f
jb 0x40f1b0
sub eax, ecx
mov dword [esp + 0x138], 0x3353316f
mov dword [esp + 0x13c], 0x37af35a4
mov word [esp + 0x140], 0x2928
mov dword [esp + 0x142], 0
mov dword [esp + 0x146], 0
mov byte [esp + 0x14a], 0
mov dword [esp + 0xd0], 0
mov edx, dword [esp + 0xd0]
cmp edx, 0x12
ja 0x40f2c7
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0xd0]
mov esi, dword [esp + 0xd0]
movzx esi, byte [esp + esi + 0x138]
lea edi, [edx + esi]
add edi, 0xce0ee028
add edx, 0xce0ee028
and edx, esi
add edx, edx
sub edi, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x28]
add dl, 0xe8
mov esi, dword [esp + 0xd0]
mov byte [esp + esi + 0x138], dl
inc dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
cmp edx, 0x13
jb 0x40f270
lea edx, [esp + 0xc8]
lea esi, [esp + 0xbc]
lea ebx, [esp + 0x2e0]
lea edi, [esp + 0x138]
push edx
push esi
mov esi, ebx
push eax
push ecx
push ebx
push edi
push 0x4459c8
call fcn.0040c640
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44088c]
xor esi, esi
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x440894]
push 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xbc]
mov edx, ecx
and edx, 0xfffffffc
mov esi, ecx
and esi, 3
mov eax, ecx
or eax, 3
imul eax, esi
xor esi, 3
imul esi, edx
add eax, esi
shr eax, 2
mov edx, ecx
xor edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
lea edx, [edx + esi*2]
cmp byte [ebx + edx + 1], 0x3d
je 0x40f364
cmp byte [ecx + ebx - 1], 0x2e
jne 0x40f365
dec eax
mov edx, ecx
or edx, 0xfffffffd
mov esi, ecx
and esi, 0xfffffffd
add esi, edx
cmp byte [ebx + esi + 1], 0x3d
je 0x40f37f
cmp byte [ecx + ebx - 2], 0x2e
jne 0x40f380
dec eax
push eax
call fcn.00408e10
add esp, 4
mov esi, eax
push eax
push ebx
call fcn.004328b0
add esp, 8
push dword [esp + 0xbc]
call fcn.00435ac0
add esp, 4
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x440894]
mov dword [esp + 0x10], eax
push esi
call fcn.00401f80
add esp, 4
mov ebx, eax
mov eax, dword [esp + 0x10]
jmp dword [eax*4 + 0x44089c]
push esi
call fcn.00408e20
add esp, 4
lea esi, [esp + 0x2e0]
jmp dword [0x4408a4]
lea esi, [esp + 0x2e0]
jmp dword [0x4408a4]
push ebx
call fcn.0042d4f0
add esp, 4
lea ecx, [esp + 0xae0]
call fcn.00409fb0
lea eax, [esp + 0x23f]
push eax
call fcn.00432270
add esp, 4
mov dword [esp + 0x28], 0x8a8589d6
mov word [esp + 0x2c], 0xf890
mov byte [esp + 0x2e], 0x36
mov word [esp + 0x2f], 0
mov dword [esp + 0x138], 0
mov eax, dword [esp + 0x138]
cmp eax, 8
ja 0x40f4a8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x138]
mov ecx, dword [esp + 0x138]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + 0xd8]
and edx, ecx
mov ebx, 0x9c76dc27
sub ebx, eax
or ebx, ecx
not ebx
add ebx, ecx
sub ebx, edx
mov dword [esp + 0x2e0], ebx
mov eax, dword [esp + 0x2e0]
add al, 0x18
mov ecx, dword [esp + 0x138]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x138]
mov eax, dword [esp + 0x138]
cmp eax, 9
jb 0x40f450
mov eax, dword [0x43fca4]
mov dword [esp], 0xfb3763e0
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov byte [esp + 0xc], 0
mov dword [esp + 0x138], 0
mov ecx, dword [esp + 0x138]
cmp ecx, 0xc
ja 0x40f532
mov ecx, dword [esp + 0x138]
mov edx, dword [esp + 0x138]
movzx edx, byte [esp + edx]
lea ebx, [ecx + edx]
add ecx, 0x1f
and ecx, edx
add ecx, ecx
sub ebx, ecx
add ebx, 0xd2bb9f1f
mov dword [esp + 0x2e0], ebx
mov ecx, dword [esp + 0x2e0]
add cl, 0x27
mov edx, dword [esp + 0x138]
mov byte [esp + edx], cl
inc dword [esp + 0x138]
mov ecx, dword [esp + 0x138]
cmp ecx, 0xd
jb 0x40f4e0
mov ecx, dword [str.MeHdy4__p16]
mov dword [esp + 0x2e0], 0x6e564a4d
mov dword [esp + 0x2e4], 0x4452445b
mov dword [esp + 0x2e8], 0x4c4d4059
mov dword [esp + 0x2ec], 0x55b4259
mov dword [esp + 0x2f0], 0x7e4458b6
mov dword [esp + 0x2f4], 0xd060304
mov dword [esp + 0x2f8], 0x62e4c48
mov byte [esp + 0x2fc], 0x48
mov dword [esp + 0x2fd], 0
mov dword [esp + 0x301], 0
mov dword [esp + 0x304], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x27
ja 0x40f616
nop
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx esi, byte [esp + edx + 0x2e0]
add ebx, 0xd47eac26
mov edx, ebx
and edx, esi
xor ebx, esi
lea esi, [ebx + edx*2]
add edx, edx
mov ebx, esi
xor ebx, edx
not edx
and edx, esi
add edx, edx
sub edx, ebx
mov dword [esp + 0x138], edx
mov edx, dword [esp + 0x138]
add dl, 0xf6
mov esi, dword [esp + 0x18]
mov byte [esp + esi + 0x2e0], dl
inc dword [esp + 0x18]
mov edx, dword [esp + 0x18]
cmp edx, 0x28
jb 0x40f5c0
movzx edx, byte [esp + 0x2e0]
test dl, dl
je 0x40f63b
lea edi, [esp + 0x138]
lea ebx, [esp + 0x2e1]
mov byte [edi], dl
inc edi
movzx edx, byte [ebx]
inc ebx
test dl, dl
jne 0x40f630
mov byte [edi], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f65b
inc ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], dl
inc edi
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40f650
mov byte [edi], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40f67b
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40f670
mov byte [edi], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40f69b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], cl
inc edi
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40f690
mov byte [edi], 0
movzx eax, byte [esp + 0x28]
test al, al
je 0x40f6bb
lea ecx, [esp + 0x29]
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f6b0
mov byte [edi], 0
movzx eax, byte [esp + 0x23f]
test al, al
je 0x40f6eb
lea ecx, [esp + 0x240]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [edi], al
inc edi
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40f6e0
mov byte [edi], 0
mov dword [esp + 0x2e0], 0xf3610dcb
mov dword [esp + 0x2e4], 0xf762f162
mov dword [esp + 0x2e8], 0xfb68f551
mov dword [esp + 0x2ec], 0xff13f96c
mov dword [esp + 0x2f0], 0xe37bfd48
mov dword [esp + 0x2f4], 0xe743e170
mov dword [esp + 0x2f8], 0xeb0ae53a
mov dword [esp + 0x2fc], 0xef7ee949
mov dword [esp + 0x300], 0xd37eed7c
mov dword [esp + 0x304], 0xd771d179
mov dword [esp + 0x308], 0xdb4ed575
mov dword [esp + 0x30c], 0xdf4dd971
mov dword [esp + 0x310], 0xc311dd4e
mov dword [esp + 0x314], 0xc72bc158
mov dword [esp + 0x318], 0xcb51c55f
mov dword [esp + 0x31c], 0xcf23c953
mov dword [esp + 0x320], 0xb321cd66
mov dword [esp + 0x324], 0xb71bb126
mov dword [esp + 0x328], 0xbb2fb559
mov dword [esp + 0x32c], 0xbf12b92e
mov dword [esp + 0x330], 0xa330bd19
mov dword [esp + 0x334], 0xa735a107
mov dword [esp + 0x338], 0xab0fa500
mov dword [esp + 0x33c], 0xafa3a90c
mov dword [esp + 0x340], 0x9392ada2
mov byte [esp + 0x34c], 0
mov dword [esp + 0x348], 0
mov dword [esp + 0x344], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x6c
ja 0x40f889
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x2e0]
lea esi, [ecx - 0x1943e902]
lea ebx, [ecx + 0xfe]
mov eax, ebx
and eax, esi
and eax, edx
or ebx, esi
and ebx, edx
add ebx, eax
lea eax, [ecx + edx]
add eax, 0xe6bc16fe
sub eax, ebx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov eax, ecx
or eax, 0xd
and ecx, 0xd
add ecx, eax
inc cl
mov eax, dword [esp]
mov byte [esp + eax + 0x2e0], cl
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x6d
jb 0x40f830
lea esi, [esp + 0x138]
sub edi, esi
mov dword [esp + 0x28], 0x3a30177
mov dword [esp + 0x2c], 0x1fa71db2
mov word [esp + 0x30], 0x191e
mov dword [esp + 0x32], 0
mov word [esp + 0x36], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
ja 0x40f90e
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x28]
lea edx, [eax + ecx]
add edx, 0xc61e15ab
add eax, 0xc61e15ab
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x53
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x28], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jb 0x40f8d0
lea eax, [esp + 0xc4]
lea ecx, [esp + 0xb8]
lea edx, [esp + 0x28]
push eax
push ecx
push edi
push esi
lea esi, [esp + 0x2f0]
push esi
push edx
push 0x4459c8
call fcn.0040c640
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4408dc]
xor ebx, ebx
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4408e4]
mov ecx, dword [esp + 0xc4]
mov edi, dword [esp + 0xb8]
mov edx, ecx
and edx, 0xfffffffc
mov esi, ecx
and esi, 3
mov eax, ecx
or eax, 3
imul eax, esi
xor esi, 3
imul esi, edx
add eax, esi
shr eax, 2
mov edx, ecx
xor edx, 0xfffffffe
mov esi, ecx
and esi, 0xfffffffe
lea edx, [edx + esi*2]
cmp byte [edi + edx + 1], 0x3d
je 0x40f99a
cmp byte [ecx + edi - 1], 0x2e
jne 0x40f99b
dec eax
mov edx, ecx
or edx, 0xfffffffd
mov esi, ecx
and esi, 0xfffffffd
add esi, edx
cmp byte [edi + esi + 1], 0x3d
je 0x40f9b5
cmp byte [ecx + edi - 2], 0x2e
jne 0x40f9b6
dec eax
lea esi, [esp + 0x2e0]
push eax
call fcn.00408e10
add esp, 4
mov ebx, eax
push eax
push edi
call fcn.004328b0
add esp, 8
push dword [esp + 0xb8]
call fcn.00435ac0
add esp, 4
xor eax, eax
test ebx, ebx
setne al
jmp dword [eax*4 + 0x4408e4]
jmp dword [0x4408f0]
push 0
call fcn.00439290
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440914]
mov dword [esp + 0x28], 0xab3fad03
mov dword [esp + 0x2c], 0x97c4a904
mov dword [esp + 0x30], 0x930a9539
mov dword [esp + 0x34], 0x9ffe913d
mov dword [esp + 0x38], 0x9b059df2
mov dword [esp + 0x3c], 0x87279904
mov dword [esp + 0x40], 0x831e851a
mov dword [esp + 0x44], 0x8fdd81e0
mov dword [esp + 0x48], 0x8b238d19
mov dword [esp + 0x4c], 0xf796891a
mov dword [esp + 0x50], 0xf367f55b
mov dword [esp + 0x54], 0xffacf15c
mov dword [esp + 0x58], 0xfb62fd51
mov dword [esp + 0x5c], 0xe786f955
mov dword [esp + 0x60], 0xe3b1e58a
mov dword [esp + 0x64], 0xef8ee14f
mov dword [esp + 0x68], 0xeb43ed70
mov dword [esp + 0x6c], 0xd77be97d
mov dword [esp + 0x70], 0xd34fd547
mov dword [esp + 0x74], 0xdfbed14c
mov dword [esp + 0x78], 0xdb46dd8f
mov dword [esp + 0x7c], 0xc799d9b8
mov dword [esp + 0x80], 0xc391c5a4
mov dword [esp + 0x84], 0xcf5dc152
mov dword [esp + 0x88], 0xcb54cd62
mov dword [esp + 0x8c], 0x3797c965
mov dword [esp + 0x90], 0x335235a3
mov dword [esp + 0x94], 0x3f5e315a
mov dword [esp + 0x98], 0x3b973d90
mov dword [esp + 0x9c], 0x274639ac
mov dword [esp + 0xa0], 0x2322254a
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xa4], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x87
ja 0x40fba8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx + 0x9a]
and esi, edx
mov edi, 0x5b417365
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x2e0], edi
mov ecx, dword [esp + 0x2e0]
add cl, 0xca
mov edx, dword [esp]
mov byte [esp + edx + 0x28], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x88
jb 0x40fb60
movzx ecx, word [esp + 0x28]
test cx, cx
lea esi, [esp + 0x2e0]
je 0x40fbe1
lea esi, [esp + 0x2e0]
lea edx, [esp + 0x2a]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x40fbd0
mov word [esi], 0
movzx ecx, word [eax]
test cx, cx
je 0x40fc11
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], cx
add esi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x40fc00
mov dword [esi], 0x220022
mov dword [esi + 4], 0x22
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0x44
mov dword [esp + 0x54], 1
push 0xd3a7a30
push dword [0x446cd0]
call fcn.00439420
add esp, 8
lea ecx, [esp + 0x18]
lea edx, [esp + 0x2e0]
push ecx
lea ecx, [esp + 0x2c]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push edx
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44091c]
mov eax, dword [esp + 0x18]
mov dword [esp], 0x82818087
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xb], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 0xe
ja 0x40fd63
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx]
lea esi, [ecx + 0x4f725eb]
add ecx, 0xeb
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xcc], esi
mov ecx, dword [esp + 0xcc]
add cl, 0x93
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 0xf
jb 0x40fd20
mov ecx, dword [0x446cdc]
test ecx, ecx
je case.0x41029e.4
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x446ce0]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x40fd90
inc esi
cmp ecx, esi
jne 0x40fd80
jmp case.0x41029e.4
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x41029e.4
push eax
push 1
push dword [0x446ce4]
push ecx
call fcn.004378e0
add esp, 0x10
jmp case.0x41029e.0
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4408b4]
xor eax, eax
jmp 0x40fe62
mov dword [esp + 0x138], 0x7b383936
mov dword [esp + 0x140], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xb
ja 0x40fe53
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x138]
lea edx, [eax - 0x623a4cf9]
lea esi, [eax + 7]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0x9dc5b307
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0x2e0], eax
mov eax, dword [esp + 0x2e0]
add al, 0xcf
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x138], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xc
jb 0x40fe00
push dword [esp + 0x138]
call fcn.00431e70
add esp, 4
mov ecx, dword [case.0x40f3ab.13]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
movzx eax, al
jmp dword [eax*4 + 0x4408cc]
mov word [esp + 0x2e0], 0x716d
mov byte [esp + 0x2e2], 0xa
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xa
ja 0x40ff11
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x2f2aa37e]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xd0d55c81
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x138]
add al, 0x72
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xb
jb 0x40fec0
lea esi, [esp + 0x2e0]
push esi
push dword [esp + 0x14]
call fcn.00402910
add esp, 8
mov dword [esp + 0xb4], eax
mov word [esp + 0x2e0], 0xdec3
mov byte [esp + 0x2e2], 0xb8
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2ea], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 0xd
ja 0x40ffbb
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax + 0x421526b7]
and edx, ecx
add eax, ecx
add eax, 0x421526b7
add edx, edx
sub eax, edx
mov dword [esp + 0x138], eax
mov eax, dword [esp + 0x138]
dec al
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 0xe
jb case.default.0x4100c4
push esi
mov esi, dword [esp + 0x14]
push esi
call fcn.00402910
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xc0], ecx
push esi
call fcn.004104d0
add esp, 4
push ebx
call fcn.00402b20
add esp, 4
lea ebx, [esp + 0xd0]
mov ecx, ebx
push 1
call fcn.00409650
push ebx
call fcn.0041dd40
add esp, 4
mov ecx, ebx
call fcn.00409fb0
lea ebx, [esp + 0xc80]
mov ecx, ebx
push 3
call fcn.00409650
push ebx
call fcn.0041e7f0
add esp, 4
mov ecx, ebx
call fcn.00409fb0
lea ebx, [esp + 0xc18]
mov ecx, ebx
push 1
call fcn.00409650
push ebx
call fcn.0041eb20
add esp, 4
mov ecx, ebx
call fcn.00409fb0
lea ebx, [esp + 0xbb0]
mov ecx, ebx
push 1
call fcn.00409650
push ebx
call fcn.00420910
add esp, 4
push ebx
call fcn.00421240
add esp, 4
push ebx
call fcn.004216d0
add esp, 4
mov ecx, ebx
call fcn.00409fb0
lea ebx, [esp + 0xb48]
mov ecx, ebx
push 1
call fcn.00409650
push ebx
call fcn.004237c0
add esp, 4
mov ecx, ebx
call fcn.00409fb0
lea ebx, [esp + 0xae0]
mov ecx, ebx
push 1
call fcn.00409650
push ebx
call fcn.004258c0
add esp, 4
push ebx
call fcn.0042d330
add esp, 4
mov eax, dword [esp + 0xc0]
jmp dword [eax*4 + 0x4408d4]
push ebx
call fcn.00402b20
add esp, 4
xor eax, eax
jmp 0x4102ef
mov edi, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4408fc]
push ebx
call fcn.00408e20
add esp, 4
push edi
call fcn.004139d0
add esp, 4
push edi
call fcn.00402b20
add esp, 4
mov dword [esp + 0x2e0], 0x33959394
mov dword [esp + 0x2e4], 0
mov byte [esp + 0x2e8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x41017e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x2e0]
lea edx, [eax - 0x304cc28]
add eax, 0xd8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x28]
add al, 0x18
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e0], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410140
push esi
push dword [esp + 0x14]
call fcn.00402910
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x440904]
xor eax, eax
cmp dword [esp + 0xb4], 0
setg al
jmp dword [eax*4 + 0x44090c]
lea ecx, [esp + 0x2e0]
push 1
call fcn.00409650
xor eax, eax
nop
nop
nop
cmp byte [eax + 0x445cd0], 0
lea eax, [eax + 1]
jne 0x4101c0
lea ecx, [eax + 0x445ccf]
lea edx, [eax + 0x445cd0]
neg edx
mov eax, 0x445cd0
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x28], 0x8c9a9ea2
mov dword [esp + 0x2c], 0xf7884383
mov word [esp + 0x30], 0x718a
mov dword [esp + 0x32], 0
mov dword [esp + 0x36], 0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x15
ja 0x41026a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x28]
lea esi, [ecx - 0x2c1ad7d1]
add ecx, 0x2f
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0xb7
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x28], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x16
jb 0x410230
lea esi, [esp + 0x2e0]
mov ecx, esi
push eax
push 0x445cd0
lea eax, [esp + 0x30]
push eax
call fcn.00409850
mov ecx, esi
call fcn.00409fb0
mov ecx, esi
call fcn.00409690
xor eax, eax
cmp dword [esp + 0xb4], 0
setg al
jmp dword [eax*4 + 0x44090c]
lea ecx, [esp + 0xae0]
call fcn.00409690
lea ecx, [esp + 0xb48]
call fcn.00409690
lea ecx, [esp + 0xbb0]
call fcn.00409690
lea ecx, [esp + 0xc18]
call fcn.00409690
lea ecx, [esp + 0xc80]
call fcn.00409690
lea ecx, [esp + 0xd0]
call fcn.00409690
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push ebx
call fcn.00401f80
add esp, 4
push ebx
call fcn.00401f80
add esp, 4
jmp dword [0x4408f8]
push ebx
call fcn.00402890
add esp, 4
mov word [esp + 0x2e0], 0x8c96
mov byte [esp + 0x2e2], 0x1a
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2eb], 0
mov dword [esp + 0xd0], 0
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xe
ja 0x4103db
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd0]
mov edx, dword [esp + 0xd0]
movzx esi, byte [esp + edx + 0x2e0]
mov edx, 0xb97ea57b
sub edx, ecx
or edx, esi
add ecx, 0x84
and ecx, esi
not edx
add edx, esi
sub edx, ecx
mov dword [esp + 0x28], edx
mov ecx, dword [esp + 0x28]
add cl, 0x64
mov edx, dword [esp + 0xd0]
mov byte [esp + edx + 0x2e0], cl
mov ecx, dword [esp + 0xd0]
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
mov dword [esp + 0xd0], ecx
mov ecx, dword [esp + 0xd0]
cmp ecx, 0xf
jb 0x410370
lea esi, [esp + 0x2e0]
push esi
push eax
call fcn.00402910
add esp, 8
push ebx
call fcn.00402890
add esp, 4
mov dword [esp + 0x10], eax
mov word [esp + 0x2e0], 0x8c96
mov byte [esp + 0x2e2], 0x1a
mov dword [esp + 0x2e3], 0
mov dword [esp + 0x2e7], 0
mov dword [esp + 0x2eb], 0
mov dword [esp + 0xd0], 0
mov eax, dword [esp + 0xd0]
cmp eax, 0xe
ja 0x4104b9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0xd0]
movzx edx, byte [esp + ecx + 0x2e0]
mov ecx, 0xb97ea57b
sub ecx, eax
or ecx, edx
add eax, 0x84
and eax, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esp + 0x28], ecx
mov eax, dword [esp + 0x28]
add al, 0x64
mov ecx, dword [esp + 0xd0]
mov byte [esp + ecx + 0x2e0], al
mov eax, dword [esp + 0xd0]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xd0]
cmp eax, 0xf
jb 0x410450
push esi
push dword [esp + 0x14]
call fcn.00402910
add esp, 8
jmp dword [0x4408b0]
xor esi, esi
mov dword [esp + 0x2c], edi
jmp 0x410598
lea ecx, [esp + 0x38]
call fcn.00409690
nop
nop
mov esi, dword [esp + 0x154]
inc esi
push edi
call fcn.00402ae0
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44092c]
mov dword [esp + 0x154], esi
push esi
push edi
call fcn.00402af0
add esp, 8
mov ebx, eax
mov word [esp + 0x38], 0xa12a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410637
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea esi, [eax + 0x24ae801b]
mov ecx, esi
and ecx, edx
xor esi, edx
add eax, 0x1b
and eax, edx
lea edx, [esi + ecx*2]
or ecx, eax
add ecx, eax
sub edx, ecx
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x43
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4105f0
push 3
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440934]
fldz
jmp dword [0x44093c]
fstp st(0)
mov word [esp + 0x38], 0x2592
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4106dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x77987cfb]
add eax, 5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xdd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4106a0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
fstp st(0)
add esp, 8
fldz
jmp case.0x41064e.2
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
add esp, 8
jmp dword [0x440944]
fstp st(0)
mov word [esp + 0x38], 0x2592
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4106f0
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x77987cfb]
add eax, 5
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xdd
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410740
jmp 0x4106f0
fnstcw word [esp + 0xe6]
movzx eax, word [esp + 0xe6]
or eax, 0xc00
mov word [esp + 0x152], ax
fldcw word [esp + 0x152]
fistp dword [esp + 0x168]
fldcw word [esp + 0xe6]
mov eax, dword [esp + 0x168]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44094c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x440954]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44095c]
mov word [esp + 0x38], 0xad07
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41086f
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xb59c899a
add eax, 0xb59c899a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xc9
and eax, 0x49
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410820
push 2
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x440a04]
mov word [esp + 0xe8], 0x19e8
mov dword [esp + 0xea], 0
mov dword [esp + 0xee], 0
mov dword [esp + 0xf1], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x410916
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + 0x54]
and edx, ecx
mov esi, 0x698832ab
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
add al, 0xb4
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x4108d0
push 2
lea eax, [esp + 0xec]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x440a0c]
mov word [esp], 0x39d9
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov dword [esp + 0xa], 0
mov word [esp + 0xe], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xf
ja 0x4109ae
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx]
lea edx, [eax + ecx]
add edx, 0x46267ff7
add eax, 0x46267ff7
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
add al, 0x3f
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x10
jb 0x410970
push 5
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x440a14]
mov word [esp + 0xa0], 0x8d12
mov dword [esp + 0xa2], 0
mov dword [esp + 0xa5], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 8
ja 0x410a52
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xa0]
lea edx, [eax + 0x286675be]
add eax, 0xbe
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
mov ecx, eax
or ecx, 0xcd
and eax, 0xcd
add eax, ecx
inc al
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 9
jb 0x410a00
push 2
lea eax, [esp + 0xa4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x440a1c]
mov word [esp + 0xb0], 0x6104
mov dword [esp + 0xb2], 0
mov dword [esp + 0xb6], 0
mov word [esp + 0xba], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xb
ja 0x410af1
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax - 0x6a067b90]
add eax, 0x70
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x34]
add al, 0xf0
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xc
jb case.default.0x410b0d
push 3
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov al, 1
jmp dword [ecx*4 + 0x440a24]
movzx eax, al
jmp dword [eax*4 + 0x440a3c]
mov word [esp + 0x38], 0x85ef
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410b9d
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x5c54cb95]
add eax, 0x95
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0xec
and eax, 0xec
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x410b50
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x38], 0x1988
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x410c36
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x7a02ca84]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x7a02ca83
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x64
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410bf0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0xa555
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x410cac
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x7e8b899b]
add eax, 0x65
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x3d
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x410c70
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004028b0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x38], 0x9922
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x410d41
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea esi, [eax - 0x533c27c4]
lea ecx, [eax + edx]
add ecx, 0xacc3d83c
and esi, edx
add eax, 0x3c
and eax, edx
add eax, esi
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x5c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x410cf0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x38], 0xd944
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x410ddb
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x25729b1c]
lea esi, [eax + 0xe4]
xor esi, edx
and edx, ecx
and esi, ecx
add eax, ecx
add eax, 0xda8d64e4
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xc4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x410d90
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe0]
movzx eax, word [esp + 0xe0]
or eax, 0xc00
mov word [esp + 0x14c], ax
fldcw word [esp + 0x14c]
fistp dword [esp + 0x15c]
fldcw word [esp + 0xe0]
mov eax, dword [esp + 0x15c]
mov dword [esp + 0x28], eax
mov word [esp + 0x38], 0xf2c6
mov byte [esp + 0x3a], 0x62
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov word [esp + 0x43], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x410ea1
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x69a6e410
add eax, 0x69a6e410
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x90
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x410e60
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
add esp, 8
xor eax, eax
mov esi, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x410ec0
fnstcw word [esp + 0xde]
movzx ecx, word [esp + 0xde]
or ecx, 0xc00
mov word [esp + 0x14a], cx
fldcw word [esp + 0x14a]
fistp dword [esp + 0x158]
fldcw word [esp + 0xde]
mov ecx, dword [esp + 0x158]
mov dword [esp + 0x24], ecx
lea ebx, [esi + eax]
dec ebx
add eax, esi
neg eax
and eax, esi
not esi
and ebx, esi
sub ebx, eax
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x410f24
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov edx, ebx
and edx, 1
mov edi, ebx
mov ecx, ebx
xor ecx, 1
lea ebx, [ecx + edx*2]
lea ecx, [eax - 2]
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x410f6d
mov dword [esp + 0x14], ebx
xor edx, edx
nop
nop
nop
cmp byte [edx], 0
lea edx, [edx + 1]
jne 0x410f50
lea edi, [edx - 1]
neg edx
mov ebx, dword [esp + 0x10]
and edx, ebx
and edi, esi
sub edi, edx
mov edx, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], 0
lea ecx, [ecx + ebx*2]
mov esi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x410fcf
mov eax, edi
mov esi, dword [esp + 0x14]
test edi, edi
jle 0x410fcf
mov edi, edx
add edi, eax
mov esi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x410fcf
lea eax, [esp + 0x38]
push eax
push edi
push edx
mov ebx, edx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x410fcf
add ebx, eax
cmp ebx, edi
mov edx, ebx
jb 0x410fa0
mov word [esi], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea ecx, [esp + 0xe8]
mov esi, dword [esp + 0x14]
push esi
call fcn.00435ba0
jmp dword [0x440a44]
push esi
call fcn.00408e20
add esp, 4
lea ecx, [esp + 0xe8]
push 0x400
call fcn.00435de0
not eax
shr eax, 0x1f
mov edi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x440a4c]
mov dword [esp + 0xb0], 0
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x38], 0x82818087
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x43], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0xe
ja 0x4110ca
nop
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa0]
movzx edx, byte [esp + edx + 0x38]
lea esi, [eax + 0x4f725eb]
add eax, 0xeb
and eax, edx
or esi, edx
sub esi, eax
mov dword [esp], esi
mov eax, dword [esp]
add al, 0x93
mov edx, dword [esp + 0xa0]
mov byte [esp + edx + 0x38], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0xf
jb 0x411080
mov eax, dword [esp + 0x38]
mov edx, dword [0x446cdc]
test edx, edx
je case.default.0x412671
xor esi, esi
mov edi, dword [0x446ce0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xd9a9c0b
je 0x41263b
inc esi
cmp edx, esi
jne 0x4110f0
mov edi, dword [esp + 0x2c]
jmp case.default.0x412671
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x440964]
mov word [esp + 0x38], 0xad5c
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x4111ab
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x44e22766
add eax, 0x44e22766
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x36
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x411160
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x38], 0xd952
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov byte [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x411259
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx esi, byte [esp + ecx + 0x38]
lea edx, [eax - 0x5e25341c]
mov ecx, edx
and ecx, esi
mov edi, edx
xor edi, esi
or edx, esi
xor edx, edi
add eax, 0xe4
and eax, esi
add eax, edx
lea ecx, [edi + ecx*2]
sub ecx, eax
mov dword [esp + 0xe8], ecx
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0xc3
and eax, 0x43
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4111f0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
xor ecx, ecx
cmp dword [esp + 0x14], 0
sete cl
mov edi, dword [esp + 0x2c]
jmp dword [ecx*4 + 0x440aec]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440af4]
mov ecx, dword [esp + 0x14]
mov edx, ecx
not edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], eax
not eax
mov dword [esp + 0x30], eax
mov eax, ecx
jmp dword [0x440b00]
mov eax, ecx
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x4112b0
mov eax, edi
not eax
mov ecx, dword [esp + 0x14]
and eax, ecx
and edi, dword [esp + 0x24]
sub edi, eax
lea edx, [ecx + edi]
xor ebx, ebx
test edi, edi
mov dword [esp + 0x10], edx
jle 0x41130b
cmp byte [ecx], 0
je 0x41130b
xor ebx, ebx
mov esi, dword [esp + 0x14]
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push esi
call fcn.0040ecc0
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edx
jae 0x41130b
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4112e0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411319
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x1c], eax
cmp eax, esi
jbe 0x41137b
test edi, edi
mov ebx, dword [esp + 0x10]
jle 0x41137b
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41137b
lea eax, [esp + 0x38]
push eax
push ebx
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x1c]
jae 0x41137b
add edi, eax
cmp edi, ebx
jb 0x411350
mov word [esi], 0
xor eax, eax
mov ecx, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x411390
lea esi, [ecx + eax]
dec esi
add eax, ecx
neg eax
and eax, ecx
and esi, dword [esp + 0x30]
sub esi, eax
lea edx, [ecx + esi]
xor ebx, ebx
mov dword [esp + 0x1c], esi
test esi, esi
mov edi, edx
jle 0x4113f9
cmp byte [ecx], 0
je 0x4113f9
xor ebx, ebx
mov esi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push esi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x4113f9
mov edx, edi
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4113d0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411407
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov esi, eax
mov dword [esp + 0x38], 0
lea eax, [eax + ebx*2]
mov dword [esp + 0x10], eax
cmp eax, esi
jbe 0x41146b
cmp dword [esp + 0x1c], 0
jle 0x41146b
mov ebx, edi
mov edi, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41146b
lea eax, [esp + 0x38]
push eax
push ebx
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x41146b
add edi, eax
cmp edi, ebx
jb 0x411440
mov word [esi], 0
mov word [esp + 0x38], 0xd5c9
mov byte [esp + 0x3a], 0x72
mov dword [esp + 0x3b], 0
mov word [esp + 0x3f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x4114eb
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0xc9f510e
add eax, 0xc9f510e
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x9e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x4114a0
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.004028b0
add esp, 8
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp case.0x412852.39
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.004028b0
add esp, 8
mov esi, eax
mov ecx, dword [esp + 0x14]
mov eax, ecx
jmp dword [0x440b08]
mov edx, eax
inc eax
cmp byte [edx], 0
jne case.0x412852.39
mov eax, edx
not eax
and eax, ecx
and edx, dword [esp + 0x24]
sub edx, eax
lea esi, [ecx + edx]
xor ebx, ebx
mov dword [esp + 0x20], edx
test edx, edx
jle 0x411587
cmp byte [ecx], 0
je 0x411587
xor ebx, ebx
mov edi, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411587
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411560
mov eax, ebx
inc eax
jns 0x411593
mov eax, 0xffffffff
jmp 0x411599
lea eax, [ebx + ebx]
add eax, 2
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x411600
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x20], 0
jle 0x411600
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
nop
nop
cmp byte [edi], 0
je 0x411600
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x411600
add edi, eax
cmp edi, esi
jb 0x4115d0
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x28]
mov eax, edx
neg eax
lea edi, [edx - 1]
mov word [ebx], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + ecx], 0
lea ecx, [ecx + 1]
jne 0x411620
add edi, ecx
sub eax, ecx
and eax, edx
and edi, dword [esp + 0x30]
sub edi, eax
lea esi, [edx + edi]
xor ebx, ebx
mov dword [esp + 0x10], edi
test edi, edi
jle 0x411677
cmp byte [edx], 0
je 0x411677
xor ebx, ebx
mov edi, dword [esp + 0x28]
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x411677
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411650
mov eax, ebx
inc eax
jns 0x411683
mov eax, 0xffffffff
jmp 0x411689
lea eax, [ebx + ebx]
add eax, 2
mov edi, dword [esp + 0x10]
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x4116f0
mov ebx, dword [esp + 0x20]
test edi, edi
jle 0x4116f0
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
nop
cmp byte [edi], 0
je 0x4116f0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x4116f0
add edi, eax
cmp edi, esi
jb 0x4116c0
nop
nop
nop
nop
nop
mov word [ebx], 0
mov word [esp + 0x38], 0xd5c9
mov byte [esp + 0x3a], 0x72
mov dword [esp + 0x3b], 0
mov word [esp + 0x3f], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411510
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0xc9f510e
add eax, 0xc9f510e
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x9e
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411730
jmp 0x411510
mov word [esp + 0x38], 0x31a0
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov word [esp + 0x46], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x411806
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x55ebe058]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0xaa141fa7
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x68
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x4117c0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x14], eax
mov word [esp + 0x38], 0x31ba
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41189b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx esi, byte [esp + ecx + 0x38]
lea ecx, [eax - 0x68da8ba8]
mov edx, ecx
and edx, esi
mov edi, ecx
xor edi, esi
add eax, 0x58
and eax, esi
or ecx, esi
xor ecx, edi
add ecx, eax
lea eax, [edi + edx*2]
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x98
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x411850
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov esi, eax
xor eax, eax
mov edx, dword [esp + 0x14]
test edx, edx
sete al
mov edi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x440bac]
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x440bb4]
mov ecx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x4118e0
mov ecx, edx
not ecx
and ecx, eax
not eax
and eax, edx
sub ecx, eax
mov eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
xor edi, edi
mov dword [esp + 0x24], ecx
test ecx, ecx
jle 0x41194b
cmp byte [edx], 0
mov edx, dword [esp + 0x10]
je 0x41194b
xor edi, edi
mov ebx, dword [esp + 0x14]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edx
push ebx
call fcn.0040ecc0
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x41194b
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x411920
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411959
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x10]
jbe 0x412bc6
mov edi, dword [esp + 0x28]
cmp dword [esp + 0x24], 0
jle 0x412bc6
mov edi, dword [esp + 0x28]
mov dword [esp + 0x20], esi
nop
nop
cmp byte [ebx], 0
je 0x412bc6
lea eax, [esp + 0x38]
push eax
push ecx
push ebx
mov esi, ecx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x1c]
jae 0x412bc2
add ebx, eax
cmp ebx, esi
mov ecx, esi
mov esi, dword [esp + 0x20]
jb 0x4119a0
jmp 0x412bc6
sete al
movzx eax, al
jmp dword [eax*4 + 0x44096c]
mov word [esp + 0x38], 0x59e8
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411a61
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x880fcdf4
add eax, 0x880fcdf4
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x54
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411a20
push 2
lea eax, [esp + 0x3c]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x440974]
mov word [esp + 0xe8], 0x4db9
mov dword [esp + 0xea], 0
mov dword [esp + 0xee], 0
mov byte [esp + 0xf2], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0xa
ja 0x411b1d
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa0]
movzx ecx, byte [esp + ecx + 0xe8]
lea edx, [eax + ecx]
add edx, 0x7943898a
add eax, 0x8a
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x3a
mov ecx, dword [esp + 0xa0]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0xb
jb case.default.0x411b39
push 5
lea eax, [esp + 0xec]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x44097c]
mov word [esp], 0x6dea
mov dword [esp + 2], 0
mov dword [esp + 6], 0
mov word [esp + 0xa], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 0xb
ja 0x411bec
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
movzx edx, byte [esp + eax]
lea esi, [ecx + 0x12]
lea eax, [ecx + edx]
add eax, 0xfa09e112
and esi, edx
mov edi, 0x5f61eed
sub edi, ecx
or edi, edx
add edi, ecx
lea ecx, [esi + edi]
add ecx, 0xfa09e113
mov edx, ecx
xor edx, eax
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xa0], ecx
mov eax, dword [esp + 0xa0]
add al, 0x82
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xc
jb 0x411b80
push 2
lea eax, [esp + 4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x2c]
mov dl, 1
jmp dword [ecx*4 + 0x440984]
mov word [esp + 0xa0], 0x79c2
mov dword [esp + 0xa6], 0
mov dword [esp + 0xa2], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 9
ja 0x411ca9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xc8]
mov ecx, dword [esp + 0xc8]
movzx ecx, byte [esp + ecx + 0xa0]
add eax, 0x4fd4b58f
xor eax, ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xb0]
mov ecx, eax
xor ecx, 0x16
and eax, 0x16
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0xa0], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0xa
jb 0x411c50
push 3
lea eax, [esp + 0xa4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov dl, 1
jmp dword [ecx*4 + 0x44098c]
mov word [esp + 0xb0], 0x2c38
mov byte [esp + 0xb2], 0xa0
mov dword [esp + 0xb3], 0
mov word [esp + 0xb7], 0
mov dword [esp + 0x34], 0
mov eax, dword [esp + 0x34]
cmp eax, 8
ja 0x411d58
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
movzx ecx, byte [esp + ecx + 0xb0]
lea edx, [eax + 0x1b]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xe3755b1b
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xc8]
add al, 0x43
mov ecx, dword [esp + 0x34]
mov byte [esp + ecx + 0xb0], al
inc dword [esp + 0x34]
mov eax, dword [esp + 0x34]
cmp eax, 9
jb 0x411d10
push 3
lea eax, [esp + 0xb4]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
test eax, eax
sete dl
mov eax, dword [case.0x411cc5.4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
movzx eax, dl
jmp dword [eax*4 + 0x4409a4]
mov word [esp + 0x38], 0x8d3c
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 8
ja 0x411e01
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add eax, 0xea
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x9b7c61ea
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x9a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 9
jb 0x411dc0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x20], eax
mov word [esp + 0x38], 0x79d9
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x411e99
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0xf]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0xdea4c70f
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
mov ecx, eax
xor ecx, 0x96
and eax, 0x16
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
mov eax, dword [esp]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esp], eax
mov eax, dword [esp]
cmp eax, 0xc
jb 0x411e40
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004028b0
add esp, 8
mov esi, eax
mov word [esp + 0x38], 0xad2a
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x41], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xc
ja 0x411f21
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x8a0e913a
add eax, 0x8a0e913a
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x6a
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xd
jb 0x411ee0
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.004027e0
add esp, 8
mov dword [esp + 0x1c], eax
mov word [esp + 0x38], 0x1984
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov dword [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x411fb9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xdaacc804
add eax, 4
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xe4
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x411f70
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe4]
movzx eax, word [esp + 0xe4]
or eax, 0xc00
mov word [esp + 0x150], ax
fldcw word [esp + 0x150]
fistp dword [esp + 0x164]
fldcw word [esp + 0xe4]
mov eax, dword [esp + 0x164]
mov dword [esp + 0x30], eax
mov word [esp + 0x38], 0xc
mov byte [esp + 0x3a], 0x94
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x42], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xd
ja 0x41208b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx edx, byte [esp + ecx + 0x38]
lea ecx, [eax + edx]
add ecx, 0x63e972ed
add eax, 0xed
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x85
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xe
jb 0x412040
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xe2]
movzx eax, word [esp + 0xe2]
or eax, 0xc00
mov word [esp + 0x14e], ax
fldcw word [esp + 0x14e]
fistp dword [esp + 0x160]
fldcw word [esp + 0xe2]
mov eax, dword [esp + 0x160]
mov dword [esp + 0xc0], eax
mov word [esp + 0x38], 0x4578
mov byte [esp + 0x3a], 0xd0
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3e], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41214c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x68879d9d]
add eax, 0x63
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x4b
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412110
lea eax, [esp + 0x38]
push eax
push ebx
call fcn.00402910
add esp, 8
mov dword [esp + 0xc4], eax
xor eax, eax
mov edx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x412170
mov dword [esp + 0x28], esi
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
mov esi, edx
not esi
and esi, ecx
sub esi, eax
mov edi, edx
add edi, esi
xor ebx, ebx
mov dword [esp + 0x24], esi
test esi, esi
jle 0x4121d7
cmp byte [edx], 0
je 0x4121d7
xor ebx, ebx
mov esi, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push edi
push esi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x4121d7
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4121b0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4121e5
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x144], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x20]
jbe 0x412db1
mov esi, dword [esp + 0x144]
cmp dword [esp + 0x24], 0
jle 0x412db1
mov esi, dword [esp + 0x144]
mov dword [esp + 0x14], ebx
nop
cmp byte [ecx], 0
je 0x412db1
lea eax, [esp + 0x38]
push eax
push edi
push ecx
mov ebx, edi
mov edi, ecx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x412dad
add edi, eax
cmp edi, ebx
mov ecx, edi
mov edi, ebx
mov ebx, dword [esp + 0x14]
jb 0x412230
jmp 0x412db1
xor eax, eax
test esi, esi
setne al
xor ebx, ebx
xor edi, edi
jmp dword [eax*4 + 0x440b0c]
lea esi, [esp + 0x38]
mov ecx, esi
push 2
call fcn.00409650
push ebx
push edi
push dword [esp + 0x28]
push dword [esp + 0x28]
push esi
call fcn.00416000
add esp, 0x14
mov ecx, esi
call fcn.00409fb0
movzx eax, al
jmp dword [eax*4 + 0x440b4c]
mov eax, dword [esp + 0x3c]
mov byte [esp + 0xaa], 0
cmp eax, 0x3ff
ja 0x4125c5
mov byte [esp + 0xa9], 0x30
lea esi, [esp + 0xa9]
jmp 0x412889
jmp dword [0x440b14]
push esi
call fcn.00402ae0
add esp, 4
jmp case.0x412852.44
push ecx
call fcn.00408e10
add esp, 4
mov dword [eax], ebx
jmp dword [0x440b1c]
push esi
call fcn.00402ae0
add esp, 4
mov ebx, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov edi, 0xffffffff
add eax, 4
jb 0x412337
mov edi, eax
test dl, dl
jne 0x412300
mov ecx, edi
jmp 0x412300
mov edi, eax
add edi, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x440b24]
lea eax, [ebx + ebx*2]
lea eax, [edi + eax*4]
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
lea ecx, [edi + 0xc]
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x440b2c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
add ecx, 0xc
xor edx, edx
cmp ecx, eax
sete dl
jmp dword [edx*4 + 0x440b2c]
xor ecx, ecx
mov eax, dword [case.0x412852.54]
mov dword [esp + 0x24], edi
mov dword [esp + 0x30], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
cmp ecx, ebx
setb al
jmp dword [eax*4 + 0x440b44]
mov dword [esp + 0x10], ecx
push ecx
push esi
call fcn.00402af0
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0x70d
mov byte [esp + 0x3a], 0xb4
lea eax, [esp + 0x3b]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x41245c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x2f45fb19]
add eax, 0x19
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0x51
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412420
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004027e0
add esp, 8
mov dword [esp + 0x28], eax
mov word [esp + 0x38], 0xa3b5
mov byte [esp + 0x3a], 0xda
lea eax, [esp + 0x3b]
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x4124f7
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax - 0x1db125a4]
lea ebx, [eax + 0x5c]
or edx, ebx
and ebx, ecx
and edx, ecx
add edx, ebx
add eax, ecx
add eax, 0xe24eda5c
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x7c
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x4124b0
mov dword [esp + 0x14], esi
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004027e0
add esp, 8
mov ebx, eax
mov dword [esp + 0x38], 0xb350552c
lea eax, [esp + 0x3b]
mov word [eax + 5], 0
mov dword [eax + 1], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x41257e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x425f01e8]
add eax, 0xe8
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xa8
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x412540
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00402910
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov edi, dword [esp + 0x10]
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0x24]
mov esi, ecx
lea ecx, [ecx + eax*4]
push edx
push dword [esp + 0x2c]
push ebx
call fcn.00415910
inc edi
mov eax, dword [case.0x412852.54]
mov ebx, dword [esp + 0x30]
mov ecx, edi
mov edi, esi
mov esi, dword [esp + 0x14]
jmp case.0x412852.52
mov dword [esp + 0x24], edi
mov ecx, eax
shr ecx, 0xa
lea esi, [esp + 0xaa]
cmp eax, 0x19000
jb 0x41286b
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul edi, edx, 0x64
mov eax, ecx
sub eax, edi
mov edi, eax
and edi, 2
mov ebx, eax
or eax, 2
imul eax, edi
xor edi, 2
and ebx, 0x7d
imul ebx, edi
movzx eax, word [ebx + eax + 0x43d528]
mov word [esi - 2], ax
add esi, 0xfffffffe
cmp ecx, 0x270f
mov ecx, edx
ja 0x4125e0
cmp edx, 9
ja 0x412876
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [esi - 1], al
dec esi
jmp 0x412885
mov edx, dword [edi + esi*8 + 4]
cmp edx, eax
mov edi, dword [esp + 0x2c]
je case.default.0x412671
lea eax, [esp + 0xb0]
push eax
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x446ce4]
push edx
call fcn.004378e0
add esp, 0x20
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x440a54]
mov eax, dword [esp + 0xb0]
add eax, 2
push eax
call fcn.004359d0
add esp, 4
mov dword [esp + 0xc4], eax
mov ecx, dword [esp + 0xb0]
add ecx, 2
mov edx, dword [esp + 0xe8]
mov dword [esp + 0x38], 0x82818087
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x43], 0
mov dword [esp + 0xa0], 0
mov eax, dword [esp + 0xa0]
cmp eax, 0xe
ja 0x41272a
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xa0]
movzx esi, byte [esp + esi + 0x38]
lea edi, [eax + 0x4f725eb]
add eax, 0xeb
and eax, esi
or edi, esi
sub edi, eax
mov dword [esp], edi
mov eax, dword [esp]
add al, 0x93
mov esi, dword [esp + 0xa0]
mov byte [esp + esi + 0x38], al
inc dword [esp + 0xa0]
mov eax, dword [esp + 0xa0]
cmp eax, 0xf
jb 0x4126e0
mov eax, dword [esp + 0x38]
mov esi, dword [0x446cdc]
test esi, esi
je 0x412752
xor edi, edi
mov ebx, dword [0x446ce0]
cmp dword [ebx + edi*8], 0xd9a9c0b
je 0x412e20
inc edi
cmp esi, edi
jne 0x412740
mov edi, dword [esp + 0x2c]
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x440a5c]
mov ecx, dword [esp + 0x30]
mov eax, ecx
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x412770
mov eax, edi
not eax
and eax, ecx
mov edx, ecx
not edx
mov dword [esp + 0x10], edx
and edi, edx
sub edi, eax
mov eax, edi
inc eax
mov dword [esp + 0xc0], eax
lea eax, [edi + edi + 2]
mov esi, ecx
jns 0x4127a1
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ebx, edi
test esi, esi
mov edx, esi
jne 0x4127d5
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x4127c0
lea ebx, [ecx - 1]
neg ecx
and ecx, edx
and ebx, dword [esp + 0x10]
sub ebx, ecx
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x41282f
mov edi, dword [esp + 0x14]
test ebx, ebx
jle 0x41282f
mov esi, edx
add esi, ebx
mov edi, dword [esp + 0x14]
nop
nop
cmp byte [edx], 0
je 0x41282f
lea eax, [esp + 0x38]
push eax
push esi
push edx
mov ebx, edx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x41282f
add ebx, eax
cmp ebx, esi
mov edx, ebx
jb 0x412800
mov word [edi], 0
mov eax, dword [esp + 0xc4]
mov esi, dword [eax + 4]
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, esi
add eax, 0xfffffffe
xor edx, edx
cmp eax, esi
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x440a64]
xor edx, edx
cmp word [ecx], 0
setne dl
mov ebx, eax
jmp dword [edx*4 + 0x440a6c]
mov edx, ecx
cmp edx, 9
jbe 0x41262b
movzx eax, word [edx + edx + 0x43d528]
mov word [esi - 2], ax
add esi, 0xfffffffe
mov edi, dword [esp + 0x24]
mov dword [esp], 0xb3a8f3eb
mov dword [esp + 4], 0
mov word [esp + 8], 0
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0xb0]
cmp eax, 9
ja 0x412912
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb0]
movzx ecx, byte [esp + ecx]
lea edx, [eax + 0x597ea918]
and edx, ecx
add eax, ecx
add eax, 0x597ea918
add edx, edx
sub eax, edx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x58
mov ecx, dword [esp + 0xb0]
mov byte [esp + ecx], al
inc dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
cmp eax, 0xa
jb 0x4128c0
mov dword [esp + 0xe8], 0x6564a8b3
mov dword [esp + 0xec], 0xd78b6763
mov dword [esp + 0xf0], 0x9793949e
mov dword [esp + 0xf4], 0x6bde9d9d
mov dword [esp + 0xf8], 0x8675dd6f
mov dword [esp + 0xfc], 0x80c68572
mov dword [esp + 0x100], 0x8679738c
mov dword [esp + 0x104], 0xcf837c81
mov dword [esp + 0x108], 0x7c758c7c
mov dword [esp + 0x10c], 0x83368575
mov dword [esp + 0x110], 0x738e3587
mov dword [esp + 0x114], 0x7a89397d
mov dword [esp + 0x118], 0x9567878a
mov dword [esp + 0x11c], 0x9492212c
mov dword [esp + 0x120], 0x2b666490
mov dword [esp + 0x124], 0x60696898
mov dword [esp + 0x128], 0xa4129969
mov dword [esp + 0x12c], 0x6953af59
mov word [esp + 0x130], 0x3514
mov dword [esp + 0x135], 0
mov dword [esp + 0x132], 0
mov dword [esp + 0xc8], 0
mov eax, dword [esp + 0xc8]
cmp eax, 0x50
ja 0x412a70
nop
mov ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
movzx eax, byte [esp + eax + 0xe8]
mov edx, 0xb54e63a1
sub edx, ecx
add ecx, 0x5e
or edx, eax
not eax
or eax, ecx
add eax, edx
mov ecx, 0xfffffffe
sub ecx, eax
mov dword [esp + 0xb0], ecx
mov eax, dword [esp + 0xb0]
add al, 0x6e
mov ecx, dword [esp + 0xc8]
mov byte [esp + ecx + 0xe8], al
inc dword [esp + 0xc8]
mov eax, dword [esp + 0xc8]
cmp eax, 0x51
jb 0x412a10
lea eax, [0x445ccf]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412a80
movzx ecx, byte [esp + 0xe8]
test cl, cl
je 0x412ab2
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [esp + edx + 0xe9]
inc edx
test cl, cl
jne 0x412aa0
add eax, edx
mov byte [eax], 0
movzx ecx, byte [esi]
test cl, cl
je 0x412acb
inc esi
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [esi]
inc esi
test cl, cl
jne 0x412ac0
mov byte [eax], 0
movzx ecx, byte [esp]
test cl, cl
je 0x412aeb
lea edx, [esp + 1]
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412ae0
mov byte [eax], 0
mov eax, dword [case.0x412852.63]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
test edi, edi
sete al
mov edx, edi
mov edi, dword [esp + 0x2c]
jmp dword [eax*4 + 0x440b64]
lea esi, [edx - 4]
mov eax, dword [edx - 4]
lea ecx, [eax + eax*2]
mov ebx, edx
lea edi, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440b6c]
push esi
call fcn.00408e20
add esp, 4
mov eax, dword [case.0x412852.65]
mov edi, dword [esp + 0x2c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
jmp dword [0x440b8c]
push dword [esp + 0x20]
call fcn.00408e20
add esp, 4
jmp dword [0x440b94]
xor eax, eax
cmp edi, ebx
sete al
jmp dword [eax*4 + 0x440b74]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x412b8e
push eax
call fcn.00408e20
add esp, 4
mov eax, dword [edi - 8]
add edi, 0xfffffff4
test eax, eax
je 0x412b70
push eax
call fcn.00408e20
add esp, 4
jmp 0x412b70
jmp dword [0x440b94]
push dword [esp + 0x1c]
call fcn.00408e20
add esp, 4
mov eax, dword [case.0x412852.77]
nop
nop
nop
nop
nop
nop
jmp eax
mov esi, dword [esp + 0x20]
mov word [edi], 0
xor eax, eax
nop
nop
nop
cmp byte [esi + eax], 0
lea eax, [eax + 1]
jne 0x412bd0
mov ebx, esi
not ebx
lea edi, [esi + eax]
dec edi
and edi, ebx
add eax, esi
neg eax
and eax, esi
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x412bf9
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov edx, edi
test esi, esi
jne 0x412c23
xor ecx, ecx
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412c10
lea edx, [ecx - 1]
neg ecx
and ecx, esi
and edx, ebx
sub edx, ecx
mov dword [esp + 0x38], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x412c7b
mov edi, dword [esp + 0x24]
test edx, edx
jle 0x412c7b
mov ebx, esi
add ebx, edx
mov edi, dword [esp + 0x24]
nop
nop
nop
nop
cmp byte [esi], 0
je 0x412c7b
lea eax, [esp + 0x38]
push eax
push ebx
push esi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x412c7b
add esi, eax
cmp esi, ebx
jb 0x412c50
mov word [edi], 0
mov word [esp + 0x38], 0xb5b9
mov byte [esp + 0x3a], 0xa
mov dword [esp + 0x3b], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 0x43], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x412d18
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0xc168582a
add eax, 0x2a
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
mov ecx, eax
or ecx, 0xd9
and eax, 0xd9
add eax, ecx
inc al
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x412cc0
lea eax, [esp + 0x38]
push eax
push dword [ebp + 8]
call fcn.004028b0
add esp, 8
xor ecx, ecx
mov dword [esp + 0x1c], eax
test eax, eax
setne cl
xor edi, edi
mov dword [esp + 0x14], 0
jmp dword [ecx*4 + 0x440bbc]
push dword [esp + 0x1c]
call fcn.00402ae0
add esp, 4
mov ecx, eax
mov dword [esp + 0x14], eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov esi, 0xffffffff
add eax, 4
jb 0x412d71
mov esi, eax
test dl, dl
jne 0x412d77
mov ecx, esi
push ecx
call fcn.00408e10
add esp, 4
mov edi, eax
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
add edi, 4
xor eax, eax
test ecx, ecx
sete al
jmp dword [eax*4 + 0x440bc4]
mov eax, dword [esp + 0x14]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov ecx, dword [case.0x412d3d.5]
mov edx, edi
jmp ecx
mov ebx, dword [esp + 0x14]
mov word [esi], 0
mov eax, esp
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x154]
push edi
push 0
call dword [0x446cd8]
mov esi, dword [esp]
lea eax, [esi + esi]
test esi, esi
jns 0x412ddd
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ecx, eax
mov eax, esp
push eax
push esi
mov dword [esp + 0x2c], ecx
push ecx
push ebx
push edi
push 0
call dword [0x446cd8]
jmp dword [0x4409ac]
push edi
call fcn.00408e20
add esp, 4
mov edx, dword [esp + 0x1c]
mov ecx, edx
jmp 0x4132c9
mov edx, dword [esp + 0x1c]
mov eax, edx
jmp 0x4132c1
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
mov edi, dword [esp + 0x2c]
je 0x412756
push 0
push ecx
push dword [esp + 0xcc]
push 0x2b
push edx
push 5
push dword [0x446ce4]
push esi
call fcn.004378e0
add esp, 0x20
jmp 0x412756
mov word [esp + 0xc8], 0xdad6
mov byte [esp + 0xca], 0x42
mov dword [esp + 0xcb], 0
mov dword [esp + 0xcf], 0
mov dword [esp + 0xd3], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xe
ja 0x412ee9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xc8]
lea edx, [eax + 0xb6]
and edx, ecx
mov esi, 0x98ef0749
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
add al, 6
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xc8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xf
jb 0x412ea0
mov eax, dword [case.0x410b0d.4]
nop
nop
jmp eax
push 3
lea eax, [esp + 0xcc]
push eax
push ebx
call fcn.00402a70
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440a3c]
mov ebx, dword [esp + 0x1c]
inc ebx
push esi
call fcn.00402ae0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x4409b4]
mov dword [esp + 0x1c], ebx
push ebx
push esi
call fcn.00402ac0
add esp, 8
push eax
call fcn.00402820
add esp, 4
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x4409cc]
mov eax, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, eax
inc eax
cmp byte [esi], 0
jne 0x412f70
mov eax, esi
not eax
and eax, ebx
mov edi, ebx
not edi
and esi, edi
sub esi, eax
mov eax, esi
inc eax
lea eax, [esi + esi + 2]
jns 0x412f94
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x14], eax
mov eax, esi
test ebx, ebx
jne 0x412fc3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x412fb0
lea eax, [ecx - 1]
neg ecx
and ecx, ebx
and eax, edi
sub eax, ecx
mov dword [esp + 0xe8], 0
mov ecx, dword [esp + 0x14]
lea edx, [ecx + esi*2]
mov esi, ecx
mov dword [esp + 0x10], edx
cmp edx, ecx
jbe 0x413030
mov esi, dword [esp + 0x14]
test eax, eax
jle 0x413030
mov edi, ebx
add edi, eax
mov esi, dword [esp + 0x14]
nop
cmp byte [ebx], 0
je 0x413030
lea eax, [esp + 0xe8]
push eax
push edi
push ebx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0xe8]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x10]
jae 0x413030
add ebx, eax
cmp ebx, edi
jb 0x412ff0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], 0
xor eax, eax
cmp dword [esp + 0xc4], 0
setg al
push 0
push eax
push dword [esp + 0x38]
push dword [esp + 0xcc]
mov ebx, dword [esp + 0x24]
push ebx
push dword [esp + 0x38]
push dword [esp + 0x38]
lea eax, [esp + 0x54]
push eax
call fcn.0041ad70
add esp, 0x20
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp dword [0x4409d4]
push ebx
call fcn.00408e20
add esp, 4
jmp case.0x40f9e8.59
jmp dword [0x4409c8]
jmp dword [0x4409ec]
xor edx, edx
movzx edx, dl
mov ebx, eax
jmp dword [edx*4 + 0x440a6c]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov ebx, ecx
jmp dword [edx*4 + 0x440a74]
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, esi
setae dl
jmp dword [edx*4 + 0x440a64]
mov edi, ebx
sub edi, esi
sar edi, 1
mov ecx, dword [esp + 0xc0]
add ecx, edi
lea eax, [ecx + ecx]
test ecx, ecx
mov dword [esp + 0x30], esi
jns 0x413132
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov esi, eax
mov dword [esp + 0x10], eax
cmp ebx, dword [esp + 0x30]
je 0x413202
mov eax, dword [esp + 0xc4]
mov eax, dword [eax + 4]
lea ecx, [edi - 1]
mov edx, edi
and edx, 3
je 0x41319c
mov dword [esp + 0xc0], edi
mov dword [esp + 0x30], ecx
xor ebx, ebx
mov esi, dword [esp + 0x10]
movzx ecx, word [eax]
mov edi, edx
xor edx, edx
test cx, cx
setne dl
lea eax, [eax + edx*2]
mov edx, edi
mov word [esi], cx
add esi, 2
inc ebx
cmp edi, ebx
jne 0x413170
mov edi, dword [esp + 0xc0]
sub edi, ebx
mov ecx, dword [esp + 0x30]
jmp 0x4131a0
mov esi, dword [esp + 0x10]
cmp ecx, 3
jb 0x413202
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, word [eax]
xor edx, edx
test cx, cx
setne dl
mov word [esi], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [esi + 2], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [esi + 4], cx
lea ecx, [eax + edx*2]
movzx edx, word [eax + edx*2]
xor eax, eax
test dx, dx
setne al
lea eax, [ecx + eax*2]
mov word [esi + 6], dx
add esi, 8
add edi, 0xfffffffc
jne 0x4131b0
mov edx, dword [esp + 0x14]
movzx eax, word [edx]
test ax, ax
je 0x41323c
mov ecx, edx
add ecx, 2
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413220
mov word [esi], 0
jmp dword [0x440a7c]
mov ebx, dword [esp + 0x10]
mov word [esi], 0
jmp dword [0x440a7c]
push edx
call fcn.00408e20
add esp, 4
mov eax, dword [case.0x412852.7]
nop
nop
nop
nop
nop
nop
nop
jmp eax
sub esi, ebx
mov edi, 0xffffffff
cmp esi, 0xfffffffe
jl 0x413273
add esi, 2
mov edi, esi
mov esi, dword [case.0x412852.15]
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00408e10
add esp, 4
jmp esi
mov dword [esp + 0xc0], eax
push eax
push ebx
call fcn.00432a20
add esp, 8
jmp dword [0x440aa4]
push ebx
call fcn.00408e20
add esp, 4
mov edx, dword [esp + 0x1c]
mov ecx, edx
jmp 0x4138c1
mov edx, dword [esp + 0x1c]
mov eax, edx
jmp 0x4138b9
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x4132cd
mov eax, ecx
jmp 0x4132c1
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
mov esi, edx
add esi, edi
xor ebx, ebx
mov dword [esp + 0x14], edi
test edi, edi
jle 0x413327
cmp byte [edx], 0
je 0x413327
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x413327
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413300
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413335
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x38], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
mov edi, dword [esp + 0x1c]
jbe 0x41339b
mov ebx, dword [esp + 0x20]
cmp dword [esp + 0x14], 0
jle 0x41339b
mov ebx, dword [esp + 0x20]
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41339b
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x41339b
add edi, eax
cmp edi, esi
jb 0x413370
mov word [ebx], 0
lea ecx, [esp + 0x38]
push 1
call fcn.00409650
xor ebx, ebx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x412f25
push dword [esp + 0x10]
call fcn.00408e20
add esp, 4
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp dword [0x440c24]
xor eax, eax
cmp ebx, esi
sete al
mov edi, ebx
jmp dword [eax*4 + 0x440c1c]
jmp dword [0x440c0c]
mov eax, dword [edi - 0xc]
test eax, eax
je case.0x412852.106
push eax
call fcn.00408e20
add esp, 4
lea ebx, [edi - 0xc]
mov eax, dword [edi - 0xc]
test eax, eax
je 0x413419
push eax
call fcn.00408e20
add esp, 4
jmp dword [0x440c18]
jmp dword [0x440adc]
push dword [esp + 0x30]
call fcn.00408e20
add esp, 4
jmp dword [0x440ae4]
jmp dword [0x440ae4]
push dword [esp + 0xc0]
call fcn.00408e20
add esp, 4
lea esi, [esp + 0x38]
mov ecx, esi
call fcn.00409fb0
mov ecx, esi
call fcn.00409690
push dword [esp + 0xc4]
call fcn.00435ac0
add esp, 4
lea ecx, [esp + 0xe8]
call fcn.00435f20
jmp case.0x41064e.1
jmp dword [0x440c30]
push esi
call fcn.00408e20
add esp, 4
nop
nop
nop
push esi
call fcn.00408e20
add esp, 4
jmp dword [0x440c34]
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp dword [0x440c24]
jmp dword [0x440c3c]
push dword [esp + 0x24]
call fcn.00408e20
add esp, 4
jmp case.0x412852.77
push esi
push dword [esp + 0x20]
call fcn.00402af0
add esp, 8
mov edi, eax
mov word [esp + 0x38], 0xc7c1
mov byte [esp + 0x3a], pe_nt_image_headers32
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x41354d
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x4f]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x2d813f4f
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0xd7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x413510
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004027e0
add esp, 8
mov dword [esp + 0x10], eax
mov word [esp + 0x38], 0xc3b5
mov byte [esp + 0x3a], 0x5a
mov dword [esp + 0x3f], 0
mov dword [esp + 0x3b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x4135d1
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + ecx]
add edx, 0x65a0060c
add eax, 0x65a0060c
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xe8], edx
mov eax, dword [esp + 0xe8]
add al, 0xac
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x413590
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004027e0
add esp, 8
mov ebx, eax
mov word [esp + 0x38], 0xa1ad
mov byte [esp + 0x3a], 0xd4
lea eax, [esp + 0x3b]
mov byte [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [eax], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x41365d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x38]
lea edx, [eax + 0x5d]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x9d962e5d
mov dword [esp + 0xe8], eax
mov eax, dword [esp + 0xe8]
add al, 0x75
mov ecx, dword [esp]
mov byte [esp + ecx + 0x38], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413620
lea eax, [esp + 0x38]
push eax
push edi
call fcn.004027e0
add esp, 8
lea ecx, [esi + esi*2]
mov edi, dword [esp + 0x20]
lea ecx, [edi + ecx*4]
push eax
push dword [esp + 0x14]
push ebx
call fcn.00415ac0
jmp dword [0x440bf0]
mov eax, esi
and eax, 1
xor esi, 1
lea esi, [esi + eax*2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc esi
jmp dword [0x440bf4]
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
jmp dword [eax*4 + 0x440be4]
lea esi, [esp + 0x38]
mov ecx, esi
push 3
call fcn.00409650
push dword [esp + 0x14]
push edi
push dword [esp + 0x2c]
push dword [esp + 0x34]
push esi
call fcn.004189c0
add esp, 0x14
mov ecx, esi
call fcn.00409fb0
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440bfc]
lea eax, [edi - 4]
mov dword [esp + 0x10], eax
mov eax, dword [edi - 4]
lea ecx, [eax + eax*2]
mov esi, edi
lea edi, [edi + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x440c04]
push esi
call fcn.00402ae0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x440aac]
mov dword [esp + 0x14], ebx
push ebx
push esi
call fcn.00402ac0
add esp, 8
push eax
call fcn.00402820
add esp, 4
mov ebx, eax
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x440ab4]
mov eax, ebx
mov edi, eax
inc eax
cmp byte [edi], 0
jne 0x413750
mov eax, edi
not eax
and eax, ebx
mov esi, ebx
not esi
and edi, esi
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x413774
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov edx, edi
test ebx, ebx
jne 0x4137a3
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413790
lea edx, [ecx - 1]
neg ecx
and ecx, ebx
and edx, esi
sub edx, ecx
mov dword [esp], 0
lea ecx, [eax + edi*2]
mov edi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
jbe 0x413800
mov edi, dword [esp + 0x1c]
test edx, edx
jle 0x413800
mov esi, ebx
add esi, edx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x413800
mov eax, esp
push eax
push esi
push ebx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp]
mov word [edi], cx
add edi, 2
cmp edi, dword [esp + 0x10]
jae 0x413800
add ebx, eax
cmp ebx, esi
jb 0x4137d0
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], 0
push 0
push 0
push dword [esp + 0x30]
push dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
push ebx
push dword [esp + 0xd4]
push dword [esp + 0x48]
lea eax, [esp + 0x54]
push eax
call fcn.0041ad70
add esp, 0x20
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
jmp dword [0x440abc]
push ebx
call fcn.00408e20
add esp, 4
mov ebx, dword [esp + 0x14]
inc ebx
mov eax, dword [case.0x412852.29]
nop
jmp eax
jmp 0x413710
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp dword [0x440bd4]
add edx, 0xc
xor ebx, ebx
cmp edx, eax
sete bl
jmp dword [ebx*4 + 0x440bdc]
jmp ecx
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
jmp case.0x412d3d.5
xor esi, esi
xor eax, eax
cmp esi, dword [esp + 0x14]
setb al
mov dword [esp + 0x20], edi
jmp dword [eax*4 + 0x440be4]
lea ecx, [eax + 1]
cmp byte [eax], 0
je 0x4138c5
mov eax, ecx
jmp 0x4138b9
mov ecx, eax
not ecx
and ecx, edx
mov edi, edx
not edi
and edi, eax
sub edi, ecx
mov esi, edx
add esi, edi
xor ebx, ebx
mov dword [esp + 0x14], edi
test edi, edi
jle 0x413917
cmp byte [edx], 0
je 0x413917
xor ebx, ebx
mov edi, dword [esp + 0x1c]
nop
nop
nop
nop
mov dword [esp + 0x38], 0
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, esi
jae 0x413917
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4138f0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413925
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ecx, ebx
and ecx, 1
xor ebx, 1
lea ecx, [ebx + ecx*2]
mov dword [esp + 0x38], 0
lea ecx, [eax + ecx*2]
add ecx, 0xfffffffe
mov ebx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x10], ecx
cmp ecx, eax
mov edi, dword [esp + 0x1c]
jbe 0x41399b
mov ebx, dword [esp + 0x30]
cmp dword [esp + 0x14], 0
jle 0x41399b
mov ebx, dword [esp + 0x30]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41399b
lea eax, [esp + 0x38]
push eax
push esi
push edi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x38]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x10]
jae 0x41399b
add edi, eax
cmp edi, esi
jb 0x413970
mov word [ebx], 0
lea ecx, [esp + 0x38]
push 1
call fcn.00409650
xor ebx, ebx
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x20]
jmp 0x413710
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp dword [0x440c60]
xor ebx, ebx
mov dword [esp + 0x100], esi
jmp 0x413a32
push dword [esp + 0x24]
call fcn.00408e20
add esp, 4
nop
nop
nop
mov eax, ebx
and eax, 1
xor ebx, 1
lea ebx, [ebx + eax*2]
mov esi, dword [esp + 0x100]
push esi
call fcn.00402ae0
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
jmp dword [ecx*4 + 0x440c64]
push ebx
push esi
call fcn.00402af0
add esp, 8
mov edi, eax
mov word [esp + 0x110], 0xdb1
mov dword [esp + 0x112], 0
mov dword [esp + 0x115], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 8
ja 0x413ae9
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax - 0x48c3abd6]
mov esi, edx
and esi, ecx
xor edx, ecx
add eax, 0x2a
and eax, ecx
lea ecx, [edx + esi*2]
add eax, eax
sub ecx, eax
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x40]
add al, 0xda
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 9
jb 0x413a90
push 2
lea eax, [esp + 0x114]
push eax
push edi
call fcn.00402a70
add esp, 0xc
mov dword [esp + 0x2c], ebx
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x440c7c]
jmp dword [0x440c88]
mov word [esp + 0x40], 0x9996
mov byte [esp + 0x42], 0x22
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xb
ja case.0x413b09.3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x63deb306
add eax, 0x63deb306
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xd6
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xc
jb 0x413b50
jmp case.0x413b09.3
jmp dword [0x440c90]
mov word [esp + 0x40], 0x9996
mov byte [esp + 0x42], 0x22
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov byte [esp + 0x4b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xb
ja 0x413ba0
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x63deb306
add eax, 0x63deb306
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xd6
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xc
jb 0x413be0
jmp 0x413ba0
push 3
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00402a70
add esp, 0xc
mov ecx, dword [case.0x412852.143]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440ca4]
jmp dword [0x440cb0]
mov word [esp + 0xa8], 0x41b9
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb2], 0
mov word [esp + 0xb6], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x413d09
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xa8]
lea edx, [eax - 0x715ffd75]
mov esi, edx
add eax, 0x8b
or eax, edx
and edx, ecx
xor esi, ecx
and eax, ecx
add eax, edx
sub esi, eax
lea eax, [esi + edx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x33
mov ecx, dword [esp]
mov byte [esp + ecx + 0xa8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413cc0
push 3
lea eax, [esp + 0xac]
push eax
push edi
call fcn.00402a70
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x440cb8]
mov word [esp + 0xa8], 0x41b9
mov dword [esp + 0xaa], 0
mov dword [esp + 0xae], 0
mov dword [esp + 0xb2], 0
mov word [esp + 0xb6], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x413db9
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0xa8]
lea edx, [eax - 0x715ffd75]
mov esi, edx
add eax, 0x8b
or eax, edx
and edx, ecx
xor esi, ecx
and eax, ecx
add eax, edx
sub esi, eax
lea eax, [esi + edx*2]
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0x33
mov ecx, dword [esp]
mov byte [esp + ecx + 0xa8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x413d70
push 3
lea eax, [esp + 0xac]
push eax
push edi
call fcn.00402a70
add esp, 0xc
jmp case.0x412852.147
movzx eax, bl
mov ebx, dword [esp + 0x2c]
jmp dword [eax*4 + 0x440cbc]
mov word [esp + 0x110], 0x8175
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov byte [esp + 0x11a], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xa
ja 0x413e82
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax - 0x3bb682c0]
add eax, 0x40
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x40
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xb
jb 0x413e30
lea eax, [esp + 0x110]
push eax
push edi
call fcn.004027e0
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0xd10
mov byte [esp + 0x112], 0xb8
mov dword [esp + 0x113], 0
mov dword [esp + 0x117], 0
mov byte [esp + 0x11b], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 0xb
ja 0x413f41
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x19e4a897]
add eax, 0x97
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
mov ecx, eax
or ecx, 0xde
and eax, 0xde
add eax, ecx
inc al
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 0xc
jb 0x413ee0
lea eax, [esp + 0x110]
push eax
push edi
call fcn.00402840
add esp, 8
fnstcw word [esp + 0xa6]
movzx eax, word [esp + 0xa6]
or eax, 0xc00
mov word [esp + 0xee], ax
fldcw word [esp + 0xee]
fistp dword [esp + 0x108]
fldcw word [esp + 0xa6]
mov eax, dword [esp + 0x108]
mov dword [esp + 0x30], eax
mov word [esp + 0x110], 0x21b9
mov dword [esp + 0x112], 0
mov word [esp + 0x116], 0
mov dword [esp + 0xa8], 0
mov eax, dword [esp + 0xa8]
cmp eax, 7
ja 0x414022
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x3192a2fb]
add eax, 0xfb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x40], edx
mov eax, dword [esp + 0x40]
add al, 0x23
mov ecx, dword [esp + 0xa8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
cmp eax, 8
jb 0x413fd0
lea eax, [esp + 0x110]
push eax
mov dword [esp + 0x2c], edi
push edi
call fcn.00402840
add esp, 8
xor eax, eax
mov ecx, esi
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x414040
fnstcw word [esp + 0xa4]
movzx ecx, word [esp + 0xa4]
or ecx, 0xc00
mov word [esp + 0xec], cx
fldcw word [esp + 0xec]
fistp dword [esp + 0x104]
fldcw word [esp + 0xa4]
lea edx, [esi + eax]
dec edx
mov ecx, esi
not ecx
and ecx, edx
mov edx, dword [esp + 0x104]
mov dword [esp + 0x20], edx
add eax, esi
neg eax
and eax, esi
sub ecx, eax
mov dword [esp + 0x40], 0
lea ebx, [esp + 0x110]
mov dword [esp + 0x24], ebx
test ecx, ecx
jle 0x414100
mov edx, esi
add esi, ecx
xor edi, edi
lea ebx, [esp + 0x110]
mov dword [esp + 0x24], ebx
cmp byte [edx], 0
je 0x414100
lea eax, [esp + 0x40]
push eax
push esi
push edx
mov ebx, edx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x24]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x24], edx
cmp edi, 0x3fd
ja 0x414100
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x414131
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x24]
mov word [eax], 0
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0x40]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.0040bee0
add esp, 0xc
movzx eax, al
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp dword [eax*4 + 0x440cc4]
mov eax, dword [case.0x414131.4]
nop
nop
nop
jmp eax
xor eax, eax
cmp dword [esp + 0x20], 0
sete al
xor edi, edi
mov dword [esp + 0x24], 0
mov dword [esp + 0xfc], eax
jmp dword [eax*4 + 0x440cdc]
jmp dword [0x440ce8]
xor eax, eax
cmp dword [esp + 0x24], 0
sete al
jmp dword [eax*4 + 0x440e1c]
mov eax, dword [esp + 0x40]
push dword [eax + 0x14]
call fcn.00409490
add esp, 4
call fcn.004094b0
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
lea ebx, [esp + 0xa8]
jmp dword [0x440d10]
mov dword [esp + 0x40], 0xa8282d2c
mov dword [esp + 0x44], 0
mov word [esp + 0x48], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 9
ja 0x414180
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add eax, 0xda
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x523483da
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0xa
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xa
jb 0x4141e0
jmp 0x414180
call fcn.004094b0
mov ecx, eax
mov edx, 0x38e38e39
imul edx
mov eax, edx
shr eax, 0x1f
sar edx, 3
add edx, eax
shl edx, 2
lea eax, [edx + edx*8]
neg eax
movsx eax, byte [ecx + eax + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov word [ebx], ax
add ebx, 2
jmp dword [0x440d20]
inc edi
jmp dword [0x440d28]
inc edi
inc edi
jmp dword [0x440d28]
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x440d14]
mov word [ebx], 0
mov dword [esp + 8], 0x3b4c3911
mov dword [esp + 0xc], 0x3f733d7d
mov dword [esp + 0x10], 0x2307214e
mov dword [esp + 0x14], 0x2724255e
mov byte [esp + 0x18], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x10
ja 0x4142fd
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0xa7]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0xf13fd9a7
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x6f
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x11
jb 0x4142c0
movzx eax, word [esp + 8]
lea esi, [esp + 0x40]
test ax, ax
je 0x414331
lea ecx, [esp + 0xa]
lea esi, [esp + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414320
mov word [esi], 0
movzx eax, word [esp + 0xa8]
test ax, ax
je 0x414361
lea ecx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
mov word [esi], ax
add esi, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x414350
mov word [esi], 0
lea eax, [esp + 0x40]
sub esi, eax
sar esi, 1
lea ecx, [esp + 0xf0]
push ecx
push 0
push 0
push esi
push eax
push 0
call dword [0x446cd8]
mov edi, dword [esp + 0xf0]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x41439b
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ecx, eax
lea eax, [esp + 0xf0]
push eax
push edi
mov edi, ecx
push ecx
push esi
lea eax, [esp + 0x50]
push eax
push 0
call dword [0x446cd8]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x440d2c]
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x440d34]
mov ebx, edi
xor eax, eax
cmp ecx, 2
sete al
jmp dword [eax*4 + 0x440d3c]
mov dword [esp + 8], 0x1b8a194e
mov dword [esp + 0xc], 0x7570597
mov word [esp + 0x10], 0x100
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov word [esp + 0x1a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x13
ja 0x41447a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0x2c]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x26c3932c
mov dword [esp], eax
mov eax, dword [esp]
add al, 0xcc
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x14
jb 0x414440
mov eax, ebx
add eax, 0xfffffffe
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414480
movzx ecx, word [esp + 8]
test cx, cx
je 0x41467a
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x4144a0
jmp 0x414663
mov dword [esp + 8], 0x7b1f7958
mov dword [esp + 0xc], 0x7f1b7df2
mov word [esp + 0x10], 0x717e
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x41453d
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + 0xef]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x58e34cef
mov dword [esp], eax
mov eax, dword [esp]
add al, 0x77
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x414500
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414550
movzx ecx, word [esp + 8]
test cx, cx
je 0x414667
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x414570
mov ebx, edi
add eax, edx
jmp 0x414669
mov dword [esp + 8], 0xa33ca1f0
mov dword [esp + 0xc], 0xdf48dd36
mov word [esp + 0x10], 0xd9de
mov dword [esp + 0x12], 0
mov dword [esp + 0x16], 0
mov dword [esp + 0x1a], 0
mov word [esp + 0x1e], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x17
ja 0x41461e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 8]
lea edx, [eax + ecx]
add edx, 0x5d193b3b
add eax, 0x5d193b3b
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x63
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x18
jb 0x4145e0
mov eax, edi
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414630
movzx ecx, word [esp + 8]
test cx, cx
je 0x414678
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0xa]
add edx, 2
test cx, cx
jne 0x414650
mov ebx, edi
add eax, edx
jmp 0x41467a
mov ebx, edi
mov word [eax], 0
lea edi, [esp + 4]
jmp dword [0x440d54]
mov ebx, edi
mov word [eax], 0
nop
jmp dword [0x440d4c]
lea edi, [esp + 4]
jmp dword [0x440d54]
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440e0c]
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440e14]
jmp dword [0x440e08]
mov word [edi], 0x2c
xor eax, eax
mov ecx, dword [esp + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4146d0
lea edi, [ebx + 4]
mov dword [esp + 0x40], 0
cmp esi, 2
mov dword [esp + 0x28], edi
jl 0x414759
mov edi, ecx
add ecx, eax
dec ecx
add eax, edi
neg eax
and eax, edi
and ecx, dword [esp + 0xf4]
sub ecx, eax
test ecx, ecx
jle 0x414759
mov edi, dword [esp + 0x38]
add edi, ecx
lea eax, [ebx + esi*2]
add eax, 2
mov dword [esp + 0x20], eax
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x38]
nop
nop
nop
cmp byte [esi], 0
je 0x414763
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x28]
mov word [edx], cx
add edx, 2
mov dword [esp + 0x28], edx
cmp edx, dword [esp + 0x20]
jae 0x41475f
add esi, eax
cmp esi, edi
mov edx, dword [esp + 0x30]
jb 0x414720
jmp 0x414763
mov ebx, dword [esp + 0x2c]
jmp 0x414763
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x28]
mov word [edi], 0
mov eax, dword [esp + 0x34]
jmp dword [eax*4 + 0x440dac]
mov dword [esp + 0x30], 0
xor edi, edi
mov eax, 1
jmp dword [eax*4 + 0x440db4]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41479b
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + edi*2]
mov ebx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], ecx
cmp ecx, eax
mov ecx, dword [esp + 0x24]
jbe 0x41481d
mov ebx, dword [esp + 0x34]
cmp dword [esp + 0xe8], 0
jle 0x41481d
mov edx, esi
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x38], edi
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x41481d
lea eax, [esp + 0x40]
push eax
push ecx
push edx
mov esi, ecx
mov edi, edx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esp + 0x20]
jae 0x414819
add edi, eax
cmp edi, esi
mov ecx, esi
mov edx, edi
mov edi, dword [esp + 0x38]
jb 0x4147e0
jmp 0x41481d
mov edi, dword [esp + 0x38]
mov word [ebx], 0
lea eax, [esp + 0x40]
push eax
push 0
push 0
push edi
push dword [esp + 0x44]
push 0
call dword [0x446cd8]
mov esi, dword [esp + 0x40]
lea eax, [esi + esi]
test esi, esi
jns 0x414848
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ecx, eax
lea eax, [esp + 0x40]
push eax
push esi
mov ebx, ecx
push ecx
push edi
mov esi, dword [esp + 0x44]
push esi
push 0
call dword [0x446cd8]
jmp dword [0x440cfc]
push esi
call fcn.00408e20
add esp, 4
lea edi, [esp + 4]
jmp dword [0x440d54]
lea edi, [esp + 4]
jmp dword [0x440d54]
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edi
push ebx
call fcn.0043a030
add esp, 0x1c
nop
nop
nop
nop
nop
nop
nop
nop
nop
push 0x80
push 0x60
push 5
push 0
push 0x100002
push edi
push ebx
call fcn.0043a030
add esp, 0x1c
jmp dword [0x440d60]
mov esi, eax
mov dword [esp + 0x20], ebx
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x440d64]
mov edi, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
jmp 0x4149d2
push 0
push dword [esp + 0x110]
push dword [esp + 0x44]
push dword [esp + 0x10]
call fcn.0043a8c0
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], 0x82818087
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 0xe
ja 0x414985
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x40]
lea edi, [ecx + 0x4f725eb]
add ecx, 0xeb
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xa8], edi
mov ecx, dword [esp + 0xa8]
add cl, 0x93
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 0xf
jb 0x414940
mov ecx, dword [0x446cdc]
test ecx, ecx
je case.default.0x4149ed
mov edx, dword [esp + 0x40]
xor edi, edi
mov ebx, dword [0x446ce0]
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x11081610
je 0x4149b0
inc edi
cmp ecx, edi
jne 0x4149a0
jmp case.default.0x4149ed
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x4149ed
push eax
push 1
push dword [0x446ce4]
push ecx
call fcn.004378e0
add esp, 0x10
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push dword [esp + 0x3c]
call fcn.00435ac0
add esp, 4
not esi
shr esi, 0x1f
mov dword [esp + 0x24], 0
xor eax, eax
jmp dword [esi*4 + 0x440d6c]
mov eax, dword [case.0x4149ed.5]
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor ecx, ecx
cmp dword [esp + 0x30], 1
sete cl
mov eax, 1
jmp dword [ecx*4 + 0x440d84]
mov edi, dword [esp + 0x20]
jmp dword [eax*4 + 0x440db4]
xor eax, eax
mov ecx, dword [esp + 0x30]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x440dbc]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x440dc4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x440dcc]
mov ecx, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x414a60
sub eax, edi
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x414a7a
mov ecx, 0xffffffff
push ecx
call fcn.00408e10
add esp, 4
mov dword [esp + 0x24], eax
mov dword [esp + 0xa8], 0x838281a2
mov dword [esp + 0xac], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 7
ja 0x414aff
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0xa8]
add ecx, 0xdbb2c340
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
xor edx, eax
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x40
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0xa8], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 8
jb 0x414ab0
mov dword [esp + 0x40], 0xfb69f956
mov dword [esp + 0x44], 0xff9bfd73
mov dword [esp + 0x48], 0xf365f16c
mov dword [esp + 0x4c], 0xf793f56a
mov dword [esp + 0x50], 0xeb74e96a
mov dword [esp + 0x54], 0xefb3edca
mov dword [esp + 0x58], 0xe368e189
mov dword [esp + 0x5c], 0xe781e585
mov dword [esp + 0x60], 0x1b7a19c6
mov dword [esp + 0x64], 0x1f8c1d91
mov dword [esp + 0x68], 0x1385117d
mov dword [esp + 0x6c], 0x17341587
mov dword [esp + 0x70], 0xb6e0949
mov dword [esp + 0x74], 0xf2e0d2a
mov word [esp + 0x78], 0x10e
mov dword [esp + 0x7a], 0
mov dword [esp + 0x7d], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x40
ja 0x414be0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x31d305df]
mov esi, ecx
not esi
or esi, edx
and edx, ecx
add edx, esi
neg edx
add eax, edx
add eax, 0x31d305de
mov dword [esp + 8], eax
mov eax, dword [esp + 8]
add al, 0xe7
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x41
jb 0x414ba0
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0x24]
test cx, cx
je 0x414c11
lea edx, [esp + 0x42]
mov eax, dword [esp + 0x24]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414c00
mov word [eax], 0
movzx ecx, word [edi]
test cx, cx
je 0x414c41
lea edx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414c30
mov word [eax], 0
movzx ecx, word [esp + 0xa8]
test cx, cx
je 0x4154a1
mov dword [esp + 0x20], edi
lea edx, [esp + 0xaa]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414c70
jmp 0x4154a5
sete al
movzx eax, al
jmp dword [eax*4 + 0x440dd4]
mov eax, dword [esp + 0xfc]
jmp dword [eax*4 + 0x440ddc]
push 0xa013361e
push dword [0x446cd0]
call fcn.00439420
add esp, 8
push 0
push 0
push dword [esp + 0x44]
push 0x41d020
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x440dec]
mov dword [esp + 0x20], edi
mov dword [esp + 0xac], 0xffffffff
mov dword [esp + 0xa8], 0xb8797400
mov dword [esp + 0x40], 0x82818087
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x414d58
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x4f725eb]
add eax, 0xeb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x93
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x414d20
mov eax, dword [0x446cdc]
test eax, eax
je 0x4153a2
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x446ce0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xb33e16a3
je 0x41537e
inc edx
cmp eax, edx
jne 0x414d80
jmp 0x4153a2
mov word [esp + 0x40], 0x2f36
mov byte [esp + 0x42], 0x9a
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov dword [esp + 0x4b], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xe
ja 0x414e29
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x40]
lea eax, [ecx + edx]
add eax, 0x359d1a3c
add ecx, 0x359d1a3c
mov esi, edx
not esi
or esi, ecx
add esi, edx
and ecx, edx
add ecx, esi
inc ecx
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0xa8], ecx
mov eax, dword [esp + 0xa8]
add al, 0x5c
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xf
jb 0x414dd0
lea eax, [esp + 0x40]
push eax
push edi
call fcn.004027e0
add esp, 8
mov dword [esp + 0x38], eax
mov word [esp + 0x40], 0xab55
mov byte [esp + 0x42], 0x38
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 9
ja 0x414eb3
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x15f15659]
add eax, 0xa7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0x6f
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xa
jb 0x414e70
lea eax, [esp + 0x40]
push eax
push edi
call fcn.004027e0
add esp, 8
mov esi, eax
mov eax, 0xfffffffe
mov ecx, dword [esp + 0x20]
nop
nop
nop
nop
cmp word [ecx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x414f08
sar eax, 1
xor edx, edx
mov ecx, dword [esp + 0x38]
test ecx, ecx
setne dl
mov ebx, ecx
not ebx
mov edi, esi
not edi
mov dword [esp + 0xe8], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x28], edx
mov edi, esi
mov dword [esp + 0xf4], ebx
jmp dword [edx*4 + 0x440d8c]
xor esi, esi
xor ecx, ecx
test edi, edi
setne cl
mov dword [esp + 0x34], ecx
jmp dword [ecx*4 + 0x440d94]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
inc edi
cmp byte [ecx], 0
jne 0x414f30
mov ebx, ecx
and ebx, dword [esp + 0xe8]
not ecx
and ecx, dword [esp + 0x30]
sub ebx, ecx
inc ebx
jmp 0x415109
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xd3a7a30
push dword [0x446cd0]
call fcn.00439420
add esp, 8
lea ecx, [esp + 8]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x44]
mov dword [esp + 0x44], edi
push edi
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440de4]
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], 0x82818087
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x4150a3
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0xa8]
lea esi, [ecx + 0x4f725eb]
add ecx, 0xeb
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x93
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x415060
mov ecx, dword [0x446cdc]
test ecx, ecx
je case.0x4149ed.30
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x446ce0]
cmp dword [edi + esi*8], 0x11081610
je 0x415630
inc esi
cmp ecx, esi
jne 0x4150c0
jmp case.0x4149ed.30
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.default.0x415100
mov ecx, esi
not ecx
and ecx, dword [esp + 0x38]
and esi, ebx
sub esi, ecx
inc esi
xor ecx, ecx
test edi, edi
setne cl
mov dword [esp + 0x34], ecx
jmp dword [ecx*4 + 0x440d94]
xor ebx, ebx
mov dword [esp + 0x40], 0xf3670d9a
mov dword [esp + 0x44], 0xf752f162
mov dword [esp + 0x48], 0xfb56f558
mov dword [esp + 0x4c], 0xff28f92f
mov word [esp + 0x50], 0xfdfc
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov word [esp + 0x5a], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x1b
ja 0x4151b3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp]
mov ecx, dword [esp]
movzx edi, byte [esp + ecx + 0x40]
lea ecx, [edx + 0x6374267e]
and ecx, edi
add edx, edi
add edx, 0x6374267e
add ecx, ecx
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
mov dword [esp + 8], ecx
mov ecx, dword [esp + 8]
mov edx, ecx
xor edx, 0x8d
and ecx, 0xd
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp]
mov byte [esp + edx + 0x40], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x1c
jb 0x415160
lea edx, [esp + 0x40]
mov ecx, 4
lea edi, [esp + 0xa8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x50]
lea edi, [esp + 0xb8]
mov ecx, 1
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov ecx, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [esp + ecx + 0xaa], 0
lea ecx, [ecx + 2]
jne 0x4151f0
sar ecx, 1
add eax, esi
mov dword [esp + 0xf8], ebx
add eax, ebx
lea edx, [eax + ecx]
add ecx, eax
add ecx, 2
lea eax, [edx + edx]
add eax, 4
test ecx, ecx
mov edi, dword [esp + 0x20]
jns 0x415226
mov eax, 0xffffffff
push eax
call fcn.00408e10
add esp, 4
mov ebx, eax
movzx eax, word [esp + 0xa8]
mov dword [esp + 0x24], ebx
test ax, ax
je 0x415261
lea ecx, [esp + 0xaa]
mov ebx, dword [esp + 0x24]
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415250
mov dword [ebx], 0x220020
add ebx, 4
movzx eax, word [edi]
test ax, ax
je 0x415291
lea ecx, [edi + 2]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [ebx], ax
add ebx, 2
movzx eax, word [ecx]
add ecx, 2
test ax, ax
jne 0x415280
lea edi, [ebx + 2]
mov word [ebx], 0x22
jmp dword [0x440d9c]
push dword [esp + 0x20]
call fcn.00408e20
add esp, 4
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x440da4]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
jmp dword [eax*4 + 0x440da4]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
jmp dword [eax*4 + 0x440dac]
mov word [edi], 0x2c
xor eax, eax
nop
cmp byte [edx + eax], 0
lea eax, [eax + 1]
jne 0x4152e0
lea esi, [edi + 2]
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0xf8]
cmp ebx, 2
jl 0x41535f
lea ecx, [edx + eax]
dec ecx
add eax, edx
neg eax
and eax, edx
and ecx, dword [esp + 0xe8]
sub ecx, eax
test ecx, ecx
jle 0x41535f
mov eax, ebx
mov ebx, edx
add ebx, ecx
lea eax, [edi + eax*2]
mov dword [esp + 0x28], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x41535f
lea eax, [esp + 0x40]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040ecc0
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0x28]
jae 0x41535f
add edi, eax
cmp edi, ebx
mov edx, edi
jb 0x415330
mov word [esi], 0
mov dword [esp + 0x30], 0
xor edi, edi
mov ebx, dword [esp + 0x2c]
mov eax, 1
jmp dword [eax*4 + 0x440db4]
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x4153a2
lea ecx, [esp + 0xa8]
push ecx
push 0
push esi
push 3
push dword [0x446ce4]
push eax
call fcn.004378e0
add esp, 0x18
mov dword [esp + 0x40], 0x82818087
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4b], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xe
ja 0x415418
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0x4f725eb]
add eax, 0xeb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x93
mov ecx, dword [esp]
mov byte [esp + ecx + 0x40], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xf
jb 0x4153e0
mov eax, dword [0x446cdc]
test eax, eax
je case.default.0x415469
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x446ce0]
nop
nop
nop
cmp dword [edi + edx*8], 0x11081610
je 0x415440
inc edx
cmp eax, edx
jne 0x415430
jmp case.default.0x415469
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je case.default.0x415469
push esi
push 1
push dword [0x446ce4]
push eax
call fcn.004378e0
add esp, 0x10
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x20]
jmp dword [ecx*4 + 0x440e0c]
push eax
call fcn.00435ac0
add esp, 4
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x440e14]
push edi
call fcn.00408e20
add esp, 4
xor eax, eax
cmp dword [esp + 0x24], 0
sete al
jmp dword [eax*4 + 0x440e1c]
mov dword [esp + 0x20], edi
mov word [eax], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x44
push 0xd3a7a30
push dword [0x446cd0]
call fcn.00439420
add esp, 8
lea ecx, [esp + 8]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x44]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x440df4]
mov eax, dword [esp + 8]
mov dword [esp + 0xa8], 0x82818087
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb3], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0xe
ja 0x415603
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0xa8]
lea esi, [ecx + 0x4f725eb]
add ecx, 0xeb
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp], esi
mov ecx, dword [esp]
add cl, 0x93
mov edx, dword [esp + 4]
mov byte [esp + edx + 0xa8], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0xf
jb 0x4155c0
mov ecx, dword [0x446cdc]
test ecx, ecx
je case.0x4149ed.34
mov edx, dword [esp + 0xa8]
xor esi, esi
mov edi, dword [0x446ce0]
nop
nop
nop
nop
cmp dword [edi + esi*8], 0x11081610
je 0x41564e
inc esi
cmp ecx, esi
jne 0x415620
jmp case.0x4149ed.34
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x415666
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x20]
jmp dword [ecx*4 + 0x440e0c]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
jne 0x41568e
mov edi, dword [esp + 0x20]
jmp dword [0x440dfc]
jmp dword [0x440e08]
push eax
push 1
push dword [0x446ce4]
push ecx
call fcn.004378e0
add esp, 0x10
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esp + 0x20]
jmp dword [ecx*4 + 0x440e0c]
push eax
push 1
push dword [0x446ce4]
push ecx
call fcn.004378e0
add esp, 0x10
mov edi, dword [esp + 0x20]
jmp dword [0x440dfc]
mov word [esp + 0x40], 0x41b6
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov byte [esp + 0x4a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xa
ja 0x41572e
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x25fe910b
add eax, 0xb
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xb3
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xb
jb 0x4156e0
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004027e0
add esp, 8
jmp dword [0x440cf0]
mov word [esp + 0x40], 0x41b6
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov byte [esp + 0x4a], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xa
ja 0x4157be
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add edx, 0x25fe910b
add eax, 0xb
and eax, ecx
add eax, eax
mov ecx, eax
xor ecx, edx
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
add al, 0xb3
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xb
jb 0x415770
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004027e0
add esp, 8
jmp case.0x414131.9
mov edx, eax
xor eax, eax
test edx, edx
setne al
jmp dword [eax*4 + 0x440cf4]
jmp dword [0x440d04]
mov dword [esp + 0x40], 0xa8282d2c
mov dword [esp + 0x44], 0
mov word [esp + 0x48], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 9
ja 0x415856
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add eax, 0xda
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x523483da
mov dword [esp + 0xa8], edx
mov eax, dword [esp + 0xa8]
add al, 0xa
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xa
jb 0x415810
mov eax, dword [esp + 0x40]
push dword [eax + 0x14]
call fcn.00409490
add esp, 4
call fcn.004094b0
jmp case.0x414131.16
mov ecx, edx
mov esi, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
inc ecx
cmp byte [eax], 0
jne 0x415880
mov ecx, eax
not ecx
and ecx, edx
mov ebx, edx
not ebx
and ebx, eax
sub ebx, ecx
add edx, ebx
xor edi, edi
mov dword [esp + 0xe8], ebx
test ebx, ebx
mov dword [esp + 0x24], edx
jle 0x41478d
cmp byte [esi], 0
je 0x41478d
xor edi, edi
mov ebx, esi
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edx
push ebx
call fcn.0040ecc0
mov edx, dword [esp + 0x30]
add esp, 0xc
lea ecx, [ebx + eax]
inc edi
cmp ecx, edx
jae 0x41478d
cmp byte [ebx + eax], 0
mov ebx, ecx
jne 0x4158c0
jmp 0x41478d
mov al, 1
jmp dword [0x440c74]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret