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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x40
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x18]
xor si, si
test edi, edi
je 0x66ebb0
mov dword [esp + 8], 0x6c1
mov dword [esp + 4], 0x80efdd
mov dword [esp], 0
call fcn.007101f0
mov edx, 0x80efc8
cmp eax, 0x80efdd
cmove eax, edx
or esi, 0x11
mov dword [esp], eax
call fcn.00723840
mov dword [edi + 0x63c], esi
mov dword [edi + 0x600], 0
mov byte [edi + 0x5ac], 0
mov dword [edi + 0x7a0], eax
xor eax, eax
lea esi, [esi]
lea esi, [esi]
mov byte [edi + 0x638], al
xor edx, edx
mov eax, edi
call fcn.00663b00
mov dword [esp], edi
call fcn.00664890
cmp byte [edi + 0x211], 0
jne 0x66e761
mov dword [esp + 4], 1
mov dword [esp], edi
call fcn.0065f580
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.00671790
mov dword [esp], edi
call fcn.0066a380
mov edx, eax
mov eax, 1
test edx, edx
js 0x66e6e0
mov eax, dword [edi + 0x57c]
mov esi, dword [edi + 0x570]
cmp dword [edi + 0x578], esi
sbb eax, dword [edi + 0x574]
jl 0x66e761
mov eax, dword [edi + 0x3c]
or eax, dword [edi + 0x38]
jne 0x66e788
mov dword [esp], edi
call fcn.006646b0
mov dword [esp], edi
mov dword [esp + 4], 1
call fcn.0066aa30
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 4], 0
mov eax, dword [edi + 0x544]
mov dword [esp], eax
call fcn.004ec2e0
test eax, eax
jne 0x66ed70
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.0064de00
test eax, eax
js 0x66ebef
mov eax, dword [edi + 0x544]
pxor xmm0, xmm0
add dword [eax + 0x38], 1
adc dword [eax + 0x3c], 0
movups xmmword [edi + 0x8c8], xmm0
movups xmmword [edi + 0x8d8], xmm0
movups xmmword [edi + 0x8e8], xmm0
movups xmmword [edi + 0x8f8], xmm0
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00664750
mov eax, dword [edi + 0x5a0]
mov edx, 1
mov dword [edi + 0x564], 1
test eax, eax
cmove eax, edx
mov dword [edi + 0x908], eax
xor eax, eax
cmp eax, dword [edi + 0x580]
sbb eax, dword [edi + 0x584]
jl 0x66e848
mov dword [edi + 0x580], 1
mov dword [edi + 0x584], 0
mov eax, 4
cmp eax, dword [edi + 0x1f8]
mov eax, 0
sbb eax, dword [edi + 0x1fc]
jge 0x66ed95
mov dword [edi + 0x8c0], 0x10
mov edx, dword [edi + 0x3c]
lea eax, [edx + 1]
cmp eax, 0xf
jle 0x66e893
lea eax, [edx - 0xf]
and eax, 0xfffffff0
add eax, 0x20
cmp edx, 0xe
mov edx, 0x20
cmovle eax, edx
mov dword [edi + 0x8c0], eax
cmp dword [edi + 0x78], 1
mov ecx, dword [edi + 0x94]
sbb ebx, ebx
and ebx, 0xf00
add ebx, 0x100
shl ebx, cl
mov dword [esp + 8], ebx
mov esi, edi
mov dword [esp + 4], 0x80effc
mov dword [esp], 5
call fcn.004fc8f0
mov eax, ebx
mov dword [edi + 0x8c4], 0
cdq
mov dword [esp + 0x28], 0
idiv dword [edi + 0x908]
mov dword [esp + 0x2c], 0
mov edx, 1
test eax, eax
cmove eax, edx
mov dword [edi + 0x90c], eax
mov eax, dword [edi + 0x8c0]
test eax, eax
jle 0x66eca9
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.0066b4d0
test eax, eax
js 0x66eda9
mov eax, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov ecx, dword [esi + 0x8c0]
mov ebx, dword [esi + 0x908]
mov dword [esp + 0x20], eax
add eax, 0xffffffff
mov dword [esp + 0x24], edx
adc edx, 0xffffffff
mov dword [esp + 8], ecx
sar ecx, 0x1f
mov dword [esp + 0x38], ebx
mov dword [esp + 0xc], ecx
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.007121f8
mov ebx, dword [esp + 0x28]
mov edi, eax
imul ebx, edx
mov edx, dword [esp + 0x2c]
mov eax, edi
imul edx, edi
mov ecx, ebx
mov ebx, dword [esp + 0x24]
add ecx, edx
mul dword [esp + 0x28]
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x38]
add dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x20]
cdq
sub ecx, eax
mov eax, dword [esp + 0x30]
sbb ebx, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], ecx
cmp ecx, eax
mov edi, ebx
mov dword [esp + 0x34], ebx
mov ecx, dword [esi + 0x784]
sbb edi, edx
mov ebx, edx
mov edx, eax
cmovl edx, dword [esp + 0x30]
mov eax, edx
mov edx, ebx
mov ebx, dword [esp + 0x38]
cmovl edx, dword [esp + 0x34]
mov dword [esi + 0x598], eax
mov dword [esi + 0x59c], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], esi
call fcn.0064e160
test eax, eax
js 0x66ed30
mov edi, dword [esi + 0x90c]
mov dword [esp + 0x30], 0
xor eax, eax
mov ebx, dword [0x9003c0]
test edi, edi
jle 0x66ec23
mov dword [esp + 0x20], ebx
jmp 0x66ea2d
add dword [esp + 0x30], 1
mov eax, dword [esp + 0x30]
cmp dword [esi + 0x90c], eax
jle 0x66ec18
mov edi, dword [esi + 0x908]
mov ebx, edi
mov eax, edi
sar ebx, 0x1f
add eax, dword [esi + 0x598]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x38]
mov edx, ebx
adc edx, dword [esi + 0x59c]
mov dword [esp + 0x3c], edx
sub eax, edi
mov edx, dword [esi + 0x3c]
mov ecx, eax
mov eax, dword [esp + 0x38]
sbb edx, ebx
mov ebx, edx
cmp ecx, eax
mov eax, edx
mov edx, dword [esp + 0x3c]
sbb eax, edx
mov eax, dword [esp + 0x38]
cmovl edx, ebx
cmovl eax, ecx
mov ecx, dword [esi + 0x784]
mov dword [esi + 0x59c], edx
mov dword [esi + 0x598], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp], esi
call fcn.0064e160
test eax, eax
jns 0x66ea18
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [esi + 0x780]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00669e30
mov dword [esp], esi
call fcn.0066a240
test eax, eax
jns 0x66ea18
mov eax, dword [esi + 0x908]
mov ecx, dword [esi + 0x598]
mov edi, esi
mov ebx, dword [esi + 0x59c]
mov dword [esp + 4], 1
cdq
add eax, ecx
mov dword [esp + 8], ecx
adc edx, ebx
add eax, 0xffffffff
mov dword [esp + 0xc], ebx
adc edx, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp], esi
call fcn.00674150
mov ebx, dword [edi + 0x544]
mov dword [esp + 8], 1
mov dword [esp + 4], 5
mov eax, dword [ebx + 0x1c]
mov dword [esp], eax
call fcn.004ec660
mov dword [ebx + 0x1c], eax
mov ecx, dword [edi + 0x77c]
test ecx, ecx
jne 0x66eb51
mov dword [edi + 0x77c], 1
mov dword [edi + 0x564], 7
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00670470
mov dword [esp], edi
call fcn.0064e0d0
mov edx, dword [edi + 0x77c]
xor eax, eax
test edx, edx
setne al
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x544]
mov eax, dword [eax + 0x1c]
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
mov dword [esp + 8], eax
call fcn.006647d0
jmp 0x66e769
mov edx, dword [0x905dac]
test edx, edx
je 0x66ebe2
mov edi, dword [edx + 4]
test edi, edi
jne 0x66ebce
jmp 0x66ebe2
mov edi, dword [edi]
test edi, edi
je 0x66ebe2
cmp dword [edi + 0x1c], esi
jne 0x66ebc8
cmp eax, dword [edi + 0x20]
je 0x66e683
mov edi, dword [edi]
test edi, edi
jne 0x66ebce
lea esp, [ebp - 0xc]
mov eax, 0xfffffc7c
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp], 0x80ec76
call fcn.007101e8
mov dword [esp + 8], 1
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0066a0f0
jmp 0x66eb73
mov ebx, dword [esp + 0x20]
mov eax, dword [0x9003c0]
sub eax, ebx
mov edx, dword [esp + 0x28]
shl edx, 2
mov dword [esi + edx + 0x8c8], eax
add dword [esi + 0x8c4], 1
mov dword [esp], esi
call fcn.00666f60
mov ecx, dword [esi + 0x598]
mov eax, dword [esi + 0x908]
mov ebx, dword [esi + 0x59c]
mov dword [esp + 4], 0
cdq
add eax, ecx
mov dword [esp + 8], ecx
adc edx, ebx
add eax, 0xffffffff
mov dword [esp + 0xc], ebx
adc edx, 0xffffffff
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp], esi
call fcn.00674150
mov dword [esp + 4], 0
mov dword [esp], esi
call fcn.00670470
add dword [esp + 0x28], 1
mov eax, dword [esp + 0x28]
adc dword [esp + 0x2c], 0
cmp dword [esi + 0x8c0], eax
jg 0x66e908
mov edi, esi
mov eax, dword [edi + 0x58c]
mov ebx, dword [edi + 0x544]
test eax, eax
jle 0x66edd8
mov dword [ebx + 0x1c], 0xb
mov eax, dword [edi + 0x98]
add eax, 3
mov dword [esp], eax
call fcn.004eddb0
mov eax, dword [edi + 0x908]
mov ecx, dword [edi + 0x38]
mov dword [edi + 0x564], 7
mov ebx, dword [edi + 0x3c]
cdq
sub ecx, eax
sbb ebx, edx
mov dword [edi + 0x598], ecx
mov dword [edi + 0x59c], ebx
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00670470
mov dword [esp], edi
call fcn.0066fe80
cmp byte [0x90251c], 0
je 0x66eb6b
mov dword [esp], edi
call fcn.00665dd0
jmp 0x66eb6b
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov eax, dword [esi + 0x780]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00669e30
mov dword [esp], esi
call fcn.0066a240
test eax, eax
jns 0x66e9f0
jmp 0x66eada
mov dword [esp], 0x80ec65
call fcn.007101e8
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.0066a0f0
jmp 0x66e7a6
mov dword [edi + 0x8c0], 6
mov ebx, 0x20
jmp 0x66e8ad
mov eax, dword [esi + 0x58c]
mov ebx, dword [esi + 0x544]
mov edi, esi
test eax, eax
jle 0x66ee03
mov dword [ebx + 0x1c], 0xb
mov eax, dword [esi + 0x98]
add eax, 3
mov dword [esp], eax
call fcn.004eddb0
jmp 0x66eb19
mov dword [esp + 0xc], 1
mov dword [esp + 8], 9
mov eax, dword [ebx + 0x1c]
mov dword [esp], 5
mov dword [esp + 4], eax
call fcn.004ec690
mov dword [ebx + 0x1c], eax
jmp 0x66ecd5
mov dword [esp + 0xc], 1
mov dword [esp + 8], 9
mov eax, dword [ebx + 0x1c]
mov dword [esp], 5
mov dword [esp + 4], eax
call fcn.004ec690
mov dword [ebx + 0x1c], eax
jmp 0x66eb19