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

Disassembly:
mov ecx, dword [0x98cddc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x64675d
sub esp, 0x54
mov eax, dword [esp + 0x64]
test eax, eax
je 0x6462be
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ecx, dword [esp + 0x5c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edx
call fcn.00645e70
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x646296
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x646276
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 0x64624e
mov ebx, dword [esp + 0x58]
mov ebp, dword [ebx]
mov esi, dword [ebp + 0x18]
sub esi, dword [ebp + 0x14]
cmp esi, 1
jle 0x64623f
mov dword [esp], ebp
mov dword [esp + 4], 2
call fcn.004e3370
mov eax, dword [esp + 0xc]
test eax, eax
je 0x64623b
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 0x64622c
xchg esi, eax
cmp al, 0xa
xchg esi, eax
je 0x64622c
cmp eax, 2
jne 0x64623b
cmp byte [ebx], 0xd
jne 0x64623b
cmp byte [ebx + 1], 0xa
jne 0x64623b
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x4c]
xor eax, eax
jmp 0x6466d3
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
xor eax, eax
jmp 0x646319
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 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, [0x7391e1]
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.004d28d0
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 0x64632f
movzx esi, byte [eax + ebp]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x646318
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x646318
mov edx, ecx
jmp 0x646335
mov ecx, esi
cmp ecx, eax
jle 0x646357
lea esi, [ecx - 1]
cmp edx, esi
jbe 0x6466c9
movzx edi, byte [ecx + ebp - 1]
xchg edi, eax
cmp al, 0x20
xchg edi, eax
je 0x646333
xchg edi, eax
cmp al, 9
xchg edi, eax
je 0x646333
mov edx, dword [esp + 0x2c]
cmp ecx, edx
ja 0x6466c4
cmp ecx, eax
jb 0x6466bf
mov esi, dword [ebx + 0x10]
sub ecx, eax
sub edx, eax
neg edx
sar edx, 0x1f
and edx, eax
mov eax, dword [ebx + 8]
add edx, ebp
cmp esi, ecx
jb 0x646386
mov ebp, ecx
jmp 0x6463c0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x50], eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.00472440
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 [0x98d0b8]
test edx, edx
jne 0x6463fe
mov edx, dword [esp + 0x50]
jmp 0x64640f
call fcn.00471ac0
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 0x646426
mov edx, 0x7fffffff
mov ebx, 0xffffffff
jmp 0x64642a
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 0x646440
mov dword [ecx + 8], eax
mov dword [esp], ecx
call fcn.00646770
mov eax, dword [esp + 4]
test eax, eax
jle 0x646636
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 0x6464b9
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x6e06e0]
mov dword [esp + 0x10], eax
call fcn.0046cad0
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 [0x98d0b8]
test eax, eax
je 0x6464b2
call fcn.00471ac0
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
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [esp + 0x38]
cmp edi, edx
setbe cl
and ebp, ecx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
jne 0x646606
mov dword [esp], eax
sub edi, edx
mov dword [esp + 4], edi
mov edx, dword [esp + 0x30]
sbb ebx, edx
mov dword [esp + 8], ebx
call fcn.00645e70
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x646636
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
xor eax, eax
jmp 0x646664
mov edx, ecx
jmp 0x646685
mov edx, dword [esp + 0x14]
cmp ecx, edx
ja 0x6466b1
cmp ecx, eax
jb 0x6466ac
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 edx, eax
mov eax, dword [ebp + 8]
add edx, ebx
cmp esi, ecx
jae 0x6465a8
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
lea ecx, [0x6e06e0]
mov dword [esp + 0x10], ecx
call fcn.0046cad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
mov dword [esp + 0x40], esi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x50], eax
lea ebx, [eax + edi]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], edx
call fcn.00472440
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x58]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 0x10], eax
mov eax, dword [0x98d0b8]
test eax, eax
jne 0x6465f0
mov eax, dword [esp + 0x50]
jmp 0x64643d
call fcn.00471ac0
mov eax, dword [esp + 0x50]
mov dword [edi], eax
mov edx, dword [ecx + 8]
mov dword [edi + 4], edx
jmp 0x64643d
mov eax, dword [0x960468]
mov ecx, dword [0x96046c]
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 0x64652b
movzx ebp, byte [eax + ebx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x646663
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x646663
jmp 0x64652b
mov ecx, ebp
cmp ecx, eax
jle 0x646532
lea ebp, [ecx - 1]
cmp edx, ebp
jbe 0x6466b6
movzx esi, byte [ecx + ebx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x646683
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x646683
jmp 0x646532
call fcn.00471b90
call fcn.00471b70
mov eax, ebp
mov ecx, edx
call fcn.00471b30
call fcn.00471b90
call fcn.00471b70
mov eax, esi
mov ecx, edx
call fcn.00471b30
inc eax
cmp eax, ecx
jge 0x6466e9
movzx ebp, byte [eax + ebx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
je 0x6466d2
xchg ebp, eax
cmp al, 9
xchg ebp, eax
je 0x6466d2
mov edx, ecx
jmp 0x6466ef
mov ecx, ebp
cmp ecx, eax
jle 0x64670d
lea ebp, [ecx - 1]
cmp edx, ebp
jbe 0x646753
movzx esi, byte [ecx + ebx - 1]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x6466ed
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x6466ed
mov edx, dword [esp + 0x2c]
cmp ecx, edx
ja 0x64674e
cmp ecx, eax
jb 0x646749
sub edx, eax
sub ecx, eax
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, eax
lea eax, [ebx + edx]
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.00471b90
call fcn.00471b70
mov eax, ebp
mov ecx, edx
call fcn.00471b30
nop
call fcn.004706b0
jmp fcn.00646150