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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x3080
call fcn.100f6d70
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x10356534]
xor ecx, ebp
mov dword [esp + 0x3078], ecx
mov ecx, dword [0x103567e4]
dec eax
cmp eax, 0x40
jae 0x100669bd
mov esi, dword [ebp + 8]
imul edi, eax, 0xa818
cmp dword [ecx + edi + 0x3c50], 1
jbe 0x10066779
mov dword [esp + 0x1c], ecx
lea esi, [ecx + edi]
add esi, 0x3c40
mov eax, dword [0x1035678c]
mov ecx, dword [eax + 0x208]
mov eax, dword [ecx]
call dword [eax + 0x30]
fstp dword [esp + 0x54]
movss xmm0, dword [esp + 0x54]
movaps xmmword [esp + 0x20], xmm0
mov ecx, dword [0x10356820]
mov eax, dword [ecx]
call dword [eax + 0x138]
mov ebx, eax
mov eax, dword [eax]
mov dword [esp], 0
mov ecx, ebx
call dword [eax + 0x28]
sub esp, 4
fstp dword [esp + 0x50]
movss xmm0, dword [esp + 0x50]
movss dword [esp + 0x10], xmm0
mov eax, dword [ebx]
mov dword [esp], 1
mov ecx, ebx
call dword [eax + 0x28]
sub esp, 4
fstp dword [esp + 0x4c]
mov eax, dword [esi + 0x10]
test eax, eax
je 0x10066776
add dword [esp + 0x1c], edi
movss xmm1, dword [esp + 0x10]
addss xmm1, dword [esp + 0x4c]
xorps xmm0, xmm0
maxss xmm0, xmm1
movaps xmm3, xmmword [esp + 0x20]
movaps xmm2, xmm3
cmpltss xmm2, xmm1
movaps xmm1, xmm2
andnps xmm1, xmm0
andps xmm2, xmm3
orps xmm2, xmm1
mov ecx, dword [0x1035678c]
addss xmm2, dword [ecx + 0x3f48]
movaps xmmword [esp + 0x60], xmm2
mov ecx, dword [esi]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0xc]
add ecx, eax
mov esi, 1
sub esi, eax
jmp 0x1006657e
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
fstp qword [esp + 0x58]
movsd xmm0, qword [esp + 0x58]
cvtsd2ss xmm0, xmm0
movss xmm1, dword [0x10154df4]
ucomiss xmm1, xmm0
jbe 0x1006676d
nop dword [eax]
inc esi
cmp esi, 1
mov ecx, dword [esp + 0x20]
je 0x10066776
mov dword [esp + 0x14], ecx
lea edi, [ecx - 1]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, edi
shr ecx, 1
mov edx, dword [eax + 8]
dec edx
and edx, ecx
mov eax, dword [eax + 4]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x20], edi
mov ecx, edi
and ecx, 1
mov edi, dword [eax + ecx*8]
test edi, edi
je 0x10066570
mov ebx, dword [0x1035678c]
mov ecx, dword [ebx + 0x208]
mov eax, dword [ecx]
call dword [eax + 0x30]
movss xmm0, dword [ebx + 0x3f48]
addss xmm0, dword [ebx + 0x3f4c]
addss xmm0, dword [ebx + 0x3f50]
mov eax, dword [0x1035678c]
mov ecx, dword [eax]
mov eax, dword [eax + 0x124]
mov ecx, dword [ecx]
mov eax, dword [eax + ecx]
mov ecx, dword [0x103567e0]
mov ecx, dword [ecx + 0x20]
test ecx, ecx
mov edx, 0
cmovle ecx, edx
sub eax, ecx
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
mov eax, dword [0x1035679c]
bswap eax
mov edx, dword [0x103567a0]
add edx, eax
mov ecx, dword [0x103567a4]
ror edx, cl
mulss xmm1, dword [edx + 0x20]
subss xmm1, dword [edi + 0x6360]
mov dword [esp + 0x78], 0x3e1a8edb
mov eax, dword [esp + 0x78]
bswap eax
mov dword [esp + 0x78], eax
add dword [esp + 0x78], 0xa171e5c2
mov eax, dword [esp + 0x78]
rol eax, 0xc
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x78], 0xfd73b6c2
mov ecx, dword [esp + 0x78]
bswap ecx
mov dword [esp + 0x78], ecx
add dword [esp + 0x78], 0x75c98c04
mov ecx, dword [esp + 0x78]
rol ecx, 0xd
fstp dword [esp + 0x48]
movss xmm3, dword [esp + 0x48]
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x78]
test esi, esi
je 0x10066570
xorps xmm4, xmm4
maxss xmm4, xmm0
movaps xmm2, xmm3
cmpltss xmm2, xmm0
movaps xmm0, xmm2
andnps xmm0, xmm4
andps xmm2, xmm3
orps xmm2, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
subss xmm2, xmm1
xorps xmm1, xmm1
cvtsi2ss xmm1, ecx
andps xmm2, xmmword [0x10154d90]
divss xmm0, xmm1
ucomiss xmm0, xmm2
jbe 0x10066570
mov ebx, edi
mov edx, dword [esp + 0x14]
lea edi, [edx - 2]
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
shr edi, 1
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
mov dword [esp + 0x18], edi
and eax, edi
and edx, 1
mov eax, dword [ecx + eax*4]
cmp dword [eax + edx*8], 0
je 0x10066570
mov edi, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov ecx, dword [0x1035678c]
mov ecx, dword [ecx + 0x34]
movss xmm1, dword [ebx + 0x637c]
movss xmm0, dword [ebx + 0x6380]
subss xmm1, dword [ecx + eax]
subss xmm0, dword [ecx + eax + 4]
movss xmm2, dword [ebx + 0x6384]
subss xmm2, dword [ecx + eax + 8]
mulss xmm1, xmm1
addss xmm1, dword [0x10154e10]
mulss xmm0, xmm0
addss xmm0, xmm1
mulss xmm2, xmm2
addss xmm2, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
ucomisd xmm0, qword [0x10154e08]
jb 0x10066540
sqrtsd xmm0, xmm0
jmp 0x10066554
cmp byte [ebx + 0x635a], 0
je 0x1006679a
mov esi, dword [ebp + 8]
mov byte [esi + 0x3000], 0
mov ecx, dword [esp + 0x3078]
xor ecx, ebp
call fcn.100f6c33
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
dec eax
and eax, dword [esp + 0x18]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + edi*8]
movss xmm1, dword [eax + 0x6360]
movss xmm0, dword [eax + 0x637c]
movss xmm2, dword [eax + 0x6380]
movss dword [esp + 0x14], xmm2
movss xmm2, dword [eax + 0x6384]
movss dword [esp + 0x10], xmm2
movss xmm2, dword [ebx + 0x6360]
subss xmm1, xmm2
mov eax, dword [0x1035679c]
bswap eax
mov edx, dword [0x103567a0]
add edx, eax
mov ecx, dword [0x103567a4]
ror edx, cl
movaps xmm3, xmmword [esp + 0x60]
addss xmm3, xmm2
addss xmm3, xmm1
subss xmm3, dword [edx + 0x10]
movss xmm4, dword [0x10154df4]
movaps xmm2, xmm4
divss xmm2, xmm1
mulss xmm2, xmm3
xorps xmm1, xmm1
maxss xmm1, xmm2
movaps xmm3, xmm4
cmpltss xmm3, xmm2
movaps xmm2, xmm3
andnps xmm2, xmm1
andps xmm3, xmm4
orps xmm3, xmm2
movaps xmmword [esp + 0x20], xmm3
movss xmm1, dword [ebx + 0x637c]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
movss dword [esp + 8], xmm3
call fcn.1004cdd0
fstp dword [esp + 0x44]
movss xmm0, dword [esp + 0x44]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [ebx + 0x6380]
movaps xmm1, xmmword [esp + 0x20]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x14]
movss dword [esp], xmm0
call fcn.1004cdd0
fstp dword [esp + 0x40]
movss xmm0, dword [esp + 0x40]
movss dword [esp + 0x14], xmm0
movss xmm0, dword [ebx + 0x6384]
movaps xmm1, xmmword [esp + 0x20]
movss dword [esp + 8], xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x10]
movss dword [esp], xmm0
call fcn.1004cdd0
fstp dword [esp + 0x3c]
movss xmm0, dword [esp + 0x3c]
movss dword [esp + 0x20], xmm0
mov dword [esp + 4], ebx
lea esi, [esp + 0x78]
mov dword [esp], esi
mov dword [esp + 8], 0x3000
call sub.VCRUNTIME140.dll_memcpy
movss xmm3, dword [esp + 0x20]
movss xmm2, dword [esp + 0x14]
movss xmm1, dword [esp + 0x18]
subss xmm1, dword [ebx + 0x637c]
subss xmm2, dword [ebx + 0x6380]
subss xmm3, dword [ebx + 0x6384]
mov eax, 0x5c
nop dword [eax]
movss xmm0, dword [esp + eax + 0x28]
addss xmm0, xmm1
movss dword [esp + eax + 0x28], xmm0
movss xmm0, dword [esp + eax + 0x38]
addss xmm0, xmm2
movss dword [esp + eax + 0x38], xmm0
movss xmm0, dword [esp + eax + 0x48]
addss xmm0, xmm3
movss dword [esp + eax + 0x48], xmm0
movss xmm0, dword [esp + eax + 0x58]
addss xmm0, xmm1
movss dword [esp + eax + 0x58], xmm0
movss xmm0, dword [esp + eax + 0x68]
addss xmm0, xmm2
movss dword [esp + eax + 0x68], xmm0
movss xmm0, dword [esp + eax + 0x78]
addss xmm0, xmm3
movss dword [esp + eax + 0x78], xmm0
add eax, 0x60
cmp eax, 0x305c
jne 0x10066930
mov dword [esp + 4], esi
mov esi, dword [ebp + 8]
mov dword [esp], esi
mov dword [esp + 8], 0x3000
call sub.VCRUNTIME140.dll_memcpy
mov byte [esi + 0x3000], 1
jmp 0x10066780
call fcn.1002adc0
int3