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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 4]
cmp eax, dword [ecx + 8]
jbe 0x659aaa60
sub esp, 0x84
mov edx, dword [esp + 0x8c]
mov ebx, dword [edx + 0x1c]
xor eax, eax
jmp 0x659aa262
mov eax, ebx
mov ebx, ebp
nop
lea ebp, [ebx + 1]
cmp byte [ebx], 0x80
jb 0x659aa280
test eax, eax
jl 0x659aaa5a
lea ebx, [eax + 7]
cmp ebx, 0x1c
jle 0x659aa25e
jmp 0x659aaa42
test eax, eax
jl 0x659aaa3d
xor eax, eax
xor ecx, ecx
jmp 0x659aa292
mov eax, ebx
mov ecx, esi
movzx ebx, byte [ebp]
nop
inc ebp
cmp bl, 0x80
jb 0x659aa2c6
test ecx, ecx
jl 0x659aaa38
cmp ecx, 0x20
sbb esi, esi
movzx ebx, bl
and ebx, 0xffffff7f
shl ebx, cl
and ebx, esi
add ebx, eax
lea esi, [ecx + 7]
cmp esi, 0x1c
jle 0x659aa28e
jmp 0x659aaa20
test ecx, ecx
jl 0x659aaa1b
cmp ecx, 0x20
sbb esi, esi
nop
movzx ebx, bl
shl ebx, cl
and ebx, esi
add ebx, eax
xor eax, eax
xor ecx, ecx
jmp 0x659aa2e9
mov eax, ebx
mov ecx, esi
mov ebx, edi
movzx esi, byte [ebp]
nop
inc ebp
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jb 0x659aa324
test ecx, ecx
jl 0x659aaa16
cmp ecx, 0x20
mov edi, ebx
sbb ebx, ebx
xchg esi, eax
movzx eax, al
xchg esi, eax
and esi, 0xffffff7f
shl esi, cl
and esi, ebx
lea ebx, [eax + esi]
lea esi, [ecx + 7]
cmp esi, 0x1c
jle 0x659aa2e3
jmp 0x659aa9fe
test ecx, ecx
jl 0x659aa9f9
mov dword [esp + 0x14], ebx
mov edi, edx
mov edx, dword [edx + 0x20]
sub edx, ebx
cmp ecx, 0x20
sbb ebx, ebx
movzx edx, byte [edx]
xchg esi, eax
movzx eax, al
xchg esi, eax
shl esi, cl
and esi, ebx
lea ebx, [eax + esi - 1]
jmp 0x659aa359
mov esi, dword [esp + 0x34]
lea ebx, [esi - 1]
mov edi, eax
mov ebp, ecx
test ebx, ebx
jl 0x659aa53d
mov byte [esp + 0x12], dl
xor eax, eax
xor ecx, ecx
jmp 0x659aa559
test ecx, ecx
jl 0x659aa9d7
cmp ecx, 0x20
sbb edx, edx
nop
xchg esi, eax
movzx eax, al
xchg esi, eax
shl esi, cl
and esi, edx
lea edx, [eax + esi]
mov dword [esp + 0x3c], edx
xor eax, eax
xor ecx, ecx
jmp 0x659aa59e
test ecx, ecx
jl 0x659aa9b5
cmp ecx, 0x20
sbb edx, edx
nop
xchg esi, eax
movzx eax, al
xchg esi, eax
shl esi, cl
and esi, edx
lea edx, [eax + esi]
mov dword [esp + 0x38], edx
xor eax, eax
xor ecx, ecx
jmp 0x659aa5e3
test ecx, ecx
jl 0x659aa993
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ebp
mov dword [esp + 0x18], ecx
cmp ebx, 0x20
sbb ebp, ebp
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0x48], edx
mov ecx, ebx
mov edx, 1
shl edx, cl
and ebp, edx
xchg esi, eax
movzx edx, al
xchg esi, eax
mov ecx, dword [esp + 0x18]
shl edx, cl
mov esi, dword [esp + 0x48]
and edx, esi
add edx, eax
movzx esi, byte [esp + 0x12]
xchg esi, eax
xchg ebp, ebx
test bl, al
xchg ebp, ebx
xchg esi, eax
jne 0x659aa416
mov ebp, dword [esp + 0x70]
xor eax, eax
jmp 0x659aa89e
xchg ebp, eax
mov byte [esp + 0x13], al
xchg ebp, eax
mov eax, ebx
mov ebx, dword [edi + 0x20]
mov ecx, esi
mov esi, dword [esp + 0x38]
sub ebx, esi
mov ebx, dword [ebx]
lea esi, [edi + 0x10]
mov ebp, dword [0x65a9c1d0]
test ebp, ebp
jne 0x659aa43d
mov dword [edi + 0x10], ebx
jmp 0x659aa44e
mov ebp, edi
mov edi, esi
mov eax, ebx
call fcn.659cac10
mov eax, dword [esp + 0x34]
mov edi, ebp
mov ebp, dword [edi]
test ebp, ebp
jne 0x659aa458
xor ebp, ebp
jmp 0x659aa45c
nop
lea ebp, [edi + 0x28]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x80], esi
mov dword [esp + 0x64], ebp
mov dword [esp + 0x5c], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x5c]
jmp 0x659aa690
mov eax, dword [edi + 0x20]
mov edx, dword [esp + 0x14]
sub eax, edx
movzx esi, byte [esp + 0x13]
xchg esi, ebx
not ebx
xchg esi, ebx
and ecx, esi
mov byte [esp + 0x12], cl
mov byte [eax], cl
mov eax, dword [edi + 0x14]
mov dword [esp + 0x68], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
call fcn.659aaa70
mov eax, dword [esp + 0x68]
test eax, eax
je 0x659aa4d9
movzx ecx, byte [eax + 0x19]
test cl, cl
jne 0x659aa72b
mov ecx, dword [0x65a9c1d0]
test ecx, ecx
jne 0x659aa4f3
mov eax, dword [esp + 0x8c]
mov dword [eax + 0x10], 0
jmp 0x659aa501
mov edi, dword [esp + 0x80]
xor eax, eax
call fcn.659cac10
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call fcn.659cb2f0
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x659aa52f
movzx edx, byte [ecx + 0x18]
test dl, dl
jne 0x659aa735
mov ecx, dword [esp + 0x7c]
movzx edx, byte [esp + 0x12]
jmp 0x659aa34e
mov eax, 1
mov byte [esp + 0x90], al
add esp, 0x84
ret
mov eax, edx
mov ecx, esi
movzx edx, byte [esp + 0x12]
movzx esi, byte [ebp]
nop
inc ebp
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jb 0x659aa36e
test ecx, ecx
jl 0x659aa9f4
cmp ecx, 0x20
sbb edx, edx
xchg esi, eax
movzx eax, al
xchg esi, eax
and esi, 0xffffff7f
shl esi, cl
and esi, edx
lea edx, [eax + esi]
lea esi, [ecx + 7]
cmp esi, 0x1c
jle 0x659aa550
jmp 0x659aa9dc
mov eax, edx
mov ecx, esi
mov edx, dword [esp + 0x3c]
movzx esi, byte [ebp]
nop
inc ebp
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jb 0x659aa395
test ecx, ecx
jl 0x659aa9d2
cmp ecx, 0x20
sbb edx, edx
xchg esi, eax
movzx eax, al
xchg esi, eax
and esi, 0xffffff7f
shl esi, cl
and esi, edx
lea edx, [eax + esi]
lea esi, [ecx + 7]
cmp esi, 0x1c
jle 0x659aa596
jmp 0x659aa9ba
mov eax, edx
mov ecx, esi
mov edx, dword [esp + 0x38]
movzx esi, byte [ebp]
nop
inc ebp
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jb 0x659aa3bc
test ecx, ecx
jl 0x659aa9b0
cmp ecx, 0x20
sbb edx, edx
xchg esi, eax
movzx eax, al
xchg esi, eax
and esi, 0xffffff7f
shl esi, cl
and esi, edx
lea edx, [eax + esi]
lea esi, [ecx + 7]
cmp esi, 0x1c
jle 0x659aa5db
jmp 0x659aa998
mov dword [esp + 0x78], esi
cmp edx, 0x20
sbb esi, esi
movzx ebx, bl
mov ecx, edx
shl ebx, cl
and ebx, esi
mov edx, dword [esp + 0x28]
add edx, ebx
add edx, ebp
mov ebx, dword [edi + 0x20]
mov esi, dword [esp + 0x40]
sub ebx, esi
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call fcn.659cb4d0
mov eax, dword [esp + 0x30]
inc eax
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x78]
movzx ecx, byte [esp + 0x12]
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x7c], ecx
mov eax, dword [esp + 0x34]
movzx ecx, byte [esp + 0x12]
mov eax, dword [esp + 0x30]
cmp eax, edx
jae 0x659aa48a
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], eax
mov byte [esp + 0x4c], cl
xor ecx, ecx
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x54]
movzx ecx, byte [esp + 0x4c]
jmp 0x659aa768
mov edx, dword [esp + 0x1c]
test edx, edx
jl 0x659aa875
cmp edx, 0x20
sbb eax, eax
nop
movzx ebx, bl
mov ecx, edx
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x20]
add eax, ebx
mov dword [esp + 0x40], eax
xor ecx, ecx
xor edx, edx
jmp 0x659aa7b3
test edx, edx
jl 0x659aa853
cmp edx, 0x20
sbb eax, eax
nop
movzx ebx, bl
mov ecx, edx
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x24]
add eax, ebx
mov dword [esp + 0x44], eax
xor ecx, ecx
xor edx, edx
jmp 0x659aa7f7
test edx, edx
jge 0x659aa620
jmp 0x659aa831
mov eax, 1
jmp 0x659aa542
movzx ecx, byte [esp + 0x12]
test cl, cl
sete al
jmp 0x659aa542
movzx ecx, byte [esp + 0x12]
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov esi, dword [esp + 0x80]
mov esi, dword [esp + 0x6c]
movzx ebx, byte [esi]
nop
inc esi
cmp bl, 0x80
jb 0x659aa6c6
mov edx, dword [esp + 0x1c]
test edx, edx
jl 0x659aa892
cmp edx, 0x20
sbb eax, eax
movzx ebx, bl
and ebx, 0xffffff7f
mov ecx, edx
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x20]
add eax, ebx
lea edx, [ecx + 7]
cmp edx, 0x1c
jle 0x659aa744
jmp 0x659aa87a
mov ecx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
movzx ebx, byte [esi]
nop
inc esi
cmp bl, 0x80
jb 0x659aa6f4
test edx, edx
jl 0x659aa870
cmp edx, 0x20
sbb eax, eax
movzx ebx, bl
and ebx, 0xffffff7f
mov ecx, edx
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x24]
add eax, ebx
lea edx, [ecx + 7]
cmp edx, 0x1c
jle 0x659aa7ad
jmp 0x659aa858
mov ecx, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], ecx
movzx ebx, byte [esi]
nop
inc esi
cmp bl, 0x80
jb 0x659aa71e
test edx, edx
jl 0x659aa84e
cmp edx, 0x20
sbb eax, eax
movzx ebx, bl
and ebx, 0xffffff7f
mov ecx, edx
shl ebx, cl
and ebx, eax
mov eax, dword [esp + 0x28]
add eax, ebx
lea edx, [ecx + 7]
cmp edx, 0x1c
jle 0x659aa7f1
jmp 0x659aa836
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
inc eax
mov ebp, ebx
mov ebx, dword [esp + 0x34]
cmp eax, edx
jae 0x659aa8c4
xor ecx, ecx
jmp 0x659aa8d7
test ecx, ecx
jl 0x659aa971
xor ecx, ecx
jmp 0x659aa8fa
test ecx, ecx
jl 0x659aa94f
xor ecx, ecx
jmp 0x659aa915
test ecx, ecx
jge 0x659aa897
jmp 0x659aa92d
mov eax, edi
mov ecx, ebp
mov edx, esi
jmp 0x659aa34e
mov ecx, ebp
mov ebp, ebx
mov ebx, dword [esp + 0x34]
nop
lea ebx, [ebp + 1]
cmp byte [ebp], 0x80
jb 0x659aa8a6
test ecx, ecx
jl 0x659aa98e
lea ebp, [ecx + 7]
cmp ebp, 0x1c
jle 0x659aa8cf
jmp 0x659aa976
mov ecx, ebx
mov ebx, ebp
nop
lea ebp, [ebx + 1]
cmp byte [ebx], 0x80
jb 0x659aa8b2
test ecx, ecx
jl 0x659aa96c
lea ebx, [ecx + 7]
cmp ebx, 0x1c
jle 0x659aa8f6
jmp 0x659aa954
mov ecx, ebp
mov ebp, ebx
nop
lea ebx, [ebp + 1]
cmp byte [ebp], 0x80
jb 0x659aa8be
test ecx, ecx
jl 0x659aa94a
lea ebp, [ecx + 7]
cmp ebp, 0x1c
jle 0x659aa911
jmp 0x659aa932
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
call fcn.659a9240
lea eax, [0x65a0ae80]
mov dword [esp], eax
lea eax, [0x65a2c344]
mov dword [esp + 4], eax
call fcn.659aab50
call fcn.659a9240
nop
call fcn.659c97c0
jmp fcn.659aa230