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

Disassembly:
mov ecx, dword [0x98d270]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x666a4c
sub esp, 0x88
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x98]
cmp ecx, eax
jle 0x66628e
jbe 0x666a46
lea ebx, [eax + 1]
mov ebp, dword [esp + 0x8c]
movzx esi, byte [eax + ebp]
cmp ecx, ebx
jle 0x666231
mov edx, esi
and esi, 0x1f
xchg esi, eax
cmp al, 0x1f
xchg esi, eax
je 0x666a2d
jmp 0x6662eb
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3c
lea ecx, [0x7208d3]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
lea ecx, [0x71c612]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
cmp ecx, ebx
jbe 0x666a25
mov dword [esp + 0x28], ebx
movzx esi, byte [ebx + ebp]
lea edi, [ebx + 1]
xchg esi, eax
cmp al, 0x80
xchg esi, eax
jbe 0x666488
and esi, 0x7f
cmp esi, 4
jg 0x66642b
jne 0x66638f
cmp ecx, edi
jbe 0x666a1e
movzx eax, byte [ebx + ebp + 1]
cmp eax, 0x7f
jg 0x666332
mov eax, dword [esp + 0x98]
jmp 0x66638f
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x23
lea ecx, [0x71a6bc]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
cmp ecx, edi
jbe 0x666a17
movzx eax, byte [ebx + ebp + 1]
test eax, eax
je 0x6663ce
lea eax, [ebx + esi + 1]
mov ebx, dword [esp + 0x94]
cmp ebx, eax
jb 0x666a0e
cmp eax, edi
jb 0x666a05
mov byte [esp + 0x27], dl
xor eax, eax
xor eax, eax
mov dword [esp + 0x34], eax
xor eax, eax
jmp 0x6669e5
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x28
lea ecx, [0x71c63a]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x20
lea ecx, [0x71934f]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
jne 0x666491
mov esi, 0
jmp 0x666496
xchg esi, eax
movzx eax, al
xchg esi, eax
sete al
test esi, esi
jl 0x666661
mov dword [esp + 0x34], esi
add esi, edi
cmp ecx, esi
jl 0x666604
mov ebx, dword [esp + 0x94]
cmp ebx, esi
jb 0x6669bc
cmp edi, esi
ja 0x6669b3
mov dword [esp + 0x38], esi
mov byte [esp + 0x26], al
sub ebx, edi
mov dword [esp + 0x44], ebx
neg ebx
sar ebx, 0x1f
and ebx, edi
add ebx, ebp
test al, al
je 0x666547
test dl, 0x20
jne 0x6665e8
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x3b
lea ecx, [0x7206f4]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
test dl, 0x20
jne 0x6665e8
mov edx, dword [esp + 0x98]
mov ecx, dword [esp + 0x28]
cmp edx, ecx
ja 0x6669ac
mov dword [esp + 0x40], edi
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.00468c29
mov ecx, dword [esp + 0x94]
sub ecx, edx
mov esi, dword [esp + 0x28]
sub esi, edx
mov eax, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [ebp + edx]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x84], ecx
lea ecx, [0x6e54e0]
mov dword [esp], ecx
lea ecx, [esp + 0x6c]
mov dword [esp + 4], ecx
call fcn.00409af0
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x26]
test dl, dl
mov eax, dword [esp + 0x40]
lea edx, [0x774184]
jmp 0x666966
mov edx, dword [esp + 0x94]
xor ebx, ebx
xor ebx, ebx
mov dword [esp + 0x48], ebx
xor ebx, ebx
mov dword [esp + 0x2c], ebx
xor ebx, ebx
jmp 0x6666ee
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x33
lea ecx, [0x71f64a]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
lea eax, [0x6cc1c0]
mov dword [esp], eax
call fcn.0040c4f0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x37
lea ecx, [0x72000f]
mov dword [eax], ecx
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
lea ecx, [0x773c30]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xac], eax
add esp, 0x88
ret
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x8c]
mov eax, ebx
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x94]
mov edi, dword [esp + 0x44]
mov ebx, esi
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x38]
mov dword [esp + 0x30], ebx
cmp edi, esi
jl 0x6666fe
test al, al
je 0x6668d8
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
call fcn.006661d0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test eax, eax
jne 0x66689a
mov dword [esp + 0x44], ecx
mov ebp, dword [esp + 0x2c]
inc ebp
mov esi, dword [esp + 0x30]
cmp esi, ebp
jb 0x666741
mov eax, dword [esp + 0x48]
jmp 0x666789
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], edx
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6ca660]
mov dword [esp + 0x10], eax
call fcn.0044e1d0
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x4c]
mov esi, ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x48], eax
lea edi, [eax + ebp*8 - 8]
mov dword [edi], ebx
mov ebx, dword [0x98d4e0]
lea edi, [eax + ebp*8 - 4]
test ebx, ebx
jne 0x6667aa
movzx ebx, byte [esp + 0x26]
test bl, bl
jmp 0x6667d0
mov ebx, edi
call fcn.004689a0
mov dword [edi], edx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, ebp
movzx ebp, byte [esp + 0x26]
xchg ebp, eax
test al, al
xchg ebp, eax
mov ebp, eax
mov edi, ebx
mov eax, dword [esp + 0x48]
movzx ebx, byte [esp + 0x26]
mov dword [edi], edx
je 0x6666be
mov dword [esp + 0x40], ebp
mov dword [esp + 0x3c], esi
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call fcn.00666a60
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x66685c
movzx edx, byte [esp + 0x10]
test dl, dl
jne 0x666834
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
movzx ebx, byte [esp + 0x26]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x3c]
jmp 0x6666be
movzx eax, byte [esp + 0x26]
mov edx, dword [esp + 0x94]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
jmp 0x6668dc
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x88
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
add esp, 0x88
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x30], ebx
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x28]
cmp esi, ebx
ja 0x6669a3
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x44], edi
lea edi, [esp + 0x54]
xor eax, eax
call fcn.00468c2a
sub edx, esi
sub ebx, esi
mov ecx, edx
neg edx
sar edx, 0x1f
and esi, edx
lea edx, [ebp + esi]
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], ecx
lea ecx, [0x6e17a0]
mov dword [esp], ecx
lea ecx, [esp + 0x54]
mov dword [esp + 4], ecx
call fcn.00409af0
mov ecx, dword [esp + 8]
movzx edx, byte [esp + 0x26]
test dl, dl
mov eax, dword [esp + 0x44]
lea edx, [0x774198]
je 0x66696d
lea esi, [eax + 2]
jmp 0x666971
mov esi, dword [esp + 0x38]
mov dword [esp + 0x9c], edx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], 0
mov dword [esp + 0xac], 0
add esp, 0x88
ret
mov eax, esi
mov ecx, ebx
call fcn.00468a60
mov eax, edx
call fcn.00468a60
mov eax, edi
mov ecx, esi
call fcn.00468a60
mov ecx, esi
mov edx, ebx
call fcn.00468a40
mov edx, dword [esp + 0x34]
shl edx, 8
movzx ebx, byte [ebp + edi]
inc eax
add edx, ebx
inc edi
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x34], edx
movzx edx, byte [esp + 0x27]
cmp eax, esi
jge 0x6669ef
cmp ecx, edi
ja 0x6669c5
jmp 0x6669fe
mov ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
xor eax, eax
jmp 0x666499
mov eax, edi
call fcn.00468a00
mov ecx, eax
mov eax, edi
call fcn.00468a60
mov ecx, eax
mov edx, ebx
call fcn.00468a40
mov eax, edi
call fcn.00468a00
mov eax, edi
call fcn.00468a00
mov eax, ebx
call fcn.00468a00
inc ebx
cmp ecx, ebx
jbe 0x666a3f
lea esi, [ebx + ebp]
cmp byte [esi], 0x80
jae 0x666a2c
inc ebx
jmp 0x6662eb
mov eax, ebx
call fcn.00468a00
call fcn.00468a00
nop
call fcn.00467590
jmp fcn.006661d0