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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xc]
cmp eax, dword [ecx + 8]
jbe 0x659e6bb5
sub esp, 0x8c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call fcn.659e6cf0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x94]
cmp ecx, eax
jb 0x659e6baf
mov ebx, ecx
sub ecx, eax
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov esi, dword [esp + 0x90]
mov edx, ebx
lea ebx, [esi + ecx]
test ebp, ebp
je 0x659e6308
movzx ecx, byte [esi + ecx]
cmp cl, 0x5c
jne 0x659e61fe
mov ecx, 1
jmp 0x659e6204
cmp cl, 0x2f
sete cl
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
mov dword [esp + 0x64], ebx
mov byte [esp + 0x26], cl
lea edi, [esp + 0x68]
xor eax, eax
call fcn.659cadc7
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], edx
mov esi, dword [esp + 0x28]
mov dword [esp + 0x88], esi
movzx esi, byte [esp + 0x26]
xchg esi, eax
test al, al
xchg esi, eax
je 0x659e62ff
test ecx, ecx
jne 0x659e62dc
mov edi, dword [esp + 0x68]
test ebp, ebp
jle 0x659e6275
cmp byte [edi], 0x5c
jne 0x659e6275
mov dword [esp + 0x7c], 1
jmp 0x659e62f8
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jb 0x659e6ba6
cmp ebp, ecx
jl 0x659e62b9
mov ebp, ecx
cmp edx, eax
je 0x659e62d1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov ecx, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
mov ebp, ecx
movzx esi, byte [esp + 0x26]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jbe 0x659e6ba1
mov byte [edi + eax], 0x5c
inc dword [esp + 0x7c]
mov eax, 1
jmp 0x659e6301
xor eax, eax
mov ecx, eax
jmp 0x659e63ae
cmp eax, 1
jle 0x659e6369
cmp byte [esi + 1], 0x3a
je 0x659e6369
nop
mov dword [esp], esi
mov dword [esp + 4], edx
lea eax, [0x65a12c97]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x65a12c9d]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.659e5770
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], edx
lea eax, [0x65a12c96]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call fcn.659bc970
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
mov eax, edi
cmp eax, ebp
jge 0x659e67d4
jae 0x659e6b9a
movzx edi, byte [eax + ebx]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x659e63ce
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x659e63d3
lea edi, [eax + 1]
jmp 0x659e63ac
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x659e66d5
mov edx, esi
lea esi, [eax + 1]
cmp ebp, esi
je 0x659e6406
jbe 0x659e6b91
movzx ebx, byte [eax + ebx + 1]
cmp bl, 0x5c
jne 0x659e63fd
mov ebx, dword [esp + 0x64]
jmp 0x659e6406
cmp bl, 0x2f
jne 0x659e640c
mov ebx, dword [esp + 0x64]
mov edi, esi
mov esi, edx
jmp 0x659e63ac
xchg edi, eax
cmp al, 0x2e
xchg edi, eax
jne 0x659e66cd
cmp ebp, esi
jbe 0x659e6b88
mov ebx, dword [esp + 0x64]
lea esi, [eax + ebx + 1]
cmp byte [esi], 0x2e
jne 0x659e66c9
lea esi, [eax + 2]
cmp ebp, esi
je 0x659e6454
jbe 0x659e6b7f
movzx edi, byte [eax + ebx + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x659e6454
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x659e66c5
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jge 0x659e6466
dec edi
mov dword [esp + 0x7c], edi
jmp 0x659e6b24
test dl, dl
je 0x659e6475
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x659e6ac4
mov dword [esp + 0x3c], esi
test edi, edi
jle 0x659e653e
mov eax, ebx
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x659e651e
mov ebx, dword [esp + 0x6c]
mov ecx, ebp
mov ebp, dword [esp + 0x68]
cmp ebx, edi
jle 0x659e64b1
add ebp, edi
cmp byte [ebp], 0x5c
jne 0x659e64b1
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x659e6542
mov dword [esp + 0x38], ebx
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jb 0x659e6b10
cmp ebp, ecx
jl 0x659e64f9
mov ebp, ecx
cmp edx, eax
je 0x659e650d
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov eax, dword [esp + 0x64]
movzx edx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp ecx, edi
jbe 0x659e6b09
mov byte [ebx + edi], 0x5c
inc dword [esp + 0x7c]
mov ecx, ebp
jmp 0x659e6542
mov eax, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x659e65e2
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, ebp
jge 0x659e6575
jae 0x659e6b00
add edi, ebx
cmp byte [edi], 0x2e
jne 0x659e6575
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x659e65ff
mov dword [esp + 0x38], ebp
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x659e6af7
cmp ebp, ecx
jl 0x659e65bd
mov ebp, ecx
cmp edx, eax
je 0x659e65d1
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
movzx edx, byte [esp + 0x26]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp ebx, edi
jbe 0x659e6aee
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x70]
test ebx, ebx
jne 0x659e669f
mov ebx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebp, ebx
jle 0x659e6632
jbe 0x659e6ae5
add edi, ebx
cmp byte [edi], 0x2e
jne 0x659e6632
inc ebx
mov dword [esp + 0x7c], ebx
jmp 0x659e66bc
mov dword [esp + 0x38], ebp
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x659e6adc
cmp ebp, ecx
jl 0x659e667a
mov ebp, ecx
cmp edx, eax
je 0x659e668e
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
movzx edx, byte [esp + 0x26]
mov esi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x70]
mov edi, dword [esp + 0x7c]
cmp edi, ebx
jae 0x659e6ad3
mov byte [ebp + edi], 0x2e
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x7c]
jmp 0x659e6ac4
test dl, dl
jmp 0x659e66db
test dl, dl
jmp 0x659e66db
test dl, dl
mov ebx, dword [esp + 0x64]
jmp 0x659e66db
xchg esi, eax
test al, al
xchg esi, eax
mov edx, esi
mov dword [esp + 0x30], ecx
je 0x659e66f0
cmp dword [esp + 0x7c], 1
jne 0x659e66fc
test dl, dl
jne 0x659e6991
mov esi, dword [esp + 0x7c]
test esi, esi
je 0x659e6991
mov esi, dword [esp + 0x70]
test esi, esi
jne 0x659e67a6
mov dword [esp + 0x2c], eax
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
cmp esi, edi
jge 0x659e6735
jae 0x659e6abb
add ebx, esi
cmp byte [ebx], 0x5c
jne 0x659e6735
lea ebx, [esi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x659e67c2
mov dword [esp + 0x38], edi
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x659e6ab2
cmp ebp, ecx
jl 0x659e677d
mov ebp, ecx
cmp edx, eax
je 0x659e6791
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x7c]
cmp ebx, esi
jae 0x659e6aa9
mov byte [edi + ebx], 0x5c
inc dword [esp + 0x7c]
mov ebx, dword [esp + 0x64]
jmp 0x659e6991
mov esi, edx
mov edi, eax
jmp 0x659e63ac
mov ebx, dword [esp + 0x7c]
test ebx, ebx
jne 0x659e687d
mov ebp, dword [esp + 0x70]
test ebp, ebp
jne 0x659e6861
mov eax, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp eax, ebx
jle 0x659e6805
add ebp, ebx
cmp byte [ebp], 0x2e
jne 0x659e6805
lea eax, [ebx + 1]
mov dword [esp + 0x7c], eax
jmp 0x659e687d
mov dword [esp + 0x40], eax
lea ecx, [0x65a0b040]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
ja 0x659e697f
cmp ebp, ecx
jl 0x659e684d
mov ebp, ecx
cmp edx, eax
je 0x659e6861
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x659e697a
mov byte [ebx + eax], 0x2e
inc dword [esp + 0x7c]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x78]
test eax, eax
je 0x659e68f4
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
cmp ecx, ebx
ja 0x659e6973
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x659e696c
mov dword [esp + 0x64], ebp
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.659bcc20
mov dword [esp], 0
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call fcn.659bc970
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x659e6911
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x659e6967
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x65a12c97]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x65a12c9d]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call fcn.659e5770
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x8c
ret
call fcn.659cacb0
mov ecx, ebx
call fcn.659cacd0
mov edx, ebx
call fcn.659cacb0
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
inc eax
mov ebp, dword [esp + 0x40]
mov ebx, dword [esp + 0x64]
cmp eax, ebp
jge 0x659e67cb
jae 0x659e6aa2
movzx esi, byte [eax + ebx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x659e67cb
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
je 0x659e67cb
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x659e6a69
mov dword [esp + 0x34], eax
xchg esi, eax
mov byte [esp + 0x27], al
xchg esi, eax
mov edi, dword [esp + 0x7c]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
cmp ebx, edi
jle 0x659e69f7
jbe 0x659e6a99
add ebp, edi
xchg esi, eax
cmp byte [ebp], al
xchg esi, eax
jne 0x659e69f7
lea ebx, [edi + 1]
mov dword [esp + 0x7c], ebx
jmp 0x659e6988
mov dword [esp + 0x38], ebx
lea eax, [0x65a0b040]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call fcn.659ba290
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x7c]
cmp ebx, ebp
jb 0x659e6a90
cmp ebp, ecx
jl 0x659e6a3b
mov ebp, ecx
cmp edx, eax
je 0x659e6a4f
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
call fcn.659cb4d0
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
movzx edx, byte [esp + 0x26]
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x40]
movzx esi, byte [esp + 0x27]
mov edi, dword [esp + 0x74]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x7c]
cmp edi, ebp
jbe 0x659e6a87
xchg esi, eax
mov byte [ebx + ebp], al
xchg esi, eax
inc dword [esp + 0x7c]
jmp 0x659e6988
mov eax, ebp
mov ecx, edi
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
mov eax, edi
mov ecx, ebx
call fcn.659cac90
mov ecx, ebp
call fcn.659cac90
mov eax, ebx
mov ecx, esi
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
mov eax, esi
mov ecx, edi
call fcn.659cac90
mov ebp, ecx
mov edi, esi
mov ecx, ebx
mov ebx, eax
mov esi, edx
jmp 0x659e63ac
mov eax, edi
mov ecx, ebx
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
mov eax, ebx
mov ecx, ebp
call fcn.659cac90
mov eax, edi
mov ecx, ebx
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
mov eax, ebx
mov ecx, ebp
call fcn.659cac90
mov eax, edi
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
lea edi, [eax - 1]
mov dword [esp + 0x7c], edi
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x7c]
cmp ecx, eax
jge 0x659e6b66
mov edi, dword [esp + 0x70]
mov ebx, dword [esp + 0x74]
test edi, edi
je 0x659e6b42
cmp ebx, eax
jbe 0x659e6b78
movzx ebx, byte [edi + eax]
jmp 0x659e6b52
mov ebx, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
cmp ebx, eax
jbe 0x659e6b71
movzx ebx, byte [edi + eax]
cmp bl, 0x5c
je 0x659e6b62
cmp bl, 0x2f
jne 0x659e6b19
mov ebx, dword [esp + 0x64]
jmp 0x659e6b66
mov ebx, dword [esp + 0x64]
mov eax, ebx
mov ebx, ecx
mov ecx, ebp
jmp 0x659e6ac4
mov ecx, ebx
call fcn.659cac90
mov ecx, ebx
call fcn.659cac90
mov eax, esi
mov ecx, ebp
call fcn.659cac90
mov eax, esi
mov ecx, ebp
call fcn.659cac90
mov eax, esi
mov ecx, ebp
call fcn.659cac90
mov ecx, ebp
call fcn.659cac90
call fcn.659cac90
mov ecx, ebp
mov edx, ebx
call fcn.659cacb0
call fcn.659cacf0
nop
call fcn.659c97c0
jmp fcn.659e6180