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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x641f88
sub esp, 0x54
mov eax, dword [esp + 0x64]
test eax, eax
je 0x641ae6
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 8], ecx
mov edx, dword [esp + 0x5c]
mov dword [esp + 4], edx
call fcn.006416b0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x641aba
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x641a9a
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x64]
mov ebp, dword [edx]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call ebp
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x641a6e
mov ebx, dword [esp + 0x58]
mov ebp, dword [ebx]
mov esi, dword [ebp + 0x18]
sub esi, dword [ebp + 0x14]
cmp esi, 1
jle 0x641a5f
mov dword [esp], ebp
mov dword [esp + 4], 2
call fcn.0063a8e0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x641a5b
mov ebx, dword [esp + 8]
movzx ebp, byte [ebx]
mov esi, ebp
or ebp, 0x20
add ebp, 0xffffff9f
xchg ebp, eax
cmp al, 0x19
xchg ebp, eax
jbe 0x641a4c
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x641a4c
cmp eax, 2
jne 0x641a5b
cmp byte [ebx], 0xd
jne 0x641a5b
cmp byte [ebx + 1], 0xa
jne 0x641a5b
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
xor eax, eax
jmp 0x641eff
mov ebx, dword [esp + 0x58]
mov ecx, dword [esp + 0x28]
mov ebp, dword [esp + 0x4c]
xor eax, eax
jmp 0x641b41
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
lea eax, [0x745d58]
mov dword [esp], eax
mov dword [esp + 4], 0x1e
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004c1f50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
inc eax
cmp eax, ecx
jge 0x641b57
movzx esi, byte [eax + ebp]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x641b40
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x641b40
mov edx, ecx
jmp 0x641b5d
mov ecx, esi
cmp ecx, eax
jle 0x641b7f
lea esi, [ecx - 1]
cmp edx, esi
jbe 0x641ef5
movzx edi, byte [ecx + ebp - 1]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
je 0x641b5b
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x641b5b
mov edx, dword [esp + 0x2c]
cmp ecx, edx
ja 0x641ef0
cmp ecx, eax
jb 0x641eeb
mov esi, dword [ebx + 0x10]
sub ecx, eax
sub edx, eax
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [ebx + 8]
add eax, ebp
cmp esi, ecx
jb 0x641bae
mov ebp, ecx
jmp 0x641be8
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ecx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call fcn.004697f0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0xc], eax
mov edx, dword [esp + 0x40]
mov dword [ecx + 0x10], edx
mov edx, dword [0x995310]
test edx, edx
jne 0x641c26
mov edx, dword [esp + 0x50]
jmp 0x641c37
call fcn.00468e70
mov edx, dword [esp + 0x50]
mov dword [edi], edx
mov ebx, dword [ecx + 8]
mov dword [edi + 4], ebx
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x60]
test edx, edx
jge 0x641c4e
mov edx, 0x7fffffff
mov ebx, 0xffffffff
jmp 0x641c56
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x5c]
mov ebp, eax
sar eax, 0x1f
sub ebx, ebp
mov dword [esp + 0x38], ebx
sbb edx, eax
mov dword [esp + 0x34], edx
jmp 0x641c6c
mov dword [ecx + 8], eax
mov dword [esp], ecx
call fcn.00641fa0
mov eax, dword [esp + 4]
test eax, eax
jle 0x641e62
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0xc]
inc edx
mov ebx, dword [eax + 8]
cmp ecx, edx
jae 0x641ce5
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x58]
mov dword [ebx + 0x10], eax
mov eax, dword [0x995310]
test eax, eax
je 0x641cde
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [ebx + 8]
mov dword [edi + 4], eax
mov dword [ebx + 8], ecx
mov eax, ebx
mov ebx, ecx
mov dword [eax + 0xc], edx
mov byte [edx + ebx - 1], 0x20
mov ecx, dword [eax + 0xc]
mov edx, ecx
sar ecx, 0x1f
mov dword [esp + 0x30], ecx
mov ebx, dword [esp + 0x34]
cmp ecx, ebx
xchg ebp, ebx
setg bl
xchg ebp, ebx
xchg esi, ebx
sete bl
xchg esi, ebx
mov edi, dword [esp + 0x38]
cmp edi, edx
setbe cl
and esi, ecx
or ebp, esi
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x641e32
mov dword [esp], eax
sub edi, edx
mov edx, dword [esp + 0x30]
sbb ebx, edx
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
call fcn.006416b0
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x641e62
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
xor eax, eax
jmp 0x641e90
mov edx, ecx
jmp 0x641eb1
mov edx, dword [esp + 0x14]
cmp ecx, edx
ja 0x641edd
cmp ecx, eax
jb 0x641ed8
mov ebp, dword [esp + 0x58]
mov esi, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
sub ecx, eax
mov dword [esp + 0x20], ecx
add ecx, edi
sub edx, eax
neg edx
sar edx, 0x1f
and eax, edx
mov edx, dword [ebp + 8]
add eax, ebx
cmp esi, ecx
jae 0x641dd4
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], eax
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
lea ecx, [0x6f4820]
mov dword [esp + 0x10], ecx
call fcn.0044e6e0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
mov dword [esp + 0x50], edx
mov dword [esp + 0x3c], esi
lea ebx, [edx + edi]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 8], eax
call fcn.004697f0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [ecx + 0x10], eax
mov eax, dword [0x995310]
test eax, eax
jne 0x641e1c
mov eax, dword [esp + 0x50]
jmp 0x641c69
call fcn.00468e70
mov eax, dword [esp + 0x50]
mov dword [edi], eax
mov edx, dword [ecx + 8]
mov dword [edi + 4], edx
jmp 0x641c69
mov eax, dword [0x967880]
mov ecx, dword [0x967884]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
add esp, 0x54
ret
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
inc eax
cmp eax, ecx
jge 0x641d57
movzx ebp, byte [eax + ebx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x641e8f
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x641e8f
jmp 0x641d57
mov ecx, ebp
cmp ecx, eax
jle 0x641d5e
lea ebp, [ecx - 1]
cmp edx, ebp
jbe 0x641ee2
movzx esi, byte [ecx + ebx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x641eaf
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x641eaf
jmp 0x641d5e
call fcn.00468f30
call fcn.00468f10
mov eax, ebp
mov ecx, edx
call fcn.00468ed0
call fcn.00468f30
call fcn.00468f10
mov eax, esi
mov ecx, edx
call fcn.00468ed0
inc eax
cmp eax, ecx
jge 0x641f15
movzx ebp, byte [eax + ebx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x641efe
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x641efe
mov edx, ecx
jmp 0x641f1b
mov ecx, ebp
cmp ecx, eax
jle 0x641f39
lea ebp, [ecx - 1]
cmp edx, ebp
jbe 0x641f7e
movzx esi, byte [ecx + ebx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x641f19
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x641f19
mov edx, dword [esp + 0x2c]
cmp ecx, edx
ja 0x641f79
cmp ecx, eax
jb 0x641f74
sub edx, eax
sub ecx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, ebx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
add esp, 0x54
ret
call fcn.00468f30
call fcn.00468f10
mov eax, ebp
mov ecx, edx
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00641970