Function at 0x643e70
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xf8]
cmp eax, dword [ecx + 8]
jbe 0x645471
sub esp, 0x178
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 4], eax
call fcn.00645690
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0xc]
test edx, edx
jne 0x644404
mov dword [esp + 0x44], ecx
mov dword [esp + 0x4c], esi
mov dword [esp + 0xe0], eax
lea edi, [esp + 0x130]
xor eax, eax
call fcn.0046463b
mov ecx, dword [esp + 0x180]
mov edx, dword [ecx + 0x10]
mov ebx, dword [esp + 0x184]
mov dword [esp], ebx
call edx
movzx ecx, byte [esp + 0x18]
mov byte [esp + 0x27], cl
lea edi, [esp + 0x130]
lea esi, [esp + 4]
call fcn.00464b1e
lea edi, [esp + 0x11c]
lea esi, [esp + 0x130]
call fcn.00464b1e
movzx ecx, byte [esp + 0x27]
test cl, cl
je 0x643fdd
lea edi, [esp + 0x108]
lea esi, [esp + 0x130]
call fcn.00464b1e
mov eax, dword [esp + 0x108]
mov ecx, dword [esp + 0x10c]
test ecx, 0x80000000
je 0x643fae
shl ecx, 1
mov edx, eax
shr eax, 0x1f
or ecx, eax
mov eax, edx
shl edx, 1
mov ebx, ecx
shl ecx, 1
shr edx, 0x1f
or edx, ecx
shr ebx, 0x1f
add edx, 0xd7b17f80
adc ebx, 0xd
jmp 0x643fbc
mov edx, dword [esp + 0x110]
mov ebx, dword [esp + 0x114]
test ebx, ebx
sete cl
test edx, edx
sete dl
and ecx, edx
test cl, cl
je 0x643fd6
test eax, 0x3fffffff
sete al
jmp 0x643fd8
xor eax, eax
xor eax, 1
jmp 0x643fdf
xor eax, eax
test al, al
je 0x64409f
mov eax, dword [esp + 0x188]
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x6c], ecx
mov edx, dword [esp + 0x18c]
mov dword [esp], edx
lea edi, [esp + 4]
lea esi, [esp + 0x11c]
call fcn.00464b1e
mov ecx, dword [esp + 0x6c]
call ecx
mov eax, dword [esp + 0x188]
test byte [eax], al
lea edi, [esp + 0x144]
lea esi, [0x8b2f60]
call fcn.00464b1e
lea edi, [esp + 0x158]
xor eax, eax
call fcn.00464638
lea eax, [0x645640]
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x15c], eax
mov ecx, dword [esp + 0x18c]
mov dword [esp + 0x160], ecx
lea edi, [esp + 0x164]
lea esi, [esp + 0x144]
call fcn.00464b1e
lea ecx, [esp + 0x158]
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0xa4]
mov dword [esp], ecx
call fcn.00435150
test eax, eax
jne 0x6443f8
mov eax, dword [0x8b1e9c]
mov ecx, dword [esp + 0x180]
lea edx, [0x7284c4]
cmp ecx, edx
jne 0x6440da
mov dword [esp], ecx
mov ecx, dword [esp + 0x184]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.004038b0
movzx eax, byte [esp + 0xc]
test al, al
jne 0x64425e
lea eax, [0x680340]
mov dword [esp], eax
mov dword [esp + 4], 1
call fcn.00404bb0
mov eax, dword [esp + 8]
mov dword [esp + 0xe4], eax
lea ecx, [0x6806c0]
mov dword [esp], ecx
mov dword [esp + 4], 0
call fcn.00404bb0
mov eax, dword [esp + 8]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xf8], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], 0
lea ecx, [0x6455b0]
mov dword [esp + 0xf8], ecx
mov dword [esp + 0xfc], eax
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x104], ecx
lea edx, [esp + 0xf8]
mov dword [esp + 0x8c], edx
lea edx, [esp + 0x80]
mov dword [esp], edx
call fcn.00435150
test eax, eax
jne 0x6443ec
lea eax, [0x6a1460]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
lea ecx, [0x645480]
mov dword [eax], ecx
mov ecx, dword [esp + 0x180]
mov dword [eax + 4], ecx
mov ecx, dword [0x8d9190]
test ecx, ecx
jne 0x6441d7
mov ecx, dword [esp + 0x184]
mov dword [eax + 8], ecx
jmp 0x6441f1
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x184]
call fcn.004643a0
mov eax, ecx
mov ecx, dword [esp + 0x184]
mov edx, dword [esp + 0x188]
mov dword [eax + 0xc], edx
mov edx, dword [0x8d9190]
test edx, edx
jne 0x644225
mov edx, dword [esp + 0x18c]
mov dword [eax + 0x10], edx
mov ebx, dword [esp + 0xe4]
mov dword [eax + 0x14], ebx
mov ebx, dword [esp + 0xe8]
mov dword [eax + 0x18], ebx
jmp 0x644256
lea edi, [eax + 0x10]
mov edx, eax
mov eax, dword [esp + 0x18c]
call fcn.004643a0
lea edi, [edx + 0x14]
mov eax, dword [esp + 0xe4]
call fcn.004643a0
lea edi, [edx + 0x18]
mov eax, dword [esp + 0xe8]
call fcn.004643a0
mov eax, edx
mov dword [esp], eax
call fcn.00441ac0
lea eax, [0x6873e0]
mov dword [esp], eax
mov dword [esp + 4], 0
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + 6]
mov dword [esp + 0x54], edx
mov dword [esp + 8], edx
call fcn.0044aea0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x54]
cmp ecx, 1
jae 0x6442c4
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ecx, edx
mov byte [eax], 5
mov edx, dword [esp + 0x17c]
mov ebx, dword [edx + 0x1c]
mov ebp, dword [edx + 0x18]
test ebx, ebx
je 0x6443a5
mov esi, dword [edx + 0x24]
test esi, esi
je 0x6443a5
cmp ebx, 0xff
jg 0x64434e
mov dword [esp + 0xf0], ebp
mov dword [esp + 0x68], ebx
cmp ecx, 2
jae 0x64433f
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x17c]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0xf0]
mov byte [eax + 1], bl
xor esi, esi
mov edi, 2
jmp 0x645412
lea eax, [0x690d00]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1f
lea ecx, [0x6ca8ff]
mov dword [eax], ecx
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea ecx, [0x727230]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
call fcn.00435720
add esp, 0x178
ret
cmp ecx, 3
jae 0x6443df
mov dword [esp], eax
mov dword [esp + 4], 3
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x17c]
mov word [eax + 1], 1
mov ebx, 3
jmp 0x644434
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], ebx
mov dword [esp + 0x1a4], ebp
call fcn.00435720
add esp, 0x178
ret
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ebx
mov dword [esp + 0xec], eax
mov edx, dword [esp + 0x188]
mov ebp, dword [edx + 0x2c]
mov esi, dword [esp + 0x18c]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call ebp
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x644905
mov edx, dword [esp + 0x54]
cmp edx, 2
jb 0x6453fc
lea eax, [0x68ed80]
mov dword [esp], eax
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
call fcn.00409740
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 2
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 2
call fcn.0046d450
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x6448f9
mov edx, dword [esp + 0x50]
test edx, edx
jbe 0x6453f3
mov ebx, dword [esp + 0xec]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x644838
cmp edx, 1
jbe 0x6453e7
movzx eax, byte [ebx + 1]
cmp eax, 0xff
je 0x6447e1
mov ecx, dword [esp + 0x17c]
mov edx, dword [ecx + 0x24]
test edx, edx
je 0x6445d7
mov dword [esp + 0x64], eax
lea eax, [0x692360]
mov dword [esp], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 4], eax
call fcn.00409740
mov eax, dword [esp + 0x17c]
mov edx, dword [eax + 0x24]
mov ecx, dword [edx]
mov ebx, dword [esp + 0x180]
mov dword [esp], ebx
mov ebx, dword [esp + 0x184]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x18c]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x10], ebp
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x6447d5
mov ecx, dword [esp + 0x17c]
mov ebx, dword [esp + 0xec]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x54]
cmp ecx, 3
jae 0x64461e
mov dword [esp + 0x60], eax
mov dword [esp], ebx
mov dword [esp + 4], 3
mov dword [esp + 8], 2
mov dword [esp + 0xc], 3
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xec], ebx
mov dword [esp + 0x54], ecx
mov byte [ebx], 5
mov byte [ebx + 1], al
mov byte [ebx + 2], 0
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov edx, dword [esp + 0x4c]
mov dword [esp + 4], edx
call fcn.005a0220
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
test ecx, ecx
je 0x644674
cmp eax, 4
je 0x64466b
cmp eax, 0x10
jne 0x64539d
xor edx, edx
jmp 0x6453ab
mov edx, eax
mov ebx, ecx
jmp 0x6450d4
mov eax, dword [esp + 0x4c]
cmp eax, 0xff
jg 0x64477e
mov ecx, dword [esp + 0x54]
cmp ecx, 4
jb 0x644695
mov ebx, dword [esp + 0xec]
jmp 0x6446ce
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov byte [ebx + 3], 3
cmp ecx, 5
jae 0x644709
mov dword [esp], ebx
mov dword [esp + 4], 5
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov byte [ebx + 4], al
lea edx, [eax + 5]
cmp ecx, edx
jae 0x644741
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
lea ecx, [0x6873e0]
mov dword [esp + 0x10], ecx
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0xec], ebx
lea ebp, [ebx + 5]
mov dword [esp], ebp
mov ebp, dword [esp + 0xe0]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.00464d30
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0xec]
mov edx, dword [esp + 0x50]
jmp 0x644911
lea eax, [0x690d00]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0xd
lea ecx, [0x6c20d6]
mov dword [eax], ecx
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea ecx, [0x727230]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
lea eax, [0x690d00]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x24
lea ecx, [0x6ccb76]
mov dword [eax], ecx
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea ecx, [0x727230]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
call fcn.00435720
add esp, 0x178
ret
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.0047a6e0
mov dword [esp], 0
lea eax, [0x6c92bd]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.0044e980
mov eax, dword [esp + 0x14]
mov dword [esp + 0xdc], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x40], ecx
lea edx, [0x690d00]
mov dword [esp], edx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x40]
mov dword [edi + 4], eax
mov eax, dword [0x8d9190]
test eax, eax
jne 0x6448b7
mov eax, dword [esp + 0xdc]
mov dword [edi], eax
jmp 0x6448c3
mov eax, dword [esp + 0xdc]
call fcn.004643a0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea eax, [0x727230]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edi
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
add edx, 2
cmp eax, edx
jae 0x644946
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xec], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0x44]
mov ebp, ebx
sar ebx, 8
mov byte [edx + ecx - 2], bl
xchg ebp, eax
mov byte [edx + ecx - 1], al
xchg ebp, eax
mov ebx, dword [esp + 0x188]
mov ebx, dword [ebx + 0x2c]
mov ebp, dword [esp + 0x18c]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x64507c
mov edx, dword [esp + 0x54]
cmp edx, 4
jb 0x6450ca
lea eax, [0x68ed80]
mov dword [esp], eax
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
call fcn.00409740
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 4
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 4
call fcn.0046d450
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x645070
mov edx, dword [esp + 0x50]
test edx, edx
jbe 0x6450c1
mov ebx, dword [esp + 0xec]
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
jne 0x644faf
cmp edx, 1
jbe 0x6450b5
movzx ebp, byte [ebx + 1]
test ebp, ebp
jne 0x644ef6
cmp edx, 2
jbe 0x6450a9
movzx eax, byte [ebx + 2]
test al, al
jne 0x644e9f
lea eax, [0x69f060]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x50]
cmp ecx, 3
jbe 0x64509d
mov dword [esp + 0xf4], eax
mov ecx, dword [esp + 0xec]
movzx edx, byte [ecx + 3]
cmp dl, 1
je 0x644c82
cmp dl, 3
je 0x644bd6
cmp dl, 4
jne 0x644b19
lea eax, [0x6873e0]
mov dword [esp], eax
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0x10
call fcn.0044aea0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + 0xc], 0x10
mov dword [ecx + 0x10], 0x10
mov edx, dword [0x8d9190]
test edx, edx
jne 0x644b07
mov dword [ecx + 8], eax
jmp 0x644b0f
lea edi, [ecx + 8]
call fcn.004643a0
mov ebx, 0x12
jmp 0x644cd5
movzx eax, dl
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.0047a6e0
mov dword [esp], 0
lea eax, [0x6c5aa9]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x15
call fcn.0044e980
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd0], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
lea edx, [0x690d00]
mov dword [esp], edx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x34]
mov dword [edi + 4], eax
mov eax, dword [0x8d9190]
test eax, eax
jne 0x644b94
mov eax, dword [esp + 0xd0]
mov dword [edi], eax
jmp 0x644ba0
mov eax, dword [esp + 0xd0]
call fcn.004643a0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea eax, [0x727230]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edi
call fcn.00435720
add esp, 0x178
ret
lea eax, [0x68ed80]
mov dword [esp], eax
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
call fcn.00409740
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0xec]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], 1
call fcn.0046d450
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
test eax, eax
jne 0x644c52
mov eax, dword [esp + 0xec]
movzx ebx, byte [eax]
add ebx, 2
mov ecx, dword [esp + 0xf4]
jmp 0x644cd5
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], edx
call fcn.00435720
add esp, 0x178
ret
lea eax, [0x6873e0]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], 4
call fcn.0044aea0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xf4]
mov dword [ecx + 0xc], 4
mov dword [ecx + 0x10], 4
mov edx, dword [0x8d9190]
test edx, edx
jne 0x644cc8
mov dword [ecx + 8], eax
jmp 0x644cd0
lea edi, [ecx + 8]
call fcn.004643a0
mov ebx, 6
mov dword [esp + 0x48], ebx
mov edx, dword [esp + 0x54]
cmp ebx, edx
jg 0x644cf0
ja 0x645096
mov eax, dword [esp + 0xec]
jmp 0x644d10
lea eax, [0x6873e0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.0044aea0
mov ecx, dword [esp + 0xc]
mov eax, ecx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x54], edx
mov dword [esp + 0xec], eax
lea ecx, [0x68ed80]
mov dword [esp], ecx
mov ecx, dword [esp + 0x188]
mov dword [esp + 4], ecx
call fcn.00409740
mov eax, dword [esp + 8]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x48]
mov dword [esp + 0xc], ecx
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.0046d450
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], ecx
test edx, edx
jne 0x644e93
mov ebx, dword [esp + 0xf4]
mov ebp, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
test ebp, ebp
je 0x644de0
mov ecx, dword [esp + 0x48]
cmp ecx, esi
jge 0x644da9
mov eax, ecx
jmp 0x644dad
mov eax, ecx
mov ecx, esi
mov edx, dword [esp + 0xec]
cmp edx, ebp
je 0x644e40
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.00464d30
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xec]
mov ebx, dword [esp + 0xf4]
jmp 0x644e40
mov eax, dword [esp + 0x48]
lea ecx, [eax - 2]
mov edx, dword [esp + 0x54]
cmp edx, ecx
jb 0x645091
mov dword [esp], 0
mov eax, dword [esp + 0xec]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.0044ec30
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0xf4]
mov dword [edi + 4], ecx
mov ecx, dword [0x8d9190]
test ecx, ecx
jne 0x644e2e
mov dword [edi], eax
jmp 0x644e33
call fcn.004643a0
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0xec]
mov ebx, edi
lea ebp, [eax - 2]
cmp eax, ebp
jbe 0x645088
movzx ecx, byte [eax + edx - 2]
shl ecx, 8
movzx eax, byte [eax + edx - 1]
or ecx, eax
mov dword [ebx + 0x14], ecx
lea eax, [0x728090]
mov dword [esp + 0x198], eax
mov dword [esp + 0x19c], ebx
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
lea eax, [0x690d00]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x6c6a7d]
mov dword [eax], ecx
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea ecx, [0x727230]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
call fcn.00435720
add esp, 0x178
ret
mov dword [esp], ebp
call fcn.00645840
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x6c299d]
mov dword [esp + 4], edx
mov dword [esp + 8], 0xe
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044e980
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], ecx
lea edx, [0x690d00]
mov dword [esp], edx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov eax, dword [0x8d9190]
test eax, eax
jne 0x644f6d
mov eax, dword [esp + 0xd4]
mov dword [edi], eax
jmp 0x644f79
mov eax, dword [esp + 0xd4]
call fcn.004643a0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea eax, [0x727230]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edi
call fcn.00435720
add esp, 0x178
ret
xchg ebp, ebx
movzx eax, bl
xchg ebp, ebx
mov ecx, eax
sar eax, 0x1f
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0xa
call fcn.0047a6e0
mov dword [esp], 0
lea eax, [0x6c92bd]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
call fcn.0044e980
mov eax, dword [esp + 0x14]
mov dword [esp + 0xd8], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
lea edx, [0x690d00]
mov dword [esp], edx
call fcn.0040bd00
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [0x8d9190]
test eax, eax
jne 0x64502e
mov eax, dword [esp + 0xd8]
mov dword [edi], eax
jmp 0x64503a
mov eax, dword [esp + 0xd8]
call fcn.004643a0
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea eax, [0x727230]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a4], edi
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
call fcn.00435720
add esp, 0x178
ret
mov ecx, eax
mov eax, ebp
call fcn.00464420
call fcn.00464460
mov ecx, ebx
call fcn.00464460
mov eax, 3
mov ecx, eax
call fcn.00464420
mov eax, 2
mov ecx, eax
call fcn.00464420
mov eax, 1
mov ecx, eax
call fcn.00464420
xor eax, eax
mov ecx, eax
call fcn.00464420
mov ecx, 4
call fcn.00464460
test ecx, ecx
je 0x6451b1
mov dword [esp + 0x30], eax
mov dword [esp + 0xcc], ecx
mov edx, dword [esp + 0x54]
cmp edx, 4
jb 0x6450f9
mov ebx, dword [esp + 0xec]
jmp 0x64513b
mov eax, dword [esp + 0xec]
mov dword [esp], eax
mov dword [esp + 4], 4
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov edx, ecx
mov ecx, dword [esp + 0xcc]
mov byte [ebx + 3], 1
lea ebp, [eax + 4]
cmp edx, ebp
jae 0x64517b
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x6873e0]
mov dword [esp + 0x10], ecx
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xcc]
mov dword [esp + 0x54], edx
mov dword [esp + 0xec], ebx
mov dword [esp + 0x50], ebp
lea esi, [ebx + 4]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00464d30
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xec]
jmp 0x645339
cmp edx, 4
jne 0x645256
movzx eax, byte [ebx]
movzx ecx, byte [ebx + 1]
movzx edx, byte [ebx + 2]
movzx ebx, byte [ebx + 3]
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov ebp, dword [0x8ad4a8]
mov esi, dword [0x8ad4ac]
cmp esi, 0x10
jl 0x6451ff
mov esi, 0x10
lea edi, [esp + 0x70]
cmp ebp, edi
je 0x64523b
mov byte [esp + 0x2b], al
mov byte [esp + 0x2a], cl
mov byte [esp + 0x29], dl
mov byte [esp + 0x28], bl
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00464d30
movzx eax, byte [esp + 0x2b]
movzx ecx, byte [esp + 0x2a]
movzx edx, byte [esp + 0x29]
movzx ebx, byte [esp + 0x28]
mov byte [esp + 0x7c], al
mov byte [esp + 0x7d], cl
mov byte [esp + 0x7e], dl
mov byte [esp + 0x7f], bl
mov edx, 0x10
lea ebx, [esp + 0x70]
jmp 0x64525f
cmp edx, 0x10
je 0x64525f
xor edx, edx
xor ebx, ebx
test ebx, ebx
je 0x645346
mov dword [esp + 0x2c], edx
mov dword [esp + 0xc8], ebx
mov eax, dword [esp + 0x54]
cmp eax, 4
jb 0x645284
mov ecx, dword [esp + 0xec]
jmp 0x6452c8
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
mov dword [esp + 4], 4
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov eax, ecx
mov ecx, ebx
mov ebx, dword [esp + 0xc8]
mov byte [ecx + 3], 4
lea ebp, [edx + 4]
cmp eax, ebp
jae 0x645308
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0xc8]
mov dword [esp + 0x50], ebp
mov dword [esp + 0xec], ecx
mov dword [esp + 0x54], eax
lea esi, [ecx + 4]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call fcn.00464d30
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0xec]
mov ebx, eax
mov eax, ecx
mov ecx, edx
mov edx, ebx
jmp 0x644911
lea eax, [0x690d00]
mov dword [esp], eax
call fcn.0040bd00
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x14
lea ecx, [0x6c5363]
mov dword [eax], ecx
mov dword [esp + 0x198], 0
mov dword [esp + 0x19c], 0
lea ecx, [0x727230]
mov dword [esp + 0x1a0], ecx
mov dword [esp + 0x1a4], eax
call fcn.00435720
add esp, 0x178
ret
mov edx, eax
mov ebx, ecx
xor eax, eax
xor ecx, ecx
jmp 0x6450d4
inc edx
cmp edx, 0xa
jge 0x6453bc
jae 0x6453db
movzx ebx, byte [ecx + edx]
test bl, bl
je 0x6453aa
jmp 0x64539d
cmp byte [ecx + 0xa], 0xff
jne 0x64539d
cmp byte [ecx + 0xb], 0xff
jne 0x64539d
lea ebp, [ecx + 0xc]
mov edx, eax
mov ebx, ecx
mov eax, 4
mov ecx, ebp
jmp 0x6450d4
mov eax, edx
mov ecx, 0xa
call fcn.00464420
mov eax, 1
mov ecx, eax
call fcn.00464420
xor eax, eax
mov ecx, eax
call fcn.00464420
mov ecx, 2
call fcn.00464460
mov byte [edi + eax - 1], dl
inc esi
mov edx, dword [esp + 0x17c]
cmp esi, ebx
jge 0x64546a
mov edx, dword [ebp + esi*4]
inc edi
cmp ecx, edi
jae 0x645406
mov dword [esp + 0x5c], esi
mov dword [esp + 0x58], edx
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6873e0]
mov dword [esp + 0x10], eax
call fcn.0044af60
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x68]
mov ebp, dword [esp + 0xf0]
mov esi, dword [esp + 0x5c]
jmp 0x645406
mov ebx, edi
jmp 0x644434
call fcn.00462f90
jmp fcn.00643e70