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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x666691
sub esp, 0x5c
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x665ca7
mov ecx, dword [esp + 0x6c]
jmp 0x665cb6
cmp eax, 2
jle 0x665d1d
mov ecx, dword [esp + 0x6c]
cmp byte [ecx + 1], 0x3a
je 0x665d11
mov edx, dword [esp + 0x68]
cmp edx, 1
jb 0x665cc5
mov ebx, dword [esp + 0x60]
jmp 0x665d07
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 0
mov dword [esp + 0xc], 1
lea eax, [0x7347e0]
mov dword [esp + 0x10], eax
call fcn.00442820
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov ebx, eax
mov edx, ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x6c]
mov byte [ebx], 0x2f
mov ebp, 1
jmp 0x665d2b
mov edx, dword [esp + 0x68]
xor ebp, ebp
mov ebx, dword [esp + 0x60]
jmp 0x665d2b
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
xor ebp, ebp
mov ebx, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x14], eax
call fcn.00649370
mov eax, dword [esp + 0x20]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x1c]
mov ebx, edx
jmp 0x665d72
mov ebp, dword [esp + 0x34]
dec ebp
mov eax, ebx
mov ebx, ebp
mov esi, edx
mov edx, ecx
mov ecx, esi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x34], ebx
mov ebp, dword [0x707748]
mov esi, dword [0x70774c]
mov edi, dword [0x707750]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
call fcn.0046f760
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x665e3c
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jb 0x66668b
sub ecx, eax
mov edx, dword [esp + 0x4c]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x58]
add edx, ebp
cmp ecx, 1
jb 0x66667f
lea eax, [ebx - 1]
neg eax
sar eax, 0x1f
and eax, 1
lea ebp, [eax + edx]
lea esi, [ecx - 1]
cmp ecx, esi
jle 0x665e01
mov ecx, esi
jmp 0x665e07
mov edi, ecx
mov ecx, esi
mov esi, edi
test eax, eax
je 0x665d63
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0x48], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00457450
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x4c]
jmp 0x665d63
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
cmp ecx, edx
jbe 0x665e4f
jmp 0x66667a
mov edx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [0x707938]
mov ebx, dword [0x70793c]
mov ebp, dword [0x707940]
mov esi, dword [esp + 0x50]
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
call fcn.0046f760
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x665f2d
mov ebx, dword [0x70793c]
lea ebp, [ebx + eax]
lea ebx, [ebx + eax - 1]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jb 0x666675
mov esi, ecx
sub ecx, eax
mov edx, dword [esp + 0x28]
sub edx, eax
neg edx
sar edx, 0x1f
and edx, eax
mov edi, dword [esp + 0x50]
add edi, edx
cmp esi, ebx
jb 0x66666c
sub esi, ebp
mov edx, dword [esp + 0x28]
sub edx, ebp
lea ebp, [edx + 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x50]
add ebp, ebx
mov edx, ebx
lea ebx, [esi + 1]
cmp ecx, ebx
jg 0x665ef0
mov ebx, ecx
cmp ebp, edi
je 0x665f18
mov dword [esp + 0x30], eax
mov dword [esp + 0x4c], esi
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
lea ecx, [esi + eax + 1]
mov eax, dword [esp + 0x28]
cmp eax, ecx
jae 0x665e4d
jmp 0x666665
mov eax, dword [esp + 0x24]
jmp 0x665f35
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [0x7078a8]
mov edx, dword [0x7078ac]
mov ebx, dword [0x7078b0]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046f760
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x66602d
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x666660
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0x50]
jmp 0x66662c
mov ebx, 0xffffffff
test ebx, ebx
jge 0x665f9e
xor ebx, ebx
mov esi, dword [0x7078ac]
lea eax, [esi + ecx - 1]
add esi, ecx
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
ja 0x666652
mov dword [esp + 0x40], ebx
mov edi, ecx
sub ecx, ebx
sub edx, ebx
neg edx
sar edx, 0x1f
and edx, ebx
lea ebx, [ebp + edx]
cmp edi, eax
jb 0x66664b
sub edi, esi
mov edx, dword [esp + 0x28]
sub edx, esi
lea esi, [edx + 1]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
add eax, ebp
lea esi, [edi + 1]
cmp ecx, esi
jg 0x665ff4
mov esi, ecx
cmp eax, ebx
je 0x666014
mov dword [esp + 0x4c], edi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00457450
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
lea ecx, [edi + eax + 1]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jae 0x665f33
jmp 0x666646
mov eax, dword [0x707738]
mov ecx, dword [0x70773c]
mov edx, dword [0x707740]
mov ebx, dword [esp + 0x50]
mov dword [esp], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0046f480
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x666097
mov ebx, dword [0x70773c]
add ebx, ecx
mov ebp, dword [esp + 0x24]
cmp ebp, ebx
jne 0x666097
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x666626
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0x50]
jmp 0x66655d
mov eax, dword [esp + 0x34]
jmp 0x66609f
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [0x707838]
mov edx, dword [0x70783c]
mov ebx, dword [0x707840]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046f760
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x666181
mov ebx, dword [0x70793c]
lea ebp, [ebx + eax]
lea ebx, [ebx + eax - 1]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jb 0x666557
mov esi, ecx
sub ecx, eax
mov edx, dword [esp + 0x28]
sub edx, eax
neg edx
sar edx, 0x1f
and edx, eax
mov edi, dword [esp + 0x50]
add edi, edx
cmp esi, ebx
jb 0x66654e
sub esi, ebp
mov edx, dword [esp + 0x28]
sub edx, ebp
lea ebp, [edx + 1]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ebx
mov ebx, dword [esp + 0x50]
add ebp, ebx
mov edx, ebx
lea ebx, [esi + 1]
cmp ecx, ebx
jg 0x666144
mov ebx, ecx
cmp ebp, edi
je 0x66616c
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], esi
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
mov esi, dword [esp + 0x4c]
lea ecx, [esi + eax + 1]
mov eax, dword [esp + 0x28]
cmp eax, ecx
jae 0x66609d
jmp 0x666547
mov eax, dword [esp + 0x24]
jmp 0x666189
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [0x707808]
mov edx, dword [0x70780c]
mov ebx, dword [0x707810]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046f760
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x666280
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x666542
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0x50]
jmp 0x66650f
mov ebx, 0xffffffff
test ebx, ebx
jge 0x6661f2
xor ebx, ebx
mov esi, dword [0x70780c]
lea eax, [esi + ecx - 1]
add esi, ecx
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
ja 0x666534
mov dword [esp + 0x3c], ebx
mov edi, ecx
sub ecx, ebx
sub edx, ebx
neg edx
sar edx, 0x1f
and edx, ebx
lea ebx, [edx + ebp]
cmp edi, eax
jb 0x66652d
sub edi, esi
mov edx, dword [esp + 0x28]
sub edx, esi
lea esi, [edx + 1]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
add eax, ebp
lea esi, [edi + 1]
cmp ecx, esi
jg 0x666247
mov esi, ecx
cmp eax, ebx
je 0x666267
mov dword [esp + 0x4c], edi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00457450
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x3c]
lea ecx, [edi + eax + 1]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jae 0x666187
jmp 0x666528
mov eax, dword [esp + 0x24]
jmp 0x666288
mov eax, ecx
mov dword [esp + 0x24], eax
mov ecx, dword [0x707758]
mov edx, dword [0x70775c]
mov ebx, dword [0x707760]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ebx
call fcn.0046f760
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x66637f
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x666509
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0x50]
jmp 0x6664d6
mov ebx, 0xffffffff
test ebx, ebx
jge 0x6662f1
xor ebx, ebx
mov esi, dword [0x70775c]
lea eax, [esi + ecx - 1]
add esi, ecx
mov ecx, dword [esp + 0x24]
cmp ebx, ecx
ja 0x6664fb
mov dword [esp + 0x38], ebx
mov edi, ecx
sub ecx, ebx
sub edx, ebx
neg edx
sar edx, 0x1f
and edx, ebx
lea ebx, [edx + ebp]
cmp edi, eax
jb 0x6664f4
sub edi, esi
mov edx, dword [esp + 0x28]
sub edx, esi
lea esi, [edx + 1]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
add eax, ebp
lea esi, [edi + 1]
cmp ecx, esi
jg 0x666346
mov esi, ecx
cmp eax, ebx
je 0x666366
mov dword [esp + 0x4c], edi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], esi
call fcn.00457450
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x38]
lea ecx, [edi + eax + 1]
mov edx, dword [esp + 0x28]
cmp edx, ecx
jae 0x666286
jmp 0x6664ef
mov eax, dword [0x707728]
mov ecx, dword [0x70772c]
mov edx, dword [0x707730]
mov ebx, dword [esp + 0x50]
mov dword [esp], ebx
mov ebp, dword [esp + 0x24]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x28]
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call fcn.0046f480
mov ecx, dword [esp + 0x18]
test ecx, ecx
jl 0x6663e6
mov ebx, dword [0x70773c]
add ebx, ecx
mov ebp, dword [esp + 0x24]
cmp ebp, ebx
jne 0x6663ea
mov edx, dword [esp + 0x28]
cmp ecx, edx
ja 0x6664d0
lea ebx, [ecx - 1]
mov ebp, dword [esp + 0x50]
jmp 0x666406
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], ebp
mov eax, dword [esp + 0x28]
mov dword [esp + 0x80], eax
add esp, 0x5c
ret
dec ebx
test ebx, ebx
jl 0x66641c
cmp ebx, ecx
jae 0x6664c9
lea esi, [ebx + ebp]
cmp byte [esi], 0x2f
jne 0x666405
jmp 0x666421
mov ebx, 0xffffffff
test ebx, ebx
jge 0x6664b6
mov eax, dword [0x7077dc]
cmp edx, eax
jb 0x666437
mov ecx, eax
jmp 0x66646b
mov dword [esp + 0x44], eax
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x7347e0]
mov dword [esp + 0x10], ecx
call fcn.00442820
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x58], ebp
mov ebx, dword [0x7077dc]
sub ecx, ebx
mov esi, dword [0x7077d8]
add ecx, ebp
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x80], eax
add esp, 0x5c
ret
lea ecx, [ebx + 1]
cmp edx, ecx
jb 0x6664c4
mov ebp, ecx
jmp 0x6663ea
call fcn.00456b80
mov eax, ebx
call fcn.00456b40
call fcn.00456b80
dec ebx
test ebx, ebx
jl 0x6662e6
cmp ebx, ecx
jae 0x666502
lea esi, [ebx + ebp]
cmp byte [esi], 0x2f
jne 0x6664d5
jmp 0x6662eb
call fcn.00456b80
mov ecx, edi
call fcn.00456ba0
mov eax, ebx
call fcn.00456ba0
mov eax, ebx
call fcn.00456b40
call fcn.00456b80
dec ebx
test ebx, ebx
jl 0x6661e7
cmp ebx, ecx
jae 0x66653b
lea esi, [ebx + ebp]
cmp byte [esi], 0x2f
jne 0x66650e
jmp 0x6661ec
call fcn.00456b80
mov ecx, edi
call fcn.00456ba0
mov eax, ebx
call fcn.00456ba0
mov eax, ebx
call fcn.00456b40
call fcn.00456b80
mov edx, eax
call fcn.00456b80
mov eax, ebx
mov ecx, esi
call fcn.00456ba0
call fcn.00456ba0
dec ebx
test ebx, ebx
jl 0x666574
cmp ebx, ecx
jae 0x66661f
lea esi, [ebp + ebx]
cmp byte [esi], 0x2f
jne 0x66655c
jmp 0x666579
mov ebx, 0xffffffff
test ebx, ebx
jl 0x66658d
lea ecx, [ebx + 1]
cmp edx, ecx
jae 0x666097
jmp 0x66661a
mov eax, dword [0x7077dc]
cmp eax, edx
ja 0x66659b
mov ecx, eax
jmp 0x6665cf
mov dword [esp + 0x44], eax
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea ecx, [0x7347e0]
mov dword [esp + 0x10], ecx
call fcn.00442820
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x58], ebp
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], eax
mov ebx, dword [0x7077dc]
sub ecx, ebx
add ecx, ebp
mov esi, dword [0x7077d8]
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.00457450
mov eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x80], eax
add esp, 0x5c
ret
call fcn.00456b80
mov eax, ebx
call fcn.00456b40
call fcn.00456b80
dec ebx
test ebx, ebx
jl 0x665f93
cmp ebx, ecx
jae 0x666659
lea esi, [ebp + ebx]
cmp byte [esi], 0x2f
jne 0x66662b
jmp 0x665f98
call fcn.00456b80
mov ecx, edi
call fcn.00456ba0
mov eax, ebx
call fcn.00456ba0
mov eax, ebx
call fcn.00456b40
call fcn.00456b80
mov edx, eax
call fcn.00456b80
mov eax, ebx
mov ecx, esi
call fcn.00456ba0
call fcn.00456ba0
call fcn.00456b80
mov eax, 1
xor ecx, ecx
call fcn.00456ba0
call fcn.00456ba0
nop
call fcn.00455690
jmp fcn.00665c80