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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x646df1
sub esp, 0x6c
lea eax, [0x7ef880]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
lea eax, [0x8033d5]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 6
call fcn.00410c40
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test ecx, ecx
je 0x646dad
mov dword [esp + 0x34], ecx
mov dword [esp + 0x5c], eax
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
lea ecx, [0x8016c2]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
call fcn.004eb3a0
mov eax, dword [esp + 0x10]
lea ecx, [0x7a9c80]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov edx, dword [esp + 0x34]
add eax, edx
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.0044a490
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
xor ebp, ebp
xor esi, esi
jmp 0x646d85
dec edi
mov edx, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
add ecx, edi
mov edi, edx
mov edx, dword [esp + 0x34]
test edi, edi
jle 0x646973
movzx edx, byte [ecx]
cmp dl, 0x20
je 0x64693e
cmp dl, 9
je 0x64693e
cmp dl, 0xa
je 0x64693e
cmp dl, 0xd
je 0x64693e
jmp 0x646973
dec edi
test edi, edi
jle 0x646990
movzx edx, byte [ecx + edi - 1]
cmp dl, 0x20
je 0x646972
cmp dl, 9
je 0x646972
cmp dl, 0xa
je 0x646972
cmp dl, 0xd
je 0x646972
mov dword [esp + 0x48], ebp
jmp 0x646a12
dec ecx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add edx, ecx
mov ecx, ebp
test ecx, ecx
jle 0x6469cb
movzx ebp, byte [edx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x646996
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x646996
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x646996
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x646996
jmp 0x6469cb
dec ecx
test ecx, ecx
jle 0x6469f2
movzx ebp, byte [edx + ecx - 1]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x6469ca
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x6469ca
xchg ebp, eax
cmp al, 0xa
xchg ebp, eax
je 0x6469ca
xchg ebp, eax
cmp al, 0xd
xchg ebp, eax
je 0x6469ca
test ecx, ecx
jne 0x646a86
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x64]
mov edi, ebx
mov esi, edx
mov ebx, ecx
mov ecx, eax
mov eax, ebp
mov ebp, dword [esp + 0x48]
test edi, edi
jle 0x646d7c
mov dword [esp + 0x2c], edi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x64], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x44], ebx
mov dword [esp], ecx
mov dword [esp + 4], edi
lea eax, [0x8016c2]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004ee3f0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jle 0x646d6b
mov edx, dword [esp + 0x2c]
cmp edx, ecx
jb 0x646deb
lea eax, [ecx + 1]
cmp edx, eax
jb 0x646de4
sub edx, ecx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x58]
add eax, edx
jmp 0x6469a5
mov dword [esp + 0x30], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x60], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
lea eax, [0x8016c4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.004ee3f0
mov ecx, dword [esp + 0x10]
test ecx, ecx
jl 0x646d5a
mov edx, dword [esp + 0x30]
cmp edx, ecx
jb 0x646ddf
lea eax, [ecx + 1]
cmp edx, eax
jb 0x646dd8
sub edx, ecx
dec edx
mov ebx, edx
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [esp + 0x50]
lea ebp, [edx + eax]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x54], ebp
test ecx, ecx
jne 0x646d21
xor eax, eax
test al, al
je 0x646d08
mov esi, dword [esp + 0x78]
test esi, esi
je 0x646d01
cmp ecx, esi
je 0x646ccc
mov eax, 1
test al, al
je 0x646b3e
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x64]
jmp 0x646a04
cmp ebx, 1
jle 0x646cc5
cmp byte [ebp], 0x22
jne 0x646cc5
lea edi, [ebx + ebp - 1]
cmp byte [edi], 0x22
jne 0x646cc5
add ebx, 0xfffffffe
mov edi, ebx
neg ebx
sar ebx, 0x1f
and ebx, 1
add ebp, ebx
xor eax, eax
jmp 0x646b76
inc eax
mov esi, dword [esp + 0x78]
cmp eax, edi
jge 0x646cb7
jae 0x646dd1
movzx ebx, byte [ebp + eax]
lea esi, [ebx - 0x20]
xchg esi, eax
cmp al, 0x5f
xchg esi, eax
jae 0x646ba2
cmp bl, 0x22
je 0x646ba2
cmp bl, 0x3b
je 0x646ba2
cmp bl, 0x5c
jne 0x646b71
xor eax, eax
xor ebx, ebx
xor ebp, ebp
test al, al
jne 0x646bc5
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x64]
jmp 0x646a04
mov dword [esp + 0x20], ebp
mov dword [esp + 0x4c], ebx
lea eax, [0x7e72e0]
mov dword [esp], eax
call fcn.0040c160
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x24]
mov dword [eax + 4], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x646ca5
mov ecx, dword [esp + 0x50]
mov dword [eax], ecx
mov ecx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov ecx, dword [0xaec8c0]
test ecx, ecx
jne 0x646c90
mov ecx, dword [esp + 0x4c]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x3c]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x44]
cmp ebx, edx
jb 0x646c51
mov ebp, dword [esp + 0x64]
mov esi, dword [0xaec8c0]
lea edi, [ebp + ecx*4]
test esi, esi
jne 0x646c4a
mov dword [ebp + ecx*4], eax
mov eax, dword [esp + 0x60]
mov ecx, ebx
mov ebx, dword [esp + 0x38]
jmp 0x646a04
call fcn.00466130
jmp 0x646c3b
mov dword [esp + 0x68], eax
lea eax, [0x7a9c80]
mov dword [esp], eax
mov ebp, dword [esp + 0x64]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044a600
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x3c]
jmp 0x646c29
lea edi, [eax + 8]
mov ecx, eax
mov eax, dword [esp + 0x4c]
call fcn.00466130
mov eax, ecx
jmp 0x646c16
mov edi, eax
mov eax, dword [esp + 0x50]
call fcn.00466130
mov eax, edi
jmp 0x646bfa
mov eax, 1
mov ebx, ebp
mov ebp, edi
jmp 0x646ba8
mov edi, ebx
jmp 0x646b6d
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call fcn.004028f0
movzx eax, byte [esp + 0xc]
xor eax, 1
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x54]
mov esi, dword [esp + 0x78]
jmp 0x646b21
xor eax, eax
jmp 0x646b21
mov eax, dword [esp + 0x60]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x64]
jmp 0x646a04
mov dword [esp], edx
mov dword [esp + 4], ecx
lea eax, [0x848068]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call fcn.004ed630
mov eax, dword [esp + 0x10]
test eax, eax
setl al
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0x54]
jmp 0x646b00
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x30]
xor ebx, ebx
xor ebp, ebp
jmp 0x646aea
mov edx, dword [esp + 0x58]
xor ebx, ebx
xor eax, eax
mov ecx, dword [esp + 0x2c]
jmp 0x646a81
inc ebp
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x34]
cmp ebp, edx
jge 0x646d97
lea edi, [ecx + ebp*8]
mov ecx, dword [edi]
mov edi, dword [edi + 4]
nop
jmp 0x646955
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ebx
add esp, 0x6c
ret
lea eax, [0xaec640]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
add esp, 0x6c
ret
mov ecx, edi
call fcn.004661b0
mov ecx, edx
call fcn.00466210
call fcn.004661d0
mov ecx, edx
call fcn.00466210
call fcn.004661d0
nop
call fcn.00464bd0
jmp fcn.00646880