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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x666c3b
sub esp, 0x68
mov eax, 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x70]
cmp eax, 4
jb 0x666c34
mov ecx, dword [esp + 0x74]
lea edx, [ecx - 4]
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 4
mov dword [esp + 0x40], edx
mov ebp, dword [esp + 0x6c]
lea esi, [ebp + edx]
mov edi, dword [esp + 0x78]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x666bde
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x54], esi
add eax, 0xfffffffc
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x20]
test edx, edx
jge 0x666ac3
mov byte [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
lea ecx, [esp + 0x58]
cmp edi, ecx
je 0x666905
mov edx, dword [edi + 8]
mov dword [esp + 0x18], edx
mov ebx, dword [edi + 4]
test edx, edx
jg 0x666a75
xor ecx, ecx
mov dword [esp + 0x50], ecx
xor ecx, ecx
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x58]
mov esi, dword [esp + 0x18]
cmp edx, esi
jle 0x666a6e
mov dword [esp + 0x34], edx
mov ebp, dword [esp + 0x50]
cmp ebp, ebx
je 0x6668e2
mov dword [esp], ebp
mov dword [esp + 4], ebx
shl esi, 2
mov dword [esp + 8], esi
call fcn.0044d070
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x78]
movzx eax, byte [eax]
mov byte [esp + 0x58], al
mov eax, dword [esp + 0x60]
test eax, eax
jle 0x666a67
movzx eax, byte [esp + 0x58]
xor eax, 1
mov byte [esp + 0x58], al
lea eax, [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 4], eax
mov ecx, dword [0xac87b8]
mov dword [esp + 8], ecx
call fcn.004d7e40
lea eax, [esp + 0x58]
mov dword [esp], eax
call fcn.004d91b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
xor edx, edx
jmp 0x66695a
movzx ebx, byte [ecx + edx]
xor ebx, 0xffffffff
mov byte [ecx + edx], bl
inc edx
cmp edx, eax
jge 0x666965
jb 0x66694f
jmp 0x666c2d
test eax, eax
jne 0x666a44
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x666c26
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov byte [ebx + edx], 0xff
mov edx, dword [esp + 0x74]
add edx, 0xfffffffb
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, 1
mov esi, dword [esp + 0x54]
add edx, esi
mov esi, dword [esp + 0x70]
add esi, 0xfffffffb
mov edi, 1
cmp esi, eax
jle 0x666a3d
mov dword [esp + 0x50], edx
mov dword [esp + 0x30], esi
mov dword [esp + 0x74], ebp
mov dword [esp + 0x2c], edi
mov dword [esp + 0x28], eax
cmp edx, ecx
je 0x6669d8
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044d070
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
ja 0x666c1f
sub ecx, eax
mov edx, dword [esp + 0x74]
sub edx, eax
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, eax
mov ebp, dword [esp + 0x50]
add edx, ebp
mov ebp, dword [esp + 0x2c]
add eax, ebp
mov ebp, eax
sar eax, 0x18
mov esi, dword [esp + 0x6c]
mov byte [esi], al
mov eax, ebp
sar ebp, 0x10
xchg ebp, eax
mov byte [esi + 1], al
xchg ebp, eax
mov ebp, eax
sar eax, 8
mov byte [esi + 2], al
xchg ebp, eax
mov byte [esi + 3], al
xchg ebp, eax
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ebx
add esp, 0x68
ret
mov eax, esi
jmp 0x6669b0
movzx edx, byte [ecx]
test dl, 0x80
je 0x66696d
mov ebx, dword [esp + 0x6c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
mov ebp, dword [esp + 0x3c]
xor edi, edi
jmp 0x6669a8
xor eax, eax
jmp 0x666919
mov esi, edx
jmp 0x6668c3
mov dword [esp + 0x4c], ebx
lea eax, [0x770f60]
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [edx + 4]
mov dword [esp + 8], eax
call fcn.00438a40
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x54]
mov edi, dword [esp + 0x78]
mov dword [esp + 0x50], eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0x58]
jmp 0x6668b7
test ecx, ecx
jne 0x666bc3
xor ecx, ecx
test ecx, ecx
jne 0x666ae0
xor ecx, ecx
mov edx, esi
mov edi, eax
mov eax, ecx
mov ecx, edi
jmp 0x666a05
mov dword [esp], edi
call fcn.004d91b0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
test eax, eax
jle 0x666bac
movzx edx, byte [ecx]
test dl, 0x80
je 0x666bac
mov edx, dword [esp + 0x38]
test edx, edx
jbe 0x666c18
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x6c]
mov byte [ebx + edx], 0
mov edx, dword [esp + 0x74]
add edx, 0xfffffffb
mov ebp, edx
neg edx
sar edx, 0x1f
and edx, 1
mov esi, dword [esp + 0x54]
add edx, esi
mov esi, dword [esp + 0x70]
add esi, 0xfffffffb
mov edi, 1
cmp esi, eax
jle 0x666ba8
mov dword [esp + 0x74], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], eax
mov dword [esp + 0x34], esi
cmp edx, ecx
je 0x666b6b
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044d070
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x34]
cmp eax, ecx
ja 0x666c11
sub ecx, eax
mov ebx, dword [esp + 0x74]
sub ebx, eax
mov edx, ebx
neg ebx
sar ebx, 0x1f
and ebx, eax
mov edi, dword [esp + 0x50]
lea esi, [edi + ebx]
mov edi, dword [esp + 0x2c]
add edi, eax
mov ebp, dword [esp + 0x6c]
mov eax, ecx
mov ebx, edx
mov ecx, edi
jmp 0x666ad3
mov eax, esi
jmp 0x666b43
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x38]
xor edi, edi
jmp 0x666b3f
movzx ecx, byte [edi]
test cl, cl
je 0x666bd4
mov ecx, 0xffffffff
jmp 0x666acd
mov ecx, 1
jmp 0x666acd
movzx edx, byte [edi]
test dl, dl
je 0x666bfb
mov edx, dword [esp + 0x40]
mov edx, 0xffffffff
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x40]
jmp 0x666855
mov edx, dword [esp + 0x40]
mov edx, 1
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x40]
jmp 0x666855
call fcn.00426530
ud2
call fcn.00426430
ud2
call fcn.00426530
ud2
call fcn.00426430
ud2
call fcn.00426430
ud2
call fcn.00426530
ud2
call fcn.0044b110
jmp fcn.006667e0