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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x665311
add esp, 0xffffff80
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x664bf9
mov edx, dword [esp + 0x84]
cmp byte [edx], 0x5b
jne 0x664c00
nop
lea ebx, [ecx - 1]
jmp 0x664e12
mov edx, dword [esp + 0x84]
lea ebx, [ecx - 1]
jmp 0x664c06
dec ebx
test ebx, ebx
jl 0x664c1d
cmp ecx, ebx
jbe 0x664e0a
lea ebp, [ebx + edx]
cmp byte [ebp], 0x3a
jne 0x664c05
jmp 0x664c22
mov ebx, 0xffffffff
cmp ebx, 0xffffffff
je 0x664c85
cmp ecx, ebx
jb 0x664e03
mov eax, ecx
sub ecx, ebx
mov ebp, dword [esp + 0x8c]
mov esi, ebp
sub ebp, ebx
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
add ebx, edx
test ecx, ecx
je 0x664d22
cmp byte [ebx], 0x3a
jne 0x664d29
lea ebp, [edi - 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 1
add ebp, ebx
lea esi, [ecx - 1]
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x5c]
jmp 0x664dd7
mov dword [esp], edx
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x8c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call fcn.006654f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
test eax, eax
je 0x664cf3
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebp
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
sub esp, 0xffffff80
ret
mov ecx, eax
jmp 0x664c85
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call fcn.00409120
mov eax, dword [esp + 0xc]
lea ecx, [0x72cfa0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x7715a9]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a4ad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
sub esp, 0xffffff80
ret
inc eax
mov edx, dword [esp + 0x84]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x88]
mov eax, dword [esp + 0x50]
cmp eax, esi
jge 0x664df0
movzx edx, byte [eax + ebp]
add edx, 0xffffffd0
cmp dl, 9
jbe 0x664dc4
jmp 0x664d29
mov eax, dword [esp + 0x88]
mov esi, dword [esp + 0x8c]
jmp 0x664d22
mov eax, ebx
call fcn.00456ba0
mov eax, ebx
call fcn.00456b40
dec ebx
test ebx, ebx
jl 0x664e29
cmp ecx, ebx
jbe 0x665309
lea ebp, [ebx + edx]
cmp byte [ebp], 0x5d
jne 0x664e11
jmp 0x664e2e
mov ebx, 0xffffffff
test ebx, ebx
jl 0x664e9f
lea eax, [ebx + 1]
cmp ecx, eax
jb 0x665304
mov ebp, dword [esp + 0x8c]
mov esi, ebp
sub ebp, ebx
mov dword [esp + 0x50], ebp
sub ecx, ebx
mov dword [esp + 0x4c], ecx
lea edi, [ebp - 1]
mov dword [esp + 0x38], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and eax, edi
add eax, edx
cmp ecx, 1
je 0x664ef9
cmp byte [eax], 0x3a
jne 0x66522f
lea edi, [ebp - 2]
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 1
add edi, eax
lea ebp, [ecx - 2]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x54]
jmp 0x6652e1
lea eax, [0x73caa0]
mov dword [esp], eax
call fcn.0040b440
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x76de2b]
mov dword [eax], ecx
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
lea ecx, [0x7ca6cc]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
sub esp, 0xffffff80
ret
mov dword [esp + 0x28], ebx
mov word [esp + 0x25], 0x3225
mov byte [esp + 0x27], 0x35
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
lea eax, [esp + 0x25]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 3
call fcn.0046f760
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x665212
mov edx, dword [esp + 0x8c]
cmp edx, ecx
jb 0x66522a
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call fcn.006654f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x6651df
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
cmp ecx, eax
jb 0x665225
mov dword [esp + 0x68], ebp
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ebx
mov edx, dword [esp + 0x8c]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x84]
add edx, ebp
mov dword [esp], edx
sub ecx, eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 2
call fcn.006654f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
test eax, eax
jne 0x6651ac
mov dword [esp + 0x64], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], ebp
mov eax, dword [esp + 0x50]
mov ecx, eax
neg eax
sar eax, 0x1f
mov edx, dword [esp + 0x28]
and edx, eax
mov eax, dword [esp + 0x84]
add eax, edx
mov dword [esp], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
call fcn.006654f0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
test eax, eax
jne 0x665179
mov eax, dword [esp + 0x30]
lea ecx, [eax + ebx]
mov edx, dword [esp + 0x34]
cmp edx, ecx
jb 0x665073
mov edx, dword [esp + 0x64]
jmp 0x6650b3
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x44], ebx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x6c]
mov edx, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x74], edx
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
lea edx, [ecx + eax]
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jb 0x6650e6
mov ebp, dword [esp + 0x68]
jmp 0x66511c
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], edx
add eax, ebp
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00457450
mov eax, dword [esp + 0x70]
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
sub esp, 0xffffff80
ret
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
sub esp, 0xffffff80
ret
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
jmp 0x664c85
call fcn.00456ba0
call fcn.00456b80
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov dword [esp], eax
lea eax, [ecx - 1]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
call fcn.00409120
mov eax, dword [esp + 0xc]
lea ecx, [0x72cfa0]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
lea eax, [0x7715a9]
mov dword [esp], eax
mov dword [esp + 4], 0x1a
lea eax, [esp + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004a4ad0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], ecx
sub esp, 0xffffff80
ret
inc ecx
mov esi, dword [esp + 0x8c]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
cmp ecx, ebp
jge 0x664ef9
movzx esi, byte [ecx + edi]
add esi, 0xffffffd0
xchg esi, eax
cmp al, 9
xchg esi, eax
jbe 0x6652d1
mov ecx, dword [esp + 0x4c]
jmp 0x66522f
call fcn.00456ba0
mov eax, ebx
call fcn.00456b40
nop
call fcn.00455690
jmp fcn.00664bc0