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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x642cc1
sub esp, 0x94
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.00642dd0
mov eax, dword [esp + 4]
test eax, eax
jle 0x6424e9
cmp eax, 0x3e8
jle 0x6424c1
mov eax, 0x3e8
mov dword [esp + 0x50], eax
lea ecx, [0x6f44e0]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.0044e560
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, eax
mov eax, ecx
jmp 0x6424ed
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x78], edx
lea ebx, [0x722d60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
call fcn.0040cfe0
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x90], edx
mov dword [esp], ecx
mov dword [esp + 4], 1
call fcn.0063a8e0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x9c]
mov edx, ecx
add ecx, 0xfffffe70
test eax, eax
je 0x642555
add edx, 0xfffffe70
jmp 0x64262d
mov ebx, dword [esp + 0xc]
test ebx, ebx
jbe 0x642cb7
mov eax, dword [esp + 8]
movzx eax, byte [eax]
cmp al, 0x20
je 0x642576
cmp al, 9
jne 0x642627
mov eax, dword [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 8], 0
mov dword [esp + 4], 0x50
call fcn.006416b0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x6425c8
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x90]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
add esp, 0x94
ret
mov dword [esp], 0
lea eax, [0x748d1f]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x24
call fcn.00452120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xac], ecx
lea ecx, [0x7b154c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
add esp, 0x94
ret
add edx, 0xfffffe70
mov eax, dword [esp + 0xa0]
adc eax, 0xffffffff
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x44]
jmp 0x64265d
mov edi, eax
mov eax, edx
mov edx, ebp
mov ebp, ecx
mov ecx, ebx
mov ebx, esi
mov esi, edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], edx
mov edi, dword [esp + 0x98]
mov dword [esp], edi
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
lea edi, [0x758c0c]
mov dword [esp + 0xc], edi
call fcn.00641970
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x20]
test eax, eax
je 0x642b31
mov dword [esp + 0x48], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x54], ecx
mov ecx, dword [0x968090]
mov edx, dword [0x968094]
mov ebx, dword [0x968098]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x7c], esi
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.004d67f0
movzx eax, byte [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
test al, al
je 0x642ac2
mov dword [esp + 0x74], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.006430d0
movzx eax, byte [esp + 0x14]
test al, al
je 0x642a53
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
xor ecx, ecx
jmp 0x642b5f
mov ecx, dword [esp + 0x10]
test ecx, ecx
jne 0x642780
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x78]
jmp 0x64264f
mov ebx, dword [esp + 0x64]
add ebx, 0xffffffff
mov ebp, dword [esp + 0x60]
adc ebp, 0xffffffff
test ebp, ebp
jl 0x642c8b
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x80], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
lea eax, [0x73a512]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
call fcn.004d5c50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004523c0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x70], ecx
lea edx, [0x722d60]
mov dword [esp], edx
mov ebx, dword [esp + 0x90]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x80]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x4c]
mov dword [esp + 0xc], esi
call fcn.004109f0
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
test ecx, ecx
je 0x642843
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x68]
mov ebp, dword [esp + 0x6c]
jmp 0x642861
mov edx, dword [esp + 0x4c]
mov ebx, edx
sar edx, 0x1f
mov ebp, dword [esp + 0x6c]
sub ebp, ebx
mov esi, dword [esp + 0x68]
sbb esi, edx
add ebp, 0xffffff38
adc esi, 0xffffffff
mov edx, dword [esp + 0x34]
mov edi, edx
sar edx, 0x1f
sub ebp, edi
sbb esi, edx
test esi, esi
jl 0x642c5c
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x68], esi
test ecx, ecx
je 0x64288b
mov edx, dword [esp + 0x44]
jmp 0x642942
mov edx, dword [esp + 0x44]
test edx, edx
je 0x642942
mov eax, dword [esp + 0x78]
mov dword [eax + 4], edi
lea ecx, [edx - 1]
mov dword [esp + 0x40], ecx
neg ecx
sar ecx, 0x1f
and ecx, 8
mov edi, dword [0x995310]
add ecx, eax
mov dword [esp + 0x88], ecx
test edi, edi
je 0x6428d0
call fcn.00468e70
mov ebp, dword [esp + 0x70]
mov dword [edi], ebp
mov esi, dword [eax]
mov dword [edi + 4], esi
mov ecx, dword [esp + 0x70]
mov dword [eax], ecx
lea ecx, [0x722d60]
mov dword [esp], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edx
mov ebp, dword [esp + 0x80]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
call fcn.00411080
mov eax, dword [esp + 0x10]
mov dword [eax + 4], 1
mov dword [eax + 8], 1
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x642920
mov ecx, dword [esp + 0x78]
jmp 0x642930
call fcn.00468e70
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x88]
jmp 0x642a32
mov ebp, dword [eax + 8]
mov eax, dword [eax + 4]
inc eax
cmp ebp, eax
jae 0x64298b
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6f44e0]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ebp
lea esi, [ecx + eax*8 - 4]
mov dword [esi], edi
mov esi, dword [0x995310]
lea edi, [ecx + eax*8 - 8]
test esi, esi
je 0x6429c2
mov esi, edi
call fcn.00468e70
mov edx, dword [esp + 0x70]
mov dword [edi], edx
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov edi, esi
mov eax, dword [esp + 0x70]
mov dword [edi], eax
lea eax, [0x722d60]
mov dword [esp], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
call fcn.00411080
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x5c]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + 8], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x642a15
mov ecx, dword [esp + 0x88]
jmp 0x642a28
call fcn.00468e70
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov edx, dword [eax]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x54]
test edx, edx
jne 0x642c2b
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
jmp 0x64264f
mov dword [esp], 0
lea eax, [0x744bae]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
call fcn.00452120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xac], ecx
lea ecx, [0x7b154c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
add esp, 0x94
ret
mov dword [esp], 0
lea eax, [0x744bae]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
call fcn.00452120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xac], ecx
lea ecx, [0x7b154c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
add esp, 0x94
ret
mov eax, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ebx
add esp, 0x94
ret
lea ecx, [ebp + 1]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
cmp ecx, edx
jge 0x64275b
movzx ebx, byte [eax + ecx]
mov ebp, ecx
mov ecx, ebx
mov esi, 1
shl esi, cl
lea edi, [ecx - 0x60]
mov ecx, edi
mov eax, 1
shl eax, cl
neg ecx
mov edx, 1
shr edx, cl
cmp bl, 0x20
sbb ebx, ebx
and esi, ebx
xchg edi, eax
cmp al, 0x20
xchg edi, eax
sbb ebx, ebx
and eax, ebx
cmp cl, 0x20
sbb ebx, ebx
and edx, ebx
or edx, eax
test edx, 0x80000000
sete al
test esi, 0xfffffdff
sete dl
and eax, edx
test al, al
jne 0x642b54
mov dword [esp], 0
lea eax, [0x744bae]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1c
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x10], eax
call fcn.00452120
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x90]
mov dword [esp + 0xac], ecx
lea ecx, [0x7b154c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
add esp, 0x94
ret
mov eax, dword [esp + 0x90]
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xb4], eax
add esp, 0x94
ret
mov eax, dword [0x967880]
mov ecx, dword [0x967884]
mov edx, dword [esp + 0x90]
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
add esp, 0x94
ret
mov eax, dword [0x967880]
mov ecx, dword [0x967884]
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
add esp, 0x94
ret
xor eax, eax
mov ecx, eax
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00642480