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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x68]
cmp eax, dword [ecx + 8]
jbe 0x643699
sub esp, 0xe8
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.00465fe2
mov ecx, dword [esp + 0xec]
mov dword [esp], ecx
call fcn.006420d0
mov ecx, dword [esp + 0xec]
movzx edx, byte [ecx + 0x2cc]
test dl, dl
jne 0x6430d1
jmp 0x6430ee
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.00465fe2
mov byte [esp + 0x128], 0
add esp, 0xe8
ret
mov eax, dword [ecx + 0x2bc]
mov edx, dword [ecx + 0x2a8]
mov ebx, dword [ecx + 0x2a4]
cmp edx, eax
je 0x6435ef
jbe 0x643691
imul edx, eax, 0x34
lea esi, [ebx + edx]
lea edi, [esp + 0xb4]
call fcn.0046647e
mov ecx, dword [esp + 0xec]
mov eax, dword [ecx + 0x2c0]
mov edx, dword [esp + 0xb8]
mov ebx, dword [esp + 0xb4]
cmp edx, eax
jne 0x643151
inc dword [ecx + 0x2bc]
mov dword [ecx + 0x2c0], 0
jmp 0x6430ee
jbe 0x64368a
lea eax, [eax + eax*2]
shl eax, 4
lea esi, [ebx + eax]
lea edi, [esp + 0x84]
call fcn.00466488
mov eax, dword [esp + 0xec]
movzx ecx, byte [eax + 0x2b0]
movzx edx, byte [esp + 0xdc]
mov ebx, dword [esp + 0xcc]
mov ebp, dword [eax + 0x2b4]
mov byte [esp], cl
mov byte [esp + 1], dl
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.00643af0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xec]
mov edx, dword [ecx + 0x2bc]
test edx, edx
jne 0x6431cd
mov edx, dword [ecx + 0x2c0]
test edx, edx
jne 0x6431cd
mov edx, dword [esp + 0x90]
test edx, edx
je 0x643204
mov edx, dword [ecx + 0x2c4]
mov ebx, dword [esp + 0x90]
mov ebp, dword [esp + 0x8c]
cmp ebx, edx
jne 0x64325d
inc dword [ecx + 0x2c0]
mov dword [ecx + 0x2c4], 0
mov dword [ecx + 0x2c8], 0
jmp 0x6430ee
mov byte [ecx + 0x2cc], 1
lea edi, [esp + 0xf0]
lea esi, [0x787410]
call fcn.00466474
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xfc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x108], eax
mov byte [esp + 0x128], 1
add esp, 0xe8
ret
mov esi, ebp
movzx ebp, byte [esp + 0xa8]
and ebp, 2
xchg ebp, eax
shr al, 1
xchg ebp, eax
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jne 0x64327e
mov edi, ebx
sub ebx, edx
lea edx, [ebx - 1]
jmp 0x643280
mov edi, ebx
cmp edx, edi
jae 0x643681
imul edx, edx, 0x34
add esi, edx
lea edi, [esp + 0x18]
call fcn.0046647e
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jne 0x6432b5
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0xec]
add dword [edx + 0x2c8], ecx
xchg ebp, eax
cmp al, 1
xchg ebp, eax
jmp 0x6432bc
mov edx, dword [esp + 0xec]
mov ecx, dword [edx + 0x2c8]
jne 0x6432cf
mov ebx, dword [esp + 0xa0]
sub ebx, ecx
jmp 0x6432d1
mov ebx, ecx
mov dword [esp + 0x10], eax
lea edi, [esp + 0x4c]
xor eax, eax
call fcn.00465fe2
mov ecx, dword [esp + 0x18]
mov esi, ebp
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], ebp
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x10]
add ecx, ebp
add ecx, ebx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x28]
mov word [esp + 0x80], cx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edi, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], edx
movzx ecx, byte [esp + 0xb0]
test cl, cl
je 0x64338b
movzx edx, word [esp + 0x82]
or edx, 0x40
mov word [esp + 0x82], dx
inc dword [edi + 0x2c4]
xchg esi, eax
cmp al, 1
xchg esi, eax
je 0x6433a2
mov edx, dword [esp + 0x2c]
add dword [edi + 0x2c8], edx
mov edx, dword [esp + 0x90]
mov ebx, dword [edi + 0x2c4]
cmp ebx, edx
jne 0x6433c8
movzx ebp, word [esp + 0x82]
or ebp, 4
mov word [esp + 0x82], bp
cmp ebx, edx
jne 0x6433e1
mov ebp, dword [esp + 0xb8]
dec ebp
cmp dword [edi + 0x2c0], ebp
xchg ebp, ebx
sete bl
xchg ebp, ebx
jmp 0x6433e3
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x643404
mov ecx, edx
movzx edx, word [esp + 0x82]
or edx, 2
mov word [esp + 0x82], dx
xchg ebp, eax
test al, al
xchg ebp, eax
jmp 0x643406
mov ecx, edx
je 0x64341f
mov edx, dword [edi + 0x2a8]
dec edx
cmp dword [edi + 0x2bc], edx
sete dl
xchg esi, eax
cmp al, 1
xchg esi, eax
jmp 0x643429
xchg esi, eax
cmp al, 1
xchg esi, eax
mov edx, 0
mov ebp, dword [edi + 0x2c4]
jne 0x643443
mov esi, edx
mov edx, dword [esp + 0x90]
sub edx, ebp
lea ebp, [edx - 1]
cmp ebx, ecx
jmp 0x643447
cmp ebx, ecx
mov esi, edx
jne 0x643450
mov edx, 1
jmp 0x64347c
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x90]
mov ebx, dword [esp + 0x8c]
cmp ebp, edx
jae 0x643678
imul edx, ebp, 0x34
mov edx, dword [ebx + edx + 8]
cmp dword [esp + 0x20], edx
setne dl
mov ebx, dword [esp + 0x14]
movzx ebp, byte [esp + 0xb0]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x64348f
cmp ebx, ecx
sete dl
test dl, dl
je 0x6434ca
movzx ecx, word [esp + 0x82]
or ecx, 8
mov word [esp + 0x82], cx
movzx ecx, byte [esp + 0xb0]
test cl, cl
je 0x6434d4
movzx ecx, word [esp + 0x80]
add ecx, dword [edi + 0x2b8]
mov word [esp + 0x80], cx
jmp 0x6434d4
mov word [esp + 0x80], 0
movzx ecx, byte [esp + 0xa8]
and ecx, 2
shr cl, 1
cmp cl, 1
jne 0x6434f9
movzx ecx, word [esp + 0x82]
or ecx, 1
mov word [esp + 0x82], cx
movzx ecx, byte [edi + 0x268]
test cl, cl
je 0x64351e
movzx ecx, word [esp + 0x82]
or ecx, 0x20
mov word [esp + 0x82], cx
mov byte [edi + 0x268], 0
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x6435d0
movzx ecx, word [esp + 0x82]
or ecx, 0x10
mov word [esp + 0x82], cx
mov byte [edi + 0x268], 1
xchg esi, eax
test al, al
xchg esi, eax
je 0x6435d0
lea ecx, [edi + 0x26c]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov ebp, edi
mov edi, ecx
call fcn.00465fe2
mov dword [ebp + 0x280], edx
mov dword [ebp + 0x284], ebx
mov word [ebp + 0x2a2], 0x2e
movzx ecx, byte [ebp + 0x2b0]
movzx edx, byte [esp + 0xdc]
mov ebx, dword [ebp + 0x2b4]
mov byte [esp], cl
mov byte [esp + 1], dl
mov dword [esp + 4], 0
mov dword [esp + 8], ebx
call fcn.00643af0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0xec]
mov dword [edx + 0x274], ecx
mov ecx, dword [esp + 0x64]
add ecx, dword [esp + 0x60]
add ecx, 0x3f
sar ecx, 6
add ecx, dword [esp + 0x58]
mov dword [edx + 0x278], ecx
lea edi, [esp + 0xf0]
lea esi, [esp + 0x4c]
call fcn.00466474
mov byte [esp + 0x128], 1
add esp, 0xe8
ret
movzx edx, byte [ecx + 0x268]
test dl, dl
jne 0x643650
mov edx, dword [ecx + 0x2d0]
test edx, edx
jne 0x643633
mov eax, dword [0x1e84bbc]
mov edx, dword [0x1e84bb8]
mov dword [ecx + 0x2d0], edx
mov edx, dword [0x1eaa9f0]
test edx, edx
jne 0x643628
mov dword [ecx + 0x2d4], eax
jmp 0x643633
lea edi, [ecx + 0x2d4]
call fcn.00465d80
lea edi, [esp + 0xf0]
xor eax, eax
call fcn.00465fe2
mov byte [esp + 0x128], 0
add esp, 0xe8
ret
mov byte [ecx + 0x268], 0
lea esi, [ecx + 0x26c]
lea edi, [esp + 0xf0]
call fcn.00466474
mov byte [esp + 0x128], 1
add esp, 0xe8
ret
mov eax, ebp
mov ecx, edx
call fcn.00465e00
mov eax, edx
mov ecx, edi
call fcn.00465e00
mov ecx, edx
call fcn.00465e00
mov ecx, edx
call fcn.00465e00
nop
call fcn.004649b0
jmp fcn.00643080