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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
cmp byte [ecx + 0x24], 0
mov dword [esp], ecx
mov dword [esp + 4], edx
je 0x6661a7
mov eax, dword [0x94bccc]
test eax, eax
je 0x666292
mov edi, dword [ecx + 0x10]
mov eax, dword [ecx + 0x1c]
movsd xmm0, qword [edx]
movsd xmm1, qword [edx + 8]
cmp eax, edi
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
jne 0x666169
add ecx, 0x10
call fcn.006671b0
mov ecx, dword [esp]
mov edi, dword [ecx + 0x10]
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x18]
mov ebx, ecx
xor esi, esi
mov ecx, dword [ecx + 0x14]
add edx, eax
cmp edx, edi
cmovae esi, edi
inc eax
sub edx, esi
lea edx, [edx + edx*4]
mov dword [ecx + edx*8], 0
movsd xmm0, qword [esp + 0x20]
movsd xmm1, qword [esp + 0x28]
movsd qword [ecx + edx*8 + 4], xmm0
movsd qword [ecx + edx*8 + 0xc], xmm1
mov dword [ebx + 0x1c], eax
jmp 0x66628a
mov ecx, dword [ecx + 0xc]
mov esi, dword [edx + 8]
test ecx, ecx
je 0x6661f3
mov edx, dword [esp]
mov eax, dword [edx]
mov edx, dword [edx + 8]
sub eax, edx
cmp eax, esi
jae 0x6661f3
mov edi, edx
sub edi, ecx
jb 0x666851
mov eax, dword [esp]
mov dword [eax + 8], 0
je 0x6661ec
mov eax, dword [eax + 4]
add ecx, eax
push edi
push ecx
push eax
call fcn.007bd9b0
mov eax, dword [esp + 0xc]
add esp, 0xc
mov dword [eax + 8], edi
mov dword [eax + 0xc], 0
mov eax, dword [0x94bccc]
mov ecx, dword [esp]
test eax, eax
je 0x666419
mov edx, dword [esp + 4]
test esi, esi
mov edi, dword [edx + 4]
je 0x66627b
mov ebx, dword [ecx + 8]
nop word cs:[eax + eax]
nop dword [eax + eax]
mov eax, dword [ecx]
sub eax, ebx
cmp eax, esi
jb 0x666267
mov eax, dword [ecx + 4]
add eax, ebx
push esi
push edi
push eax
call fcn.007bd9b0
mov ecx, dword [esp + 0xc]
add esp, 0xc
mov edx, dword [esp + 4]
add ebx, esi
mov dword [esp + 0x44], esi
mov dword [ecx + 8], ebx
mov eax, dword [edx + 8]
cmp eax, esi
jb 0x6667c9
mov edi, dword [edx + 4]
add edi, esi
sub eax, esi
mov esi, eax
mov dword [edx + 8], eax
mov dword [edx + 4], edi
jne 0x666220
jmp 0x66627b
mov edx, ebx
push esi
call fcn.007c54d0
mov ecx, dword [esp + 4]
add esp, 4
mov ebx, dword [ecx + 8]
jmp 0x666228
mov eax, dword [edx]
add edx, 0xc
push 0
push edi
push edx
call dword [eax + 0xc]
add esp, 0xc
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx eax, byte [0x94ae1c]
test al, al
je 0x666139
movzx eax, al
cmp eax, 1
je 0x6662cf
cmp eax, 2
je 0x66631e
mov ecx, 0x94ae14
call fcn.007d3740
mov edx, dword [esp + 4]
mov ecx, dword [esp]
test al, al
je 0x666139
movzx eax, al
cmp eax, 2
je 0x66631e
mov eax, dword [0x94ae14]
mov edx, dword [0x94bfb8]
cmp edx, 2
mov edx, dword [esp + 4]
jne 0x666139
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x666307
mov esi, dword [ecx + 8]
dec esi
and esi, 0xfffffff8
lea edx, [esi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [esp]
mov edx, dword [esp + 4]
test al, al
je 0x666139
mov eax, dword [0x94ae14]
mov ebx, dword [eax + 0x20]
test ebx, ebx
je 0x666829
mov edi, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov esi, dword [eax + 0x28]
cmp ebx, 1
mov dword [esp + 0xa4], 0x8ace78
mov dword [esp + 0xa8], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 0x93d1f8
mov dword [esp + 0xb0], 0
mov dword [esp + 0x7c], edi
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], esi
mov dword [esp + 0x8c], 0
je 0x666829
mov dword [esp + 0x90], edi
mov dword [esp + 0xbc], edi
mov edi, dword [ecx + 0x1c]
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x9c], esi
mov dword [esp + 0xc0], esi
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0xa0], 1
test edi, edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], edx
je 0x66666f
mov esi, dword [ecx + 0x10]
mov edx, dword [ecx + 0x18]
xor eax, eax
cmp edx, esi
mov ecx, esi
cmovb ecx, eax
mov eax, edi
sub edx, ecx
mov ecx, esi
sub ecx, edx
sub eax, ecx
ja 0x666675
add edi, edx
mov esi, edi
jmp 0x666673
movzx eax, byte [0x94ae10]
test al, al
je 0x666203
movzx eax, al
cmp eax, 1
je 0x666452
cmp eax, 2
je 0x666499
mov ecx, 0x94ae08
call fcn.007d3740
mov ecx, dword [esp]
test al, al
je 0x666203
movzx eax, al
cmp eax, 2
je 0x666499
mov eax, dword [0x94ae08]
mov edx, dword [0x94bfb8]
cmp edx, 2
jne 0x666203
cmp dword [0x94bcc0], 0
mov edx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov ecx, dword [0x94bcc8]
je 0x666486
mov edi, dword [ecx + 8]
dec edi
and edi, 0xfffffff8
lea edx, [edi + edx + 8]
push eax
push edx
call dword [ecx + 0x14]
add esp, 8
mov ecx, dword [esp]
test al, al
je 0x666203
mov ebx, dword [0x94ae08]
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x66683d
mov eax, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x24]
mov dword [esp + 0x10], ebx
mov ebx, dword [ebx + 0x28]
cmp edi, 1
mov dword [esp + 0xa4], 0x8ace54
mov dword [esp + 0xa8], 1
mov dword [esp + 0xb4], 0
mov dword [esp + 0xac], 0x93d1f8
mov dword [esp + 0xb0], 0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x8c], 0
je 0x66683d
mov edx, dword [ecx + 8]
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0xc]
sub edx, dword [ecx + 0xc]
mov ecx, dword [esp + 8]
cmp edi, 2
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], edi
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
mov dword [esp + 0x18], edx
mov dword [esp + 0xa0], 1
jbe 0x66683d
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], 2
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xa4]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x28], 0x8a682c
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0x44]
mov dword [esp + 0x34], 0x8a9914
mov dword [esp + 0x38], ecx
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x40], 0x8a9914
mov dword [esp + 0x70], ecx
lea ecx, [eax + 0x1c]
mov dword [esp + 0x74], 3
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov eax, dword [0x94bfb8]
mov ecx, dword [esp]
cmp eax, 2
jne 0x666203
cmp dword [0x94bcc0], 0
mov ebx, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov edi, dword [0x94bcc8]
je 0x666643
mov eax, dword [edi + 8]
dec eax
and eax, 0xfffffff8
lea ebx, [eax + ebx + 8]
lea eax, [esp + 0x58]
push eax
push ebx
call dword [edi + 0x28]
add esp, 8
mov ecx, dword [esp]
test al, al
je 0x666203
lea eax, [esp + 0x58]
push eax
push ebx
call dword [edi + 0x2c]
mov ecx, dword [esp + 8]
add esp, 8
jmp 0x666203
xor edx, edx
xor esi, esi
xor eax, eax
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xc]
lea edx, [edx + edx*4]
lea eax, [eax + eax*4]
sub edi, ecx
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x14]
lea edx, [ecx + edx*8]
lea eax, [ecx + eax*8]
mov dword [esp + 0x20], edx
lea edx, [esi + esi*4]
lea esi, [esp + 0x20]
lea edx, [ecx + edx*8]
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], ecx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.00637a00
add eax, edi
cmp ebx, 2
mov dword [esp + 0x18], eax
jbe 0x666829
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 4]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 3
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x50], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x54], 2
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x20], eax
lea eax, [esp + 0xa4]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x28], 0x8a682c
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x18]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x44]
mov dword [esp + 0x34], 0x8a9914
mov dword [esp + 0x38], eax
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], eax
lea eax, [ecx + 0x1c]
mov dword [esp + 0x40], 0x8a9914
mov dword [esp + 0x78], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 1
mov eax, dword [0x94bfb8]
cmp eax, 2
jne 0x6667c1
cmp dword [0x94bcc0], 0
mov edi, dword [str.SetGlobalDefaultErrora_global_default_trace_dispatcher_has_already_been_set]
mov esi, dword [0x94bcc8]
je 0x6667a1
mov eax, dword [esi + 8]
dec eax
and eax, 0xfffffff8
lea edi, [eax + edi + 8]
lea ebx, [esp + 0x58]
push ebx
push edi
call dword [esi + 0x28]
add esp, 8
mov edx, dword [esp + 4]
test al, al
je 0x6667c1
push ebx
push edi
call dword [esi + 0x2c]
mov edx, dword [esp + 0xc]
add esp, 8
mov ecx, dword [esp]
jmp 0x666139
lea ecx, [esp + 0x44]
lea edx, [esp + 0xa4]
mov dword [esp + 0x20], 0x9390ec
mov dword [esp + 0x24], 2
mov dword [esp + 0x30], 0
mov dword [esp + 0xa4], eax
mov dword [esp + 0x58], ecx
lea ecx, [esp + 0x58]
mov dword [esp + 0x5c], fcn.00412930
mov dword [esp + 0x60], edx
mov edx, 0x8aefbc
mov dword [esp + 0x64], fcn.00412930
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], 2
call fcn.007c1b50
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8ace5c
call fcn.007c2000
mov ecx, 0x8a6758
mov edx, 0x22
push 0x8ace34
call fcn.007c2000
push 0x933804
call fcn.007c1c40
int3