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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov edi, dword [ecx + 0x18]
lea eax, [edi + edi]
cmp dword [ecx + 0x14], eax
jle 0x1006d6fe
cmp dword [ecx + 0x10], eax
jle 0x1006d6fe
test edi, edi
jle 0x1006d6fe
mov esi, dword [ecx + 4]
mov edx, esi
shr edx, 0x10
mov eax, 0xff
and edx, eax
cvtsi2sd xmm5, edx
movsd xmm3, qword [0x10088ac8]
mov edx, esi
shr edx, 8
and edx, eax
cvtsi2sd xmm2, edx
divsd xmm5, xmm3
and esi, eax
cvtsi2sd xmm1, esi
divsd xmm2, xmm3
divsd xmm1, xmm3
mov esi, dword [ecx]
mov edx, esi
and edx, eax
cvtsi2sd xmm7, edx
mov edx, esi
shr edx, 8
and edx, eax
cvtsi2sd xmm6, edx
divsd xmm7, xmm3
divsd xmm6, xmm3
shr esi, 0x10
and esi, eax
cvtsi2sd xmm0, esi
divsd xmm0, xmm3
movapd xmm4, xmm5
subsd xmm0, xmm5
movsd qword [esp + 0x78], xmm0
movapd xmm5, xmm2
subsd xmm6, xmm2
movsd qword [esp + 0x80], xmm6
movapd xmm6, xmm1
subsd xmm7, xmm1
xor esi, esi
xor eax, eax
dec eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
movsd qword [esp + 0x70], xmm4
movsd qword [esp + 0x68], xmm2
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0x58], xmm7
mov ebx, dword [ecx + 0xc]
mov eax, esi
not eax
add eax, edi
add eax, ebx
mov edx, edi
mov dword [esp + 0xc], edi
mov edi, dword [ecx + 0x14]
mov dword [esp + 0x38], esi
sub esi, edx
mov edx, ebx
mov dword [esp + 0x10], ebx
add esi, ebx
mov edx, edi
mov dword [esp + 0x34], edi
add esi, edi
mov edi, dword [0x1009b5c4]
imul eax, edi
mov edx, dword [0x1009b5c0]
mov dword [esp + 0x1c], edx
lea eax, [edx + eax*4]
mov edx, dword [ecx + 8]
mov dword [esp + 0x20], edx
lea ebx, [eax + edx*4]
mov eax, dword [esp + 0xc]
lea edx, [eax*4]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], ebx
lea eax, [ebx + eax*4]
mov dword [esp + 0x14], edx
sub eax, edx
mov dword [esp + 0x48], eax
mov eax, edi
mov dword [esp + 0x30], edi
imul esi, edi
mov dword [esp + 0x4c], esi
cmp dword [esp + 0xc], 0
jle 0x1006d60d
mov edx, dword [esp + 0x38]
xorps xmm0, xmm0
cvtsi2sd xmm0, edx
addsd xmm0, qword [0x100882b8]
mulsd xmm0, xmm0
movsd qword [esp + 0x88], xmm0
mov eax, dword [esp + 0x30]
lea ecx, [eax*4]
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x10]
add eax, esi
add eax, edx
mov ebx, dword [esp + 0xc]
sub eax, ebx
imul eax, ecx
mov ecx, dword [esp + 0x18]
lea edx, [eax + ecx*4]
mov edi, dword [esp + 0x14]
sub edx, edi
mov esi, dword [esp + 0x1c]
add edx, esi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x10]
add edx, ebx
add edx, dword [esp + 0x2c]
imul edx, dword [esp + 0x24]
lea ecx, [edx + ecx*4]
sub ecx, edi
add ecx, esi
mov dword [esp + 0x24], ecx
lea eax, [eax + ebx*4]
add eax, esi
add eax, 0xfffffffc
mov dword [esp + 0x40], eax
lea eax, [edx + ebx*4]
add esi, eax
add esi, 0xfffffffc
xor ecx, ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
addsd xmm0, qword [0x100882b8]
mulsd xmm0, xmm0
addsd xmm0, qword [esp + 0x88]
ucomisd xmm0, qword [0x10088298]
mov dword [esp + 0x50], ecx
jb 0x1006d4a0
xorps xmm1, xmm1
sqrtsd xmm1, xmm0
jmp 0x1006d4da
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd xmm7, qword [esp + 0x58]
movsd xmm6, qword [esp + 0x60]
movsd xmm5, qword [esp + 0x68]
movsd xmm3, qword [0x10088ac8]
movsd xmm4, qword [esp + 0x70]
fstp qword [esp + 0x90]
movsd xmm1, qword [esp + 0x90]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
subsd xmm1, xmm0
mulsd xmm1, qword [0x100882b8]
addsd xmm1, xmm1
movsd xmm0, qword [0x10088ad0]
ucomisd xmm0, xmm1
movsd xmm0, qword [0x100882d0]
jae 0x1006d539
xorpd xmm0, xmm0
ucomisd xmm1, qword [0x10088ad8]
jae 0x1006d539
movapd xmm0, xmm1
mulsd xmm0, qword [0x10088ae0]
mulsd xmm0, xmm1
addsd xmm0, qword [0x10088ae8]
mulsd xmm0, xmm1
addsd xmm0, qword [0x100882b8]
movsd xmm1, qword [esp + 0x78]
mulsd xmm1, xmm0
addsd xmm1, xmm4
mulsd xmm1, xmm3
cvttsd2si edi, xmm1
movsd xmm2, qword [0x10088290]
subsd xmm1, xmm2
cvttsd2si eax, xmm1
movsd xmm1, qword [esp + 0x80]
mulsd xmm1, xmm0
addsd xmm1, xmm5
mulsd xmm1, xmm3
cvttsd2si ebx, xmm1
subsd xmm1, xmm2
cvttsd2si edx, xmm1
mulsd xmm0, xmm7
addsd xmm0, xmm6
mov ecx, edi
sar ecx, 0x1f
and eax, ecx
or eax, edi
mov ecx, ebx
sar ecx, 0x1f
mulsd xmm0, xmm3
cvttsd2si edi, xmm0
and edx, ecx
subsd xmm0, xmm2
cvttsd2si ecx, xmm0
or edx, ebx
mov ebx, edi
sar ebx, 0x1f
and ecx, ebx
or ecx, edi
shl edx, 8
or ecx, edx
shl eax, 0x10
or ecx, eax
mov eax, dword [esp + 0x20]
mov dword [esi + eax*4], ecx
mov edi, dword [esp + 0x24]
mov dword [edi + eax*4], ecx
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x40]
mov dword [esi + eax*4], ecx
mov edx, dword [esp + 0x28]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x50]
inc ecx
mov eax, dword [esp + 0x3c]
mov ebx, dword [eax + 0x18]
add edx, 4
mov dword [esp + 0x28], edx
add edi, 4
mov dword [esp + 0x24], edi
add esi, 0xfffffffc
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x54]
add esi, 0xfffffffc
cmp ecx, ebx
jl 0x1006d46d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x44]
lea edx, [ecx + eax*4]
add edx, 0xfffffffc
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
lea eax, [eax + ecx*4]
mov ecx, dword [esp + 0x20]
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x18]
lea eax, [ecx + eax*4]
sub eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
add edx, 4
cmp edx, dword [esp + 0x48]
mov eax, dword [esp + 0x3c]
je 0x1006d690
mov edx, dword [esp + 0x18]
lea edx, [edx*4]
mov edi, dword [esp + 0xc]
lea esi, [edi*8]
sub edx, esi
mov esi, dword [esp + 0x10]
add esi, edi
add esi, dword [esp + 0x2c]
imul esi, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
lea esi, [edi + esi*4]
mov edi, dword [esp + 0x20]
lea esi, [esi + edi*4]
add esi, dword [esp + 0x1c]
xor edi, edi
mov ebx, dword [eax]
mov dword [esi + edi], ebx
add edi, 4
cmp edx, edi
jne 0x1006d684
mov edx, dword [esp + 0xc]
lea ecx, [ecx + edx*4]
add ecx, 0xfffffffc
add ecx, 4
cmp ecx, dword [esp + 0x28]
mov ecx, eax
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
je 0x1006d6ee
shl ebx, 2
lea eax, [edx*8]
sub ebx, eax
mov eax, dword [esp + 0x10]
add eax, dword [esp + 0x34]
add eax, esi
sub eax, edx
mov edx, dword [esp + 0x30]
imul edx, eax
mov eax, dword [esp + 0x14]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x20]
lea eax, [eax + edx*4]
add edi, eax
xor eax, eax
mov edx, dword [ecx]
mov dword [edi + eax], edx
add eax, 4
cmp ebx, eax
jne 0x1006d6e2
inc esi
mov edi, dword [ecx + 0x18]
dec dword [esp + 0x2c]
cmp esi, edi
jl 0x1006d35d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret