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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x180
mov ebx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov esi, dword [eax + 4]
cmp ecx, edx
mov eax, esi
sbb eax, ebx
movss xmm6, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x30]
mov eax, dword [0x1025afd0]
mov dword [esp + 0x20], eax
jb 0x1007ad12
mov edx, dword [ebp + 0x20]
cmp ecx, edx
mov eax, edx
cmovb eax, ecx
mov ebx, dword [ebp + 0x24]
cmp esi, ebx
cmovae ecx, edx
cmove ecx, eax
cmovae esi, ebx
mov edx, ecx
mov ebx, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], ebx
and edi, 1
mov ecx, dword [ebp + 0x10]
and ecx, 0xfffffffe
cmp ecx, 4
sete byte [esp + 0x17]
ucomiss xmm6, dword [0x101a8280]
mov ebx, edi
mov edi, dword [ebp + 0x24]
setp dl
setne dh
or dh, dl
mov byte [esp + 0x110], dh
mov eax, dword [ebp + 0x20]
mov esi, dword [ebp + 0x18]
sub eax, esi
mov edx, edi
mov edi, dword [ebp + 0x1c]
sbb edx, edi
sub esi, dword [ebp + 0x20]
sbb edi, dword [ebp + 0x24]
mov dword [esp + 0x44], eax
cmovb esi, eax
mov dword [esp + 0x18], edx
cmovb edi, edx
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [edx], eax
mov eax, dword [esp + 0x24]
mov dword [edx + 4], eax
mov edx, dword [ebp + 8]
movss xmm5, dword [edx + ebx*4]
mov dword [esp + 0x64], ebx
movss xmm3, dword [edx + ebx*4 + 8]
movaps xmm1, xmm3
subss xmm1, xmm5
addss xmm1, dword [0x101a9d90]
mov ebx, dword [esp + 0x20]
movss xmm4, dword [ebx + 0x1570]
mov dword [esp + 0xac], ecx
cmp ecx, 4
je 0x1007adff
test edi, edi
js 0x1007adff
add esi, 1
adc edi, 0
movd xmm0, edi
movd xmm2, esi
punpckldq xmm2, xmm0
movq qword [esp + 0x170], xmm2
fild qword [esp + 0x170]
fstp dword [esp + 0xec]
movaps xmm0, xmm1
divss xmm0, dword [esp + 0xec]
movaps xmm2, xmm4
cmpless xmm2, xmm0
andps xmm0, xmm2
andnps xmm2, xmm4
orps xmm2, xmm0
movaps xmm4, xmm2
mov esi, dword [ebp + 0x18]
movzx ecx, byte [esp + 0x17]
mov ch, byte [esp + 0x110]
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x44]
and cl, ch
addss xmm5, dword [0x101a9ae8]
minss xmm4, xmm1
movss xmm0, dword [0x101a82c0]
mulss xmm0, xmm4
addss xmm5, xmm0
movd xmm7, eax
mov edi, edx
movd xmm2, edx
mov edx, dword [ebp + 0xc]
cmp dword [ebx + 0x1a04], edx
movaps xmmword [esp + 0x110], xmm4
movss dword [esp + 0xb4], xmm5
movss dword [esp + 0xb0], xmm0
mov byte [esp + 0x17], cl
jne 0x1007afea
cmp dword [ebx + 0x1a34], 1
jne 0x1007afea
mov edx, ebx
cmp byte [ebx + 0xe8], 0
mov ebx, dword [esp + 0x64]
movaps xmmword [esp + 0x90], xmm3
movdqa xmmword [esp + 0x100], xmm7
movdqa xmmword [esp + 0xf0], xmm2
je 0x1007b36b
subss xmm1, xmm4
xorps xmm0, xmm0
ucomiss xmm1, xmm0
jbe 0x1007aeda
movss xmm0, dword [edx + ebx*4 + 0xe0]
subss xmm0, xmm5
divss xmm0, xmm1
movss xmm1, dword [0x101a8280]
minss xmm1, xmm0
pxor xmm2, xmm2
cmpltss xmm0, xmm2
andnps xmm0, xmm1
movss xmm1, dword [0x101a8280]
test ebx, ebx
je 0x1007aef0
movaps xmm2, xmm1
subss xmm2, xmm0
movaps xmm0, xmm2
test cl, cl
je 0x1007b3a3
xorps xmm2, xmm2
ucomiss xmm2, xmm0
jbe 0x1007b4b3
divss xmm0, xmm2
subss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm6
cvtss2sd xmm1, xmm1
movsd qword [esp + 8], xmm0
movsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
fstp dword [esp + 0xd0]
movd xmm0, esi
mov edi, dword [ebp + 0x1c]
movd xmm1, edi
punpckldq xmm0, xmm1
movq qword [esp + 0x140], xmm0
mov eax, edi
fild qword [esp + 0x140]
fnstcw word [esp + 0x42]
movzx ecx, word [esp + 0x42]
or ecx, 0x300
mov word [esp + 0x62], cx
fldcw word [esp + 0x62]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x42]
fstp dword [esp + 0xcc]
movss xmm0, dword [esp + 0xcc]
mulss xmm0, dword [esp + 0xd0]
addss xmm0, dword [0x101a9780]
movss xmm1, dword [0x101b0d48]
ucomiss xmm0, xmm1
jae 0x1007afa6
xorps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x68], xmm0
setae al
fld dword [esp + 0x68]
fnstcw word [esp + 0x40]
movzx ecx, word [esp + 0x40]
or ecx, 0xc00
mov word [esp + 0x60], cx
fldcw word [esp + 0x60]
fistp qword [esp + 0x68]
fldcw word [esp + 0x40]
movzx eax, al
shl eax, 0x1f
xor eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x68]
jmp 0x1007b724
mov dword [esp + 0x20], 0
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
mov edx, edi
mov edi, dword [ebp + 0x1c]
sub eax, esi
movd xmm0, eax
sbb ebx, edi
movd xmm1, ebx
punpckldq xmm0, xmm1
movq qword [esp + 0x138], xmm0
fild qword [esp + 0x138]
fnstcw word [esp + 0x2c]
movzx eax, word [esp + 0x2c]
or eax, 0x300
mov word [esp + 0x4c], ax
fldcw word [esp + 0x4c]
shr ebx, 0x1f
fadd dword [ebx*4 + 0x101a8288]
fldcw word [esp + 0x2c]
fstp dword [esp + 0xc4]
movss xmm0, dword [esp + 0xc4]
punpckldq xmm7, xmm2
movdqa xmmword [esp + 0x100], xmm7
movq qword [esp + 0x130], xmm7
mov eax, edx
fild qword [esp + 0x130]
fnstcw word [esp + 0x2a]
movzx ecx, word [esp + 0x2a]
or ecx, 0x300
mov word [esp + 0x4a], cx
fldcw word [esp + 0x4a]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x2a]
addss xmm3, dword [0x101a9ca0]
movaps xmmword [esp + 0x90], xmm3
fstp dword [esp + 0xc8]
divss xmm0, dword [esp + 0xc8]
mulss xmm0, dword [0x101a99a8]
cvtss2sd xmm0, xmm0
movsd qword [esp], xmm0
mov ebx, edi
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movaps xmm3, xmmword [esp + 0x90]
fstp dword [esp + 0xc0]
cvttss2si eax, dword [esp + 0xc0]
mov ecx, dword [ebp + 0x38]
mov dword [ecx], eax
mov edx, dword [ebp + 0x20]
mov eax, edx
xor eax, esi
mov ecx, dword [ebp + 0x24]
xor ecx, edi
or ecx, eax
pxor xmm1, xmm1
movaps xmm4, xmmword [esp + 0x110]
je 0x1007b2a1
movdqa xmm0, xmmword [esp + 0x100]
mov edi, dword [ebp + 0x14]
mov eax, dword [edi]
mov dword [esp + 0x1c], eax
cmp edx, esi
mov edi, esi
mov ecx, ebx
mov ebx, esi
mov eax, esi
cmova eax, edx
mov dword [esp + 0x24], eax
cmovb edi, edx
cmp dword [ebp + 0x24], ecx
mov eax, esi
cmovb eax, edx
cmove eax, edi
mov esi, ecx
cmovbe edx, ebx
cmovb esi, dword [ebp + 0x24]
cmove edx, dword [esp + 0x24]
mov ebx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x14]
mov edi, dword [edi + 4]
cmovbe ebx, ecx
cmp dword [esp + 0x1c], eax
mov dword [esp + 0x24], edi
sbb edi, esi
jb 0x1007b183
mov esi, dword [esp + 0x1c]
cmp esi, edx
mov eax, edx
cmovb eax, esi
mov ecx, dword [esp + 0x24]
cmp ecx, ebx
cmovb edx, esi
cmove edx, eax
cmovb ebx, ecx
mov eax, edx
mov esi, ebx
sub eax, dword [ebp + 0x18]
sbb esi, dword [ebp + 0x1c]
cmp byte [esp + 0x17], 0
je 0x1007b246
mov edx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.10157a40
sub esp, 0x10
movd xmm0, edx
movd xmm1, eax
punpckldq xmm1, xmm0
movq qword [esp + 0x128], xmm1
fild qword [esp + 0x128]
fnstcw word [esp + 0x28]
movzx eax, word [esp + 0x28]
or eax, 0x300
mov word [esp + 0x48], ax
fldcw word [esp + 0x48]
shr edx, 0x1f
fadd dword [edx*4 + 0x101a8288]
fldcw word [esp + 0x28]
fstp dword [esp + 0xbc]
movss xmm0, dword [esp + 0xbc]
movss xmm1, dword [0x101a8280]
divss xmm1, dword [ebp + 0x2c]
cvtss2sd xmm1, xmm1
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm4, xmmword [esp + 0x110]
fstp dword [esp + 0xb8]
xorps xmm1, xmm1
addss xmm1, dword [esp + 0xb8]
jmp 0x1007b299
movdqa xmm5, xmm0
movd xmm0, eax
movd xmm1, esi
punpckldq xmm0, xmm1
movdqa xmm1, xmmword [0x101b0d50]
punpckldq xmm0, xmm1
movapd xmm2, xmmword [0x101b0d60]
subpd xmm0, xmm2
movapd xmm3, xmm0
unpckhpd xmm3, xmm0
addsd xmm3, xmm0
punpckldq xmm5, xmm1
subpd xmm5, xmm2
movapd xmm0, xmm5
unpckhpd xmm0, xmm5
addsd xmm0, xmm5
divsd xmm3, xmm0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm3
movaps xmm3, xmmword [esp + 0x90]
movaps xmm0, xmmword [0x101a97e0]
xorps xmm0, xmm4
subss xmm3, dword [esp + 0xb0]
cmp dword [esp + 0x64], 0
movss xmm5, dword [esp + 0xb4]
je 0x1007b2d3
movss xmm2, dword [0x101a8280]
subss xmm2, xmm1
movaps xmm1, xmm2
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x34]
subss xmm3, xmm5
mulss xmm3, xmm1
addss xmm3, xmm5
jne 0x1007b314
movss xmm1, dword [ecx + 0xc]
addss xmm1, dword [0x101a9ca0]
movss xmm2, dword [ecx + 4]
addss xmm2, dword [0x101a9ae8]
unpcklps xmm0, xmm4
shufps xmm3, xmm3, 0
mulps xmm0, xmmword [0x101a9710]
addps xmm0, xmm3
jmp 0x1007b348
movss xmm1, dword [0x101a82c0]
mulss xmm4, xmm1
addss xmm4, xmm3
mulss xmm0, xmm1
addss xmm0, xmm3
movups xmm1, xmmword [ecx]
movaps xmm2, xmm0
movss xmm0, dword [ecx + 8]
movlhps xmm0, xmm1
shufps xmm0, xmm1, 0xe2
addps xmm0, xmmword [0x101b0d90]
movaps xmm1, xmm4
mov eax, dword [esp + 0x20]
movss dword [edx], xmm0
movss dword [edx + 4], xmm2
shufps xmm0, xmm0, 0x55
movss dword [edx + 8], xmm0
movss dword [edx + 0xc], xmm1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1004bd00
movdqa xmm2, xmmword [esp + 0xf0]
movdqa xmm7, xmmword [esp + 0x100]
mov edx, edi
movaps xmm3, xmmword [esp + 0x90]
mov eax, dword [ebp + 0x14]
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
mov eax, ecx
mov dword [esp + 0x20], 0
jmp 0x1007affc
cmp dword [esp + 0xac], 4
jne 0x1007b5e6
movd xmm1, esi
mov edi, dword [ebp + 0x1c]
movd xmm2, edi
punpckldq xmm1, xmm2
movq qword [esp + 0x160], xmm1
mov eax, edi
fild qword [esp + 0x160]
fnstcw word [esp + 0x38]
movzx ecx, word [esp + 0x38]
or ecx, 0x300
mov word [esp + 0x58], cx
fldcw word [esp + 0x58]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x38]
fstp dword [esp + 0xe4]
movdqa xmm1, xmm7
punpckldq xmm1, xmmword [esp + 0xf0]
movq qword [esp + 0x158], xmm1
mov eax, dword [esp + 0x18]
fild qword [esp + 0x158]
fnstcw word [esp + 0x36]
movzx ecx, word [esp + 0x36]
or ecx, 0x300
mov word [esp + 0x56], cx
fldcw word [esp + 0x56]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x36]
fstp dword [esp + 0xe0]
mulss xmm0, dword [esp + 0xe0]
addss xmm0, dword [esp + 0xe4]
movss xmm1, dword [0x101b0d48]
ucomiss xmm0, xmm1
jae 0x1007b46f
xorps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x78], xmm0
setae al
fld dword [esp + 0x78]
fnstcw word [esp + 0x34]
movzx ecx, word [esp + 0x34]
or ecx, 0xc00
mov word [esp + 0x54], cx
fldcw word [esp + 0x54]
fistp qword [esp + 0x78]
fldcw word [esp + 0x34]
movzx eax, al
shl eax, 0x1f
xor eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
jmp 0x1007b724
xorps xmm1, xmm1
cvtss2sd xmm1, xmm6
cvtss2sd xmm0, xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
fstp dword [esp + 0xdc]
movd xmm0, esi
mov eax, dword [ebp + 0x1c]
movd xmm1, eax
punpckldq xmm0, xmm1
movq qword [esp + 0x150], xmm0
fild qword [esp + 0x150]
fnstcw word [esp + 0x3e]
movzx ecx, word [esp + 0x3e]
or ecx, 0x300
mov word [esp + 0x5e], cx
fldcw word [esp + 0x5e]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x3e]
fstp dword [esp + 0xd8]
movaps xmm0, xmmword [esp + 0x100]
unpcklps xmm0, xmmword [esp + 0xf0]
movlps qword [esp + 0x148], xmm0
mov eax, dword [esp + 0x18]
fild qword [esp + 0x148]
fnstcw word [esp + 0x3c]
movzx ecx, word [esp + 0x3c]
or ecx, 0x300
mov word [esp + 0x5c], cx
fldcw word [esp + 0x5c]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x3c]
fstp dword [esp + 0xd4]
movss xmm0, dword [esp + 0xd4]
mulss xmm0, dword [esp + 0xdc]
addss xmm0, dword [esp + 0xd8]
movss xmm1, dword [0x101b0d48]
ucomiss xmm0, xmm1
jae 0x1007b59c
xorps xmm1, xmm1
subss xmm0, xmm1
movss dword [esp + 0x70], xmm0
setae al
fld dword [esp + 0x70]
fnstcw word [esp + 0x3a]
movzx ecx, word [esp + 0x3a]
or ecx, 0xc00
mov word [esp + 0x5a], cx
fldcw word [esp + 0x5a]
fistp qword [esp + 0x70]
fldcw word [esp + 0x3a]
movzx eax, al
shl eax, 0x1f
xor eax, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x1c]
jmp 0x1007b727
movdqa xmm1, xmm7
punpckldq xmm1, xmmword [esp + 0xf0]
movq qword [esp + 0x168], xmm1
mov eax, dword [esp + 0x18]
fild qword [esp + 0x168]
fnstcw word [esp + 0x32]
movzx ecx, word [esp + 0x32]
or ecx, 0x300
mov word [esp + 0x52], cx
fldcw word [esp + 0x52]
shr eax, 0x1f
fadd dword [eax*4 + 0x101a8288]
fldcw word [esp + 0x32]
fstp dword [esp + 0xe8]
mulss xmm0, dword [esp + 0xe8]
xorps xmm1, xmm1
cvtss2sd xmm1, xmm0
movss xmm2, dword [0x101b0d48]
ucomiss xmm0, xmm2
jae 0x1007b654
xorps xmm2, xmm2
subss xmm0, xmm2
movss dword [esp + 0x80], xmm0
setae al
fld dword [esp + 0x80]
fnstcw word [esp + 0x30]
movzx ecx, word [esp + 0x30]
or ecx, 0xc00
mov word [esp + 0x50], cx
fldcw word [esp + 0x50]
fistp qword [esp + 0x80]
fldcw word [esp + 0x30]
movzx ecx, al
shl ecx, 0x1f
xor ecx, dword [esp + 0x84]
addsd xmm1, qword [0x101b0da0]
mov edi, dword [esp + 0x80]
movsd xmm0, qword [0x101b0da8]
ucomisd xmm1, xmm0
jae 0x1007b6bc
xorpd xmm0, xmm0
subsd xmm1, xmm0
movsd qword [esp + 0x88], xmm1
setae al
fld qword [esp + 0x88]
fnstcw word [esp + 0x2e]
movzx edx, word [esp + 0x2e]
or edx, 0xc00
mov word [esp + 0x4e], dx
fldcw word [esp + 0x4e]
fistp qword [esp + 0x88]
fldcw word [esp + 0x2e]
movzx eax, al
shl eax, 0x1f
xor eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
cmp edi, edx
mov esi, edx
cmova esi, edi
cmp ecx, eax
cmova edx, edi
cmove edx, esi
cmova eax, ecx
add edx, dword [ebp + 0x18]
mov edi, dword [ebp + 0x1c]
adc eax, edi
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.10086a70
mov ebx, edx
mov ecx, edx
xor ecx, dword [esi + 4]
mov edx, esi
mov dword [esp + 0x1c], eax
mov esi, eax
xor esi, dword [edx]
or esi, ecx
jne 0x1007b788
mov dword [esp + 0x20], 0
movaps xmm3, xmmword [esp + 0x90]
mov esi, dword [ebp + 0x18]
mov edx, dword [esp + 0x18]
movdqa xmm7, xmmword [esp + 0x100]
movdqa xmm2, xmmword [esp + 0xf0]
mov eax, dword [esp + 0x1c]
jmp 0x1007afff
mov ecx, dword [esp + 0x1c]
mov dword [edx], ecx
mov dword [edx + 4], ebx
mov al, 1
mov dword [esp + 0x20], eax
movaps xmm3, xmmword [esp + 0x90]
mov esi, dword [ebp + 0x18]
mov edx, dword [esp + 0x18]
movdqa xmm7, xmmword [esp + 0x100]
movdqa xmm2, xmmword [esp + 0xf0]
mov eax, ecx
jmp 0x1007afff