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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe8
mov eax, dword [0x100d4710]
xor eax, esp
mov dword [esp + 0xe4], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x30], edi
mov eax, dword [ebp + 8]
xorps xmm3, xmm3
movsd xmm0, qword [0x10056a50]
lea esi, [edi + 0x28]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x70], xmm0
movsd xmm0, qword [0x10056a88]
mov dword [edi], eax
lea eax, [edi + 0x1c]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [edi + 0x34], 0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [esp + 0x6c], eax
lea eax, [edi + 0x34]
mov dword [esp + 0x78], eax
lea eax, [edi + 0x44]
mov dword [edi + 4], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [edi + 0x40], 0
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [esp + 0xa4], eax
movups xmmword [edi + 0x50], xmm3
mov dword [edi + 0x60], 0
mov dword [edi + 0x64], 0
mov dword [edi + 0x68], 0
mov dword [edi + 0x6c], 0
mov eax, dword [edi]
mov dword [esp + 0x7c], esi
movsd qword [esp + 0x88], xmm0
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, 0xaaaaaaab
sar ecx, 3
mul ecx
movsd qword [esp + 0x38], xmm0
mov ecx, 0
mov eax, edx
mov dword [esp + 0x80], ecx
shr eax, 1
mov edx, ecx
and eax, 0x7fffffff
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0xb8], edx
jbe 0x1001d369
cmp eax, 0x3fffffff
ja 0x1001e2b2
push eax
lea ecx, [esp + 0xb4]
call fcn.1001e580
mov ecx, dword [esp + 0xb8]
xor edx, edx
movsd xmm3, qword [esp + 0x38]
xor eax, eax
movsd xmm4, qword [esp + 0x88]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0xa8], edx
mov dword [esp + 0x84], ecx
nop dword [eax + eax]
lea ecx, [eax + eax*2]
mov eax, dword [edi]
mov eax, dword [eax]
movsd xmm1, qword [eax + ecx*8]
movaps xmm0, xmm1
movsd xmm2, qword [eax + ecx*8 + 8]
minsd xmm0, xmm4
maxsd xmm1, qword [esp + 0x60]
movaps xmm4, xmm0
movaps xmm0, xmm2
minsd xmm0, xmm3
movsd qword [esp + 0x88], xmm4
maxsd xmm2, qword [esp + 0x70]
movaps xmm3, xmm0
movaps xmm0, xmm1
movaps xmm1, xmm2
movsd qword [esp + 0x38], xmm3
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x70], xmm1
cmp esi, dword [esp + 0x84]
je 0x1001d09a
mov dword [esi], edx
add esi, 4
mov dword [esp + 0xb4], esi
jmp 0x1001d0e6
lea eax, [esp + 0xa8]
push eax
push esi
lea ecx, [esp + 0xb8]
call fcn.1001ba90
mov eax, dword [esp + 0xb8]
mov edx, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x88]
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x84], eax
inc edx
mov eax, edx
mov dword [esp + 0xa8], edx
cmp eax, dword [esp + 0x34]
jb 0x1001d030
mov eax, dword [edi]
addsd xmm0, xmm4
movsd xmm6, qword [0x10056a88]
addsd xmm3, xmm1
or edx, 0xffffffff
mov dword [esp + 0xa8], 0xffffffff
movaps xmm2, xmm6
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [eax]
xor ecx, ecx
mulsd xmm0, qword [0x10056a70]
mulsd xmm3, qword [0x10056a70]
movsd qword [esp + 0x60], xmm0
nop
subsd xmm0, qword [eax]
movaps xmm1, xmm3
subsd xmm1, qword [eax + 8]
mulsd xmm0, xmm0
mulsd xmm1, xmm1
addsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x1001d163
mov edx, ecx
movaps xmm2, xmm1
movsd xmm0, qword [esp + 0x60]
inc ecx
add eax, 0x18
cmp ecx, dword [esp + 0x34]
jb 0x1001d140
mov eax, dword [edi]
movaps xmm2, xmm6
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edx
mov ecx, dword [eax]
lea eax, [edx + edx*2]
mov edx, ecx
movsd xmm5, qword [ecx + eax*8]
movsd xmm4, qword [ecx + eax*8 + 8]
xor eax, eax
movsd qword [esp + 0x40], xmm5
movsd qword [esp + 0x50], xmm4
xorps xmm3, xmm3
cmp eax, dword [esp + 0x48]
je 0x1001d1da
movaps xmm0, xmm5
movaps xmm1, xmm4
subsd xmm1, qword [edx + 8]
subsd xmm0, qword [edx]
mulsd xmm1, xmm1
mulsd xmm0, xmm0
addsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x1001d1da
comisd xmm1, xmm3
jbe 0x1001d1da
mov dword [esp + 0xa8], eax
movaps xmm2, xmm1
inc eax
add edx, 0x18
cmp eax, dword [esp + 0x34]
jb 0x1001d1a0
mov edx, dword [esp + 0xa8]
movaps xmm2, xmm6
mov dword [esp + 0x14], edx
movsd qword [esp + 0x38], xmm2
mov dword [esp + 0xac], ecx
lea eax, [edx + edx*2]
mov edx, dword [esp + 0x48]
movsd xmm0, qword [ecx + eax*8]
movsd xmm7, qword [ecx + eax*8 + 8]
xor eax, eax
movsd qword [esp + 0x90], xmm0
movsd qword [esp + 0x98], xmm7
cmp eax, edx
je 0x1001d33d
cmp eax, dword [esp + 0xa8]
je 0x1001d33d
movsd xmm2, qword [ecx]
subsd xmm7, xmm4
movaps xmm6, xmm0
subsd xmm2, xmm5
subsd xmm6, xmm5
movsd xmm5, qword [ecx + 8]
subsd xmm5, xmm4
movaps xmm1, xmm7
mulsd xmm1, xmm7
movaps xmm0, xmm6
movsd qword [esp + 0x20], xmm2
mulsd xmm0, xmm6
movaps xmm4, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x70], xmm5
addsd xmm1, xmm0
mulsd xmm5, xmm6
movaps xmm0, xmm2
mulsd xmm0, xmm2
comisd xmm1, xmm3
addsd xmm4, xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm7
subsd xmm5, xmm0
ja 0x1001d2a1
comisd xmm3, xmm1
jbe 0x1001d2b9
comisd xmm4, xmm3
ja 0x1001d2ad
comisd xmm3, xmm4
jbe 0x1001d2b9
comisd xmm5, xmm3
ja 0x1001d2c3
comisd xmm3, xmm5
ja 0x1001d2c3
movsd xmm2, qword [0x10056a88]
jmp 0x1001d309
movaps xmm0, xmm1
movaps xmm2, xmm4
mulsd xmm1, qword [esp + 0x70]
mulsd xmm0, qword [esp + 0x20]
mulsd xmm2, xmm6
mulsd xmm4, xmm7
subsd xmm2, xmm0
subsd xmm1, xmm4
mulsd xmm2, qword [0x10056a70]
mulsd xmm1, qword [0x10056a70]
divsd xmm2, xmm5
divsd xmm1, xmm5
mulsd xmm2, xmm2
mulsd xmm1, xmm1
addsd xmm2, xmm1
movsd xmm0, qword [esp + 0x38]
movsd xmm4, qword [esp + 0x50]
movsd xmm5, qword [esp + 0x40]
movsd xmm7, qword [esp + 0x98]
comisd xmm0, xmm2
movsd xmm0, qword [esp + 0x90]
jbe 0x1001d33d
mov dword [esp + 0x18], eax
movsd qword [esp + 0x38], xmm2
inc eax
add ecx, 0x18
cmp eax, dword [esp + 0x34]
jb 0x1001d225
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x80], eax
jmp 0x1001d3c8
mov eax, dword [edi]
or edx, 0xffffffff
mov dword [esp + 0x58], eax
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x18], 0xffffffff
mov eax, dword [eax]
mov dword [esp + 0xac], eax
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x48], 0xffffffff
movsd xmm4, qword [eax - 0x10]
movsd xmm5, qword [eax - 0x18]
movaps xmm7, xmm4
movsd qword [esp + 0x40], xmm5
movaps xmm0, xmm5
movsd qword [esp + 0x50], xmm4
movsd qword [esp + 0x90], xmm5
movsd qword [esp + 0x98], xmm7
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0xac]
lea eax, [eax + eax*2]
movsd xmm1, qword [esi + eax*8]
movsd xmm6, qword [esi + eax*8 + 8]
movaps xmm2, xmm1
subsd xmm2, xmm0
movsd qword [esp + 0xb0], xmm1
movaps xmm0, xmm7
movsd qword [esp + 0x88], xmm6
subsd xmm0, xmm4
movaps xmm1, xmm6
movsd xmm4, qword [esp + 0x90]
subsd xmm1, xmm7
mulsd xmm2, xmm0
movaps xmm0, xmm4
subsd xmm0, xmm5
mulsd xmm1, xmm0
subsd xmm2, xmm1
comisd xmm3, xmm2
seta al
mov byte [esp + 0x1f], al
test al, al
je 0x1001d469
movaps xmm0, xmm4
movsd xmm4, qword [esp + 0xb0]
movsd qword [esp + 0xb0], xmm0
movaps xmm0, xmm7
movaps xmm7, xmm6
movsd qword [esp + 0x90], xmm4
movsd qword [esp + 0x98], xmm7
movsd qword [esp + 0x88], xmm0
movsd xmm6, qword [esp + 0xb0]
movaps xmm7, xmm4
movsd xmm4, qword [esp + 0x98]
subsd xmm7, xmm5
subsd xmm4, qword [esp + 0x50]
movsd xmm2, qword [esp + 0x88]
subsd xmm6, xmm5
subsd xmm2, qword [esp + 0x50]
mov esi, dword [esp + 0x18]
mov eax, esi
movaps xmm0, xmm7
cmp byte [esp + 0x1f], 0
mulsd xmm0, xmm7
movaps xmm5, xmm4
cmove eax, edx
mov edx, dword [esp + 0x80]
mulsd xmm5, xmm4
movaps xmm1, xmm2
mov dword [esp + 0x18], eax
mulsd xmm1, xmm2
mov eax, dword [esp + 0x14]
cmove eax, esi
addsd xmm5, xmm0
mov dword [esp + 0x14], eax
movaps xmm0, xmm6
mov eax, dword [esp + 0x58]
mulsd xmm0, xmm6
mov dword [esp + 0xc0], eax
lea eax, [esp + 0xc0]
push eax
movaps xmm3, xmm5
mov eax, ecx
mulsd xmm3, xmm2
sub eax, edx
sar eax, 2
addsd xmm1, xmm0
mulsd xmm5, xmm6
push eax
movaps xmm0, xmm6
mulsd xmm0, xmm4
push ecx
movsd qword [esp + 0x2c], xmm1
movaps xmm1, xmm2
movsd xmm2, qword [esp + 0x2c]
mulsd xmm1, xmm7
push edx
subsd xmm1, xmm0
movaps xmm0, xmm2
mulsd xmm0, xmm4
mulsd xmm2, xmm7
subsd xmm3, xmm0
subsd xmm2, xmm5
mulsd xmm3, qword [0x10056a70]
mulsd xmm2, qword [0x10056a70]
divsd xmm3, xmm1
divsd xmm2, xmm1
addsd xmm3, qword [esp + 0x50]
addsd xmm2, qword [esp + 0x60]
movsd qword [esp + 0xd8], xmm3
movaps xmm0, xmmword [esp + 0xd0]
movsd qword [edi + 0x50], xmm3
movsd qword [edi + 0x58], xmm2
movaps xmmword [esp + 0xd0], xmm0
movq qword [esp + 0xe0], xmm2
call fcn.1001ccf0
mov eax, dword [esp + 0x44]
xorps xmm1, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
ucomisd xmm1, xmm0
ja 0x1001d5b8
sqrtsd xmm0, xmm0
jmp 0x1001d5bd
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
add esp, 8
movsd qword [esp + 0x28], xmm0
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
add esp, 8
mov dword [edi + 0x60], eax
lea ecx, [edi + 0x44]
push eax
call fcn.10020030
mov eax, dword [0x100569e8]
lea esi, [esp + 0xac]
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x44]
mov dword [esp + 0xac], 0
mov dword [esp + 0x58], ecx
cmp eax, dword [esi]
je 0x1001d64d
mov eax, 0x100569e8
mov al, byte [eax]
cmp al, byte [esi]
jne 0x1001d651
mov eax, 0x100569e8
mov al, byte [eax + 1]
cmp al, byte [esi + 1]
jne 0x1001d651
mov eax, 0x100569e8
mov al, byte [eax + 2]
cmp al, byte [esi + 2]
jne 0x1001d651
mov eax, 0x100569e8
mov al, byte [eax + 3]
cmp al, byte [esi + 3]
jne 0x1001d651
xor esi, esi
jmp 0x1001d656
sbb esi, esi
or esi, 1
mov eax, ecx
sub eax, edx
test esi, esi
jne 0x1001d66e
and eax, 0xfffffffc
push eax
push esi
push edx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x1001d6dd
add eax, 3
xor esi, esi
shr eax, 2
cmp edx, ecx
cmova eax, esi
test eax, eax
je 0x1001d6c2
cmp eax, 4
jb 0x1001d6c2
lea esi, [edx - 4]
lea esi, [esi + eax*4]
cmp edx, 0x100569e8
ja 0x1001d69a
cmp esi, 0x100569e8
jae 0x1001d6c2
and eax, 0xfffffffc
mov edi, edx
shl eax, 2
mov ecx, eax
mov dword [esp + 0xac], eax
shr ecx, 2
or eax, 0xffffffff
add edx, dword [esp + 0xac]
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x58]
cmp edx, ecx
je 0x1001d6dd
nop word [eax + eax]
mov dword [edx], 0xffffffff
add edx, 4
cmp edx, ecx
jne 0x1001d6d0
mov esi, dword [esp + 0x34]
lea ecx, [edi + 0x1c]
push esi
call fcn.10020030
push esi
lea esi, [edi + 0x28]
mov ecx, esi
call fcn.10020030
push dword [esp + 0x34]
lea ecx, [edi + 0x34]
call fcn.10020030
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x18]
mov dword [edi + 0x40], ecx
mov edi, dword [esp + 0x14]
mov eax, dword [eax]
movsd xmm4, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x50]
mov dword [eax + edi*4], edx
mov eax, dword [esi]
mov dword [eax + ecx*4], edx
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov dword [eax + ecx*4], edi
mov eax, dword [esi]
mov dword [eax + edx*4], edi
mov eax, dword [esp + 0x6c]
mov eax, dword [eax]
mov dword [eax + edx*4], ecx
mov eax, dword [esi]
mov esi, edi
mov edi, dword [esp + 0x30]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], 0
mov ecx, edx
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], 1
mov eax, dword [edi + 0x34]
mov dword [eax + esi*4], 2
subsd xmm4, qword [edi + 0x50]
subsd xmm2, qword [edi + 0x58]
mov esi, dword [edi + 0x60]
movaps xmm1, xmm4
comisd xmm2, xmmword [0x10056a48]
andps xmm1, xmmword [0x10056ab0]
movaps xmm0, xmm2
andps xmm0, xmmword [0x10056ab0]
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001d7ad
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001d7b8
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
mov eax, esi
sub esp, 8
shr eax, 0x1f
movd xmm0, esi
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x28], xmm1
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov edx, eax
add esp, 8
cmp edx, esi
jb 0x1001d811
xor edx, edx
div esi
mov eax, dword [edi + 0x44]
movsd xmm4, qword [esp + 0x90]
movsd xmm2, qword [esp + 0x98]
mov esi, dword [esp + 0x48]
mov dword [eax + edx*4], esi
subsd xmm4, qword [edi + 0x50]
subsd xmm2, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
mov dword [esp + 0xac], eax
movaps xmm1, xmm4
comisd xmm2, xmmword [0x10056a48]
andps xmm1, xmmword [0x10056ab0]
movaps xmm0, xmm2
andps xmm0, xmmword [0x10056ab0]
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001d875
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001d880
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x28], xmm1
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov ecx, dword [esp + 0xb4]
mov edx, eax
add esp, 8
cmp edx, ecx
jb 0x1001d8de
xor edx, edx
div ecx
mov eax, dword [edi + 0x44]
movsd xmm4, qword [esp + 0xb0]
movsd xmm2, qword [esp + 0x88]
mov ecx, dword [esp + 0x18]
mov dword [eax + edx*4], ecx
subsd xmm4, qword [edi + 0x50]
subsd xmm2, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
mov dword [esp + 0xac], eax
movaps xmm1, xmm4
comisd xmm2, xmmword [0x10056a48]
andps xmm1, xmmword [0x10056ab0]
movaps xmm0, xmm2
andps xmm0, xmmword [0x10056ab0]
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001d942
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001d94d
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x28], xmm1
fld qword [esp + 0x28]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x28]
movsd xmm0, qword [esp + 0x28]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov ecx, dword [esp + 0xb4]
mov edx, eax
add esp, 8
cmp edx, ecx
jb 0x1001d9ab
xor edx, edx
div ecx
mov eax, dword [edi + 0x44]
mov ecx, dword [esp + 0x14]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x34]
cmp eax, 3
jae 0x1001d9c5
mov ecx, 3
jmp 0x1001d9cf
lea eax, [eax + eax*2]
lea ecx, [eax*2 - 0xf]
mov eax, dword [edi + 0xc]
sub eax, dword [edi + 4]
sar eax, 2
mov dword [esp + 0xac], ecx
cmp ecx, eax
jbe 0x1001d9ff
cmp ecx, 0x3fffffff
ja 0x1001e2b2
push ecx
lea ecx, [edi + 4]
call fcn.1001e580
mov ecx, dword [esp + 0xac]
mov eax, dword [edi + 0x18]
sub eax, dword [edi + 0x10]
sar eax, 2
cmp ecx, eax
jbe 0x1001da21
cmp ecx, 0x3fffffff
ja 0x1001e2b2
push ecx
lea ecx, [edi + 0x10]
call fcn.1001e580
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [esp + 0x20]
mov ecx, edi
push dword [esp + 0x28]
push esi
call fcn.1001e680
movsd xmm3, qword [0x10056a90]
xor edx, edx
movaps xmm5, xmm3
movsd qword [esp + 0x20], xmm3
mov dword [esp + 0x18], edx
cmp dword [esp + 0x34], edx
jbe 0x1001e259
nop dword [eax + eax]
mov eax, dword [esp + 0x80]
mov eax, dword [eax + edx*4]
mov dword [esp + 0x14], eax
lea ecx, [eax + eax*2]
mov eax, dword [edi]
mov eax, dword [eax]
movsd xmm1, qword [eax + ecx*8]
movsd xmm2, qword [eax + ecx*8 + 8]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x70], xmm2
test edx, edx
je 0x1001dade
movsd xmm4, qword [0x10056a58]
movaps xmm0, xmm1
subsd xmm0, xmm3
movsd xmm3, qword [0x10056ab0]
andps xmm0, xmm3
comisd xmm4, xmm0
jb 0x1001dac4
movaps xmm0, xmm2
subsd xmm0, xmm5
andps xmm0, xmm3
comisd xmm4, xmm0
jae 0x1001e244
movsd xmm4, qword [esp + 0x40]
movsd xmm7, qword [esp + 0x50]
movsd qword [esp + 0x40], xmm4
movsd qword [esp + 0x50], xmm7
jmp 0x1001daf2
movsd xmm3, qword [0x10056ab0]
movsd xmm7, qword [esp + 0x50]
movsd xmm4, qword [esp + 0x40]
movaps xmm0, xmm1
movsd qword [esp + 0x20], xmm1
subsd xmm0, xmm4
movsd qword [esp + 0x60], xmm2
movaps xmm6, xmm4
movaps xmm5, xmm7
movsd xmm4, qword [0x10056a58]
andps xmm0, xmm3
comisd xmm4, xmm0
jb 0x1001db30
movaps xmm0, xmm2
subsd xmm0, xmm7
andps xmm0, xmm3
comisd xmm4, xmm0
jae 0x1001e23e
movaps xmm0, xmm1
movaps xmm7, xmm5
subsd xmm0, qword [esp + 0x90]
movsd qword [esp + 0x50], xmm7
movaps xmm4, xmm6
movsd xmm7, qword [0x10056a58]
movsd qword [esp + 0x40], xmm4
andps xmm0, xmm3
comisd xmm7, xmm0
movsd xmm7, qword [esp + 0x50]
jb 0x1001db99
movsd xmm4, qword [0x10056a58]
movaps xmm0, xmm2
subsd xmm0, qword [esp + 0x98]
andps xmm0, xmm3
comisd xmm4, xmm0
movsd xmm4, qword [esp + 0x40]
jb 0x1001db99
movsd qword [esp + 0x40], xmm6
movsd qword [esp + 0x50], xmm5
jmp 0x1001e23e
movaps xmm0, xmm1
movsd qword [esp + 0x58], xmm4
subsd xmm0, qword [esp + 0xb0]
movsd xmm4, qword [0x10056a58]
movsd qword [esp + 0x48], xmm7
andps xmm0, xmm3
comisd xmm4, xmm0
jb 0x1001dbdb
movaps xmm0, xmm2
subsd xmm0, qword [esp + 0x88]
andps xmm0, xmm3
comisd xmm4, xmm0
jae 0x1001e23e
subsd xmm2, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
movaps xmm4, xmm1
subsd xmm4, qword [edi + 0x50]
xor esi, esi
mov dword [esp + 0xac], eax
comisd xmm2, xmmword [0x10056a48]
movaps xmm1, xmm4
movaps xmm0, xmm2
andps xmm1, xmm3
andps xmm0, xmm3
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001dc20
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001dc2b
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x48], xmm1
fld qword [esp + 0x48]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x48]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov ecx, eax
add esp, 8
cmp ecx, dword [esp + 0xac]
jb 0x1001dc8e
xor edx, edx
div dword [esp + 0xac]
mov ecx, edx
mov edi, dword [edi + 0x60]
xor eax, eax
movsd xmm1, qword [esp + 0x58]
movsd xmm0, qword [esp + 0x48]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x50], xmm0
test edi, edi
je 0x1001dd17
mov edx, dword [esp + 0xa4]
movsd qword [esp + 0x40], xmm1
movsd qword [esp + 0x50], xmm0
mov esi, dword [edx]
mov dword [esp + 0xac], esi
jmp 0x1001dcdb
mov esi, dword [esp + 0xac]
cmp ecx, edi
jb 0x1001dcee
mov eax, ecx
xor edx, edx
div edi
mov eax, dword [esp + 0xa8]
jmp 0x1001dcf0
mov edx, ecx
mov esi, dword [esi + edx*4]
cmp esi, 0xffffffff
je 0x1001dd0a
mov eax, dword [esp + 0x7c]
mov eax, dword [eax]
cmp esi, dword [eax + esi*4]
jne 0x1001dd17
mov eax, dword [esp + 0xa8]
inc eax
inc ecx
mov dword [esp + 0xa8], eax
cmp eax, edi
jb 0x1001dcd4
mov eax, dword [esp + 0x6c]
xorps xmm6, xmm6
mov ecx, dword [esp + 0x7c]
movsd xmm5, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x38]
mov eax, dword [eax]
mov ecx, dword [ecx]
mov dword [esp + 0xac], ecx
mov eax, dword [eax + esi*4]
mov edi, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x48], edi
mov edx, dword [ecx + eax*4]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx]
mov esi, dword [eax]
mov eax, edi
lea eax, [eax + eax*2]
movsd xmm2, qword [esi + eax*8 + 8]
movsd xmm3, qword [esi + eax*8]
movaps xmm1, xmm2
lea eax, [edx + edx*2]
movsd xmm0, qword [esi + eax*8]
subsd xmm1, xmm5
subsd xmm0, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [esi + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
ja 0x1001ddef
mov edi, edx
mov dword [esp + 0x48], edi
cmp edx, dword [esp + 0x58]
je 0x1001e238
mov eax, dword [esp + 0xac]
mov edx, dword [eax + edx*4]
lea eax, [edi + edi*2]
movsd xmm2, qword [esi + eax*8 + 8]
movsd xmm3, qword [esi + eax*8]
movaps xmm1, xmm2
subsd xmm1, xmm5
lea eax, [edx + edx*2]
movsd xmm0, qword [esi + eax*8]
subsd xmm0, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [esi + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1001dd94
cmp edi, 0xffffffff
je 0x1001e238
mov eax, dword [ecx + 0x34]
push dword [eax + edi*4]
mov eax, dword [esp + 0xb0]
push 0xffffffffffffffff
push 0xffffffffffffffff
push dword [eax + edi*4]
push dword [esp + 0x24]
push edi
call fcn.1001e680
mov ecx, dword [esp + 0x30]
mov esi, eax
lea eax, [esi + 2]
push eax
call fcn.1001f390
mov edx, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [esp + 0x78]
xorps xmm6, xmm6
movsd xmm5, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x38]
mov eax, dword [eax]
mov dword [eax + edx*4], ecx
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [eax + edi*4], esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x30]
mov eax, dword [eax]
mov edx, dword [eax + esi*4]
mov dword [esp + 0xac], edx
mov eax, dword [eax + edx*4]
mov dword [esp + 0xa8], eax
mov eax, dword [edi]
mov ecx, dword [eax]
lea eax, [edx + edx*2]
mov edx, dword [esp + 0xa8]
movsd xmm2, qword [ecx + eax*8 + 8]
movsd xmm3, qword [ecx + eax*8]
movaps xmm1, xmm2
lea eax, [edx + edx*2]
movsd xmm0, qword [ecx + eax*8]
subsd xmm1, xmm5
subsd xmm0, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1001df74
mov esi, dword [esp + 0xac]
mov eax, dword [edi + 0x34]
mov ecx, dword [esp + 0x14]
push dword [eax + esi*4]
push 0xffffffffffffffff
push dword [eax + ecx*4]
push edx
push ecx
push esi
mov ecx, edi
call fcn.1001e680
add eax, 2
mov ecx, edi
push eax
call fcn.1001f390
mov edx, dword [esp + 0x14]
mov ecx, eax
mov eax, dword [edi + 0x34]
xorps xmm6, xmm6
movsd xmm5, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x38]
mov dword [eax + edx*4], ecx
mov eax, dword [edi + 0x28]
mov edx, dword [esp + 0xa8]
mov dword [eax + esi*4], esi
mov esi, edx
mov eax, dword [edi + 0x28]
mov edx, dword [eax + edx*4]
mov eax, dword [edi]
mov dword [esp + 0xa8], edx
mov ecx, dword [eax]
lea eax, [esi + esi*2]
movsd xmm2, qword [ecx + eax*8 + 8]
movsd xmm3, qword [ecx + eax*8]
movaps xmm0, xmm2
lea eax, [edx + edx*2]
movsd xmm1, qword [ecx + eax*8]
subsd xmm0, xmm5
subsd xmm1, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
ja 0x1001dec5
mov dword [esp + 0xac], esi
mov esi, dword [esp + 0x48]
cmp esi, dword [esp + 0x58]
jne 0x1001e08b
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi]
mov edx, dword [eax + esi*4]
mov ecx, dword [ecx]
mov dword [esp + 0x58], edx
lea eax, [edx + edx*2]
movsd xmm2, qword [ecx + eax*8 + 8]
movsd xmm3, qword [ecx + eax*8]
movaps xmm1, xmm2
lea eax, [esi + esi*2]
movsd xmm0, qword [ecx + eax*8]
subsd xmm1, xmm5
subsd xmm0, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
jbe 0x1001e08b
mov eax, dword [esp + 0x78]
lea edi, [edx*4]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax]
push dword [eax + edi]
push dword [eax + esi*4]
push 0xffffffffffffffff
push esi
push dword [esp + 0x24]
push edx
call fcn.1001e680
mov ecx, dword [esp + 0x30]
mov esi, eax
lea eax, [esi + 2]
push eax
call fcn.1001f390
mov ecx, dword [esp + 0x78]
xorps xmm6, xmm6
movsd xmm5, qword [esp + 0x70]
movsd xmm4, qword [esp + 0x38]
mov eax, dword [ecx]
mov dword [edi + eax], esi
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0x48]
mov eax, dword [eax]
mov dword [eax + esi*4], esi
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x48], esi
mov eax, dword [eax]
mov edx, dword [edi + eax]
mov edi, dword [esp + 0x30]
mov dword [esp + 0x58], edx
mov eax, dword [edi]
mov ecx, dword [eax]
lea eax, [edx + edx*2]
movsd xmm2, qword [ecx + eax*8 + 8]
movsd xmm3, qword [ecx + eax*8]
movaps xmm1, xmm2
lea eax, [esi + esi*2]
movsd xmm0, qword [ecx + eax*8]
subsd xmm1, xmm5
subsd xmm0, xmm3
subsd xmm3, xmm4
mulsd xmm1, xmm0
movsd xmm0, qword [ecx + eax*8 + 8]
subsd xmm0, xmm2
mulsd xmm0, xmm3
subsd xmm1, xmm0
comisd xmm6, xmm1
ja 0x1001dfd1
mov eax, dword [edi + 0x1c]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xac]
mov dword [eax + edx*4], esi
mov dword [edi + 0x40], esi
mov eax, dword [edi + 0x1c]
mov dword [eax + ecx*4], edx
mov eax, dword [edi + 0x28]
mov dword [eax + esi*4], edx
mov eax, dword [edi + 0x28]
mov dword [eax + edx*4], ecx
subsd xmm4, qword [edi + 0x50]
subsd xmm5, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
mov dword [esp + 0xac], eax
movaps xmm1, xmm4
comisd xmm5, xmm6
andps xmm1, xmmword [0x10056ab0]
movaps xmm0, xmm5
andps xmm0, xmmword [0x10056ab0]
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001e0f5
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001e100
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov ecx, eax
add esp, 8
cmp ecx, dword [esp + 0xac]
jb 0x1001e163
xor edx, edx
div dword [esp + 0xac]
mov ecx, edx
mov eax, dword [edi + 0x44]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4], edx
lea ecx, [esi + esi*2]
mov eax, dword [edi]
mov eax, dword [eax]
movsd xmm4, qword [eax + ecx*8]
movsd xmm2, qword [eax + ecx*8 + 8]
subsd xmm4, qword [edi + 0x50]
subsd xmm2, qword [edi + 0x58]
mov eax, dword [edi + 0x60]
mov dword [esp + 0xac], eax
movaps xmm1, xmm4
comisd xmm2, xmmword [0x10056a48]
andps xmm1, xmmword [0x10056ab0]
movaps xmm0, xmm2
andps xmm0, xmmword [0x10056ab0]
addsd xmm1, xmm0
divsd xmm4, xmm1
jbe 0x1001e1c7
movsd xmm1, qword [0x10056a80]
subsd xmm1, xmm4
jmp 0x1001e1d2
movaps xmm1, xmm4
addsd xmm1, qword [0x10056a78]
mulsd xmm1, qword [0x10056a68]
sub esp, 8
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100555f0]
mulsd xmm1, xmm0
movsd qword [esp + 0x40], xmm1
fld qword [esp + 0x40]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
fstp qword [esp + 0x40]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_llround]
mov ecx, dword [esp + 0xb4]
mov edx, eax
add esp, 8
cmp edx, ecx
jb 0x1001e230
xor edx, edx
div ecx
mov eax, dword [edi + 0x44]
mov dword [eax + edx*4], esi
jmp 0x1001e23a
mov edi, ecx
mov edx, dword [esp + 0x18]
movsd xmm5, qword [esp + 0x60]
movsd xmm3, qword [esp + 0x20]
inc edx
mov dword [esp + 0x18], edx
cmp edx, dword [esp + 0x34]
jb 0x1001da60
mov edx, dword [esp + 0x80]
test edx, edx
je 0x1001e29a
mov ecx, dword [esp + 0x84]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x1001e290
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1001e290
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.100520b8
add esp, 8
mov ecx, dword [esp + 0xec]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.100525c5
mov esp, ebp
pop ebp
ret 4
call fcn.1000a760
int3