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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x174
movsd xmm0, qword [0x1021f8d8]
mulsd xmm0, qword [0x101e5878]
movsd qword [esp + 0xe0], xmm0
mov edi, edx
mov dword [esp + 0x170], ecx
inc dword [0x10210a1c]
cmp dword [0x1021f8f8], 2
je 0x100a0141
movsd xmm0, qword [0x1021fbc8]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [ebp + 0xc]
pxor xmm1, xmm1
movsd qword [esp + 0x158], xmm1
ucomisd xmm0, xmm1
jp 0x1009dcbb
je 0x1009dcfe
movsd xmm0, qword [0x1020c108]
movsd xmm1, qword [ebp + 0xc]
subsd xmm1, qword [0x101e5880]
movsd qword [esp + 0x80], xmm1
comisd xmm0, xmm1
jbe 0x1009ddb5
movsd xmm1, qword [esp + 0x80]
pxor xmm2, xmm2
subsd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x1009ddb5
mov ecx, dword [ebp + 0x24]
mov esi, dword [ebp + 0x28]
movsd xmm0, qword [esp + 0x88]
movsd xmm5, qword [ecx + 0x78]
mov edx, dword [ecx + 0x2c]
mov ebx, dword [eax + 8]
mov ebx, dword [ebx + esi*4]
mov esi, dword [ebx]
mov eax, dword [eax + 0xc4]
movsd xmm4, qword [edx]
movsd xmm2, qword [ecx + 0x80]
movaps xmm1, xmm2
mov edx, dword [ecx + 0x30]
movsd xmm3, qword [edx]
shl esi, 4
addsd xmm4, qword [esi + eax]
mov eax, dword [ecx + 0x28]
subsd xmm1, qword [eax]
movsd qword [esp + 0xb8], xmm1
subsd xmm4, xmm5
subsd xmm0, xmm4
movsd qword [esp + 0x88], xmm0
subsd xmm3, xmm2
movsd qword [esp + 0xb0], xmm3
cmp edi, 1
jne 0x1009dd8b
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm4
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
cmp edi, 2
jne 0x1009e21b
mov eax, dword [ebp + 0x24]
movsd xmm0, qword [ebp + 0x14]
mov edx, dword [eax + 0x24]
subsd xmm0, qword [edx]
addsd xmm0, xmm5
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
movsd xmm1, qword [ebp + 0xc]
subsd xmm1, qword [0x101e5888]
movsd qword [esp + 0x78], xmm1
comisd xmm0, xmm1
jbe 0x1009de9d
movsd xmm1, qword [esp + 0x78]
pxor xmm2, xmm2
subsd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x1009de9d
mov edx, dword [ebp + 0x24]
mov esi, dword [ebp + 0x28]
movsd xmm0, qword [esp + 0x88]
movsd xmm4, qword [edx + 0x78]
movaps xmm3, xmm4
mov ecx, dword [edx + 0x24]
subsd xmm3, qword [ecx]
mov ebx, dword [eax + 8]
mov ecx, dword [ebx + esi*4]
mov ebx, dword [ecx]
mov eax, dword [eax + 0xc4]
movsd xmm2, qword [edx + 0x80]
shl ebx, 4
addsd xmm3, qword [ebx + eax]
mov eax, dword [edx + 0x30]
movsd xmm1, qword [eax]
mov edx, dword [edx + 0x28]
subsd xmm0, xmm3
movsd qword [esp + 0x88], xmm0
subsd xmm1, xmm2
subsd xmm2, qword [edx]
movsd qword [esp + 0xb8], xmm1
movsd qword [esp + 0xb0], xmm2
cmp edi, 1
jne 0x1009de73
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm3
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
cmp edi, 2
jne 0x1009e21b
mov eax, dword [ebp + 0x24]
mov edx, dword [eax + 0x2c]
movsd xmm0, qword [edx]
addsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm4
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
movsd xmm1, qword [ebp + 0xc]
subsd xmm1, qword [0x101e5890]
comisd xmm0, xmm1
jbe 0x1009df63
pxor xmm2, xmm2
subsd xmm2, xmm0
comisd xmm1, xmm2
jbe 0x1009df63
mov ecx, dword [ebp + 0x24]
movsd xmm0, qword [esp + 0x88]
movsd xmm5, qword [ecx + 0x80]
movaps xmm4, xmm5
mov eax, dword [ecx + 0x28]
subsd xmm4, qword [eax]
movsd xmm2, qword [ecx + 0x78]
movaps xmm1, xmm2
mov edx, dword [ecx + 0x24]
subsd xmm1, qword [edx]
mov ebx, dword [ecx + 0x2c]
movsd xmm3, qword [ebx]
movsd qword [esp + 0xb8], xmm1
subsd xmm0, xmm4
movsd qword [esp + 0x88], xmm0
subsd xmm3, xmm2
movsd qword [esp + 0xb0], xmm3
cmp edi, 1
jne 0x1009df39
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm4
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
cmp edi, 2
jne 0x1009e21b
mov eax, dword [ebp + 0x24]
mov edx, dword [eax + 0x30]
movsd xmm0, qword [edx]
addsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm5
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
movsd xmm2, qword [ebp + 0xc]
subsd xmm2, qword [0x101e5898]
movsd qword [esp + 0x70], xmm2
comisd xmm0, xmm2
jbe 0x1009e043
pxor xmm2, xmm2
subsd xmm2, xmm0
movsd xmm0, qword [esp + 0x70]
comisd xmm0, xmm2
jbe 0x1009e043
mov ecx, dword [ebp + 0x24]
movsd xmm1, qword [esp + 0x88]
movsd xmm4, qword [ecx + 0x80]
mov eax, dword [ecx + 0x30]
movsd xmm0, qword [eax]
movsd xmm3, qword [ecx + 0x78]
mov edx, dword [ecx + 0x2c]
movsd xmm2, qword [edx]
mov ebx, dword [ecx + 0x24]
movsd qword [esp + 0x150], xmm0
subsd xmm0, xmm4
subsd xmm1, xmm0
movsd qword [esp + 0x88], xmm1
subsd xmm2, xmm3
subsd xmm3, qword [ebx]
movsd qword [esp + 0xb8], xmm2
movsd qword [esp + 0xb0], xmm3
cmp edi, 1
jne 0x1009e012
movsd xmm1, qword [ebp + 0x14]
subsd xmm1, xmm0
movsd qword [esp + 0x150], xmm1
jmp 0x1009e22d
movsd xmm0, qword [esp + 0x150]
addsd xmm0, qword [ebp + 0x14]
cmp edi, 2
subsd xmm0, xmm4
movsd xmm4, qword [esp + 0x158]
je 0x1009e035
movaps xmm0, xmm4
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
mov esi, dword [ebp + 0x24]
mov eax, dword [esi + 0xd0]
mov esi, dword [eax]
mov edx, dword [esi]
mov ecx, dword [esi + 0x10]
pxor xmm0, xmm0
mov dword [esp], edx
mov dword [esp + 4], ecx
subsd xmm0, xmm1
movsd qword [esp + 8], xmm0
call fcn.100ae0e0
mov ebx, eax
movsd xmm0, qword [ebp + 0xc]
call fcn.101b8d30
mov eax, dword [ebp + 0x24]
mov edx, dword [esi]
mov ecx, dword [esi + 0x10]
movsd qword [esp + 0x60], xmm0
movsd qword [esp + 0x68], xmm1
mov dword [esp], edx
shl ebx, 4
movsd xmm3, qword [edx + ebx]
subsd xmm3, qword [eax + 0x78]
movsd xmm2, qword [edx + ebx + 8]
subsd xmm2, qword [eax + 0x80]
mulsd xmm3, xmm1
mulsd xmm2, xmm0
mov dword [esp + 4], ecx
addsd xmm3, xmm2
subsd xmm3, qword [eax + 0x80]
movsd qword [esp + 0xb0], xmm3
pxor xmm4, xmm4
subsd xmm4, qword [esp + 0x70]
movsd qword [esp + 8], xmm4
call fcn.100ae0e0
mov edx, dword [ebp + 0x24]
mov ecx, dword [esi]
mov dword [esp], ecx
shl eax, 4
movsd xmm1, qword [ecx + eax]
subsd xmm1, qword [edx + 0x78]
mulsd xmm1, qword [esp + 0x68]
movsd xmm0, qword [ecx + eax + 8]
subsd xmm0, qword [edx + 0x80]
mulsd xmm0, qword [esp + 0x60]
mov eax, dword [esi + 0x10]
mov dword [esp + 4], eax
addsd xmm1, xmm0
subsd xmm1, qword [edx + 0x80]
movsd qword [esp + 0xb8], xmm1
pxor xmm2, xmm2
subsd xmm2, qword [esp + 0x80]
movsd qword [esp + 8], xmm2
call fcn.100ae0e0
mov edx, dword [ebp + 0x24]
movsd xmm1, qword [esp + 0x88]
mov ecx, dword [esi]
shl eax, 4
movsd xmm2, qword [ecx + eax]
subsd xmm2, qword [edx + 0x78]
mulsd xmm2, qword [esp + 0x68]
movsd xmm0, qword [ecx + eax + 8]
subsd xmm0, qword [edx + 0x80]
mulsd xmm0, qword [esp + 0x60]
subsd xmm2, qword [edx + 0x78]
cmp edi, 1
addsd xmm2, xmm0
subsd xmm1, xmm2
movsd qword [esp + 0x88], xmm1
jne 0x1009e1ab
movsd xmm0, qword [ebp + 0x14]
subsd xmm0, xmm2
movsd qword [esp + 0x150], xmm0
jmp 0x1009e22d
cmp edi, 2
jne 0x1009e21b
mov eax, dword [esi + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], eax
pxor xmm0, xmm0
subsd xmm0, qword [esp + 0x78]
movsd qword [esp + 8], xmm0
call fcn.100ae0e0
mov ecx, dword [ebp + 0x24]
movsd xmm3, qword [ebp + 0x14]
mov edx, dword [esi]
movsd xmm0, qword [ecx + 0x78]
shl eax, 4
movsd xmm1, qword [edx + eax]
movsd xmm2, qword [edx + eax + 8]
subsd xmm2, qword [ecx + 0x80]
mulsd xmm2, qword [esp + 0x60]
addsd xmm3, xmm0
subsd xmm1, xmm0
mulsd xmm1, qword [esp + 0x68]
subsd xmm3, xmm1
subsd xmm3, xmm2
movsd qword [esp + 0x150], xmm3
jmp 0x1009e22d
movsd xmm0, qword [esp + 0x158]
movsd qword [esp + 0x150], xmm0
mov eax, dword [ebp + 0x44]
mov ecx, dword [eax]
cmp ecx, 0x20
jae 0x1009e8cc
mov eax, 1
shl eax, cl
test al, 0xd
je 0x1009e8cc
movsd xmm0, qword [0x101e58a0]
movsd xmm1, qword [0x1020b9a8]
ucomisd xmm1, xmm0
jp 0x1009e266
je 0x1009ea9a
push 4
push dword [ebp + 0x34]
call fcn.101beb7a
mov dword [esp + 0x14c], eax
push 0x20
push dword [ebp + 0x34]
call fcn.101beb7a
add esp, 0x10
mov dword [esp + 0x6c], eax
cmp dword [ebp + 0x34], 0
jle 0x1009e886
movsd xmm5, qword [0x101e58a8]
movsd xmm4, qword [0x101e58e0]
movsd xmm1, qword [0x101e58e8]
mov edx, eax
mov eax, 1
xor esi, esi
movsd xmm3, qword [esp + 0x150]
movsd xmm2, qword [esp + 0x88]
movsd xmm6, qword [esp + 0x158]
mov ecx, dword [ebp + 0x30]
cmp dword [ecx + esi*4], 0
movsd qword [edx], xmm5
movsd qword [edx + 0x10], xmm1
movsd qword [edx + 0x18], xmm6
movsd qword [edx + 8], xmm6
jle 0x1009e33c
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
mov ebx, dword [ebx + esi*4]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x10c], edi
mov edi, dword [esp + 0x64]
mov eax, edi
shl eax, 4
movsd xmm7, qword [ebx + eax]
movaps xmm0, xmm7
maxsd xmm7, qword [edx + 0x10]
minsd xmm0, qword [edx]
movsd qword [edx + 0x10], xmm7
movsd qword [edx], xmm0
inc edi
cmp edi, ecx
jl 0x1009e30d
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x10c]
cmp edi, 1
je 0x1009e3b9
cmp edi, 2
jne 0x1009e38b
movsd xmm0, qword [edx]
comisd xmm3, xmm0
jbe 0x1009e36d
movsd xmm7, qword [edx + 0x10]
comisd xmm7, xmm3
jbe 0x1009e36d
mov ecx, dword [esp + 0x144]
mov dword [ecx + esi*4], 1
movsd xmm7, qword [edx + 0x10]
maxsd xmm0, xmm3
movsd qword [edx], xmm0
minsd xmm7, xmm2
movsd qword [edx + 0x10], xmm7
comisd xmm0, xmm7
ja 0x1009e3ef
jmp 0x1009e3f8
test edi, edi
jne 0x1009e3f8
comisd xmm3, xmmword [edx]
movsd xmm0, qword [edx + 0x10]
jbe 0x1009e3ae
comisd xmm0, xmm3
jbe 0x1009e3ae
mov ecx, dword [esp + 0x144]
mov dword [ecx + esi*4], 1
minsd xmm0, xmm2
movsd qword [edx + 0x10], xmm0
jmp 0x1009e3f8
comisd xmm3, xmmword [edx]
movsd xmm7, qword [edx + 0x10]
jbe 0x1009e3d8
comisd xmm7, xmm3
jbe 0x1009e3d8
mov ecx, dword [esp + 0x144]
mov dword [ecx + esi*4], 1
movsd xmm0, qword [edx]
minsd xmm7, xmm3
minsd xmm7, xmm2
movsd qword [edx + 0x10], xmm7
comisd xmm0, xmm7
jbe 0x1009e3f8
movsd qword [edx + 0x10], xmm4
movsd qword [edx], xmm4
test eax, eax
je 0x1009e418
movsd xmm0, qword [edx]
ucomisd xmm0, xmm4
jp 0x1009e408
je 0x1009e418
movsd xmm0, qword [edx + 0x10]
cmpeqsd xmm0, xmm4
movd ecx, xmm0
and eax, ecx
add edx, 0x20
inc esi
cmp esi, dword [ebp + 0x34]
jl 0x1009e2ce
test eax, eax
jne 0x1009e886
movsd xmm0, qword [0x1020b9a8]
movsd xmm1, qword [esp + 0x150]
mov eax, dword [esp + 0x6c]
mov edx, dword [ebp + 0x34]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
lea ebx, [esp + 0xe8]
mov dword [esp + 0x1c], ebx
xor ecx, ecx
lea esi, [esp + 0x16c]
mov dword [esp + 0x20], esi
call fcn.100a126c
movsd xmm3, qword [esp + 0xe8]
movsd xmm0, qword [0x101e5910]
movsd xmm1, qword [0x101e58c0]
addsd xmm1, qword [0x1021f8d8]
movsd xmm2, qword [esp + 0x158]
movsd qword [esp + 0xf8], xmm3
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0x100], xmm1
movsd xmm1, qword [0x101e5918]
movsd qword [esp + 0x80], xmm2
movaps xmm0, xmm2
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x10c], edi
xor esi, esi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x108], esi
xor ebx, ebx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x12c], ebx
mov edx, ebx
shl edx, 5
comisd xmm3, xmmword [edi + edx]
jb 0x1009e84b
movsd xmm0, qword [edx + edi + 0x10]
comisd xmm0, xmm3
jb 0x1009e84b
mov edx, dword [ebp + 0x44]
cmp dword [edx + ebx*4], 3
je 0x1009e933
mov edx, dword [ebp + 0x2c]
movsd xmm2, qword [esp + 0xf8]
movsd xmm1, qword [esp + 0xf0]
movsd xmm7, qword [esp + 0x100]
mov edx, dword [edx + ebx*4]
movsd xmm4, qword [edx]
movsd xmm5, qword [edx + 0x10]
movsd xmm0, qword [edx + 8]
movsd qword [esp + 0x88], xmm4
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x90], xmm1
subsd xmm5, xmm4
movsd xmm4, qword [edx + 0x18]
subsd xmm4, xmm0
movaps xmm0, xmm5
movaps xmm6, xmm4
subsd xmm2, xmm3
movsd qword [esp + 0xa0], xmm2
mulsd xmm6, xmm2
mulsd xmm2, xmm2
subsd xmm7, xmm1
movsd qword [esp + 0xa8], xmm7
mulsd xmm0, xmm7
movaps xmm1, xmm4
mulsd xmm7, xmm7
mulsd xmm1, xmm4
subsd xmm0, xmm6
movsd qword [esp + 0x98], xmm0
movaps xmm6, xmm5
mulsd xmm6, xmm5
addsd xmm2, xmm7
movsd xmm7, qword [0x101e5918]
addsd xmm6, xmm1
sqrtsd xmm1, xmm6
sqrtsd xmm6, xmm2
movsd xmm2, qword [esp + 0x158]
ucomisd xmm1, xmm2
jne 0x1009e5e8
jp 0x1009e5e8
movaps xmm1, xmm7
ucomisd xmm6, xmm2
movsd xmm2, qword [0x1020c110]
jne 0x1009e5fb
jp 0x1009e5fb
movaps xmm6, xmm7
mulsd xmm1, xmm6
divsd xmm0, xmm1
movsd xmm6, qword [esp + 0xa0]
movsd xmm1, qword [esp + 0xa8]
comisd xmm2, xmm0
jbe 0x1009e7d4
pxor xmm7, xmm7
subsd xmm7, xmm2
comisd xmm0, xmm7
jbe 0x1009e7d4
movsd xmm0, qword [edx]
mov ecx, esp
movsd qword [ecx], xmm0
movsd xmm1, qword [edx + 8]
movsd qword [ecx + 8], xmm1
lea edx, [esp + 0x10]
movsd xmm2, qword [esp + 0xe8]
movsd qword [edx], xmm2
movsd xmm3, qword [esp + 0xf0]
movsd qword [edx + 8], xmm3
lea edx, [esp + 0x20]
movsd xmm4, qword [esp + 0xf8]
movsd qword [edx], xmm4
movsd xmm5, qword [esp + 0x100]
movsd qword [edx + 8], xmm5
xor edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edx
call fcn.100ab8f0
fstp st(0)
mov edx, dword [ebp + 0x2c]
mov ecx, dword [edx + ebx*4]
movsd xmm0, qword [ecx + 0x10]
mov edx, esp
movsd qword [edx], xmm0
movsd xmm1, qword [ecx + 0x18]
movsd qword [edx + 8], xmm1
lea edx, [esp + 0x10]
movsd xmm2, qword [esp + 0xe8]
movsd qword [edx], xmm2
movsd xmm3, qword [esp + 0xf0]
movsd qword [edx + 8], xmm3
lea edx, [esp + 0x20]
movsd xmm4, qword [esp + 0xf8]
movsd qword [edx], xmm4
movsd xmm5, qword [esp + 0x100]
movsd qword [edx + 8], xmm5
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100ab8f0
fstp st(0)
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + ebx*4]
movsd xmm0, qword [esp + 0xe8]
mov ecx, esp
movsd qword [ecx], xmm0
movsd xmm1, qword [esp + 0xf0]
movsd qword [ecx + 8], xmm1
lea edx, [esp + 0x10]
movsd xmm2, qword [eax]
movsd qword [edx], xmm2
movsd xmm3, qword [eax + 8]
movsd qword [edx + 8], xmm3
lea ecx, [esp + 0x20]
movsd xmm4, qword [eax + 0x10]
movsd qword [ecx], xmm4
movsd xmm5, qword [eax + 0x18]
movsd qword [ecx + 8], xmm5
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100ab8f0
fstp st(0)
mov edx, dword [ebp + 0x2c]
mov eax, dword [edx + ebx*4]
movsd xmm0, qword [esp + 0xf8]
mov ecx, esp
movsd qword [ecx], xmm0
movsd xmm1, qword [esp + 0x100]
movsd qword [ecx + 8], xmm1
lea edx, [esp + 0x10]
movsd xmm2, qword [eax]
movsd qword [edx], xmm2
movsd xmm3, qword [eax + 8]
movsd qword [edx + 8], xmm3
lea ecx, [esp + 0x20]
movsd xmm4, qword [eax + 0x10]
movsd qword [ecx], xmm4
movsd xmm5, qword [eax + 0x18]
movsd qword [ecx + 8], xmm5
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
call fcn.100ab8f0
fstp st(0)
jmp 0x1009e830
movsd xmm0, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x90]
movsd xmm7, qword [esp + 0x88]
subsd xmm2, xmm0
mulsd xmm6, xmm2
subsd xmm3, xmm7
mulsd xmm1, xmm3
subsd xmm6, xmm1
pxor xmm1, xmm1
subsd xmm1, xmm6
divsd xmm1, qword [esp + 0x98]
mulsd xmm5, xmm1
addsd xmm7, xmm5
movsd qword [esp + 0x78], xmm7
mulsd xmm4, xmm1
addsd xmm0, xmm4
movsd qword [esp + 0x80], xmm0
mov edx, dword [ebp + 0x48]
movsd xmm0, qword [esp + 0x78]
movsd xmm1, qword [esp + 0x80]
movsd qword [edx], xmm0
movsd qword [edx + 8], xmm1
inc ebx
cmp ebx, dword [ebp + 0x34]
jge 0x1009e85f
movsd xmm3, qword [esp + 0xe8]
jmp 0x1009e4f0
mov ebx, dword [esp + 0x12c]
mov edi, dword [esp + 0x10c]
push dword [esp + 0x6c]
call fcn.101bceaa
pop ecx
test ebx, ebx
je 0x1009ea7b
mov edx, dword [ebp + 0x44]
mov ecx, dword [edx]
jmp 0x1009e8e5
push dword [esp + 0x6c]
call fcn.101bceaa
push dword [esp + 0x148]
call fcn.101bceaa
add esp, 8
movsd xmm0, qword [0x1021fb80]
mov edx, dword [ebp + 0x48]
movsd xmm1, qword [0x101e58d8]
movsd qword [edx], xmm0
movsd qword [edx + 8], xmm1
mov eax, 1
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor esi, esi
mov dword [esp + 0x168], esi
xor ebx, ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x144], ebx
cmp ecx, 3
je 0x100a0120
cmp ecx, 1
je 0x1009fb7f
mov dword [esp + 0xa8], 0
cmp ecx, 3
je 0x1009eeb7
test esi, esi
jle 0x1009e924
push dword [esp + 0x168]
call fcn.101bceaa
push ebx
call fcn.101bceaa
add esp, 8
xor eax, eax
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x60]
lea edx, [esp + 0x64]
push 0
push 0
push edx
push ecx
push 2
lea edx, [esp + 0xfc]
push edx
mov edx, dword [ebp + 0x30]
push dword [edx + ebx*4]
mov edx, dword [ebp + 0x2c]
push dword [edx + ebx*4]
call fcn.100aa050
add esp, 0x20
test eax, eax
jne 0x1009ea88
mov edx, dword [esp + 0x64]
test edx, edx
jle 0x1009e84b
push 0x20
add edx, esi
push edx
push esi
push dword [esp + 0x174]
call fcn.100db0e0
mov dword [esp + 0x178], eax
mov edx, dword [esp + 0x74]
push 4
add edx, esi
push edx
push esi
push dword [esp + 0x148]
call fcn.100db0e0
add esp, 0x20
mov dword [esp + 0x12c], eax
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
test ecx, ecx
jle 0x1009ea6d
mov dword [esp + 0x130], esi
mov dword [esp + 0x68], ebx
xor eax, eax
mov ecx, dword [esp + 0x130]
add ecx, eax
mov edi, ecx
shl edi, 5
mov ebx, eax
shl ebx, 5
movsd xmm0, qword [edx + ebx]
mov edx, dword [esp + 0x168]
movsd qword [edi + edx], xmm0
inc eax
mov esi, dword [esp + 0x60]
movsd xmm1, qword [ebx + esi + 8]
movsd qword [edi + edx + 8], xmm1
mov esi, dword [esp + 0x60]
movsd xmm2, qword [ebx + esi + 0x10]
movsd qword [edi + edx + 0x10], xmm2
mov esi, dword [esp + 0x60]
movsd xmm3, qword [ebx + esi + 0x18]
mov esi, dword [esp + 0x12c]
movsd qword [edi + edx + 0x18], xmm3
mov edi, dword [esp + 0x68]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x108]
mov edi, esi
shl edi, 5
movsd xmm4, qword [edi + edx + 8]
mov edx, dword [esp + 0x60]
comisd xmm4, xmmword [ebx + edx + 8]
cmovae esi, ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x108], esi
cmp eax, ecx
jl 0x1009e9c9
mov esi, dword [esp + 0x130]
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
push edx
add esi, ecx
call fcn.101bceaa
pop ecx
jmp 0x1009e84b
push dword [esp + 0x144]
call fcn.101bceaa
pop ecx
mov eax, 0x63
add esp, 0x174
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x34], 0
movsd xmm7, qword [0x101e58a8]
mov eax, dword [ebp + 0x48]
movsd qword [eax + 8], xmm7
movsd qword [eax], xmm7
jle 0x1009ecd0
movsd xmm4, qword [0x101e58b0]
movsd xmm3, qword [0x101e58b8]
movsd xmm2, qword [0x101e58c0]
movsd xmm1, qword [0x101e58c8]
movsd qword [esp + 0x78], xmm7
movaps xmm6, xmm7
movsd qword [esp + 0x70], xmm6
movaps xmm5, xmm7
movsd qword [esp + 0x60], xmm5
mov dword [esp + 0x10c], edi
xor ebx, ebx
mov eax, dword [ebp + 0x30]
cmp dword [eax + ebx*4], 0
jle 0x1009ecb8
movsd xmm2, qword [0x101e58b0]
movsd xmm3, qword [esp + 0x60]
movsd xmm4, qword [esp + 0x150]
mov eax, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x6c], eax
cmp dword [esp + 0x10c], 1
jne 0x1009eb53
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + ebx*4]
mov edx, ecx
shl edx, 4
movsd xmm0, qword [eax + edx]
subsd xmm0, xmm4
pxor xmm6, xmm6
subsd xmm6, xmm0
jmp 0x1009ec2a
mov eax, dword [ebp + 0x2c]
mov eax, dword [eax + ebx*4]
mov edx, ecx
shl edx, 4
movsd xmm6, qword [eax + edx]
cmp dword [esp + 0x10c], 2
jne 0x1009eb76
subsd xmm6, xmm4
jmp 0x1009ec2a
mov esi, dword [ebp + 0x24]
movsd xmm7, qword [ebp + 0x14]
movsd xmm1, qword [esi + 0x78]
mov edi, dword [esi + 0x2c]
movsd xmm5, qword [edi]
addsd xmm7, xmm1
movaps xmm0, xmm7
subsd xmm0, xmm5
comisd xmm0, xmm6
jbe 0x1009ebd7
subsd xmm6, qword [ebp + 0x14]
mov edi, dword [esp + 0x6c]
mov esi, 1
cmp edi, 2
pxor xmm7, xmm7
subsd xmm7, xmm6
movsd xmm6, qword [0x101e58a0]
addsd xmm7, xmm1
subsd xmm7, xmm5
cmovne edi, esi
mov dword [esp + 0x6c], edi
jne 0x1009ebd0
movaps xmm4, xmm0
je 0x1009ec2a
movaps xmm6, xmm7
jmp 0x1009ec2a
mov esi, dword [ebp + 0x24]
mov edi, dword [esi + 0x24]
movsd xmm0, qword [edi]
subsd xmm7, xmm0
comisd xmm6, xmm7
jbe 0x1009ec1f
subsd xmm6, qword [ebp + 0x14]
mov edi, dword [esp + 0x6c]
mov esi, 2
cmp edi, 1
subsd xmm6, xmm1
addsd xmm6, xmm0
movsd xmm0, qword [0x101e58a0]
cmovne edi, esi
mov dword [esp + 0x6c], edi
jne 0x1009ec18
movaps xmm4, xmm7
jne 0x1009ec2a
movaps xmm6, xmm0
jmp 0x1009ec2a
movaps xmm4, xmm7
movsd xmm6, qword [0x101e58a0]
comisd xmm6, xmmword [esp + 0x158]
jb 0x1009ed17
movaps xmm1, xmm6
movaps xmm0, xmm2
andps xmm1, xmmword [0x101e57e0]
addsd xmm0, xmm3
comisd xmm0, xmm1
jbe 0x1009ec9c
movaps xmm0, xmm6
subsd xmm0, xmm3
andps xmm0, xmmword [0x101e57e0]
comisd xmm0, xmm2
ja 0x1009ec82
cmp dword [esp + 0x170], 1
je 0x1009ed01
mov esi, dword [ebp + 0x48]
movsd xmm0, qword [esi + 8]
comisd xmm0, xmmword [edx + eax + 8]
jbe 0x1009ec9c
movaps xmm3, xmm6
mov esi, dword [ebp + 0x48]
movsd xmm0, qword [edx + eax]
movsd qword [esi], xmm0
movsd xmm1, qword [edx + eax + 8]
movsd qword [esi + 8], xmm1
mov eax, dword [ebp + 0x30]
inc ecx
cmp ecx, dword [eax + ebx*4]
jl 0x1009eb28
movsd qword [esp + 0x60], xmm3
movsd qword [esp + 0x150], xmm4
inc ebx
cmp ebx, dword [ebp + 0x34]
jl 0x1009eaf9
mov edi, dword [esp + 0x10c]
mov eax, dword [ebp + 0x48]
movsd xmm7, qword [eax]
comisd xmm7, xmmword [0x101e58d0]
ja 0x1009e89e
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx]
xor esi, esi
mov dword [esp + 0x168], esi
xor ebx, ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x144], ebx
jmp 0x1009e8e5
mov esi, dword [ebp + 0x48]
movsd xmm0, qword [edx + eax + 8]
comisd xmm0, xmmword [esi + 8]
ja 0x1009ec82
jmp 0x1009ec9c
movsd xmm1, qword [0x101e58b8]
movsd xmm2, qword [0x101e58c0]
mov edx, dword [ebp + 0x2c]
mov edi, dword [ebp + 0x30]
movsd qword [esp + 0x60], xmm3
movsd qword [esp + 0x150], xmm4
movsd xmm0, qword [esp + 0x150]
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xd0], xmm0
movsd qword [esp + 0xc8], xmm1
movsd qword [esp + 0xd8], xmm2
lea esi, [esp + 0xc0]
mov ecx, dword [edx + ebx*4]
mov dword [esp + 0x114], ecx
mov dword [esp + 0x118], esi
mov eax, dword [edi + ebx*4]
mov dword [esp + 0x11c], eax
lea edi, [esp + 0x134]
lea esi, [esp + 0x138]
mov eax, 2
mov dword [esp + 0x120], eax
lea ecx, [esp + 0x13c]
lea edx, [esp + 0x140]
push edx
push ecx
push esi
push edi
lea edx, [esp + 0x12c]
push edx
push eax
lea eax, [esp + 0x12c]
push eax
call fcn.10098200
add esp, 0x1c
mov edx, dword [esp + 0x138]
mov edi, dword [esp + 0x134]
movsd xmm0, qword [esp + 0x70]
comisd xmm0, xmmword [0x101e58c8]
ja 0x1009edf2
test edx, edx
jmp 0x1009ee14
test edx, edx
jle 0x1009ee14
mov esi, dword [esp + 0x13c]
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x78], xmm1
jmp 0x1009ee1d
mov esi, dword [esp + 0x13c]
jle 0x1009ee8d
mov dword [esp + 0x80], edx
mov dword [esp + 0x68], ebx
xor eax, eax
mov ebx, eax
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
mov edx, ebx
shl edx, 4
movsd xmm1, qword [edx + edi + 8]
cmp dword [esp + 0x170], 1
je 0x1009eead
movsd xmm0, qword [esp + 0x78]
comisd xmm0, xmm1
jbe 0x1009ee67
movsd xmm0, qword [edx + edi]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x78], xmm1
mov edx, dword [ebp + 0x48]
movsd xmm0, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
movsd qword [edx], xmm0
movsd qword [edx + 8], xmm1
inc ebx
cmp ebx, dword [esp + 0x80]
jl 0x1009ee2c
mov ebx, dword [esp + 0x68]
push dword [esp + 0x140]
call fcn.101bceaa
push esi
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 0xc
jmp 0x1009ecb8
comisd xmm1, xmmword [esp + 0x78]
ja 0x1009ee56
jmp 0x1009ee67
movsd xmm0, qword [0x101e58a0]
movsd xmm1, qword [0x1020b9a8]
ucomisd xmm1, xmm0
jp 0x1009eed3
je 0x1009e90b
mov edx, dword [0x1020b9c0]
test edx, edx
jle 0x1009fb1f
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x144]
mov edx, dword [ebx + edx*4]
cmp dword [ecx + edx*4], 0
mov dword [esp + 0x124], edx
je 0x1009f03f
test edi, edi
jle 0x1009fa09
movsd xmm1, qword [esp + 0x150]
movsd xmm4, qword [0x101e58f0]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x70], xmm4
cmp edi, 1
je 0x1009fb2f
movsd xmm1, qword [0x101e5908]
movsd xmm2, qword [esp + 0x150]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x80], xmm4
movsd xmm4, qword [0x101e58f8]
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x90], xmm4
movsd qword [esp + 0x98], xmm2
mov edx, dword [ebp + 0x2c]
mov eax, dword [esp + 0x124]
mov edi, dword [ebp + 0x30]
movsd qword [esp + 8], xmm0
movsd qword [esp + 0xa0], xmm4
movsd qword [esp + 0x1c], xmm0
mov dword [esp + 0xe0], 5
mov ecx, dword [edx + eax*4]
mov edx, dword [edi + eax*4]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 0x10], edx
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x68]
mov dword [esp + 0x24], 4
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], 0
lea edi, [esp + 0xe0]
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], 0
lea edx, [esp + 0xe4]
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], 0
lea edx, [esp + 0x108]
mov dword [esp + 0x44], edx
mov dword [esp + 0x3c], 0
lea edx, [esp + 0xbc]
mov dword [esp + 0x48], edx
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
call fcn.100d2c30
mov edx, dword [0x1020b9c0]
jmp 0x1009f097
push 4
call fcn.101bcde0
mov dword [esp + 0x6c], eax
mov edx, eax
mov dword [esp + 0xe8], edx
push 4
call fcn.101bcde0
add esp, 8
mov edx, dword [ebp + 0x2c]
mov edi, dword [esp + 0x68]
mov dword [esp + 0xbc], 1
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x124]
mov ecx, dword [edx + eax*4]
mov edx, dword [ebp + 0x30]
mov dword [edi], ecx
mov edi, dword [esp + 0x108]
mov ecx, dword [edx + eax*4]
mov dword [edi], ecx
mov edx, dword [0x1020b9c0]
test edx, edx
je 0x1009f988
cmp edx, 1
je 0x1009f888
cmp edx, 2
jne 0x1009f42d
mov edi, dword [esp + 0xbc]
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0xe4]
mov dword [esp + 0xa8], ecx
xor ecx, ecx
mov dword [esp + 0x10c], ecx
test edi, edi
mov dword [esp + 0x110], ecx
jle 0x1009f1e7
movsd xmm0, qword [0x101e58a8]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edi
xor ecx, ecx
mov dword [esp + 0xac], edx
mov dword [esp + 0x12c], ebx
mov ebx, dword [ebp + 0x48]
mov dword [esp + 0x130], esi
mov esi, dword [esp + 0xa8]
cmp dword [esi + ecx*4], 0
jle 0x1009f1bd
mov edx, dword [esp + 0xb0]
movsd xmm1, qword [ebx]
movsd xmm2, qword [ebx + 8]
mov ebx, dword [esp + 0x110]
mov edx, dword [edx + ecx*4]
mov edi, dword [esi + ecx*4]
mov esi, dword [esp + 0x10c]
mov dword [esp + 0xb8], edi
xor eax, eax
movaps xmm4, xmm1
movaps xmm3, xmm2
movaps xmm6, xmm0
movaps xmm5, xmm0
mov edi, eax
shl edi, 4
subsd xmm4, qword [edx + edi]
mulsd xmm4, xmm4
subsd xmm3, qword [edi + edx + 8]
mulsd xmm3, xmm3
pxor xmm7, xmm7
addsd xmm4, xmm3
sqrtsd xmm7, xmm4
movaps xmm0, xmm7
cmpltsd xmm7, xmm6
minsd xmm0, xmm5
movd edi, xmm7
neg edi
cmovne esi, eax
cmovne ebx, ecx
inc eax
cmp eax, dword [esp + 0xb8]
jl 0x1009f153
mov dword [esp + 0x110], ebx
mov ebx, dword [ebp + 0x48]
mov dword [esp + 0x10c], esi
mov esi, dword [esp + 0xa8]
inc ecx
cmp ecx, dword [esp + 0xb4]
jl 0x1009f11c
mov eax, dword [esp + 0xb0]
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
mov ecx, dword [esp + 0x110]
movsd xmm1, qword [esp + 0x150]
mov eax, dword [eax + ecx*4]
movaps xmm0, xmm1
mov dword [esp + 0xac], edx
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xb4], eax
mov edi, edx
shl edi, 4
movsd xmm2, qword [edi + eax]
mov dword [esp + 0xb8], edi
subsd xmm0, xmm2
andps xmm0, xmmword [0x101e57e0]
lea edi, [edx + 1]
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0xb0], ecx
cmp edi, ecx
mov ecx, dword [esp + 0xb8]
jne 0x1009f252
mov edi, 0
mov edx, edi
shl edx, 4
subsd xmm1, qword [edx + eax]
mov edx, dword [esp + 0xac]
andps xmm1, xmmword [0x101e57e0]
comisd xmm0, xmm1
jbe 0x1009f306
movsd xmm0, qword [esp + 0x150]
lea eax, [edi + 1]
xor ecx, ecx
cmp eax, dword [esp + 0xb0]
cmove eax, ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xa8], eax
shl eax, 4
subsd xmm0, qword [eax + ecx]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
jbe 0x1009fad5
movsd xmm2, qword [esp + 0x150]
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x130], esi
mov esi, ecx
movaps xmm1, xmm0
movaps xmm0, xmm2
mov ecx, eax
inc eax
xor edi, edi
cmp eax, ebx
cmove eax, edi
mov edi, eax
shl edi, 4
subsd xmm0, qword [edi + esi]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
ja 0x1009f2da
jmp 0x1009f3f2
mov edi, dword [esp + 0x10c]
movsd xmm1, qword [esp + 0x150]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb0]
lea eax, [ecx - 1]
lea ecx, [edi - 1]
test edi, edi
je 0x1009f330
mov eax, ecx
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0xa8], eax
shl eax, 4
subsd xmm1, qword [eax + ecx]
mov ecx, dword [esp + 0xb8]
andps xmm1, xmmword [0x101e57e0]
comisd xmm0, xmm1
jbe 0x1009f40f
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0xa8]
movsd xmm0, qword [esp + 0x150]
lea ecx, [ecx - 1]
lea eax, [edi - 1]
test edi, edi
cmove eax, ecx
mov ecx, dword [esp + 0xb4]
mov edi, eax
shl edi, 4
subsd xmm0, qword [edi + ecx]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
jbe 0x1009faeb
movsd xmm2, qword [esp + 0x150]
dec dword [esp + 0xb0]
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x130], esi
mov esi, ecx
movaps xmm1, xmm0
movaps xmm0, xmm2
mov ecx, eax
lea edi, [eax - 1]
test eax, eax
mov eax, ebx
cmovne eax, edi
mov edi, eax
shl edi, 4
subsd xmm0, qword [edi + esi]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
ja 0x1009f3c9
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0xb4]
shl ecx, 4
movsd xmm2, qword [ecx + edi]
mov eax, dword [ebp + 0x48]
mov edi, dword [esp + 0xb4]
movsd qword [eax], xmm2
movsd xmm0, qword [ecx + edi + 8]
movsd qword [eax + 8], xmm0
jmp 0x1009f988
cmp edx, 3
jne 0x1009f988
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0xbc]
movsd xmm3, qword [0x101e58a8]
mov edi, dword [ebx + ecx*4]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xb8], 0
mov dword [esp + 0x10c], edi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x128], ecx
test eax, eax
mov dword [esp + 0x110], edi
jle 0x1009f56b
movaps xmm1, xmm3
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], edx
mov dword [esp + 0x12c], ebx
mov ebx, ecx
mov dword [esp + 0x130], esi
mov esi, dword [ebp + 0x48]
xor ecx, ecx
cmp dword [ebx + ecx*4], 0
jle 0x1009f548
mov edx, dword [esp + 0x110]
movsd xmm0, qword [esi]
movsd xmm2, qword [esi + 8]
mov esi, dword [esp + 0xb8]
mov edx, dword [edx + ecx*4]
mov edi, dword [ebx + ecx*4]
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0xb0], edi
xor eax, eax
movaps xmm5, xmm0
movaps xmm4, xmm2
movaps xmm7, xmm1
movaps xmm6, xmm1
mov edi, eax
shl edi, 4
subsd xmm5, qword [edx + edi]
mulsd xmm5, xmm5
subsd xmm4, qword [edi + edx + 8]
mulsd xmm4, xmm4
addsd xmm5, xmm4
sqrtsd xmm4, xmm5
movaps xmm1, xmm4
cmpltsd xmm4, xmm7
movd edi, xmm4
minsd xmm1, xmm6
neg edi
cmovne esi, eax
cmovne ebx, ecx
inc eax
cmp eax, dword [esp + 0xb0]
jl 0x1009f4e2
mov dword [esp + 0xb8], esi
mov esi, dword [ebp + 0x48]
mov dword [esp + 0x10c], ebx
mov ebx, dword [esp + 0x128]
inc ecx
cmp ecx, dword [esp + 0xa8]
jl 0x1009f4ab
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x110]
mov ecx, dword [esp + 0x10c]
mov eax, dword [esp + 0xb8]
movsd xmm1, qword [esp + 0x150]
movaps xmm0, xmm1
mov dword [esp + 0xac], edx
mov edx, dword [edi + ecx*4]
mov dword [esp + 0xb0], edx
mov edi, eax
shl edi, 4
subsd xmm0, qword [edx + edi]
andps xmm0, xmmword [0x101e57e0]
lea eax, [eax + 1]
mov edi, dword [esp + 0x128]
mov ecx, dword [edi + ecx*4]
mov dword [esp + 0xb4], ecx
cmp eax, ecx
jne 0x1009f5cb
mov eax, 0
mov edi, eax
shl edi, 4
subsd xmm1, qword [edi + edx]
andps xmm1, xmmword [0x101e57e0]
comisd xmm0, xmm1
mov edx, dword [esp + 0xac]
jbe 0x1009f68d
movsd xmm0, qword [esp + 0x150]
mov dword [esp + 0xb8], eax
inc eax
xor ecx, ecx
cmp eax, dword [esp + 0xb4]
cmove eax, ecx
mov edi, eax
shl edi, 4
mov ecx, dword [esp + 0xb0]
subsd xmm0, qword [edi + ecx]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
jbe 0x1009f77c
movsd xmm2, qword [esp + 0x150]
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x130], esi
mov esi, ecx
movaps xmm1, xmm0
movaps xmm0, xmm2
mov ecx, eax
inc eax
xor edi, edi
cmp eax, ebx
cmove eax, edi
mov edi, eax
shl edi, 4
subsd xmm0, qword [edi + esi]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
ja 0x1009f64c
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
mov dword [esp + 0xb8], ecx
jmp 0x1009f77c
mov edi, dword [esp + 0xb8]
movsd xmm1, qword [esp + 0x150]
lea eax, [ecx - 1]
lea ecx, [edi - 1]
test edi, edi
je 0x1009f6a9
mov eax, ecx
mov ecx, dword [esp + 0xb0]
mov edi, eax
shl edi, 4
subsd xmm1, qword [edi + ecx]
andps xmm1, xmmword [0x101e57e0]
comisd xmm0, xmm1
jbe 0x1009f77c
mov ecx, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0x150]
mov dword [esp + 0xb8], eax
lea edi, [ecx - 1]
lea ecx, [eax - 1]
test eax, eax
cmove ecx, edi
mov edi, dword [esp + 0xb0]
mov dword [esp + 0xa8], ecx
shl ecx, 4
subsd xmm0, qword [ecx + edi]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
jbe 0x1009f77c
movsd xmm2, qword [esp + 0x150]
mov ecx, dword [esp + 0xa8]
dec dword [esp + 0xb4]
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0xb4]
mov dword [esp + 0x130], esi
mov esi, edi
movaps xmm1, xmm0
movaps xmm0, xmm2
mov eax, ecx
lea edi, [ecx - 1]
test ecx, ecx
mov ecx, ebx
cmovne ecx, edi
mov edi, ecx
shl edi, 4
subsd xmm0, qword [edi + esi]
andps xmm0, xmmword [0x101e57e0]
comisd xmm1, xmm0
ja 0x1009f73e
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
mov dword [esp + 0xb8], eax
mov ecx, dword [ebp + 0x48]
movsd xmm0, qword [0x101e58b0]
movsd qword [ecx], xmm3
xor eax, eax
mov dword [esp + 0xac], edx
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x130], esi
mov dword [esp + 0xa8], eax
xor esi, esi
xor ecx, ecx
mov eax, dword [esp + 0x128]
mov edi, dword [eax + ebx*4]
cmp esi, edi
jge 0x1009f85d
cmp dword [esp + 0xa8], 0
jne 0x1009f7de
mov eax, dword [esp + 0xb8]
add eax, esi
cdq
idiv edi
jmp 0x1009f7ec
mov eax, dword [esp + 0xb8]
add eax, edi
add eax, ecx
cdq
idiv edi
movaps xmm1, xmm0
mov eax, dword [esp + 0x110]
mov eax, dword [eax + ebx*4]
shl edx, 4
movsd xmm2, qword [edx + eax]
addsd xmm1, xmm3
comisd xmm1, xmm2
jbe 0x1009f852
movaps xmm1, xmm2
subsd xmm1, xmm3
andps xmm1, xmmword [0x101e57e0]
comisd xmm1, xmm0
ja 0x1009f83d
cmp dword [esp + 0x170], 1
je 0x1009fb06
mov edi, dword [ebp + 0x48]
movsd xmm1, qword [edi + 8]
comisd xmm1, xmmword [edx + eax + 8]
jbe 0x1009f852
movaps xmm3, xmm2
mov edi, dword [ebp + 0x48]
movsd qword [edi], xmm2
movsd xmm1, qword [edx + eax + 8]
movsd qword [edi + 8], xmm1
dec ecx
inc esi
cmp esi, 5
jle 0x1009f7b4
mov eax, dword [esp + 0xa8]
inc eax
cmp eax, 2
jl 0x1009f7a9
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
jmp 0x1009f988
mov edi, dword [esp + 0xbc]
movsd xmm5, qword [esp + 0x158]
test edi, edi
jle 0x1009f973
mov ecx, dword [esp + 0x108]
mov eax, dword [esp + 0xe4]
movsd xmm0, qword [0x101e58a8]
movsd xmm4, qword [esp + 0x158]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], edi
mov dword [esp + 0xac], edx
mov edx, dword [ebp + 0x48]
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], esi
xor eax, eax
cmp dword [ecx + eax*4], 0
jle 0x1009f94b
mov ebx, dword [esp + 0xa8]
movsd xmm2, qword [edx]
movsd xmm3, qword [edx + 8]
mov edi, dword [ecx + eax*4]
mov ebx, dword [ebx + eax*4]
xor esi, esi
movaps xmm7, xmm2
movaps xmm6, xmm3
mov edx, esi
shl edx, 4
subsd xmm7, qword [ebx + edx]
mulsd xmm7, xmm7
movsd xmm1, qword [edx + ebx + 8]
subsd xmm6, xmm1
mulsd xmm6, xmm6
addsd xmm7, xmm6
sqrtsd xmm6, xmm7
comisd xmm0, xmm6
jbe 0x1009f940
movaps xmm0, xmm6
movaps xmm4, xmm1
movsd xmm5, qword [edx + ebx]
inc esi
cmp esi, edi
jl 0x1009f905
lea esi, [esi]
mov edx, dword [ebp + 0x48]
inc eax
cmp eax, dword [esp + 0xb0]
jl 0x1009f8e7
mov edx, dword [esp + 0xac]
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
movsd qword [esp + 0x158], xmm4
mov ecx, dword [ebp + 0x48]
movsd xmm0, qword [esp + 0x158]
movsd qword [ecx], xmm5
movsd qword [ecx + 8], xmm0
test edx, edx
jle 0x1009f9f7
mov edi, dword [esp + 0xe4]
mov ecx, dword [esp + 0x124]
mov edx, dword [esp + 0x144]
cmp dword [edx + ecx*4], 0
je 0x1009f9e2
mov edx, dword [esp + 0xbc]
test edx, edx
jle 0x1009f9e2
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], esi
xor eax, eax
mov ebx, eax
mov esi, edx
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, esi
jl 0x1009f9c6
mov ebx, dword [esp + 0x12c]
mov esi, dword [esp + 0x130]
push dword [esp + 0x108]
call fcn.101bceaa
push edi
call fcn.101bceaa
add esp, 8
push dword [esp + 0x144]
call fcn.101bceaa
pop ecx
jmp 0x1009e90b
movsd xmm0, qword [esp + 0x150]
movsd xmm1, qword [0x101e58b8]
movsd xmm2, qword [0x101e58c0]
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xd0], xmm0
movsd qword [esp + 0xc8], xmm1
movsd qword [esp + 0xd8], xmm2
push 4
call fcn.101bcde0
mov dword [esp + 0x6c], eax
mov edx, eax
mov dword [esp + 0xe8], edx
push 4
call fcn.101bcde0
mov dword [esp + 0xc4], 1
mov dword [esp + 0x110], eax
lea edi, [esp + 0xc8]
lea ecx, [esp + 0x13c]
lea edx, [esp + 0x140]
push edx
mov edx, dword [ebp + 0x30]
push 0
push 0
push ecx
push 0
push 0
push 0
push eax
push 0
push dword [esp + 0x94]
push 0
push 2
push edi
mov ecx, dword [esp + 0x160]
push dword [edx + ecx*4]
mov edx, dword [ebp + 0x2c]
push dword [edx + ecx*4]
call fcn.100d5490
push dword [esp + 0x178]
call fcn.101bceaa
add esp, 0x48
mov edx, dword [0x1020b9c0]
jmp 0x1009f097
mov ecx, edi
mov edi, dword [esp + 0xb4]
shl ecx, 4
movsd xmm2, qword [ecx + edi]
jmp 0x1009f40f
mov ecx, dword [esp + 0xa8]
mov edi, dword [esp + 0xb4]
shl ecx, 4
movsd xmm2, qword [ecx + edi]
jmp 0x1009f40f
mov edi, dword [ebp + 0x48]
movsd xmm1, qword [edx + eax + 8]
comisd xmm1, xmmword [edi + 8]
ja 0x1009f83d
jmp 0x1009f852
mov dword [esp + 0x124], 0
jmp 0x1009f097
movsd xmm1, qword [esp + 0x150]
movsd xmm2, qword [0x101e58f8]
movsd xmm3, qword [0x101e5900]
addsd xmm3, qword [0x1021f8e0]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 0x88], xmm3
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x98], xmm3
jmp 0x1009ef74
push 0x20
push dword [ebp + 0x34]
call fcn.101beb7a
mov dword [esp + 0x170], eax
push 4
push dword [ebp + 0x34]
call fcn.101beb7a
add esp, 0x10
mov ebx, eax
cmp dword [ebp + 0x34], 0
mov dword [esp + 0x108], 0
jle 0x1009fc41
mov ecx, dword [esp + 0x168]
mov esi, dword [ebp + 0x2c]
mov dword [esp + 0x12c], ebx
mov ebx, dword [esp + 0x108]
mov dword [esp + 0x10c], edi
xor eax, eax
mov edi, dword [esp + 0x12c]
mov dword [edi + eax*4], eax
mov edi, dword [esi + eax*4]
movsd xmm0, qword [edi]
mov edx, eax
shl edx, 5
movsd qword [edx + ecx], xmm0
movsd xmm4, qword [edi + 8]
movsd qword [edx + ecx + 8], xmm4
mov edi, dword [esi + eax*4]
movsd xmm1, qword [edi + 0x10]
movsd qword [edx + ecx + 0x10], xmm1
movsd xmm2, qword [edi + 0x18]
movsd qword [edx + ecx + 0x18], xmm2
mov edx, ebx
shl edx, 5
movsd xmm3, qword [edx + ecx + 8]
comisd xmm3, xmm4
cmova ebx, eax
inc eax
cmp eax, dword [ebp + 0x34]
jl 0x1009fbd5
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x12c]
mov esi, dword [ebp + 0x34]
mov edx, dword [ebp + 0x2c]
mov ecx, dword [edx]
movsd xmm0, qword [ecx]
movsd qword [esp + 0xe8], xmm0
mov edx, dword [0x1021f8f8]
cmp edx, 3
je 0x100a00fb
cmp edx, 1
je 0x1009fee5
test edx, edx
jne 0x1009fcf6
movsd xmm0, qword [esp + 0xe8]
mov edx, dword [ebp + 0x48]
movsd xmm2, qword [esp + 0xb8]
mov eax, dword [esp + 0x168]
movsd qword [edx], xmm0
movsd xmm1, qword [0x1020b9b0]
movsd xmm3, qword [0x1021f8d8]
subsd xmm3, qword [esp + 0xb0]
movsd qword [esp], xmm1
movsd qword [esp + 8], xmm2
movsd qword [esp + 0x10], xmm3
lea ecx, [edx + 8]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x28], edx
mov edx, esi
mov ecx, 1
call fcn.100a024c
mov edx, dword [esp + 0x16c]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx]
mov dword [esp + 0xa8], edx
jmp 0x1009e902
cmp edx, 2
jne 0x1009fed0
movsd xmm3, qword [esp + 0xe8]
mov edx, dword [ebp + 0x48]
movsd xmm0, qword [0x101e58a0]
mov ecx, dword [ebp + 0x24]
movsd qword [edx], xmm3
movsd qword [edx + 8], xmm0
cmp dword [ecx + 0x95c], 0
jle 0x1009fd89
movsd xmm0, qword [0x1020b9b0]
movsd xmm1, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xe0]
subsd xmm2, qword [esp + 0xb0]
mov edx, dword [ebp + 0x48]
mov eax, dword [esp + 0x168]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
lea ecx, [edx + 8]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x28], edx
mov edx, esi
mov ecx, 1
call fcn.100a024c
jmp 0x1009feb8
movsd xmm0, qword [0x1021fbc0]
ucomisd xmm0, qword [esp + 0x158]
jp 0x1009fda2
je 0x1009fe35
movaps xmm1, xmm3
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x2c]
movsd xmm2, qword [edx]
subsd xmm2, qword [ecx + 0x78]
addsd xmm1, xmm2
comisd xmm0, xmm1
ja 0x1009fe35
movsd xmm0, qword [0x1021fbc8]
addsd xmm2, xmm3
comisd xmm0, xmm2
jbe 0x1009feb8
movsd xmm0, qword [0x1020b9b0]
movsd xmm1, qword [esp + 0xb8]
movsd xmm2, qword [esp + 0xe0]
subsd xmm2, qword [esp + 0xb0]
mov edx, dword [ebp + 0x48]
mov eax, dword [esp + 0x168]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
lea ecx, [edx + 8]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x28], edx
mov edx, esi
mov ecx, 1
call fcn.100a024c
jmp 0x1009feb8
movsd xmm0, qword [0x1020b9b0]
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [0x1021f8d8]
subsd xmm2, qword [esp + 0xb0]
mov edx, dword [ebp + 0x48]
mov eax, dword [esp + 0x168]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
lea ecx, [edx + 8]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x28], edx
mov edx, esi
mov ecx, 1
call fcn.100a024c
mov edx, dword [ebp + 0x48]
movsd xmm0, qword [edx + 8]
ucomisd xmm0, qword [0x101e58a0]
jp 0x1009fea8
je 0x100a006f
ucomisd xmm0, qword [0x101e58e0]
jp 0x1009feb8
je 0x100a006f
mov edx, dword [esp + 0x16c]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx]
mov dword [esp + 0xa8], edx
jmp 0x1009e902
mov edx, dword [ebp + 0x44]
mov ecx, dword [edx]
mov dword [esp + 0xa8], 0
jmp 0x1009e902
mov edx, dword [ebp + 0x24]
cmp dword [edx + 0x95c], 0
jle 0x100a0092
movsd xmm0, qword [esp + 0xe8]
mov edx, dword [ebp + 0x48]
mov ecx, dword [esp + 0x108]
movsd qword [edx], xmm0
mov edx, dword [esp + 0x168]
movsd xmm1, qword [0x1020b9b0]
movsd qword [esp], xmm1
mov dword [esp + 0x16c], ecx
lea eax, [esp + 0x148]
shl ecx, 5
movsd xmm2, qword [ecx + edx + 8]
movsd xmm3, qword [ecx + edx + 0x18]
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x68], xmm3
movsd qword [esp + 8], xmm2
movsd qword [esp + 0x10], xmm3
call fcn.100a1154
mov dword [esp + 0x130], esi
mov esi, dword [ebp + 0x40]
mov dword [esp + 0x10c], edi
mov edi, dword [ebp + 0x3c]
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x148]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
call fcn.100ed440
movsd xmm0, qword [0x1020b9b0]
movsd xmm1, qword [esp + 0x70]
movsd xmm2, qword [esp + 0x68]
movsd qword [esp], xmm0
fstp qword [esp + 8]
movsd qword [esp + 0x10], xmm1
movsd qword [esp + 0x18], xmm2
lea edx, [esp + 0x160]
mov eax, 1
call fcn.100a0178
mov edx, dword [esp + 0x16c]
mov ecx, dword [ebx + edx*4]
cmp dword [esi + ecx*4], 0
jle 0x100a003f
xor eax, eax
mov esi, eax
movsd xmm1, qword [esp + 0x160]
mov ecx, dword [ebp + 0x38]
mov eax, dword [ebx + edx*4]
mov edx, dword [ebp + 0x48]
movsd xmm0, qword [edx]
mov edx, dword [ecx + eax*4]
mov ecx, dword [edx + esi*4]
mov edx, dword [edi + eax*4]
mov edx, dword [edx + esi*4]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
mov dword [esp + 0x18], 6
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], edx
call fcn.100af680
test eax, eax
jne 0x100a008a
mov edx, dword [esp + 0x16c]
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebx + edx*4]
inc esi
cmp esi, dword [ecx + eax*4]
jl 0x1009ffde
mov esi, dword [esp + 0x130]
mov edi, dword [esp + 0x10c]
mov dword [esp + 0xa8], edx
movsd xmm0, qword [esp + 0x160]
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x44]
movsd qword [edx + 8], xmm0
mov ecx, dword [ecx]
jmp 0x1009e902
mov ecx, dword [ebp + 0x24]
mov edx, dword [ecx + 0x2c]
movsd xmm2, qword [edx]
subsd xmm2, qword [ecx + 0x78]
mov edx, dword [ebp + 0x48]
movsd xmm3, qword [edx]
jmp 0x1009fdbe
mov esi, dword [ebp + 0x40]
jmp 0x1009ff6e
movsd xmm0, qword [esp + 0xe8]
mov edx, dword [ebp + 0x48]
movsd xmm2, qword [esp + 0xe0]
mov eax, dword [esp + 0x168]
movsd qword [edx], xmm0
movsd xmm1, qword [0x1020b9b8]
movsd qword [esp], xmm1
movsd qword [esp + 8], xmm2
lea ecx, [edx + 8]
mov dword [esp + 0x1c], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 0x20], edx
mov edx, esi
mov ecx, 1
call fcn.100a126c
mov edx, dword [esp + 0x16c]
mov ecx, dword [ebp + 0x44]
mov ecx, dword [ecx]
mov dword [esp + 0xa8], edx
jmp 0x1009e902
push 1
push str.layer_type_tubular_not_supported
push dword [0x10210a1c]
push dword [0x10219180]
push str.hg_bestimme_position_in_loesungsraum
call fcn.100e45a0
add esp, 0x14
jmp 0x1009fee5
movsd xmm0, qword [0x1020b9a8]
ucomisd xmm0, qword [0x101e58a0]
jne 0x1009fc56
jp 0x1009fc56
jmp 0x1009e8f7
mov edx, dword [ebp + 0x24]
cmp dword [edx + 0x95c], 0
jne 0x1009dc90
movsd xmm0, qword [0x1021fbc8]
maxsd xmm0, qword [0x1021fbc0]
movsd qword [esp + 0x88], xmm0
jmp 0x1009dca1