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

Disassembly:
sub esp, 0x24
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
push ebx
push ebp
mov edx, dword [ecx + 0xc]
xor ebx, ebx
mov eax, dword [eax]
push esi
push edi
xor edi, edi
mov dword [esp + 0x18], edx
xor esi, esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], 0xc8
mov dword [esp + 0x2c], esi
mov word [esp + 0x30], bx
cmp dword [ecx + 0x28], ebx
je 0x6683b1
push dword [ecx]
lea eax, [esp + 0x20]
push str.index__q
push eax
call fcn.0067cab0
mov esi, dword [esp + 0x38]
add esp, 0xc
mov edi, dword [esp + 0x20]
jmp 0x66851d
xor ebp, ebp
xor eax, eax
mov dword [esp + 0x14], ebp
cmp ax, word [ecx + 0x32]
jae 0x668542
mov eax, dword [ecx + 4]
movsx ecx, word [eax + ebp*2]
mov eax, dword [edx + 4]
add ecx, ecx
mov eax, dword [eax + ecx*8]
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x668416
add esi, 2
cmp esi, ebx
jb 0x668407
push 2
lea eax, [esp + 0x20]
push 0x6b89cc
push eax
call fcn.006161f0
mov esi, dword [esp + 0x38]
add esp, 0xc
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
jmp 0x668416
mov ax, word [0x6b89cc]
mov dword [esp + 0x2c], esi
mov word [esi + edi - 2], ax
mov edx, dword [edx]
test edx, edx
jne 0x668420
xor ecx, ecx
jmp 0x668438
mov ecx, edx
lea ebp, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x668425
sub ecx, ebp
mov ebp, dword [esp + 0x14]
and ecx, 0x3fffffff
lea eax, [esi + ecx]
cmp eax, ebx
jb 0x668459
push ecx
push edx
lea eax, [esp + 0x24]
push eax
call fcn.006161f0
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
jmp 0x66846f
test ecx, ecx
je 0x668472
mov esi, eax
sub eax, ecx
push ecx
push edx
add eax, edi
mov dword [esp + 0x34], esi
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
inc esi
cmp esi, ebx
jb 0x668499
push 1
lea eax, [esp + 0x20]
push 0x6b8e14
push eax
call fcn.006161f0
mov esi, dword [esp + 0x38]
add esp, 0xc
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x20]
jmp 0x6684a6
mov al, byte [0x6b8e14]
mov dword [esp + 0x2c], esi
mov byte [esi + edi - 1], al
mov edx, dword [esp + 0x10]
test edx, edx
jne 0x6684b2
xor ecx, ecx
jmp 0x6684ca
mov ecx, edx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x6684b7
sub ecx, edx
mov edx, dword [esp + 0x10]
and ecx, 0x3fffffff
lea eax, [esi + ecx]
cmp eax, ebx
jb 0x6684eb
push ecx
push edx
lea eax, [esp + 0x24]
push eax
call fcn.006161f0
mov esi, dword [esp + 0x38]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
jmp 0x668501
test ecx, ecx
je 0x668504
mov esi, eax
sub eax, ecx
push ecx
push edx
add eax, edi
mov dword [esp + 0x34], esi
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x40]
inc ebp
mov edx, dword [esp + 0x18]
mov dword [esp + 0x14], ebp
movzx eax, word [ecx + 0x32]
cmp ebp, eax
jl 0x6683c3
test edi, edi
je 0x668542
cmp dword [esp + 0x28], 0
mov byte [esi + edi], 0
jbe 0x668542
test byte [esp + 0x31], 4
jne 0x668542
lea eax, [esp + 0x1c]
push eax
call fcn.0067d930
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x38]
mov eax, dword [eax + 0x38]
mov ebx, dword [edx + 8]
and al, 3
sub al, 2
movzx esi, al
neg esi
sbb esi, esi
and esi, 0x200
add esi, 0x613
test ebx, ebx
jne 0x66858b
cmp dword [edx + 0x78], ebx
jne 0x66857c
mov eax, dword [edx]
test byte [eax + 0x44], 8
jne 0x66857c
mov byte [edx + 0x17], 1
push edx
call fcn.0066c560
mov edx, dword [esp + 0x3c]
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x3c]
cmp ecx, 2
jne 0x6685a1
mov eax, dword [edx + 0x78]
test eax, eax
jne 0x66859d
mov eax, edx
mov byte [eax + 0x15], 1
push 0xfffffffffffffff9
push edi
push 0
push ecx
push esi
push 0x42
push ebx
call fcn.0066bc70
mov eax, dword [ebx + 0x88]
add esp, 0x1c
test eax, eax
jle 0x6685cd
lea ecx, [eax + eax*4]
mov edx, 2
mov eax, dword [ebx + 0x58]
mov word [eax + ecx*4 - 0x12], dx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret