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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x6662e0
sub esp, 0x50
mov eax, dword [esp + 0x58]
cmp eax, 4
jge 0x666255
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
test dl, dl
je 0x666229
test eax, eax
je 0x6661f7
mov byte [esp + 0x27], dl
mov dword [esp + 0x40], ebp
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov eax, dword [str._BDFACE_n]
mov ecx, dword [0xac3aa8]
mov edx, dword [0xac3aa4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
call fcn.004cbc30
mov eax, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
lea edx, [0x7716e0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call fcn.00438a40
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov ebx, dword [esp + 0x30]
test ebx, ebx
jle 0x6661f1
mov dword [esp + 0x4c], eax
mov dword [esp + 0x38], ecx
mov ebp, dword [esp + 0x44]
xor esi, esi
jmp 0x66614f
mov edx, dword [esp + 0x48]
add edx, 0xc
mov ebp, edx
mov esi, eax
mov dword [esp + 0x48], ebp
mov dword [esp + 0x34], esi
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call fcn.0043be30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
cmp edx, ebx
jae 0x6662d2
mov ebp, dword [esp + 0x4c]
lea esi, [ebp + edx*8 + 4]
mov dword [esi], ecx
mov ecx, dword [0xadb480]
lea edi, [ebp + edx*8]
test ecx, ecx
jne 0x6661ea
mov dword [edi], eax
lea eax, [edx + 1]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
jl 0x666144
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebx
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x74], eax
movzx eax, byte [esp + 0x27]
mov byte [esp + 0x78], al
add esp, 0x50
ret
call fcn.0044c870
jmp 0x6661aa
mov ebx, ecx
mov ebp, eax
jmp 0x6661b5
mov eax, dword [0xac3ab8]
mov ecx, dword [0xac3ab4]
mov ebx, dword [0xac3ab0]
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
mov byte [esp + 0x78], dl
add esp, 0x50
ret
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], edi
mov byte [esp + 0x78], dl
add esp, 0x50
ret
mov ecx, dword [esp + 0x5c]
add ecx, 0xfffffffc
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
mov ebx, dword [esp + 0x54]
add ecx, ebx
add eax, 0xfffffffc
movzx ebp, byte [ebx + 2]
movzx esi, byte [ebx + 3]
shl ebp, 8
or esi, ebp
movzx ebp, byte [ebx + 1]
shl ebp, 0x10
or ebp, esi
movzx ebx, byte [ebx]
shl ebx, 0x18
or ebx, ebp
cmp eax, ebx
jae 0x6662a4
xor eax, eax
xor ecx, ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x6660a4
test ebx, ebx
jl 0x6662d9
mov edi, edx
sub edi, ebx
mov ebp, edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ebx
lea esi, [edi + ecx]
sub eax, ebx
mov edi, ebp
mov ebp, esi
mov esi, eax
mov eax, ebx
mov ebx, edx
mov edx, 1
jmp 0x6660a4
call fcn.00426430
ud2
call fcn.00426530
ud2
call fcn.0044b110
jmp fcn.00666070