Function at 0x40f150
Capabilities:
Contain obfuscated stackstrings
Encode data using xor
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xcf8
mov ecx, dword [str.5716f8210a0744e3ba86f9d57d14207c]
mov dword [esp + 0xd8], 0xb578b4c
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov byte [esp + 0xe4], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40f1e8
nop
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx edx, byte [esp + edx + 0xd8]
lea esi, [eax + 0x2d]
add eax, edx
and esi, edx
add esi, esi
sub eax, esi
add eax, 0x6121892d
mov dword [esp + 0x2e8], eax
mov eax, dword [esp + 0x2e8]
add al, 0xc5
mov edx, dword [esp + 0x30]
mov byte [esp + edx + 0xd8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40f1a0
mov edx, dword [str.BVnUqo___daeftt]
mov dword [esp + 0x2e8], 0x346c5ca5
mov dword [esp + 0x2ec], 0x64595a68
mov dword [esp + 0x2f0], 0x6c515668
mov dword [esp + 0x2f4], 0x54616055
mov dword [esp + 0x2f8], 0x7d0e4e6f
mov dword [esp + 0x2fc], 0x3b237f4d
mov dword [esp + 0x300], 0x7f063130
mov dword [esp + 0x304], 0xe72b4179
mov dword [esp + 0x308], 0
mov dword [esp + 0x30b], 0
mov dword [esp + 0x268], 0
mov eax, dword [esp + 0x268]
cmp eax, 0x26
ja 0x40f2dc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x268]
mov esi, dword [esp + 0x268]
movzx esi, byte [esp + esi + 0x2e8]
lea edi, [eax + 0x3907627f]
lea ebx, [eax + 0x7f]
xor ebx, edi
and edi, esi
and ebx, esi
add eax, esi
add eax, 0x3907627f
lea esi, [ebx + edi*2]
sub eax, esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x87
mov esi, dword [esp + 0x268]
mov byte [esp + esi + 0x2e8], al
inc dword [esp + 0x268]
mov eax, dword [esp + 0x268]
cmp eax, 0x27
jb 0x40f280
movzx ebx, byte [esp + 0x2e8]
lea eax, [esp + 0x268]
test bl, bl
je 0x40f30b
lea esi, [esp + 0x2e9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], bl
inc eax
movzx ebx, byte [esi]
inc esi
test bl, bl
jne 0x40f300
mov byte [eax], 0
movzx ebx, byte [edx]
test bl, bl
je 0x40f32b
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 0x40f320
mov byte [eax], 0
movzx edx, byte [esp + 0xd8]
test dl, dl
je 0x40f35b
lea esi, [esp + 0xd9]
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 0x40f350
mov byte [eax], 0
movzx edx, byte [ecx]
test dl, dl
je 0x40f37b
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 0x40f370
mov byte [eax], 0
lea ecx, [esp + 0x268]
mov dword [esp + 0x2e8], 0xc36dc103
mov dword [esp + 0x2ec], 0xc772c56a
mov dword [esp + 0x2f0], 0xcb64c96d
mov dword [esp + 0x2f4], 0xcf23cd78
mov dword [esp + 0x2f8], 0xd36bd104
mov dword [esp + 0x2fc], 0xd773d564
mov dword [esp + 0x300], 0xdb3ad922
mov dword [esp + 0x304], 0xdf6edd7d
mov dword [esp + 0x308], 0xa30ea110
mov dword [esp + 0x30c], 0xa705a50d
mov dword [esp + 0x310], 0xab1ea909
mov dword [esp + 0x314], 0xaf01ad05
mov dword [esp + 0x318], 0xb35db11e
mov dword [esp + 0x31c], 0xb75bb50c
mov dword [esp + 0x320], 0xbb0db90f
mov dword [esp + 0x324], 0xbf53bd0b
mov dword [esp + 0x328], 0x832d8126
mov dword [esp + 0x32c], 0x872b8536
mov dword [esp + 0x330], 0x8b3f8965
mov dword [esp + 0x334], 0x8f228d3e
mov dword [esp + 0x338], 0x933c9135
mov dword [esp + 0x33c], 0x97399537
mov dword [esp + 0x340], 0x9b3f993c
mov dword [esp + 0x344], 0x9f939d38
mov dword [esp + 0x348], 0x6362616a
mov word [esp + 0x354], 0
mov dword [esp + 0x350], 0
mov dword [esp + 0x34c], 0
mov dword [esp + 0x30], 0
mov edx, dword [esp + 0x30]
cmp edx, 0x6d
ja 0x40f530
nop
nop
nop
nop
nop
nop
nop
mov edi, dword [esp + 0x30]
mov edx, dword [esp + 0x30]
movzx ebx, byte [esp + edx + 0x2e8]
lea edx, [edi + 0x1d1cf1a0]
lea esi, [edi + ebx]
add esi, 0x1d1cf1a0
add edi, 0xa0
and edi, ebx
and edx, ebx
add edx, edi
mov edi, edx
xor edi, esi
not edx
and edx, esi
add edx, edx
sub edx, edi
mov dword [esp + 0xd8], edx
mov edx, dword [esp + 0xd8]
add dl, 0xa0
mov esi, dword [esp + 0x30]
mov byte [esp + esi + 0x2e8], dl
inc dword [esp + 0x30]
mov edx, dword [esp + 0x30]
cmp edx, 0x6e
jb 0x40f4d0
sub eax, ecx
mov dword [esp + 0xd8], 0x33cb3507
mov dword [esp + 0xdc], 0xcfc731c2
mov word [esp + 0xe0], 0xcdce
mov dword [esp + 0xe2], 0
mov dword [esp + 0xe6], 0
mov word [esp + 0xea], 0
mov dword [esp + 0x200], 0
mov edx, dword [esp + 0x200]
cmp edx, 0x13
ja 0x40f5e6
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x200]
mov esi, dword [esp + 0x200]
movzx esi, byte [esp + esi + 0xd8]
lea edi, [edx + 0xf9]
and edi, esi
add edx, esi
add edi, edi
sub edx, edi
add edx, 0xd54cd8f9
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x30]
add dl, 0x31
mov esi, dword [esp + 0x200]
mov byte [esp + esi + 0xd8], dl
inc dword [esp + 0x200]
mov edx, dword [esp + 0x200]
cmp edx, 0x14
jb 0x40f590
lea edx, [esp + 0xd0]
lea esi, [esp + 0xc4]
lea edi, [esp + 0x2e8]
lea ebx, [esp + 0xd8]
push edx
push esi
push eax
push ecx
push edi
push ebx
push 0x4485d4
call fcn.0040c320
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x44369c]
xor esi, esi
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4436a4]
push 0x104
push edi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp + 0xc4]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov esi, ecx
and esi, 0xfffffffc
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40f677
cmp edx, 0x2e
jne 0x40f678
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x40f687
cmp ecx, 0x2e
jne 0x40f688
dec eax
push eax
call fcn.00408c40
add esp, 4
mov esi, eax
push eax
push edi
call fcn.004351e0
add esp, 8
push dword [esp + 0xc4]
call fcn.00438940
add esp, 4
xor ecx, ecx
test esi, esi
sete cl
xor eax, eax
jmp dword [ecx*4 + 0x4436a4]
push esi
mov edi, ecx
call fcn.00401e20
add esp, 4
jmp dword [edi*4 + 0x4436ac]
push esi
mov esi, eax
call fcn.00408c50
mov eax, esi
add esp, 4
push eax
mov edi, eax
call fcn.00402720
add esp, 4
mov dword [esp + 0x2c], eax
mov word [esp + 0x2e8], 0x61c
mov byte [esp + 0x2ea], 0x94
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x2ef], 0
mov word [esp + 0x2f3], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40f778
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + 0x6d]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x4ade936d
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
add al, 5
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40f730
lea eax, [esp + 0x2e8]
push eax
push dword [esp + 0x30]
call fcn.004027a0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x4436b4]
call fcn.00433d70
movzx eax, al
jmp dword [eax*4 + 0x4436bc]
mov dword [esp + 0x28], edi
mov word [esp + 0x2e8], 0x8579
mov byte [esp + 0x2ea], 0x1a
mov dword [esp + 0x2eb], 0
mov byte [esp + 0x2ef], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 7
ja 0x40f84e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + ecx + 0x2e8]
lea esi, [eax + 0x1d5b9f84]
lea ecx, [eax + edx]
add ecx, 0x1d5b9f84
and esi, edx
add eax, 0x84
and eax, edx
add eax, esi
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
add al, 0x64
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 8
jb 0x40f7f0
lea eax, [esp + 0x2e8]
push eax
push dword [esp + 0x30]
call fcn.004027a0
add esp, 8
mov dword [esp + 0xbc], eax
mov word [esp + 0x2e8], 0x485b
mov byte [esp + 0x2ea], 0x22
mov dword [esp + 0x2eb], 0
mov dword [esp + 0x2ef], 0
mov word [esp + 0x2f3], 0
mov dword [esp + 0x30], 0
mov eax, dword [esp + 0x30]
cmp eax, 0xc
ja 0x40f90f
nop
nop
nop
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x30]
movzx ecx, byte [esp + ecx + 0x2e8]
lea edx, [eax + 0x2e950426]
mov esi, ecx
not esi
or esi, edx
lea edi, [ecx + esi]
inc edi
lea esi, [eax + 0x26]
and esi, ecx
mov edx, edi
and edx, esi
xor esi, edi
add eax, ecx
add eax, 0x2e950426
lea ecx, [esi + edx*2]
sub eax, ecx
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
add al, 0xf6
mov ecx, dword [esp + 0x30]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp + 0x30]
mov eax, dword [esp + 0x30]
cmp eax, 0xd
jb 0x40f8b0
lea eax, [esp + 0x2e8]
push eax
mov esi, dword [esp + 0x30]
push esi
call fcn.004027a0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
mov dword [esp + 0xc8], ecx
push esi
call fcn.00410660
add esp, 4
push dword [esp + 0x28]
call fcn.004029b0
add esp, 4
lea edi, [esp + 0x200]
mov ecx, edi
push 1
call fcn.004094f0
push edi
call fcn.0041ea40
add esp, 4
mov ecx, edi
call fcn.00409e90
lea edi, [esp + 0xc88]
mov ecx, edi
push 3
call fcn.004094f0
push edi
call fcn.0041f240
add esp, 4
mov ecx, edi
call fcn.00409e90
lea edi, [esp + 0xc20]
mov ecx, edi
push 1
call fcn.004094f0
push edi
call fcn.0041f470
add esp, 4
mov ecx, edi
call fcn.00409e90
lea edi, [esp + 0xbb8]
mov ecx, edi
push 1
call fcn.004094f0
push edi
call fcn.004212e0
add esp, 4
push edi
call fcn.00421e10
add esp, 4
push edi
call fcn.004222d0
add esp, 4
mov ecx, edi
call fcn.00409e90
lea edi, [esp + 0xb50]
mov ecx, edi
push 1
call fcn.004094f0
push edi
call fcn.004243c0
add esp, 4
mov ecx, edi
call fcn.00409e90
lea edi, [esp + 0xae8]
mov ecx, edi
push 1
call fcn.004094f0
push edi
call fcn.00426360
add esp, 4
push edi
call fcn.0042e7b0
add esp, 4
mov eax, dword [esp + 0xc8]
jmp dword [eax*4 + 0x4436d4]
push edi
call fcn.0042e980
add esp, 4
lea ecx, [esp + 0xae8]
call fcn.00409e90
lea eax, [esp + 0x1df]
push eax
call fcn.00434b40
add esp, 4
mov dword [esp + 0x30], 0xdac9d516
mov word [esp + 0x34], 0xce4
mov byte [esp + 0x36], 0x46
mov word [esp + 0x37], 0
mov dword [esp + 0xd8], 0
mov eax, dword [esp + 0xd8]
cmp eax, 8
ja 0x40fad5
mov eax, dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + ecx]
add edx, 0x579f4876
add eax, 0x579f4876
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esp + 0x2e8], edx
mov eax, dword [esp + 0x2e8]
add al, 0xc6
mov ecx, dword [esp + 0xd8]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0xd8]
mov eax, dword [esp + 0xd8]
cmp eax, 9
jb 0x40fa80
mov eax, dword [str.5716f8210a0744e3ba86f9d57d14207c]
mov dword [esp + 0x28], eax
mov dword [esp], 0x33f783cc
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov byte [esp + 0xc], 0
mov dword [esp + 0xd8], 0
mov ecx, dword [esp + 0xd8]
cmp ecx, 0xc
ja 0x40fb7d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xd8]
movzx edx, byte [esp + edx]
mov esi, ecx
and esi, 0xddd08ed9
xor ecx, 0xddd08ed9
lea ecx, [ecx + esi*2]
xor ecx, edx
mov dword [esp + 0x2e8], ecx
mov ecx, dword [esp + 0x2e8]
mov edx, ecx
xor edx, 0x10
and ecx, 0x10
lea ecx, [edx + ecx*2]
inc cl
mov edx, dword [esp + 0xd8]
mov byte [esp + edx], cl
inc dword [esp + 0xd8]
mov ecx, dword [esp + 0xd8]
cmp ecx, 0xd
jb 0x40fb20
mov ecx, dword [str.BVnUqo___daeftt]
mov dword [esp + 0x2e8], 0x1e567a79
mov dword [esp + 0x2ec], 0x705a484b
mov dword [esp + 0x2f0], 0x40414c45
mov dword [esp + 0x2f4], 0x1153526d
mov dword [esp + 0x2f8], 0xe585446
mov dword [esp + 0x2fc], 0x19161308
mov dword [esp + 0x300], 0x65e5854
mov byte [esp + 0x304], 0xbc
mov dword [esp + 0x305], 0
mov dword [esp + 0x309], 0
mov byte [esp + 0x30d], 0
mov dword [esp + 0x18], 0
mov edx, dword [esp + 0x18]
cmp edx, 0x25
ja 0x40fc6a
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x18]
movzx eax, byte [esp + esi + 0x2e8]
lea edi, [edx + 0x24]
mov esi, eax
not esi
or esi, edi
and edi, eax
add edi, esi
neg edi
lea eax, [edx + edi]
add eax, 0x25c3d23
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0xd8]
mov edx, eax
xor edx, 3
and eax, 3
lea eax, [edx + eax*2]
inc al
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x2e8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x26
jb 0x40fc10
movzx edx, byte [esp + 0x2e8]
test dl, dl
je 0x40fc9b
lea ebx, [esp + 0xd8]
lea esi, [esp + 0x2e9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [esi]
inc esi
test dl, dl
jne 0x40fc90
mov byte [ebx], 0
movzx edx, byte [ecx]
test dl, dl
lea edi, [esp + 0x2e8]
je 0x40fccd
inc ecx
mov eax, dword [esp + 0x28]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], dl
inc ebx
movzx edx, byte [ecx]
inc ecx
test dl, dl
jne 0x40fcc0
jmp 0x40fcd1
mov eax, dword [esp + 0x28]
mov byte [ebx], 0
movzx ecx, byte [esp]
test cl, cl
je 0x40fceb
lea edx, [esp + 1]
mov byte [ebx], cl
inc ebx
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x40fce0
mov byte [ebx], 0
movzx ecx, byte [eax]
test cl, cl
je 0x40fd0b
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], cl
inc ebx
movzx ecx, byte [eax]
inc eax
test cl, cl
jne 0x40fd00
mov byte [ebx], 0
movzx eax, byte [esp + 0x30]
test al, al
je 0x40fd2b
lea ecx, [esp + 0x31]
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40fd20
mov byte [ebx], 0
movzx eax, byte [esp + 0x1df]
test al, al
je 0x40fd5b
lea ecx, [esp + 0x1e0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [ebx], al
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x40fd50
mov byte [ebx], 0
mov dword [esp + 0x2e8], 0x63cd61a3
mov dword [esp + 0x2ec], 0x67f265ca
mov dword [esp + 0x2f0], 0x6bc469cd
mov dword [esp + 0x2f4], 0x6f836df8
mov dword [esp + 0x2f8], 0x53cb51e4
mov dword [esp + 0x2fc], 0x57f355c4
mov dword [esp + 0x300], 0x5bba5982
mov dword [esp + 0x304], 0x5fce5dfd
mov dword [esp + 0x308], 0x43ee41d0
mov dword [esp + 0x30c], 0x47e545ed
mov dword [esp + 0x310], 0x4bde49e9
mov dword [esp + 0x314], 0x4fe14de5
mov dword [esp + 0x318], 0x33dd319e
mov dword [esp + 0x31c], 0x37db35ac
mov dword [esp + 0x320], 0x3bad39af
mov dword [esp + 0x324], 0x3fd33dab
mov dword [esp + 0x328], 0x238d2186
mov dword [esp + 0x32c], 0x278b25b6
mov dword [esp + 0x330], 0x2bbf29c5
mov dword [esp + 0x334], 0x2f822dbe
mov dword [esp + 0x338], 0x13bc11b5
mov dword [esp + 0x33c], 0x17b915b7
mov dword [esp + 0x340], 0x1bbf19bc
mov dword [esp + 0x344], 0x1f131db8
mov dword [esp + 0x348], 0x302010a
mov dword [esp + 0x353], 0
mov dword [esp + 0x350], 0
mov dword [esp + 0x34c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0x6e
ja 0x40fef6
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 + 0x2e8]
lea edx, [eax + 0x1c8bf090]
mov esi, edx
and esi, ecx
not ecx
or ecx, edx
add ecx, esi
neg ecx
add eax, ecx
add eax, 0x1c8bf08f
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
add al, 0x10
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x6f
jb 0x40feb0
mov dword [esp + 0x30], 0x2bcb2dff
mov dword [esp + 0x34], 0xd73f29b8
mov word [esp + 0x38], 0xd5d4
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x13
ja 0x40ff7b
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x30]
lea edx, [eax + 0x147455fa]
add eax, 0xfa
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp], edx
mov eax, dword [esp]
add al, 0x2a
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x30], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0x14
jb 0x40ff40
lea eax, [esp + 0xd8]
sub ebx, eax
lea ecx, [esp + 0xcc]
lea edx, [esp + 0xc0]
lea esi, [esp + 0x30]
push ecx
push edx
push ebx
mov ebx, esi
push eax
push edi
push esi
push 0x4485d4
call fcn.0040c320
add esp, 0x1c
movzx eax, al
jmp dword [eax*4 + 0x4436dc]
xor esi, esi
mov eax, dword [case.0x40ffae.4]
jmp case.0x40ffae.2
mov ecx, dword [esp + 0xcc]
mov edi, dword [esp + 0xc0]
mov edx, ecx
and edx, 3
mov eax, ecx
or eax, 3
imul eax, edx
xor edx, 3
mov esi, ecx
and esi, 0xfffffffc
imul esi, edx
add eax, esi
shr eax, 2
movzx edx, byte [ecx + edi - 1]
cmp edx, 0x3d
je 0x40fffb
cmp edx, 0x2e
jne 0x40fffc
dec eax
movzx ecx, byte [ecx + edi - 2]
cmp ecx, 0x3d
je 0x41000b
cmp ecx, 0x2e
jne 0x41000c
dec eax
push eax
call fcn.00408c40
add esp, 4
mov esi, eax
push eax
push edi
call fcn.004351e0
add esp, 8
push dword [esp + 0xc0]
call fcn.00438940
add esp, 4
mov eax, dword [case.0x40ffae.4]
lea edi, [esp + 0x2e8]
nop
nop
nop
nop
jmp eax
jmp dword [0x443700]
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443704]
push esi
call fcn.00401e20
add esp, 4
mov edi, eax
xor eax, eax
test esi, esi
sete al
jmp dword [eax*4 + 0x44370c]
push esi
call fcn.00408c50
add esp, 4
push edi
call fcn.00413ca0
add esp, 4
push edi
call fcn.004029b0
add esp, 4
lea edi, [esp + 0x2e8]
mov dword [esp + 0x2e8], 0x9b057b04
mov dword [esp + 0x2ec], 0
mov dword [esp + 0x2ef], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xa
ja 0x410123
nop
mov ecx, dword [esp]
mov eax, dword [esp]
movzx edx, byte [esp + eax + 0x2e8]
lea esi, [ecx + 0x7252be44]
lea eax, [ecx + edx]
add eax, 0x7252be44
add ecx, 0x44
xor ecx, esi
and esi, edx
and ecx, edx
lea ecx, [ecx + esi*2]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
add al, 0x24
mov ecx, dword [esp]
mov byte [esp + ecx + 0x2e8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xb
jb 0x4100d0
push edi
push dword [esp + 0x30]
call fcn.004027a0
add esp, 8
xor ecx, ecx
test eax, eax
setg cl
jmp dword [ecx*4 + 0x443714]
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
jmp dword [eax*4 + 0x44371c]
lea ecx, [esp + 0x2e8]
push 1
call fcn.004094f0
mov eax, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 0x4488dd], 0
lea eax, [eax + 1]
jne 0x410170
mov dword [esp + 0x30], 0x665428c8
mov dword [esp + 0x34], 0x6f62a35b
mov word [esp + 0x38], 0xf560
mov dword [esp + 0x3a], 0
mov dword [esp + 0x3e], 0
mov word [esp + 0x42], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 0x13
ja 0x410206
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx esi, byte [esp + edx + 0x30]
lea edx, [ecx - 0x904ef42]
mov edi, edx
and edi, esi
xor edx, esi
add ecx, 0xbe
and ecx, esi
add ecx, edi
sub edx, ecx
lea ecx, [edx + edi*2]
mov dword [esp], ecx
mov ecx, dword [esp]
add cl, 0xce
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x30], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 0x14
jb 0x4101c0
lea esi, [esp + 0x2e8]
mov ecx, esi
push eax
push 0x4488dc
push ebx
call fcn.004096f0
mov ecx, esi
call fcn.00409e90
mov ecx, esi
call fcn.00409530
xor eax, eax
cmp dword [esp + 0xbc], 0
setg al
jmp dword [eax*4 + 0x44371c]
push 0
call fcn.0043be40
add esp, 4
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443724]
mov dword [esp + 0x30], 0x5bcf593b
mov dword [esp + 0x34], 0x47104528
mov dword [esp + 0x38], 0x43da412d
mov dword [esp + 0x3c], 0x4f6e4d21
mov dword [esp + 0x40], 0x4bd9496a
mov dword [esp + 0x44], 0x771775e8
mov dword [esp + 0x48], 0x73ee71e2
mov dword [esp + 0x4c], 0x7f297d5c
mov dword [esp + 0x50], 0x7b1379ed
mov dword [esp + 0x54], 0x674665f2
mov dword [esp + 0x58], 0x63f76103
mov dword [esp + 0x5c], 0x6f386d00
mov dword [esp + 0x60], 0x6bf26905
mov dword [esp + 0x64], 0x97b695f9
mov dword [esp + 0x68], 0x93c591b2
mov dword [esp + 0x6c], 0x9fbe9dff
mov dword [esp + 0x70], 0x9bf39904
mov dword [esp + 0x74], 0x87eb8511
mov dword [esp + 0x78], 0x831f8117
mov dword [esp + 0x7c], 0x8fae8d10
mov dword [esp + 0x80], 0x8b1689df
mov dword [esp + 0x84], 0xb7e5b594
mov dword [esp + 0x88], 0xb3e5b190
mov dword [esp + 0x8c], 0xbf29bd2a
mov dword [esp + 0x90], 0xbb28b9da
mov dword [esp + 0x94], 0xa7c7a5c9
mov dword [esp + 0x98], 0xa382a1cb
mov dword [esp + 0x9c], 0xaf8ead82
mov dword [esp + 0xa0], 0xabc7a9c4
mov dword [esp + 0xa4], 0xd7f6d540
mov dword [esp + 0xa8], 0xd3d2d1f2
mov byte [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xac], 0
mov dword [esp], 0
mov ecx, dword [esp]
cmp ecx, 0x84
ja 0x4103e8
nop
nop
mov ecx, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x30]
lea esi, [ecx + 0xcc]
and esi, edx
mov edi, 0xe0f46133
sub edi, ecx
or edi, edx
not edi
add edi, edx
sub edi, esi
mov dword [esp + 0x2e8], edi
mov ecx, dword [esp + 0x2e8]
add cl, 0x6c
mov edx, dword [esp]
mov byte [esp + edx + 0x30], cl
inc dword [esp]
mov ecx, dword [esp]
cmp ecx, 0x85
jb 0x4103a0
movzx ecx, word [esp + 0x30]
test cx, cx
lea esi, [esp + 0x2e8]
je 0x410421
lea esi, [esp + 0x2e8]
lea edx, [esp + 0x32]
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 0x410410
mov word [esi], 0
movzx ecx, word [eax]
test cx, cx
je 0x410451
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 0x410440
mov dword [esi], 0x220022
mov dword [esi + 4], 0x22
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 + 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], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0x44
mov dword [esp + 0x5c], 1
push 0x89047569
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
lea ecx, [esp + 0x18]
lea edx, [esp + 0x2e8]
push ecx
push ebx
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 + 0x44372c]
mov eax, dword [esp + 0x18]
mov dword [esp], 0xd2d1d0d7
mov dword [esp + 4], 0
mov byte [esp + 8], 0
mov dword [esp + 0x14], 0
mov ecx, dword [esp + 0x14]
cmp ecx, 8
ja 0x4105a3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x14]
movzx edx, byte [esp + edx]
lea esi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 0xd4], esi
mov ecx, dword [esp + 0xd4]
add cl, 0x8b
mov edx, dword [esp + 0x14]
mov byte [esp + edx], cl
inc dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
cmp ecx, 9
jb 0x410560
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.0x410236.0
mov edx, dword [esp]
xor esi, esi
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x4105f1
inc esi
cmp ecx, esi
jne 0x4105c0
jmp case.0x410236.0
jmp dword [0x4436c4]
push edi
call fcn.004029b0
add esp, 4
nop
push edi
call fcn.004029b0
add esp, 4
xor eax, eax
jmp dword [0x4436cc]
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x410236.0
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
lea ecx, [esp + 0xae8]
call fcn.00409530
lea ecx, [esp + 0xb50]
call fcn.00409530
lea ecx, [esp + 0xbb8]
call fcn.00409530
lea ecx, [esp + 0xc20]
call fcn.00409530
lea ecx, [esp + 0xc88]
call fcn.00409530
lea ecx, [esp + 0x200]
call fcn.00409530
mov al, 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push eax
mov ebx, esp
jmp eax
mov dword [esi + 0x1d4], ebx
mov dword [esi + 0x1dc], edi
mov dword [esi + 0x1e0], edx
mov dword [esi + 0x1e4], ecx
push eax
mov dword [esi + 0x1c4], esp
sub esp, 0x10
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x1c0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a8], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1a4], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x134], eax
mov esp, eax
push eax
sub esp, 8
mov dword [esi + 0x1d0], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x128], eax
mov esp, eax
push eax
sub esp, 0x54
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x190], eax
mov esp, eax
push eax
mov dword [esi + 0x188], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1fc], eax
mov esp, eax
push eax
mov dword [esi + 0x180], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1e8], eax
mov esp, eax
push eax
mov dword [esi + 0x170], esp
push eax
mov dword [esi + 0x16c], esp
push eax
mov dword [esi + 0xfc], esp
push eax
mov dword [esi + 0x100], esp
push eax
mov dword [esi + 0x1ac], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x1d8], eax
mov esp, eax
push eax
mov dword [esi + 0x13c], esp
push eax
mov dword [esi + 0x1a0], esp
push eax
mov dword [esi + 0x1bc], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x148], eax
mov esp, eax
push eax
mov dword [esi + 0x1b8], esp
sub esp, 0x10
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x19c], eax
mov esp, eax
push eax
sub esp, 0xc
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x198], eax
mov esp, eax
push eax
sub esp, 0x64
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x168], eax
mov esp, eax
mov word [esi + 0x90], 0xb9d3
mov dword [esi + 0x96], 0
mov dword [esi + 0x92], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x410950
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
add eax, 0xda5a42b7
mov edx, eax
and edx, ecx
mov edi, eax
xor edi, ecx
or eax, ecx
xor eax, edi
lea ecx, [edi + edx*2]
add eax, edx
sub ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0xfe
and eax, 0xfe
add eax, ecx
inc al
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
mov eax, dword [esi + 0x20]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x4108f0
lea eax, [esi + 0x90]
push eax
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov edx, eax
xor ecx, ecx
test eax, eax
sete cl
xor eax, eax
mov edi, dword [esi + 0x40]
jmp dword [ecx*4 + 0x443744]
mov eax, dword [case.0x410970.5]
nop
nop
nop
nop
jmp eax
mov eax, dword [esi + 0x128]
inc eax
mov dword [esi + 0x1cc], eax
mov dword [esi + 0x144], ebx
xor ebx, ebx
mov dword [esi + 0x1c8], edx
jmp 0x4109ad
mov ebx, dword [esi + 0x200]
inc ebx
mov edx, dword [esi + 0x1c8]
push edx
call fcn.00402970
mov edx, dword [esi + 0x1c8]
add esp, 4
xor ecx, ecx
cmp ebx, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x44375c]
mov dword [esi + 0x200], ebx
push ebx
push edx
call fcn.00402980
add esp, 8
mov ebx, eax
mov word [esi + 0x90], 0x59c4
mov dword [esi + 0x96], 0
mov dword [esi + 0x92], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x410a58
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0xcc]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x269200cc
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
mov ecx, eax
or ecx, 0x6b
and eax, 0x6b
add eax, ecx
inc al
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x410a10
push 3
lea eax, [esi + 0x90]
push eax
mov dword [esi], ebx
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
mov ebx, dword [esi + 0x1fc]
jmp dword [ecx*4 + 0x443764]
mov word [esi + 0x90], 0x41ca
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov dword [esi + 0x9a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xd
ja 0x410afc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0x209051cb]
add eax, 0xcb
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x73
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xe
jb 0x410ac0
lea eax, [esi + 0x90]
push eax
push dword [esi]
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x112]
movzx eax, word [esi + 0x112]
or eax, 0xc00
mov word [esi + 0x156], ax
fldcw word [esi + 0x156]
fistp dword [esi + 0x214]
fldcw word [esi + 0x112]
mov eax, dword [esi + 0x214]
xor ecx, ecx
cmp eax, 2
setl cl
jmp dword [ecx*4 + 0x44376c]
xor ecx, ecx
cmp eax, 3
setl cl
jmp dword [ecx*4 + 0x443774]
sete al
movzx eax, al
jmp dword [eax*4 + 0x44377c]
mov word [esi + 0x90], 0x11ff
mov dword [esi + 0x92], 0
mov dword [esi + 0x95], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 8
ja 0x410bdb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0x53]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x17ef4d53
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xbb
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 9
jb 0x410ba0
push 2
lea eax, [esi + 0x90]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443814]
mov word [esi + 8], 0x6dfc
mov dword [esi + 0xa], 0
mov dword [esi + 0xe], 0
mov dword [esi + 0x11], 0
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0x78]
cmp eax, 0xc
ja 0x410c69
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + ecx]
add edx, 0xbd4abc92
add eax, 0xbd4abc92
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 2
mov ecx, dword [esi + 0x78]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x78]
mov eax, dword [esi + 0x78]
cmp eax, 0xd
jb 0x410c30
push 2
lea eax, [esi + 8]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44381c]
mov word [esi + 0x20], 0x6df9
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x29], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xc
ja 0x410cf9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx edx, byte [esi + ecx + 0x20]
lea ecx, [eax + edx]
add eax, 0xd2
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0x96b5a6d2
mov dword [esi + 0x78], ecx
mov eax, dword [esi + 0x78]
add al, 0x42
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xd
jb 0x410cc0
push 5
lea eax, [esi + 0x20]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443824]
mov word [esi + 0x78], 0x2598
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7d], 0
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x60]
cmp eax, 8
ja 0x410d79
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x60]
mov ecx, dword [esi + 0x60]
movzx ecx, byte [esi + ecx + 0x78]
lea edx, [eax + ecx]
add edx, 0x5bf26585
add eax, 0x5bf26585
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x48], edx
mov eax, dword [esi + 0x48]
add al, 0x5d
mov ecx, dword [esi + 0x60]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x60]
mov eax, dword [esi + 0x60]
cmp eax, 9
jb 0x410d40
push 2
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44382c]
mov word [esi + 0x48], 0x4de8
mov dword [esi + 0x4e], 0
mov dword [esi + 0x4a], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 9
ja 0x410e02
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx ecx, byte [esi + ecx + 0x48]
lea edx, [eax - 0x6a2e784a]
and edx, ecx
add eax, ecx
add eax, 0x95d187b6
add edx, edx
sub eax, edx
mov dword [esi + 0x60], eax
mov eax, dword [esi + 0x60]
mov ecx, eax
or ecx, 5
and eax, 5
add eax, ecx
inc al
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xa
jb 0x410dc0
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443834]
jmp dword [0x44383c]
xor ecx, ecx
test eax, eax
setle cl
jmp dword [ecx*4 + 0x443784]
mov word [edi], 0xb526
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov byte [edi + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xa
ja 0x410ebc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + ecx]
add edx, 0xa45ba0c9
add eax, 0xa45ba0c9
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0x90]
mov ecx, eax
or ecx, 0x80
and eax, 0x80
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xb
jb 0x410e70
push edi
mov ebx, dword [esi]
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x18c]
mov dword [ecx], eax
mov edi, dword [esi + 0x1ec]
mov word [edi], 0x61fa
mov dword [edi + 5], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x410f45
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x3164250
add eax, 0x50
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0xd0
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x410f00
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x184]
mov dword [ecx], eax
mov ecx, dword [esi + 0x18c]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x44390c]
jmp dword [0x443920]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443924]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x410f90
mov eax, ebx
sub eax, edx
mov dword [esi], 0
mov dword [esi + 0x34], eax
test eax, eax
jle 0x411978
mov dword [esi + 0x1c], edx
cmp byte [edx], 0
je 0x41197b
mov dword [esi], 0
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push ebx
push edi
call fcn.0040ef90
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x41197b
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x410fd0
jmp 0x41197b
mov word [ebx], 0x2596
mov dword [ebx + 2], 0
mov dword [ebx + 6], 0
mov dword [ebx + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xd
ja 0x41107a
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x85]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x43d34d85
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0x5d
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
cmp eax, 0xe
jb 0x411030
push ebx
push dword [esi]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x188]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1e8]
mov word [ebx], 0x17a
mov dword [ebx + 5], 0
mov dword [ebx + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x4110fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
mov edx, ecx
not edx
or edx, eax
and ecx, eax
add ecx, edx
neg ecx
add eax, ecx
add eax, 0xe71c84ff
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x4110c0
push ebx
push dword [esi]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x180]
mov dword [ecx], eax
mov ecx, dword [esi + 0x188]
mov edx, dword [ecx]
xor ecx, ecx
test edx, edx
sete cl
jmp dword [ecx*4 + 0x4439dc]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439e4]
mov eax, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
inc eax
cmp byte [ebx], 0
jne 0x411140
mov eax, ebx
sub eax, edx
mov dword [esi], 0
mov dword [esi + 0x34], eax
test eax, eax
jle 0x411f82
mov dword [esi + 0x1c], edx
cmp byte [edx], 0
je 0x411f85
mov dword [esi], 0
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push ebx
push edi
call fcn.0040ef90
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi]
cmp ecx, ebx
jae 0x411f85
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411180
jmp 0x411f85
sete al
movzx eax, al
jmp dword [eax*4 + 0x44378c]
mov word [esi + 0x90], 0x4dbc
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov dword [esi + 0x9a], 0
mov word [esi + 0x9e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
mov ebx, dword [esi]
ja 0x41125c
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx edx, byte [esi + ecx + 0x90]
mov ecx, 0xc7248075
sub ecx, eax
add eax, 0x8a
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 8], ecx
mov eax, dword [esi + 8]
mov ecx, eax
xor ecx, 0x39
and eax, 0x39
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x411210
push 2
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443794]
mov word [esi + 8], 0x79d9
mov dword [esi + 0xa], 0
mov dword [esi + 0xe], 0
mov dword [esi + 0x12], 0
mov word [esi + 0x16], 0
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0x78]
cmp eax, 0xf
ja 0x4112e6
nop
nop
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
movzx ecx, byte [esi + ecx + 8]
lea edx, [eax + 0x4d1c898f]
add eax, 0x8f
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
add al, 0x17
mov ecx, dword [esi + 0x78]
mov byte [esi + ecx + 8], al
inc dword [esi + 0x78]
mov eax, dword [esi + 0x78]
cmp eax, 0x10
jb 0x4112b0
push 5
lea eax, [esi + 8]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44379c]
mov word [esi + 0x20], 0x79ec
mov dword [esi + 0x22], 0
mov dword [esi + 0x26], 0
mov dword [esi + 0x29], 0
mov dword [esi + 0x48], 0
mov eax, dword [esi + 0x48]
cmp eax, 0xc
ja 0x411365
nop
nop
mov eax, dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
movzx ecx, byte [esi + ecx + 0x20]
lea edx, [eax + 0x2f]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x9ffa362f
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x78]
add al, 0xb7
mov ecx, dword [esi + 0x48]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x48]
mov eax, dword [esi + 0x48]
cmp eax, 0xd
jb 0x411330
push 2
lea eax, [esi + 0x20]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x4437a4]
mov word [esi + 0x78], 0x85e2
mov dword [esi + 0x7a], 0
mov dword [esi + 0x7e], 0
mov dword [esi + 0x82], 0
mov word [esi + 0x86], 0
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x60]
cmp eax, 0xf
ja 0x41140c
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x60]
mov eax, dword [esi + 0x60]
movzx edi, byte [esi + eax + 0x78]
lea eax, [edx + 0x42898895]
lea ecx, [edx + edi]
add ecx, 0x42898895
add edx, 0x95
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x48]
add al, 0xed
mov ecx, dword [esi + 0x60]
mov byte [esi + ecx + 0x78], al
inc dword [esi + 0x60]
mov eax, dword [esi + 0x60]
cmp eax, 0x10
jb 0x4113c0
push 3
lea eax, [esi + 0x78]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov edi, dword [esi + 0x40]
jmp dword [ecx*4 + 0x4437ac]
movzx eax, bl
jmp dword [eax*4 + 0x4437c4]
mov word [esi + 0x90], 0x99e8
mov dword [esi + 0x92], 0
mov word [esi + 0x96], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 7
ja 0x4114aa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax - 0x702c56ec]
add eax, 0x14
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x74
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 8
jb 0x411470
lea eax, [esi + 0x90]
push eax
mov ebx, dword [esi]
push ebx
call fcn.00402670
add esp, 8
mov dword [esi + 0x44], eax
mov word [esi + 0x90], 0xcda1
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov dword [esi + 0x99], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xc
ja 0x411552
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x20]
mov eax, dword [esi + 0x20]
movzx edi, byte [esi + eax + 0x90]
lea eax, [edx - 0x6235f122]
lea ecx, [edx + edi]
add ecx, 0x9dca0ede
add edx, 0xde
and edx, edi
and eax, edi
add eax, edx
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xee
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xd
jb 0x411500
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.00402740
add esp, 8
mov edi, eax
mov eax, dword [case.0x411426.10]
nop
nop
nop
nop
nop
nop
nop
jmp eax
mov word [esi + 0x90], 0x1598
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov dword [esi + 0x9a], 0
mov word [esi + 0x9e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
ja 0x4115fc
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0x53f2e5fd]
add eax, 0xfd
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x15
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x4115c0
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.00402670
add esp, 8
mov dword [esi + 0x34], eax
mov word [esi + 0x90], 0x8d28
mov dword [esi + 0x92], 0
mov word [esi + 0x96], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 7
ja 0x41167a
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax - 0x527ef1c2]
add eax, 0x3e
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x4e
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 8
jb 0x411640
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x110]
movzx eax, word [esi + 0x110]
or eax, 0xc00
mov word [esi + 0x154], ax
fldcw word [esi + 0x154]
fistp dword [esi + 0x210]
fldcw word [esi + 0x110]
mov eax, dword [esi + 0x210]
mov dword [esi + 0x1f8], eax
mov word [esi + 0x90], 0x4a46
mov byte [esi + 0x92], 0xda
mov dword [esi + 0x93], 0
mov dword [esi + 0x97], 0
mov word [esi + 0x9b], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xc
ja 0x41173a
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax - 0x2b60e1dc]
add eax, 0x24
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 4
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xd
jb 0x411700
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x10e]
movzx eax, word [esi + 0x10e]
or eax, 0xc00
mov word [esi + 0x152], ax
fldcw word [esi + 0x152]
fistp dword [esi + 0x20c]
fldcw word [esi + 0x10e]
mov eax, dword [esi + 0x20c]
mov dword [esi + 0x1f4], eax
mov word [esi + 0x90], 0xf9f6
mov byte [esi + 0x92], 0x6a
mov dword [esi + 0x93], 0
mov word [esi + 0x97], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 8
ja 0x4117fa
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0x53a9d852]
add eax, 0x52
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0xc2
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 9
jb 0x4117c0
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.004027a0
add esp, 8
mov dword [esi + 0x1f0], eax
mov ebx, 0xffffffff
mov eax, dword [esi + 0x44]
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x411820
mov dword [esi + 0x38], edi
mov edx, eax
add edx, ebx
mov dword [esi + 4], 0
test ebx, ebx
mov dword [esi], edx
jle 0x41187f
cmp byte [eax], 0
je 0x41187f
mov dword [esi + 4], 0
mov edi, dword [esi + 0x44]
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push edx
push edi
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc dword [esi + 4]
cmp ecx, edx
jae 0x41187f
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411850
mov ecx, dword [esi + 4]
mov eax, ecx
inc eax
lea eax, [ecx + ecx + 2]
jns 0x411890
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
mov dword [esi + 0x90], 0
mov eax, dword [esi + 4]
lea eax, [ecx + eax*2]
mov edi, ecx
mov dword [esi + 0x124], ecx
mov dword [esi + 0x1c], eax
cmp eax, ecx
mov ecx, dword [esi + 0x44]
mov edx, dword [esi]
jbe 0x411904
mov edi, dword [esi + 0x124]
test ebx, ebx
jle 0x411904
mov edi, dword [esi + 0x124]
nop
cmp byte [ecx], 0
je 0x411904
lea eax, [esi + 0x90]
push eax
push edx
push ecx
mov ebx, ecx
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edi], cx
add edi, 2
cmp edi, dword [esi + 0x1c]
jae 0x411904
add ebx, eax
mov edx, dword [esi]
cmp ebx, edx
mov ecx, ebx
jb 0x4118d0
mov word [edi], 0
lea eax, [esi + 0x20]
push eax
push 0
push 0
push dword [esi + 4]
mov ebx, dword [esi + 0x124]
push ebx
push 0
call dword [0x4498e4]
mov edi, dword [esi + 0x20]
lea eax, [edi + edi]
test edi, edi
jns 0x411932
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
lea eax, [esi + 0x20]
push eax
push edi
mov dword [esi + 0x194], ecx
push ecx
push dword [esi + 4]
push ebx
push 0
call dword [0x4498e4]
jmp dword [0x4437dc]
push ebx
call fcn.00408c50
add esp, 4
mov ecx, dword [esi + 0x34]
mov eax, ecx
jmp 0x413ba4
mov ecx, dword [esi + 0x34]
mov edx, ecx
jmp 0x413b9c
mov dword [esi + 0x1c], edx
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x41198b
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x104]
mov dword [eax], edx
mov dword [esi + 0x90], 0
lea eax, [edx + edi*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x4119f2
cmp dword [esi + 0x34], 0
mov edi, dword [esi + 0x1c]
jle 0x4119f2
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4119f2
lea eax, [esi + 0x90]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x4119f2
add edi, eax
cmp edi, ebx
jb 0x4119c0
mov word [edx], 0
mov eax, dword [esi + 0x184]
mov eax, dword [eax]
mov ecx, 0xffffffff
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
cmp byte [eax + ecx + 1], 0
lea ecx, [ecx + 1]
jne 0x411a10
lea edx, [eax + ecx]
xor ebx, ebx
mov dword [esi + 0x34], ecx
test ecx, ecx
mov dword [esi], edx
mov dword [esi + 0x1c], eax
jle 0x411a6d
cmp byte [eax], 0
je 0x411a6d
xor ebx, ebx
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push edx
push edi
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x411a6d
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x411a40
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x411a7b
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x114]
mov dword [eax], edx
mov dword [esi + 0x90], 0
lea eax, [edx + ebx*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x411afd
cmp dword [esi + 0x34], 0
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x8c]
mov ebx, dword [esi + 0x1c]
mov edi, dword [esi]
jle 0x411b06
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ebx], 0
je 0x411b06
lea eax, [esi + 0x90]
push eax
push edi
push ebx
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x411afd
add ebx, eax
cmp ebx, edi
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x8c]
jb 0x411ac0
jmp 0x411b06
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x8c]
mov word [edx], 0
mov dword [eax], 0
mov dword [ecx], 0
mov edi, dword [esi + 0x1b4]
mov word [edi], 0xb955
mov byte [edi + 2], 0x32
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov dword [edi + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411ba6
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax - 0x3aad4958]
lea edi, [eax + 0xa8]
or ecx, edi
and edi, edx
and ecx, edx
add ecx, edi
mov edi, dword [esi + 0x1b4]
add eax, edx
add eax, 0xc552b6a8
sub eax, ecx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov ecx, eax
or ecx, 0x67
and eax, 0x67
add eax, ecx
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411b50
push edi
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov ecx, dword [esi + 0x1b0]
mov dword [ecx], eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x44392c]
push eax
call fcn.00402970
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x8c]
mov dword [eax], edi
mov eax, edi
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x411bf8
mov ebx, eax
test dl, dl
jne 0x411bfe
mov ecx, ebx
push ecx
call fcn.00408c40
add esp, 4
mov dword [eax], edi
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x443934]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov byte [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x44393c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov byte [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x44393c]
mov ecx, dword [esi + 0x5c]
mov dword [ecx], eax
mov ebx, dword [esi + 0x144]
lea eax, [ebx + 3]
mov dword [esi], eax
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov edx, dword [esi + 0x1a8]
lea edx, [edx + 3]
mov dword [esi + 4], edx
mov edx, dword [esi + 0x140]
mov dword [edx], eax
setb cl
mov edx, dword [esi + 0x1a4]
add edx, 4
mov dword [esi + 0x1c], edx
mov edi, dword [esi + 0x1d4]
jmp dword [ecx*4 + 0x443944]
mov eax, dword [case.0x411bc1.0]
nop
nop
nop
jmp eax
mov ebx, dword [esi + 0x8c]
mov edi, dword [esi + 0x134]
jmp dword [0x44395c]
mov ecx, edi
push 2
call fcn.004094f0
push dword [ebx]
mov eax, dword [esi + 0x5c]
push dword [eax]
mov eax, dword [esi + 0x114]
push dword [eax]
mov eax, dword [esi + 0x104]
push dword [eax]
push edi
call fcn.00416240
add esp, 0x14
mov ecx, edi
call fcn.00409e90
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, edi
push 2
call fcn.004094f0
push dword [ebx]
mov eax, dword [esi + 0x5c]
push dword [eax]
mov eax, dword [esi + 0x114]
push dword [eax]
mov eax, dword [esi + 0x104]
push dword [eax]
push edi
call fcn.00416240
add esp, 0x14
mov ecx, edi
call fcn.00409e90
jmp dword [0x443964]
movzx eax, al
mov edi, dword [esi + 0x40]
jmp dword [eax*4 + 0x44396c]
mov eax, dword [esi + 0x134]
mov eax, dword [eax + 4]
mov ecx, dword [esi + 0x1d0]
mov byte [ecx + 0xa], 0
cmp eax, 0x3ff
ja 0x412702
lea edi, [ecx + 9]
mov byte [ecx + 9], 0x30
jmp 0x4128d0
push ebx
push dword [edi]
call fcn.004027a0
add esp, 8
xor edx, edx
test eax, eax
setg dl
mov eax, dword [esi + 0x140]
mov ebx, dword [eax]
lea ecx, [ebx + ebx*2]
shl ecx, 2
mov eax, dword [esi + 0x5c]
add ecx, dword [eax]
push edx
mov eax, dword [esi + 0x1c4]
push dword [eax]
mov eax, dword [esi + 0x1c0]
push dword [eax]
call fcn.00415c90
mov eax, ebx
and eax, 1
xor ebx, 1
lea eax, [ebx + eax*2]
mov ecx, dword [esi + 0x8c]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov ecx, dword [esi + 0x140]
mov dword [ecx], eax
setb dl
mov ebx, dword [esi + 0x144]
jmp dword [edx*4 + 0x443944]
push eax
mov eax, dword [esi + 0x1b0]
push dword [eax]
call fcn.00402980
add esp, 8
mov dword [edi], eax
mov word [ebx], 0x6721
mov byte [ebx + 2], 0xf8
mov ecx, dword [esi]
mov dword [ecx], 0
mov word [ecx + 4], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 8
ja 0x411e74
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [ebx + edx]
lea ebx, [ecx + 0xbf]
add ecx, edx
and ebx, edx
add ebx, ebx
sub ecx, ebx
mov ebx, dword [esi + 0x144]
add ecx, 0x542811bf
mov dword [esi + 0x90], ecx
mov ecx, dword [esi + 0x90]
add cl, 0xc7
mov edx, dword [esi + 8]
mov byte [ebx + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 9
jb 0x411e30
push ebx
push eax
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x1c4]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1a8]
mov word [ebx], 0x2311
mov byte [ebx + 2], 0xb8
mov eax, dword [esi + 4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x411efa
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + 0x22a044c7]
add eax, 0xc7
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0x90]
add al, 0x8f
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x411ec0
push ebx
push dword [edi]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x1c0]
mov dword [ecx], eax
mov ebx, dword [esi + 0x1a4]
mov dword [ebx], 0x3b9a9d9a
mov eax, dword [esi + 0x1c]
mov dword [eax], 0
mov byte [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x411d80
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [ebx + ecx]
lea ecx, [eax + edx]
add eax, 0x87
and eax, edx
add eax, eax
sub ecx, eax
add ecx, 0xb4dff87
mov dword [esi + 0x90], ecx
mov eax, dword [esi + 0x90]
add al, 0x4f
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x411f40
jmp 0x411d80
mov dword [esi + 0x1c], edx
mov edi, dword [esi]
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x411f95
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x170]
mov dword [eax], edx
mov dword [esi + 0x90], 0
lea eax, [edx + edi*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x412002
cmp dword [esi + 0x34], 0
mov edi, dword [esi + 0x1c]
jle 0x412002
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x412002
lea eax, [esi + 0x90]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x412002
add edi, eax
cmp edi, ebx
jb 0x411fd0
mov word [edx], 0
mov eax, dword [esi + 0x180]
mov ecx, dword [eax]
mov edi, 0xfffffffe
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x412020
mov dword [esi + 4], ecx
lea ebx, [eax - 1]
lea ecx, [edi + 2]
test eax, eax
jns 0x41203e
mov ecx, 0xffffffff
push ecx
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x16c]
mov dword [eax], edx
mov ecx, dword [esi + 4]
test ecx, ecx
jne 0x412069
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412060
mov dword [esi + 0x90], 0
add edi, edx
cmp edi, edx
jbe 0x4120c8
test ebx, ebx
jle 0x4120c8
add ebx, ecx
mov dword [esi], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4120c8
lea eax, [esi + 0x90]
push eax
push dword [esi]
push ecx
mov ebx, ecx
mov dword [esi + 4], edx
call fcn.0040ef90
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x4120c8
add ebx, eax
cmp ebx, dword [esi]
mov ecx, ebx
jb 0x412090
mov word [edx], 0
mov eax, dword [esi + 0xfc]
mov dword [eax], 0
mov eax, dword [esi + 0x100]
mov dword [eax], 0
mov edi, dword [esi + 0x1d8]
mov word [edi], 0x9d95
mov byte [edi + 2], 4
mov dword [edi + 3], 0
mov dword [edi + 7], 0
mov word [edi + 0xb], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x412172
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xd27e83d5
add eax, 0xd27e83d5
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov ecx, eax
xor ecx, 0x2c
and eax, 0x2c
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x412120
push edi
push dword [ebp + 8]
call fcn.00402740
add esp, 8
mov ecx, eax
mov eax, dword [esi + 0x1ac]
mov dword [eax], ecx
xor eax, eax
mov dword [esi], ecx
test ecx, ecx
setne al
jmp dword [eax*4 + 0x4439ec]
jmp dword [0x4439f4]
push dword [esi]
call fcn.00402970
add esp, 4
mov ecx, dword [esi + 0x100]
mov dword [ecx], eax
jmp case.0x412191.2
push ecx
call fcn.00408c40
add esp, 4
mov dword [eax], edi
jmp dword [0x4439fc]
push dword [esi]
call fcn.00402970
add esp, 4
mov edi, eax
mov ecx, 0xc
mul ecx
seto dl
mov ecx, 0xffffffff
mov ebx, 0xffffffff
add eax, 4
jb 0x4121f8
mov ebx, eax
mov eax, dword [esi + 0x100]
mov dword [eax], edi
test dl, dl
jne 0x4121c0
mov ecx, ebx
jmp 0x4121c0
add eax, 4
xor ecx, ecx
test edi, edi
sete cl
jmp dword [ecx*4 + 0x443a04]
lea ecx, [edi + edi*2]
lea ecx, [eax + ecx*4]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
lea edx, [eax + 0xc]
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x443a0c]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], 0
add edx, 0xc
xor ebx, ebx
cmp edx, ecx
sete bl
jmp dword [ebx*4 + 0x443a0c]
jmp dword [0x443a14]
mov ecx, dword [esi + 0xfc]
mov dword [ecx], eax
jmp dword [0x443a1c]
mov ecx, dword [esi + 0xfc]
mov dword [ecx], eax
mov dword [ecx], eax
jmp dword [0x443a1c]
mov eax, dword [esi + 0x148]
add eax, 3
mov dword [esi + 0x1c], eax
xor eax, eax
xor ecx, ecx
cmp eax, edi
mov edx, dword [esi + 0x19c]
lea edx, [edx + 3]
mov dword [esi + 0x34], edx
mov edx, dword [esi + 0x13c]
mov dword [edx], eax
setb cl
mov edx, dword [esi + 0x198]
add edx, 3
mov dword [esi + 0x38], edx
mov ebx, dword [esi + 0x1a0]
jmp dword [ecx*4 + 0x443a24]
mov ebx, dword [esi + 0x168]
mov ecx, ebx
push 3
call fcn.004094f0
mov eax, dword [esi + 0xfc]
mov edi, dword [eax]
mov eax, dword [esi + 0x16c]
mov ecx, dword [eax]
mov eax, dword [esi + 0x170]
mov edx, dword [eax]
mov eax, dword [esi + 0x100]
push dword [eax]
push edi
mov dword [esi], ecx
push ecx
mov dword [esi + 4], edx
push edx
push ebx
call fcn.00418e30
add esp, 0x14
mov ecx, ebx
call fcn.00409e90
xor eax, eax
test edi, edi
sete al
jmp dword [eax*4 + 0x443a2c]
lea eax, [edi - 4]
mov dword [esi + 0x1c], eax
mov eax, dword [edi - 4]
xor ecx, ecx
test eax, eax
lea eax, [eax + eax*2]
lea ebx, [edi + eax*4]
sete cl
jmp dword [ecx*4 + 0x443a34]
push dword [esi + 0x1c]
call fcn.00408c50
add esp, 4
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443a44]
mov word [edx], 0
mov edi, dword [esi + 0x13c]
mov eax, dword [edi]
inc eax
mov ecx, dword [esi + 0x100]
mov ecx, dword [ecx]
xor edx, edx
cmp eax, ecx
mov dword [edi], eax
setb dl
mov ebx, dword [esi + 0x1a0]
jmp dword [edx*4 + 0x443a24]
push eax
mov eax, dword [esi + 0x1ac]
push dword [eax]
call fcn.00402980
add esp, 8
mov dword [ebx], eax
mov edi, dword [esi + 0x148]
mov word [edi], 0x574d
mov byte [edi + 2], 0x24
mov ecx, dword [esi + 0x1c]
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov byte [ecx + 8], 0
mov dword [esi + 8], 0
mov ecx, dword [esi + 8]
cmp ecx, 0xb
ja 0x412432
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 8]
mov edx, dword [esi + 8]
movzx edx, byte [edi + edx]
lea edi, [ecx + 0x654a62a5]
add ecx, 0xa5
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 0x90], edi
mov edi, dword [esi + 0x148]
mov ecx, dword [esi + 0x90]
add cl, 0x7d
mov edx, dword [esi + 8]
mov byte [edi + edx], cl
inc dword [esi + 8]
mov ecx, dword [esi + 8]
cmp ecx, 0xc
jb 0x4123f0
push edi
push eax
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x1bc]
mov dword [ecx], eax
mov edi, dword [esi + 0x19c]
mov word [edi], 0x5b4d
mov byte [edi + 2], 0x24
mov eax, dword [esi + 0x34]
mov dword [eax], 0
mov dword [eax + 4], 0
mov word [eax + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xc
ja 0x4124c7
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xb30326a5
add eax, 0xa5
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0x7d
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xd
jb 0x412480
push edi
push dword [ebx]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x1b8]
mov dword [ecx], eax
mov edi, dword [esi + 0x198]
mov word [edi], 0xd39
mov byte [edi + 2], 0x80
mov eax, dword [esi + 0x38]
mov dword [eax], 0
mov word [eax + 4], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 8
ja 0x412557
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xc80f4deb
add eax, 0xc80f4deb
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0x93
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 9
jb 0x412510
push edi
push dword [ebx]
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0xfc]
mov ecx, dword [ecx]
mov edx, dword [esi + 0x13c]
mov edx, dword [edx]
lea edx, [edx + edx*2]
mov edi, dword [esi + 0x1bc]
mov edi, dword [edi]
mov ebx, dword [esi + 0x1b8]
mov ebx, dword [ebx]
mov dword [ecx + edx*4], 0
mov dword [ecx + edx*4 + 4], edi
mov dword [ecx + edx*4 + 8], eax
lea eax, [ecx + edx*4]
mov dword [esi + 4], eax
mov eax, ebx
mov edi, 0xfffffffe
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add edi, 2
cmp byte [eax + ebx], 0
lea ebx, [ebx + 1]
jne 0x4125b0
test ebx, ebx
mov dword [esi], eax
jns 0x4125d0
mov eax, 0xffffffff
jmp 0x4125d3
lea eax, [edi + 2]
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 4]
mov dword [eax], edx
mov ecx, dword [esi]
test ecx, ecx
je 0x4125f0
dec ebx
jmp 0x412609
mov ebx, ecx
not ebx
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
inc ebx
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x412600
mov dword [esi + 0x90], 0
add edi, edx
cmp edi, edx
jbe 0x412370
test ebx, ebx
jle 0x412370
add ebx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x412370
lea eax, [esi + 0x90]
push eax
push ebx
push ecx
mov dword [esi], ecx
mov dword [esi + 4], edx
call fcn.0040ef90
mov edx, dword [esi + 4]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, edi
jae 0x412370
mov ecx, dword [esi]
add ecx, eax
cmp ecx, ebx
jb 0x412630
jmp 0x412370
xor eax, eax
cmp ebx, edi
sete al
jmp dword [eax*4 + 0x443a3c]
mov eax, dword [ebx - 0xc]
add ebx, 0xfffffff4
test eax, eax
je 0x412680
push eax
call fcn.00408c50
add esp, 4
jmp 0x412680
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443a44]
push ecx
call fcn.00408c50
add esp, 4
mov eax, dword [case.0x412395.12]
mov ebx, dword [esi + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp eax
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443a5c]
push ecx
call fcn.00408c50
add esp, 4
mov ecx, dword [esi + 0x168]
call fcn.00409530
mov edi, ebx
mov eax, dword [case.0x410b46.4]
nop
nop
nop
jmp eax
lea edi, [ecx + 0xa]
mov ecx, eax
shr ecx, 0xa
cmp eax, 0x19000
jb 0x4128a0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi], ecx
mov eax, ecx
mov edx, 0x51eb851f
mul edx
shr edx, 5
imul ebx, edx, 0x64
mov eax, ecx
sub eax, ebx
mov ebx, eax
and ebx, 2
mov ecx, eax
or eax, 2
imul eax, ebx
xor ebx, 2
and ecx, 0x7d
imul ecx, ebx
movzx eax, word [ecx + eax + 0x440528]
mov word [edi - 2], ax
add edi, 0xfffffffe
cmp dword [esi], 0x270f
mov ecx, edx
ja 0x412720
cmp edx, 9
ja 0x4128ab
movzx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov byte [edi - 1], al
dec edi
jmp 0x4128d0
jmp dword [0x4437b4]
mov word [esi + 0x48], 0x4a46
mov byte [esi + 0x4a], 0xda
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov dword [esi + 0x52], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 0xd
ja 0x4127fb
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx edx, byte [esi + ecx + 0x48]
mov ecx, 0xa089705b
sub ecx, eax
add eax, 0xa4
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x60], ecx
mov eax, dword [esi + 0x60]
add al, 0x84
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xe
jb 0x4127c0
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
jmp case.0x411426.2
push 3
lea eax, [esi + 0x48]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x4437c0]
mov word [esi + 0x48], 0x4a46
mov byte [esi + 0x4a], 0xda
mov dword [esi + 0x4b], 0
mov dword [esi + 0x4f], 0
mov dword [esi + 0x52], 0
mov dword [esi + 0x30], 0
mov eax, dword [esi + 0x30]
cmp eax, 0xd
ja 0x412810
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x30]
mov ecx, dword [esi + 0x30]
movzx edx, byte [esi + ecx + 0x48]
mov ecx, 0xa089705b
sub ecx, eax
add eax, 0xa4
and eax, edx
or ecx, edx
not ecx
add ecx, edx
sub ecx, eax
mov dword [esi + 0x60], ecx
mov eax, dword [esi + 0x60]
add al, 0x84
mov ecx, dword [esi + 0x30]
mov byte [esi + ecx + 0x48], al
inc dword [esi + 0x30]
mov eax, dword [esi + 0x30]
cmp eax, 0xe
jb 0x412860
jmp 0x412810
mov edx, ecx
cmp edx, 9
jbe 0x41276d
mov eax, edx
and eax, 2
mov ecx, edx
or edx, 2
imul edx, eax
xor eax, 2
and ecx, 0xfffffffd
imul ecx, eax
movzx eax, word [ecx + edx + 0x440528]
mov word [edi - 2], ax
add edi, 0xfffffffe
mov ebx, dword [esi + 0x128]
mov dword [ebx], 0x3b32fbfb
mov dword [ebx + 4], 0
mov word [ebx + 8], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 9
ja 0x41293d
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [ebx + ecx]
lea edx, [eax + ecx]
add edx, 0x1629aa77
add eax, 0x1629aa77
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x90], edx
mov eax, dword [esi + 0x90]
add al, 0xbf
mov ecx, dword [esi + 8]
mov byte [ebx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xa
jb 0x412900
mov edx, dword [esi + 0x190]
mov dword [edx], 0x696a9eab
mov dword [edx + 4], 0xdf936f6b
mov dword [edx + 8], 0x6f6b9298
mov dword [edx + 0xc], 0x63d49195
mov dword [edx + 0x10], 0x8c7dc967
mov dword [edx + 0x14], 0x8acc8974
mov dword [edx + 0x18], 0x7c717376
mov dword [edx + 0x1c], 0xc77b7279
mov dword [edx + 0x20], 0x867d7a76
mov dword [edx + 0x24], 0x8b3c897d
mov dword [edx + 0x28], 0x8b84318f
mov dword [edx + 0x2c], 0x70813575
mov dword [edx + 0x30], 0x996f9f84
mov dword [edx + 0x34], 0x9e982d56
mov dword [edx + 0x38], 0x239c629a
mov dword [edx + 0x3c], 0x9a616692
mov dword [edx + 0x40], 0xae18ad61
mov dword [edx + 0x44], 0x755bb7a1
mov word [edx + 0x48], 0x311e
mov word [edx + 0x52], 0
mov dword [edx + 0x4e], 0
mov dword [edx + 0x4a], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0x53
ja 0x412a33
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edx + ecx]
lea edx, [eax + ecx]
add edx, 0xa0096fdf
add eax, 0xa0096fdf
and eax, ecx
add eax, eax
sub edx, eax
mov dword [esi + 0x90], edx
mov edx, dword [esi + 0x190]
mov eax, dword [esi + 0x90]
add al, 0xe7
mov ecx, dword [esi + 8]
mov byte [edx + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0x54
jb 0x4129f0
lea eax, [0x4488db]
nop
nop
nop
nop
nop
nop
nop
cmp byte [eax + 1], 0
lea eax, [eax + 1]
jne 0x412a40
movzx ecx, byte [edx]
test cl, cl
je 0x412a6f
mov ebx, edx
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax + edx], cl
movzx ecx, byte [ebx + edx + 1]
inc edx
test cl, cl
jne 0x412a60
add eax, edx
mov byte [eax], 0
movzx ecx, byte [edi]
test cl, cl
je 0x412a8b
inc edi
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edi]
inc edi
test cl, cl
jne 0x412a80
mov byte [eax], 0
mov ecx, dword [esi + 0x128]
movzx ecx, byte [ecx]
test cl, cl
je 0x412abd
mov edx, dword [esi + 0x1cc]
mov edi, dword [esi + 0x40]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov byte [eax], cl
inc eax
movzx ecx, byte [edx]
inc edx
test cl, cl
jne 0x412ab0
jmp 0x412ac0
mov edi, dword [esi + 0x40]
mov byte [eax], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp dword [0x44397c]
mov eax, dword [esi + 0x5c]
mov edx, dword [eax]
xor eax, eax
test edx, edx
sete al
jmp dword [eax*4 + 0x443984]
lea eax, [edx - 4]
mov dword [esi + 4], eax
mov eax, dword [edx - 4]
mov ecx, dword [case.0x4138c9.55]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
lea ecx, [eax + eax*2]
mov dword [esi], edx
lea ebx, [edx + ecx*4]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44399c]
push dword [esi + 4]
call fcn.00408c50
add esp, 4
mov edi, dword [esi + 0x40]
mov eax, dword [esi + 0x114]
mov eax, dword [eax]
mov ecx, dword [case.0x4138c9.66]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439cc]
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x104]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439d4]
xor eax, eax
cmp edi, dword [esi]
sete al
mov ebx, edi
jmp dword [eax*4 + 0x4439b4]
jmp dword [0x4439a4]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412b96
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [ebx - 8]
test eax, eax
je case.0x4138c9.58
push eax
call fcn.00408c50
add esp, 4
lea edi, [ebx - 0xc]
mov eax, dword [ebx - 0xc]
test eax, eax
je 0x412bb9
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [ebx - 8]
test eax, eax
je 0x412bc9
push eax
call fcn.00408c50
add esp, 4
jmp dword [0x4439b0]
mov eax, dword [esi + 0x104]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4439d4]
push eax
call fcn.00408c50
add esp, 4
mov ecx, dword [esi + 0x134]
call fcn.00409530
jmp case.0x410b46.4
mov word [esi + 0x60], 0x3226
mov byte [esi + 0x62], 0x8a
mov dword [esi + 0x63], 0
mov dword [esi + 0x67], 0
mov dword [esi + 0x6b], 0
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
cmp eax, 0xe
ja 0x412c64
nop
nop
nop
nop
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + 0x2274286a]
add eax, 0x6a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0x1a
mov ecx, dword [esi + 0x3c]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 0x3c]
mov eax, dword [esi + 0x3c]
cmp eax, 0xf
jb 0x412c30
push 3
lea eax, [esi + 0x60]
push eax
push dword [esi]
call fcn.00402900
add esp, 0xc
test eax, eax
sete bl
jmp dword [0x443848]
mov word [esi + 0x60], 0x3226
mov byte [esi + 0x62], 0x8a
mov dword [esi + 0x63], 0
mov dword [esi + 0x67], 0
mov dword [esi + 0x6b], 0
mov dword [esi + 0x3c], 0
mov eax, dword [esi + 0x3c]
cmp eax, 0xe
mov ebx, dword [esi]
ja 0x412ce4
nop
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x3c]
movzx ecx, byte [esi + ecx + 0x60]
lea edx, [eax + 0x2274286a]
add eax, 0x6a
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 0x30], edx
mov eax, dword [esi + 0x30]
add al, 0x1a
mov ecx, dword [esi + 0x3c]
mov byte [esi + ecx + 0x60], al
inc dword [esi + 0x3c]
mov eax, dword [esi + 0x3c]
cmp eax, 0xf
jb 0x412cb0
push 3
lea eax, [esi + 0x60]
push eax
push ebx
call fcn.00402900
add esp, 0xc
jmp case.0x410e19.2
movzx eax, bl
jmp dword [eax*4 + 0x44384c]
mov word [esi + 0x90], 0xd5af
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov byte [esi + 0x9a], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xa
ja 0x412d7e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0xdd]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x4bd111dd
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xf5
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xb
jb 0x412d40
lea eax, [esi + 0x90]
push eax
mov ebx, dword [esi]
push ebx
call fcn.00402670
add esp, 8
mov dword [esi + 0x38], eax
mov word [esi + 0x90], 0x9106
mov dword [esi + 0x96], 0
mov dword [esi + 0x92], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 9
ja 0x412dfa
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx ecx, byte [esi + ecx + 0x90]
lea edx, [eax + 0x5c259143]
add eax, 0x43
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esi + 8], edx
mov eax, dword [esi + 8]
add al, 0x2b
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0xa
jb 0x412dc0
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.00402670
add esp, 8
mov dword [esi + 0x44], eax
mov word [esi + 0x90], 0x2db9
mov dword [esi + 0x92], 0
mov dword [esi + 0x96], 0
mov dword [esi + 0x9a], 0
mov word [esi + 0x9e], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 0xf
ja 0x412e94
nop
nop
nop
nop
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
movzx edx, byte [esi + ecx + 0x90]
lea ecx, [eax + 0x2278f7da]
mov edi, edx
not edi
or edi, ecx
and ecx, edx
add ecx, edi
neg ecx
add eax, ecx
add eax, 0x2278f7d9
mov dword [esi + 8], eax
mov eax, dword [esi + 8]
add al, 0xa
mov ecx, dword [esi + 0x20]
mov byte [esi + ecx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 0x10
jb 0x412e50
lea eax, [esi + 0x90]
push eax
push ebx
call fcn.00402740
add esp, 8
mov dword [esi + 0x34], eax
mov edi, dword [esi + 0x1e4]
mov word [edi], 0xad22
mov dword [edi + 2], 0
mov dword [edi + 6], 0
mov word [edi + 0xa], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x412f30
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0x14c7b066
add eax, 0x66
and eax, edx
add eax, eax
mov edx, eax
xor edx, ecx
not eax
and eax, ecx
add eax, eax
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
mov ecx, eax
xor ecx, 0x35
and eax, 0x35
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x412ee0
push edi
push ebx
call fcn.00402670
add esp, 8
mov ecx, dword [esi + 0x160]
mov dword [ecx], eax
mov edi, dword [esi + 0x1e0]
mov word [edi], 0x59b4
mov word [edi + 0xa], 0
mov dword [edi + 6], 0
mov dword [edi + 2], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xb
ja 0x412fac
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx ecx, byte [edi + ecx]
lea edx, [eax + 0x8c]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x17cfa28c
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0x2c
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xc
jb 0x412f70
push edi
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x10c]
movzx eax, word [esi + 0x10c]
or eax, 0xc00
mov word [esi + 0x150], ax
fldcw word [esi + 0x150]
fistp dword [esi + 0x208]
fldcw word [esi + 0x10c]
mov eax, dword [esi + 0x208]
mov ecx, dword [esi + 0x178]
mov dword [ecx], eax
mov edi, dword [esi + 0x1dc]
mov word [edi], 0x2c38
mov byte [edi + 2], 0xa0
mov dword [edi + 0xb], 0
mov dword [edi + 7], 0
mov dword [edi + 3], 0
mov dword [esi + 8], 0
mov eax, dword [esi + 8]
cmp eax, 0xe
ja 0x413077
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi + 8]
mov ecx, dword [esi + 8]
movzx edx, byte [edi + ecx]
lea ecx, [eax + edx]
add ecx, 0xeda31b9b
add eax, 0xeda31b9b
and eax, edx
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esi + 0x90], eax
mov eax, dword [esi + 0x90]
add al, 0xc3
mov ecx, dword [esi + 8]
mov byte [edi + ecx], al
inc dword [esi + 8]
mov eax, dword [esi + 8]
cmp eax, 0xf
jb 0x413030
push edi
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esi + 0x10a]
movzx eax, word [esi + 0x10a]
or eax, 0xc00
mov word [esi + 0x14e], ax
fldcw word [esi + 0x14e]
fistp dword [esi + 0x204]
fldcw word [esi + 0x10a]
mov eax, dword [esi + 0x204]
mov ecx, dword [esi + 0x174]
mov dword [ecx], eax
mov ebx, 0xfffffffe
xor eax, eax
mov ecx, dword [esi + 0x38]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
add ebx, 2
cmp byte [ecx + eax], 0
lea eax, [eax + 1]
jne 0x4130d0
lea edi, [eax - 1]
lea ecx, [ebx + 2]
test eax, eax
jns 0x4130eb
mov ecx, 0xffffffff
push ecx
call fcn.00408c40
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x164]
mov dword [esi + 0x1c], ecx
mov dword [eax], ecx
mov ecx, dword [esi + 0x38]
test ecx, ecx
jne 0x413119
mov edi, ecx
not edi
xor eax, eax
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x413110
mov dword [esi + 0x90], 0
mov eax, dword [esi + 0x1c]
add ebx, eax
mov edx, eax
cmp ebx, eax
jbe 0x41317a
mov edx, dword [esi + 0x1c]
test edi, edi
jle 0x41317a
mov eax, ecx
add eax, edi
mov edx, dword [esi + 0x1c]
mov dword [esi + 4], eax
nop
cmp byte [ecx], 0
je 0x41317a
mov edi, eax
lea eax, [esi + 0x90]
push eax
push edi
push ecx
mov edi, ecx
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x41317a
add edi, eax
mov eax, dword [esi + 4]
cmp edi, eax
mov ecx, edi
jb 0x413140
mov word [edx], 0
mov edi, dword [esi + 0x70]
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov ecx, edi
push dword [esi + 0x1c]
call fcn.00438a20
mov eax, dword [esi + 0x164]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443854]
push eax
call fcn.00408c50
add esp, 4
mov ecx, edi
push 0x400
call fcn.00438c90
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x44385c]
mov eax, dword [esi + 0x120]
mov dword [eax], 0
mov ecx, dword [edi]
mov dword [esi + 0x90], 0xd2d1d0d7
mov dword [esi + 0x94], 0
mov byte [esi + 0x98], 0
mov dword [esi + 0x20], 0
mov eax, dword [esi + 0x20]
cmp eax, 8
ja 0x41324c
nop
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
movzx edx, byte [esi + edx + 0x90]
lea edi, [eax + 0xf7b6fa3]
add eax, 0xa3
and eax, edx
or edi, edx
sub edi, eax
mov dword [esi + 8], edi
mov eax, dword [esi + 8]
add al, 0x8b
mov edx, dword [esi + 0x20]
mov byte [esi + edx + 0x90], al
inc dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, 9
jb 0x413210
mov eax, dword [esi + 0x90]
mov edx, dword [0x4498e8]
test edx, edx
je 0x413282
xor edi, edi
mov ebx, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x68655b54
je 0x41347a
inc edi
cmp edx, edi
jne 0x413270
mov edi, dword [esi + 0x70]
xor ecx, ecx
cmp eax, 0xc0000004
sete cl
jmp dword [ecx*4 + 0x443864]
jmp case.0x4131af.2
mov ebx, dword [esi + 0x120]
mov eax, dword [ebx]
add eax, 2
push eax
call fcn.00438880
add esp, 4
mov ecx, eax
mov eax, dword [esi + 0x11c]
mov dword [esi], ecx
mov dword [eax], ecx
mov eax, dword [ebx]
add eax, 2
mov ecx, dword [edi]
mov dword [esi + 4], ecx
mov dword [esi + 0x90], 0xd2d1d0d7
mov dword [esi + 0x94], 0
mov byte [esi + 0x98], 0
mov dword [esi + 0x20], 0
mov ecx, dword [esi + 0x20]
cmp ecx, 8
ja 0x41332e
nop
mov ecx, dword [esi + 0x20]
mov edx, dword [esi + 0x20]
movzx edx, byte [esi + edx + 0x90]
lea edi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esi + 8], edi
mov ecx, dword [esi + 8]
add cl, 0x8b
mov edx, dword [esi + 0x20]
mov byte [esi + edx + 0x90], cl
inc dword [esi + 0x20]
mov ecx, dword [esi + 0x20]
cmp ecx, 9
jb 0x4132f0
mov ecx, dword [esi + 0x90]
mov ebx, dword [0x4498e8]
test ebx, ebx
je 0x413362
xor edi, edi
mov edx, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + edi*8], 0x68655b54
je 0x4134ac
inc edi
cmp ebx, edi
jne 0x413350
mov edi, dword [esi + 0x70]
not ecx
shr ecx, 0x1f
jmp dword [ecx*4 + 0x44386c]
mov ebx, 0xfffffffe
mov edi, 0xffffffff
mov eax, dword [esi + 0x44]
nop
nop
add ebx, 2
cmp byte [eax + edi + 1], 0
lea edi, [edi + 1]
jne 0x413380
mov eax, dword [esi + 0x15c]
mov dword [eax], edi
mov eax, ebx
and eax, 2
mov ecx, edi
xor ecx, 1
add ecx, eax
lea eax, [ecx + ecx]
test ecx, ecx
jns 0x4133ad
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x118]
mov dword [eax], edx
mov ecx, dword [esi + 0x44]
test ecx, ecx
jne 0x4133d9
mov edi, ecx
not edi
xor eax, eax
nop
nop
nop
inc edi
cmp byte [eax], 0
lea eax, [eax + 1]
jne 0x4133d0
mov dword [esi + 0x90], 0
add ebx, edx
cmp ebx, edx
jbe 0x41343a
test edi, edi
jle 0x41343a
mov eax, ecx
add eax, edi
mov dword [esi + 4], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x41343a
mov edi, eax
lea eax, [esi + 0x90]
push eax
push edi
push ecx
mov edi, ecx
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, ebx
jae 0x41343a
add edi, eax
mov eax, dword [esi + 4]
cmp edi, eax
mov ecx, edi
jb 0x413400
mov word [edx], 0
mov eax, dword [esi + 0x11c]
mov eax, dword [eax]
mov edi, dword [eax + 4]
mov dword [esi + 0x1c], eax
movzx eax, word [eax]
and eax, 0xfffffffe
add eax, edi
add eax, 0xfffffffe
xor edx, edx
cmp eax, edi
setae dl
mov ecx, eax
jmp dword [edx*4 + 0x443874]
xor edx, edx
cmp word [ecx], 0
setne dl
mov ebx, eax
jmp dword [edx*4 + 0x44387c]
mov edx, dword [ebx + edi*8 + 4]
cmp edx, eax
mov edi, dword [esi + 0x70]
je 0x413285
push dword [esi + 0x120]
push 0
push 0
push 0x2b
push ecx
push 5
push dword [0x4498f0]
push edx
call fcn.0043a390
add esp, 0x20
jmp 0x413285
mov edx, dword [edx + edi*8 + 4]
cmp edx, ecx
mov edi, dword [esi + 0x70]
je 0x413365
push 0
push eax
push dword [esi]
push 0x2b
push dword [esi + 4]
push 5
push dword [0x4498f0]
push edx
call fcn.0043a390
add esp, 0x20
mov ecx, eax
jmp 0x413365
mov ebx, dword [esi + 0x38]
push ebx
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x4437e4]
mov dword [esi + 0x34], edi
push edi
push ebx
call fcn.00402950
add esp, 8
push eax
call fcn.004026b0
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4437ec]
jmp dword [0x443804]
lea edx, [eax + ebx]
test ebx, ebx
mov dword [esi], edx
jle 0x4136cf
mov dword [esi + 0x38], ebx
xor ebx, ebx
cmp byte [eax], 0
je 0x4136d4
xor ebx, ebx
mov edi, dword [esi + 0x1c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push edx
push edi
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x4136d4
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x4136a0
jmp 0x4136d4
mov dword [esi + 0x38], ebx
xor ebx, ebx
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x4136e2
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x12c]
mov dword [eax], edx
mov dword [esi + 0x90], 0
lea eax, [edx + ebx*2]
mov dword [esi + 4], eax
cmp eax, edx
jbe 0x413757
cmp dword [esi + 0x38], 0
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi]
jle 0x413757
mov ecx, dword [esi + 0x74]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x41375a
lea eax, [esi + 0x90]
push eax
push ebx
push edi
mov dword [esi], edx
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [edx], cx
add edx, 2
cmp edx, dword [esi + 4]
jae 0x413757
add edi, eax
cmp edi, ebx
mov ecx, dword [esi + 0x74]
jb 0x413720
jmp 0x41375a
mov ecx, dword [esi + 0x74]
mov word [edx], 0
push 1
call fcn.004094f0
xor edi, edi
mov eax, dword [esi + 0x138]
mov ebx, dword [esi + 0x34]
jmp 0x413787
inc edi
mov eax, dword [esi + 0x138]
mov dword [eax], edi
push ebx
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp edi, eax
setb cl
jmp dword [ecx*4 + 0x44389c]
push edi
push ebx
call fcn.00402950
add esp, 8
push eax
call fcn.004026b0
add esp, 4
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4438b4]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x4137d0
mov dword [esi + 0x1c], eax
sub edi, eax
mov eax, edi
inc eax
lea eax, [edi + edi + 2]
jns 0x4137eb
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x17c]
mov dword [eax], ebx
mov eax, edi
mov edx, dword [esi + 0x1c]
test edx, edx
jne 0x413819
mov eax, edx
not eax
xor ecx, ecx
nop
nop
nop
inc eax
cmp byte [ecx], 0
lea ecx, [ecx + 1]
jne 0x413810
mov dword [esi + 0x90], 0
lea ecx, [ebx + edi*2]
mov dword [esi + 4], ecx
cmp ecx, ebx
mov dword [esi], ebx
jbe 0x413880
test eax, eax
jle 0x413880
mov ebx, edx
add ebx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x413880
lea eax, [esi + 0x90]
push eax
push ebx
push edx
mov edi, edx
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov edx, dword [esi]
mov word [edx], cx
add edx, 2
mov dword [esi], edx
cmp edx, dword [esi + 4]
jae 0x413880
add edi, eax
cmp edi, ebx
mov edx, edi
jb case.default.0x4138c9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esi]
mov word [eax], 0
mov eax, dword [esi + 0x17c]
mov edi, dword [eax]
push 0
push 0
mov eax, dword [esi + 0x178]
push dword [eax]
mov eax, dword [esi + 0x174]
push dword [eax]
push edi
mov eax, dword [esi + 0x130]
push dword [eax]
mov eax, dword [esi + 0x12c]
push dword [eax]
push dword [esi + 0x74]
call fcn.0041ba20
add esp, 0x20
xor eax, eax
test edi, edi
sete al
mov ebx, dword [esi + 0x34]
jmp dword [eax*4 + 0x4438bc]
push edi
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x138]
mov edi, dword [eax]
inc edi
jmp 0x413787
jmp dword [0x4438a8]
nop
nop
nop
jmp dword [0x4438ac]
mov eax, dword [esi + 0x12c]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
mov edi, dword [esi + 0x70]
jmp dword [ecx*4 + 0x4438cc]
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x130]
mov eax, dword [eax]
mov ecx, dword [case.0x4138c9.9]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov ecx, dword [case.0x4138c9.12]
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x4438f4]
push eax
call fcn.00408c50
add esp, 4
mov ebx, dword [esi + 0x74]
jmp dword [0x4438fc]
mov ebx, dword [esi + 0x74]
jmp dword [0x4438fc]
mov ecx, ebx
call fcn.00409e90
mov ecx, ebx
call fcn.00409530
nop
nop
nop
nop
nop
nop
nop
mov ecx, ebx
call fcn.00409e90
mov ecx, ebx
call fcn.00409530
jmp dword [0x443904]
mov eax, dword [esi + 0x11c]
push dword [eax]
call fcn.00438940
add esp, 4
mov ecx, edi
call fcn.00438dd0
mov edi, dword [esi + 0x40]
nop
nop
jmp dword [0x443a7c]
push eax
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x158]
mov ebx, dword [eax]
sub edi, ebx
mov eax, 0xffffffff
cmp edi, 0xfffffffe
jl 0x4139d8
add edi, 2
mov eax, edi
push eax
call fcn.00408c40
add esp, 4
mov ecx, dword [esi + 0x130]
mov dword [ecx], eax
push eax
push ebx
call fcn.00435460
add esp, 8
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443894]
push ebx
call fcn.00408c50
add esp, 4
mov eax, dword [esi + 0x160]
mov eax, dword [eax]
mov ebx, 0xffffffff
mov dword [esi + 0x1c], eax
nop
nop
nop
nop
nop
nop
cmp byte [eax + ebx + 1], 0
lea ebx, [ebx + 1]
jne 0x413a20
jmp 0x41367a
add ecx, 0xfffffffe
xor edx, edx
cmp ecx, edi
setae dl
jmp dword [edx*4 + 0x443874]
xor edx, edx
movzx edx, dl
mov ebx, eax
jmp dword [edx*4 + 0x44387c]
xor edx, edx
cmp word [ecx], 0x5c
sete dl
mov ebx, ecx
jmp dword [edx*4 + 0x443884]
mov edx, ebx
sub edx, edi
sar edx, 1
mov eax, dword [esi + 0x15c]
mov eax, dword [eax]
lea ecx, [eax + edx]
inc ecx
mov dword [esi + 4], edx
add eax, edx
add eax, eax
add eax, 2
test ecx, ecx
mov dword [esi], edi
jns 0x413a87
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x158]
mov dword [eax], edi
mov eax, dword [esi + 0x118]
mov eax, dword [eax]
cmp ebx, dword [esi]
je 0x413b59
mov ecx, dword [esi + 0x1c]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 4]
lea ebx, [edx - 1]
mov dword [esi + 0x1c], ebx
mov ebx, edx
and ebx, 3
mov dword [esi + 0x38], eax
je 0x413af3
xor edx, edx
mov dword [esi], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [ecx]
xor eax, eax
test bx, bx
setne al
lea ecx, [ecx + eax*2]
mov word [edi], bx
add edi, 2
inc edx
cmp dword [esi], edx
jne 0x413ad0
mov ebx, dword [esi + 4]
sub ebx, edx
mov edx, ebx
mov eax, dword [esi + 0x38]
mov ebx, dword [esi + 0x1c]
cmp ebx, 3
jb 0x413b59
nop
nop
nop
nop
nop
movzx eax, word [ecx]
mov ebx, edx
xor edx, edx
test ax, ax
setne dl
mov word [edi], ax
lea eax, [ecx + edx*2]
movzx ecx, word [ecx + edx*2]
xor edx, edx
test cx, cx
setne dl
mov word [edi + 2], cx
lea ecx, [eax + edx*2]
movzx eax, word [eax + edx*2]
xor edx, edx
test ax, ax
setne dl
mov word [edi + 4], ax
lea eax, [ecx + edx*2]
movzx edx, word [ecx + edx*2]
xor ecx, ecx
test dx, dx
setne cl
lea ecx, [eax + ecx*2]
mov word [edi + 6], dx
mov edx, ebx
add edi, 8
add edx, 0xfffffffc
jne 0x413b00
mov eax, dword [esi + 0x38]
movzx ecx, word [eax]
test cx, cx
je 0x413b81
add eax, 2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov word [edi], cx
add edi, 2
movzx ecx, word [eax]
add eax, 2
test cx, cx
jne 0x413b70
mov word [edi], 0
mov eax, dword [esi + 0x118]
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x44388c]
lea eax, [edx + 1]
cmp byte [edx], 0
je 0x413ba8
mov edx, eax
jmp 0x413b9c
mov eax, edx
sub eax, ecx
xor ebx, ebx
mov dword [esi + 0x1c], eax
test eax, eax
mov dword [esi], edx
jle 0x413bfd
cmp byte [ecx], 0
je 0x413bfd
xor ebx, ebx
mov edi, dword [esi + 0x34]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esi + 0x90], 0
lea eax, [esi + 0x90]
push eax
push edx
push edi
call fcn.0040ef90
mov edx, dword [esi]
add esp, 0xc
lea ecx, [edi + eax]
inc ebx
cmp ecx, edx
jae 0x413bfd
cmp byte [edi + eax], 0
mov edi, ecx
jne 0x413bd0
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x413c0b
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esi + 0x90], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esi + 0x44], eax
mov dword [esi + 4], ecx
cmp ecx, eax
mov edi, dword [esi + 0x34]
mov edx, dword [esi]
jbe 0x413c70
mov ebx, dword [esi + 0x44]
cmp dword [esi + 0x1c], 0
jle 0x413c70
mov ebx, dword [esi + 0x44]
nop
nop
cmp byte [edi], 0
je 0x413c70
lea eax, [esi + 0x90]
push eax
push edx
push edi
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esi + 0x90]
mov word [ebx], cx
add ebx, 2
cmp ebx, dword [esi + 4]
jae 0x413c70
add edi, eax
mov edx, dword [esi]
cmp edi, edx
jb 0x413c40
mov word [ebx], 0
lea ecx, [esi + 0x90]
push 1
call fcn.004094f0
xor edi, edi
jmp 0x4134ee
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [case.0x412395.35]
nop
jmp eax
xor esi, esi
mov dword [esp + 0x14], edi
nop
nop
nop
nop
nop
nop
nop
nop
push edi
call fcn.00402970
add esp, 4
xor ecx, ecx
cmp esi, eax
setb cl
mov al, 1
jmp dword [ecx*4 + 0x443ab4]
push esi
push edi
call fcn.00402980
add esp, 8
mov ebx, eax
mov word [esp + 0x110], 0x9925
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x11a], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xd
ja 0x413da4
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + 0x2c79713c]
and edx, ecx
add eax, ecx
add eax, 0x2c79713c
add edx, edx
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0x5c
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xe
jb 0x413d50
push 2
lea eax, [esp + 0x114]
push eax
mov dword [esp + 0x18], ebx
push ebx
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
mov bl, 1
jmp dword [ecx*4 + 0x443abc]
mov word [esp + 0x40], 0x9586
mov byte [esp + 0x42], 0x1a
mov dword [esp + 0x43], 0
mov word [esp + 0x47], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 8
ja 0x413e3b
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x60cee1fc]
add eax, 4
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0xe4
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 9
jb 0x413e00
push 3
lea eax, [esp + 0x44]
push eax
push dword [esp + 0x18]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443ac4]
movzx eax, bl
jmp dword [eax*4 + 0x443acc]
mov word [esp + 0xb8], 0x8165
mov dword [esp + 0xba], 0
mov dword [esp + 0xbe], 0
mov dword [esp + 0xc2], 0
mov byte [esp + 0xc6], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0xe
ja 0x413f0f
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov eax, dword [esp + 4]
movzx edx, byte [esp + eax + 0xb8]
add ecx, 0x9671d6c0
mov eax, ecx
and eax, edx
xor ecx, edx
lea ecx, [ecx + eax*2]
add eax, eax
mov edx, ecx
not edx
and edx, eax
not eax
and eax, ecx
sub eax, edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
add al, 0xc0
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0xf
jb 0x413ec0
push 3
lea eax, [esp + 0xbc]
push eax
push dword [esp + 0x18]
call fcn.00402900
add esp, 0xc
xor ecx, ecx
test eax, eax
sete cl
jmp dword [ecx*4 + 0x443acc]
mov dword [esp + 0xa8], esi
mov word [esp + 0x110], 0xf951
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x119], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
mov ebx, dword [esp + 0x10]
ja 0x413fe5
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x110]
mov edx, eax
and edx, 0xfa56365f
xor eax, 0xfa56365f
lea eax, [eax + edx*2]
mov edx, eax
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
or ecx, 0x66
and eax, 0x66
add eax, ecx
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xd
jb 0x413f80
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.00402670
add esp, 8
mov esi, eax
mov word [esp + 0x110], 0x5926
mov byte [esp + 0x112], 0xf2
mov dword [esp + 0x113], 0
mov dword [esp + 0x117], 0
mov byte [esp + 0x11b], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xb
ja 0x4140a9
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + ecx]
add edx, 0xf520e71e
add eax, 0xf520e71e
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 + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
or ecx, 0x2d
and eax, 0x2d
add eax, ecx
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
jb 0x414040
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.004026d0
add esp, 8
fnstcw word [esp + 0xb6]
movzx eax, word [esp + 0xb6]
or eax, 0xc00
mov word [esp + 0xfe], ax
fldcw word [esp + 0xfe]
fistp dword [esp + 0x10c]
fldcw word [esp + 0xb6]
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x38], eax
mov word [esp + 0x110], 0xc165
mov dword [esp + 0x112], 0
mov dword [esp + 0x116], 0
mov dword [esp + 0x119], 0
mov dword [esp + 0xb8], 0
mov eax, dword [esp + 0xb8]
cmp eax, 0xc
ja 0x4141ad
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0xb8]
mov ecx, dword [esp + 0xb8]
movzx ecx, byte [esp + ecx + 0x110]
lea edx, [eax + ecx]
add edx, 0x913bca0
add eax, 0xa0
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 + 0x40], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
xor ecx, 0x9f
and eax, 0x1f
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0xb8]
mov byte [esp + ecx + 0x110], al
inc dword [esp + 0xb8]
mov eax, dword [esp + 0xb8]
cmp eax, 0xd
jb 0x414140
lea eax, [esp + 0x110]
push eax
push ebx
call fcn.004026d0
add esp, 8
mov eax, 0xffffffff
mov edx, esi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx + eax + 1], 0
lea eax, [eax + 1]
jne 0x4141d0
fnstcw word [esp + 0xb4]
movzx ecx, word [esp + 0xb4]
or ecx, 0xc00
mov word [esp + 0xfc], cx
fldcw word [esp + 0xfc]
fistp dword [esp + 0x108]
fldcw word [esp + 0xb4]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x40], 0
lea ecx, [esp + 0x110]
test eax, eax
jle 0x414280
mov esi, edx
add esi, eax
xor edi, edi
lea ecx, [esp + 0x110]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edx], 0
je 0x414280
lea eax, [esp + 0x40]
push eax
push esi
push edx
mov ebx, edx
mov dword [esp + 0x18], ecx
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0xc]
mov word [edx], cx
mov ecx, dword [esp + 0xc]
add ecx, 2
cmp edi, 0x3fd
ja 0x414280
add ebx, eax
inc edi
cmp ebx, esi
mov edx, ebx
jb case.default.0x4142b3
nop
nop
mov word [ecx], 0
lea eax, [esp + 0xf8]
push eax
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x118]
push eax
call fcn.0040bc00
add esp, 0xc
movzx eax, al
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xa8]
jmp dword [eax*4 + 0x443ad4]
xor eax, eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
sete al
mov dword [esp + 0x104], eax
jmp dword [eax*4 + 0x443adc]
xor eax, eax
cmp ecx, 1
sete al
mov dword [esp + 0xc], 0
jmp dword [eax*4 + 0x443ba4]
jmp dword [0x443bb4]
xor eax, eax
cmp dword [esp + 0x38], 2
sete al
jmp dword [eax*4 + 0x443bbc]
mov edi, dword [esp + 0xac]
movzx eax, byte [edi]
xor ebx, ebx
test al, al
je 0x414331
lea ecx, [edi + 1]
xor ebx, ebx
nop
nop
nop
nop
shr al, 7
movzx eax, al
add ebx, eax
inc ebx
movzx eax, byte [ecx]
inc ecx
test al, al
jne 0x414320
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x41433f
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov esi, dword [esp + 0xf8]
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov ebx, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
cmp ecx, eax
jbe 0x4143ab
mov ebx, dword [esp + 0x10]
test esi, esi
jle 0x4143ab
add esi, edi
mov ebx, dword [esp + 0x10]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [edi], 0
je 0x4143ab
mov word [ebx], 0
mov ecx, dword [esp + 0xf8]
lea eax, [ecx + ecx]
add eax, 0x32
add ecx, 0x19
jns 0x4143c7
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x40], 0x3b893986
mov dword [esp + 0x44], 0x3f9b3d83
mov dword [esp + 0x48], 0x3b5018c
mov dword [esp + 0x4c], 0x7a305aa
mov dword [esp + 0x50], 0xba409aa
mov dword [esp + 0x54], 0xfe30dea
mov dword [esp + 0x58], 0x13a811a9
mov dword [esp + 0x5c], 0x17b115b5
mov dword [esp + 0x60], 0x1bba19f6
mov dword [esp + 0x64], 0x1fac1da1
mov dword [esp + 0x68], 0xe355e1bd
mov dword [esp + 0x6c], 0xe704e557
mov word [esp + 0x70], 0xe9e6
mov dword [esp + 0x72], 0
mov dword [esp + 0x76], 0
mov dword [esp + 0x79], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0x3c
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
ja 0x4144c4
push esi
call fcn.00408c50
add esp, 4
mov eax, dword [case.0x414de1.25]
nop
nop
nop
nop
nop
nop
xor ebx, ebx
jmp eax
mov word [esp + 0x40], 0xd5a6
mov dword [esp + 0x42], 0
mov dword [esp + 0x46], 0
mov word [esp + 0x4a], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xb
mov esi, dword [esp + 0x10]
ja 0x4145c3
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x7b52ca23]
add eax, 0xdd
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xf5
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xc
jb 0x414580
lea eax, [esp + 0x40]
push eax
push esi
call fcn.00402670
add esp, 8
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443ae4]
mov dword [esp + 0x40], 0xe8686d6c
mov dword [esp + 0x44], 0
mov word [esp + 0x48], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x414654
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + ecx]
add eax, 0x52
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0x37062652
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xc2
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x414610
mov eax, dword [esp + 0x40]
push dword [eax + 0x14]
call fcn.00409360
add esp, 4
call fcn.00409370
mov esi, eax
and esi, 0xf
or esi, 0x10
xor edi, edi
xor eax, eax
cmp edi, esi
setb al
lea ebx, [esp + 0xb8]
jmp dword [eax*4 + 0x443af4]
mov word [ebx], 0
mov dword [esp + 0x18], 0x832c8179
mov dword [esp + 0x1c], 0x9f4b9d5d
mov dword [esp + 0x20], 0x9b67994e
mov dword [esp + 0x24], 0x9794953e
mov word [esp + 0x28], 0
mov byte [esp + 0x2a], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x12
ja 0x41471b
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 4]
mov ecx, dword [esp + 4]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x6b]
and edx, ecx
mov esi, 0xca5adf94
sub esi, eax
or esi, ecx
not esi
add esi, ecx
sub esi, edx
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0x40]
mov ecx, eax
xor ecx, 0x12
and eax, 0x12
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x13
jb 0x4146d0
movzx ecx, word [esp + 0x18]
lea eax, [esp + 0x40]
test cx, cx
je 0x414751
lea edx, [esp + 0x1a]
lea eax, [esp + 0x40]
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 0x414740
mov word [eax], 0
movzx ecx, word [esp + 0xb8]
test cx, cx
je 0x414781
lea edx, [esp + 0xba]
nop
nop
nop
nop
nop
nop
mov word [eax], cx
add eax, 2
movzx ecx, word [edx]
add edx, 2
test cx, cx
jne 0x414770
mov word [eax], 0
mov ecx, eax
lea edx, [esp + 0x40]
xor ecx, edx
mov esi, edx
not esi
and esi, eax
add esi, esi
sub esi, ecx
sar esi, 1
lea eax, [esp + 0x100]
push eax
push 0
push 0
push esi
push edx
push 0
call dword [0x4498e4]
mov edi, dword [esp + 0x100]
mov eax, edi
add eax, 4
lea eax, [edi + edi + 8]
jns 0x4147c7
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ebx, eax
lea eax, [esp + 0x100]
push eax
push edi
push ebx
push esi
lea eax, [esp + 0x50]
push eax
push 0
call dword [0x4498e4]
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
sete al
jmp dword [eax*4 + 0x443b0c]
xor eax, eax
cmp ecx, 1
sete al
jmp dword [eax*4 + 0x443b14]
jmp dword [0x443b24]
xor eax, eax
cmp ecx, 2
sete al
mov edi, dword [esp + 0x14]
jmp dword [eax*4 + 0x443b2c]
jmp 0x414c9f
xor eax, eax
cmp edi, esi
setb al
jmp dword [eax*4 + 0x443af4]
call fcn.00409370
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 [0x443b00]
inc edi
jmp dword [0x443b08]
inc edi
inc edi
jmp dword [0x443b08]
mov ecx, eax
nop
nop
nop
nop
nop
nop
mov edi, ecx
inc ecx
cmp byte [edi], 0
jne 0x414890
mov ecx, edi
sub ecx, eax
xor ebx, ebx
mov dword [esp + 0xb0], ecx
test ecx, ecx
jle 0x414ab6
mov dword [esp + 0xa4], eax
cmp byte [eax], 0
je 0x414abd
xor ebx, ebx
mov esi, dword [esp + 0xa4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov dword [esp + 0x40], 0
lea eax, [esp + 0x40]
push eax
push edi
push esi
call fcn.0040ef90
add esp, 0xc
lea ecx, [esi + eax]
inc ebx
cmp ecx, edi
jae 0x414abd
cmp byte [esi + eax], 0
mov esi, ecx
jne 0x4148d0
jmp 0x414abd
mov dword [esp + 0x18], 0xc367c12e
mov dword [esp + 0x1c], 0xc763c57c
mov word [esp + 0x20], 0xc9c8
mov dword [esp + 0x22], 0
mov word [esp + 0x26], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xf
mov edi, dword [esp + 0x14]
ja 0x41497f
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x18]
lea edx, [eax + 0x19241fa0]
and edx, ecx
add eax, ecx
add eax, 0x19241fa0
add edx, edx
sub eax, edx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0xa0
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x10
jb 0x414940
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414990
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x414c33
xor edx, edx
nop
nop
nop
nop
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x4149b0
jmp 0x414c31
mov dword [esp + 0x18], 0xfb5cf9d8
mov dword [esp + 0x1c], 0xff60fd66
mov word [esp + 0x20], 0xf1fe
mov dword [esp + 0x22], 0
mov dword [esp + 0x26], 0
mov dword [esp + 0x2a], 0
mov word [esp + 0x2e], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x17
ja 0x414a79
nop
nop
nop
mov ecx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx edx, byte [esp + eax + 0x18]
lea eax, [ecx + 0x2b20c87f]
mov esi, eax
and esi, edx
xor eax, edx
lea eax, [eax + esi*2]
mov edi, 0xd4df3780
sub edi, ecx
or edi, edx
add edi, ecx
lea ecx, [esi + edi]
add ecx, 0x2b20c880
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 4]
mov ecx, eax
xor ecx, 0x86
and eax, 6
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x18
jb 0x414a10
mov eax, ebx
add eax, 0xfffffffe
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414a80
movzx ecx, word [esp + 0x18]
test cx, cx
mov edi, dword [esp + 0x14]
je 0x414c33
xor edx, edx
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x414aa0
jmp 0x414c31
mov dword [esp + 0xa4], eax
mov eax, ebx
inc eax
lea eax, [ebx + ebx + 2]
jns 0x414acb
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov dword [esp + 0x40], 0
lea ecx, [eax + ebx*2]
mov esi, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0xc], ecx
cmp ecx, eax
mov ecx, dword [esp + 0xa4]
jbe 0x414c3e
mov esi, dword [esp + 0x3c]
cmp dword [esp + 0xb0], 0
jle 0x414c3e
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x34], ebx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x414c3e
lea eax, [esp + 0x40]
push eax
push edi
push ecx
mov ebx, ecx
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov word [esi], cx
add esi, 2
cmp esi, dword [esp + 0xc]
jae 0x414c3a
add ebx, eax
cmp ebx, edi
mov ecx, ebx
mov ebx, dword [esp + 0x34]
jb 0x414b20
mov dword [esp + 0x18], 0x4bc45584
mov dword [esp + 0x1c], 0x4f9f49df
mov word [esp + 0x20], 0x4d4e
mov dword [esp + 0x22], 0
mov dword [esp + 0x25], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0x10
ja 0x414bef
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esp + 8]
mov eax, dword [esp + 8]
movzx esi, byte [esp + eax + 0x18]
lea eax, [edx + 0x8d]
mov ecx, 0x172
sub ecx, edx
sub ecx, esi
add edx, esi
add edx, 0xc3afe28d
and eax, esi
add eax, eax
and ecx, eax
not eax
and eax, edx
sub eax, ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 4]
add al, 0x25
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0x11
jb 0x414ba0
mov eax, ebx
add eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + 2], 0
lea eax, [eax + 2]
jne 0x414c00
movzx ecx, word [esp + 0x18]
test cx, cx
je 0x41587e
xor edx, edx
mov edi, dword [esp + 0x14]
nop
nop
mov word [eax + edx], cx
movzx ecx, word [esp + edx + 0x1a]
add edx, 2
test cx, cx
jne 0x414c20
add eax, edx
mov word [eax], 0
jmp 0x414c9f
mov ebx, dword [esp + 0x34]
mov word [esi], 0
lea eax, [esp + 0x40]
push eax
push 0
push 0
push ebx
mov edi, dword [esp + 0x4c]
push edi
push 0
call dword [0x4498e4]
mov esi, dword [esp + 0x40]
lea eax, [esi + esi]
test esi, esi
jns 0x414c6a
mov eax, 0xffffffff
push eax
call fcn.00408c40
add esp, 4
mov ecx, eax
lea eax, [esp + 0x40]
push eax
push esi
mov esi, ecx
push ecx
push ebx
push edi
push 0
call dword [0x4498e4]
mov eax, edi
mov edi, dword [esp + 0x14]
jmp dword [0x443aec]
push eax
call fcn.00408c50
add esp, 4
mov ebx, esi
push 0x80
push 0x60
push 5
push 0
push 0x100002
lea eax, [esp + 0x1c]
push eax
push ebx
call fcn.0043c9c0
add esp, 0x1c
mov esi, eax
not eax
shr eax, 0x1f
jmp dword [eax*4 + 0x443b34]
jmp 0x414db8
push 0
push dword [esp + 0xfc]
push dword [esp + 0xb4]
push dword [esp + 0x14]
call fcn.0043d230
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0xd2d1d0d7
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 0x18], 0
mov ecx, dword [esp + 0x18]
cmp ecx, 8
ja 0x414d65
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x18]
movzx edx, byte [esp + edx + 0x40]
lea edi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or edi, edx
sub edi, ecx
mov dword [esp + 0xb8], edi
mov ecx, dword [esp + 0xb8]
add cl, 0x8b
mov edx, dword [esp + 0x18]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
cmp ecx, 9
jb 0x414d20
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x414d90
mov dword [esp + 0x34], ebx
mov edx, dword [esp + 0x40]
xor edi, edi
mov ebx, dword [0x4498ec]
nop
cmp dword [ebx + edi*8], 0xad91fd63
je 0x414d96
inc edi
cmp ecx, edi
jne 0x414d80
jmp case.default.0x414de1
mov edi, dword [esp + 0x14]
jmp 0x414db8
mov ecx, dword [ebx + edi*8 + 4]
cmp ecx, edx
je case.default.0x414de1
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x34]
push dword [esp + 0xac]
call fcn.00438940
add esp, 4
mov dword [esp + 0xac], 0
not esi
shr esi, 0x1f
mov dword [esp + 0xc], 0
xor eax, eax
jmp dword [esi*4 + 0x443b3c]
xor eax, eax
mov edx, dword [esp + 0x38]
cmp edx, 1
sete al
jmp dword [eax*4 + 0x443b44]
xor ecx, ecx
cmp edx, 2
sete cl
mov eax, 1
mov dword [esp + 0xc], 0
jmp dword [ecx*4 + 0x443b94]
mov esi, dword [esp + 0xa8]
jmp dword [eax*4 + 0x443b9c]
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
setle al
jmp dword [eax*4 + 0x443bdc]
xor eax, eax
cmp ecx, 2
setl al
jmp dword [eax*4 + 0x443be4]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443bec]
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 0x89047569
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0x8000000
push 0
push 0
push 0
push dword [esp + 0x2c]
push 0
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443c14]
jmp dword [0x443c20]
sete al
movzx eax, al
jmp dword [eax*4 + 0x443bf4]
mov eax, dword [esp + 0x104]
jmp dword [eax*4 + 0x443bfc]
push 0x51b4a2b7
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
push 0
push 0
push dword [esp + 0xb4]
push 0x41dda0
push 0
push 0
call eax
mov esi, eax
xor eax, eax
test esi, esi
setne al
jmp dword [eax*4 + 0x443c0c]
mov dword [esp + 0xbc], 0xffffffff
mov dword [esp + 0xb8], 0xb8797400
mov dword [esp + 0x40], 0xd2d1d0d7
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 8
ja 0x414ffd
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 + 0x40]
lea edx, [eax + 0xf7b6fa3]
add eax, 0xa3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x8b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 9
jb 0x414fc0
mov eax, dword [0x4498e8]
test eax, eax
je 0x41579d
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x10c53004
je 0x415779
inc edx
cmp eax, edx
jne 0x415020
jmp 0x41579d
mov word [esp + 0x40], 0x8fb6
mov byte [esp + 0x42], 0x1a
mov dword [esp + 0x43], 0
mov dword [esp + 0x47], 0
mov word [esp + 0x4b], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 0xc
ja 0x4150b5
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax + 0xac]
and edx, ecx
add eax, ecx
add edx, edx
sub eax, edx
add eax, 0x26c14ac
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
add al, 0x4c
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xd
jb 0x415070
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x14]
call fcn.00402670
add esp, 8
mov dword [esp + 0x3c], eax
mov word [esp + 0x40], 0x33c5
mov byte [esp + 0x42], 0xa0
mov dword [esp + 0x43], 0
mov dword [esp + 0x46], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x415150
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0x40]
lea edx, [eax - 0x5efb16c5]
and edx, ecx
add eax, ecx
add eax, 0xa104e93b
add edx, edx
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0xb8]
mov ecx, eax
xor ecx, 0x62
and eax, 0x62
lea eax, [ecx + eax*2]
inc al
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x415100
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x14]
call fcn.00402670
add esp, 8
mov edx, eax
mov eax, 0xfffffffe
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [ebx + eax + 2], 0
lea eax, [eax + 2]
jne case.default.0x415190
mov dword [esp + 0x34], ebx
sar eax, 1
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
test ecx, ecx
setne bl
mov dword [esp + 0x38], ebx
jmp dword [ebx*4 + 0x443b4c]
xor ebx, ebx
xor ecx, ecx
test edx, edx
setne cl
mov edi, ecx
xor esi, esi
mov ecx, edx
mov dword [esp + 0xb0], edi
jmp dword [edi*4 + 0x443b54]
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 0x89047569
push dword [0x4498dc]
call fcn.0043bfb0
add esp, 8
lea ecx, [esp + 0x18]
push ecx
lea ecx, [esp + 0x44]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push dword [esp + 0x2c]
push ebx
call eax
xor ecx, ecx
test eax, eax
setne cl
jmp dword [ecx*4 + 0x443c04]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb8], 0xd2d1d0d7
mov dword [esp + 0xbc], 0
mov byte [esp + 0xc0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x4152f5
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb8]
lea esi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x8b
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x4152b0
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.0x414de1.50
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x41585b
inc esi
cmp ecx, esi
jne 0x415320
jmp case.0x414de1.50
mov ecx, ebx
nop
nop
nop
nop
nop
nop
nop
mov eax, ecx
add ecx, 2
cmp word [eax], 0
jne 0x415340
sub eax, ebx
lea ecx, [eax + 0x3c]
cmp eax, 0xffffffc3
jge 0x41535a
mov ecx, 0xffffffff
push ecx
call fcn.00408c40
add esp, 4
mov dword [esp + 0xc], eax
mov dword [esp + 0xb8], 0x1b1a193a
mov dword [esp + 0xbc], 0
mov word [esp + 0xc0], 0
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x18]
cmp eax, 9
ja 0x4153e2
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
movzx ecx, byte [esp + ecx + 0xb8]
lea edx, [eax + 0x54]
add eax, ecx
and edx, ecx
add edx, edx
sub eax, edx
add eax, 0x37332d54
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
add al, 0xb4
mov ecx, dword [esp + 0x18]
mov byte [esp + ecx + 0xb8], al
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
cmp eax, 0xa
jb 0x4153a0
mov dword [esp + 0x40], 0xeb259526
mov dword [esp + 0x44], 0xef53e963
mov dword [esp + 0x48], 0xe359ed58
mov dword [esp + 0x4c], 0xe75be15a
mov dword [esp + 0x50], 0xfb58e55a
mov dword [esp + 0x54], 0xff8bf99a
mov dword [esp + 0x58], 0xf374fd45
mov dword [esp + 0x5c], 0xf755f149
mov dword [esp + 0x60], 0xcb52f596
mov dword [esp + 0x64], 0xcf78c945
mov dword [esp + 0x68], 0xc379cd69
mov dword [esp + 0x6c], 0xc7a0c177
mov dword [esp + 0x70], 0xdb7ec5b5
mov dword [esp + 0x74], 0xdfbed9ba
mov word [esp + 0x78], 0xddde
mov dword [esp + 0x7a], 0
mov dword [esp + 0x7e], 0
mov dword [esp + 0x82], 0
mov byte [esp + 0x86], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 0x46
mov esi, dword [esp + 0xa8]
ja 0x4154dd
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 + 0x40]
lea edx, [eax - 0x30742fc3]
add eax, 0x3d
or eax, edx
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x55
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 0x47
jb 0x4154a0
movzx ecx, word [esp + 0x40]
mov eax, dword [esp + 0xc]
test cx, cx
je 0x415511
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, ecx
inc ecx
cmp byte [ebx], 0
jne case.default.0x4155b1
sub ebx, dword [esp + 0x3c]
inc ebx
xor ecx, ecx
test edx, edx
setne cl
mov edi, ecx
xor esi, esi
mov ecx, edx
mov dword [esp + 0xb0], edi
jmp dword [edi*4 + 0x443b54]
mov esi, ecx
inc ecx
cmp byte [esi], 0
jne case.0x414de1.7
sub esi, edx
inc esi
mov ecx, edx
jmp dword [0x443b64]
mov dword [esp + 0xa4], edx
mov dword [esp + 0x40], 0x53ef51e4
mov dword [esp + 0x44], 0x5ff05de4
mov dword [esp + 0x48], 0x5bec59ea
mov dword [esp + 0x4c], 0xa7d6a527
mov word [esp + 0x50], 0xa1a6
mov dword [esp + 0x52], 0
mov word [esp + 0x56], 0
mov dword [esp + 4], 0
mov ecx, dword [esp + 4]
cmp ecx, 0x17
ja 0x415681
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 4]
mov edx, dword [esp + 4]
movzx edx, byte [esp + edx + 0x40]
lea edi, [ecx + edx]
add edi, 0xa633c473
add ecx, 0xa633c473
and ecx, edx
add ecx, ecx
sub edi, ecx
mov dword [esp + 0x18], edi
mov ecx, dword [esp + 0x18]
mov edx, ecx
or edx, 0xda
and ecx, 0xda
add ecx, edx
inc cl
mov edx, dword [esp + 4]
mov byte [esp + edx + 0x40], cl
inc dword [esp + 4]
mov ecx, dword [esp + 4]
cmp ecx, 0x18
jb 0x415630
lea edx, [esp + 0x40]
mov ecx, 4
lea edi, [esp + 0xb8]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edx, [esp + 0x50]
lea edi, [esp + 0xc8]
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
nop
nop
cmp word [esp + ecx + 0xba], 0
lea ecx, [ecx + 2]
jne 0x4156c0
jmp dword [0x443b74]
mov eax, dword [edi + edx*8 + 4]
cmp eax, ecx
je 0x41579d
lea ecx, [esp + 0xb8]
push ecx
push 0
push esi
push 3
push dword [0x4498f0]
push eax
call fcn.0043a390
add esp, 0x18
mov dword [esp + 0x40], 0xd2d1d0d7
mov dword [esp + 0x44], 0
mov byte [esp + 0x48], 0
mov dword [esp + 4], 0
mov eax, dword [esp + 4]
cmp eax, 8
ja 0x41580d
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 + 0x40]
lea edx, [eax + 0xf7b6fa3]
add eax, 0xa3
and eax, ecx
or edx, ecx
sub edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x8b
mov ecx, dword [esp + 4]
mov byte [esp + ecx + 0x40], al
inc dword [esp + 4]
mov eax, dword [esp + 4]
cmp eax, 9
jb 0x4157d0
mov eax, dword [0x4498e8]
test eax, eax
je case.0x414de1.50
mov ecx, dword [esp + 0x40]
xor edx, edx
mov edi, dword [0x4498ec]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + edx*8], 0xad91fd63
je 0x415843
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x414de1.50
push eax
push 1
push dword [0x4498f0]
push ecx
call fcn.0043a390
add esp, 0x10
jmp case.0x414de1.50
mov edi, dword [esp + 0x14]
mov word [eax], 0
jmp 0x414c9f
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443c44]
push ebx
call fcn.00408c50
add esp, 4
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x443c4c]
xor ecx, ecx
test eax, eax
setne cl
mov esi, dword [esp + 0xa8]
jmp dword [ecx*4 + 0x443c3c]
push eax
call fcn.00438940
add esp, 4
xor eax, eax
test ebx, ebx
sete al
jmp dword [eax*4 + 0x443c44]
xor eax, eax
cmp dword [esp + 0xc], 0
sete al
jmp dword [eax*4 + 0x443c4c]
push dword [esp + 0xc]
call fcn.00408c50
add esp, 4
nop
nop
nop
jmp dword [0x443c60]
inc esi
jmp 0x413ce0
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0x10]
mov word [eax], 0x2c
mov eax, 0xffffffff
mov ecx, dword [esp + 0x3c]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415930
lea ebx, [edi + 4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x40], 0
mov ebx, dword [esp + 0x38]
cmp ebx, 2
jl 0x4159ab
test eax, eax
jle 0x4159ab
mov edx, ecx
add edx, eax
lea eax, [edi + ebx*2]
add eax, 2
mov dword [esp + 0x38], eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp byte [ecx], 0
je 0x4159ab
mov edi, edx
lea eax, [esp + 0x40]
push eax
push edx
push ecx
mov ebx, ecx
call fcn.0040ef90
add esp, 0xc
movzx ecx, word [esp + 0x40]
mov edx, dword [esp + 0x10]
mov word [edx], cx
add edx, 2
cmp edx, dword [esp + 0x38]
mov dword [esp + 0x10], edx
jae 0x4159ab
mov edx, dword [esp + 0x10]
mov word [edx], 0
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xa4]
jmp dword [eax*4 + 0x443b8c]
xor ebx, ebx
mov dword [esp + 0x38], 0
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0xa8]
mov eax, 1
jmp dword [eax*4 + 0x443b9c]
mov ecx, dword [esp + 0xa4]
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0x10]
jmp dword [eax*4 + 0x443b8c]
mov word [edx], 0x2c
mov eax, 0xffffffff
nop
nop
nop
cmp byte [ecx + eax + 1], 0
lea eax, [eax + 1]
jne 0x415a10
cmp dword [edi + esi*8], 0xad91fd63
je 0x415ab0
inc esi
cmp ecx, esi
jne 0x415aa0
mov ecx, dword [edi + esi*8 + 4]
cmp ecx, edx
je case.0x414de1.57
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb8], 0xd2d1d0d7
mov dword [esp + 0xbc], 0
mov byte [esp + 0xc0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x415b45
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb8]
lea esi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x8b
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x415b00
mov ecx, dword [0x4498e8]
test ecx, ecx
je 0x415b8a
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x4498ec]
nop
nop
cmp dword [edi + esi*8], 0xad91fd63
je 0x415b70
jmp dword [0x443c24]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0xac]
mov ecx, dword [case.0x414de1.63]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
jmp ecx
mov eax, dword [esp + 0x18]
mov dword [esp + 0xb8], 0xd2d1d0d7
mov dword [esp + 0xbc], 0
mov byte [esp + 0xc0], 0
mov dword [esp + 8], 0
mov ecx, dword [esp + 8]
cmp ecx, 8
ja 0x415c35
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0xb8]
lea esi, [ecx + 0xf7b6fa3]
add ecx, 0xa3
and ecx, edx
or esi, edx
sub esi, ecx
mov dword [esp + 4], esi
mov ecx, dword [esp + 4]
add cl, 0x8b
mov edx, dword [esp + 8]
mov byte [esp + edx + 0xb8], cl
inc dword [esp + 8]
mov ecx, dword [esp + 8]
cmp ecx, 9
jb 0x415bf0
mov ecx, dword [0x4498e8]
test ecx, ecx
je case.0x414de1.57
mov edx, dword [esp + 0xb8]
xor esi, esi
mov edi, dword [0x4498ec]
jmp 0x415aa0
mov eax, dword [esp + 0x38]
jmp dword [eax*4 + 0x443b84]
push dword [esp + 0x34]
call fcn.00408c50
add esp, 4
push dword [esp + 0x34]
call fcn.00408c50
add esp, 4
jmp dword [0x443b7c]
xor eax, eax
jmp dword [0x443aa0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret