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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x1f4
mov edx, dword [0x10219178]
mov eax, dword [0x10219180]
inc dword [0x10219c88]
cmp edx, dword [0x1020cad4]
jg 0x10178a70
cmp eax, dword [0x1020cad8]
je 0x10178a7b
mov dword [0x1020cad8], eax
mov dword [0x1020cad4], edx
mov eax, dword [ebp + 0xc]
imul ebx, dword [eax], 0xa10
mov eax, dword [eax + 0x10]
mov edx, dword [0x10219190]
mov ecx, dword [0x10220310]
mov esi, dword [ebx + edx + 0x87c]
mov edx, dword [0x10219d00]
mov edi, dword [ecx + esi*4]
mov ebx, dword [edi]
mov dword [esp + 0xe8], eax
lea ecx, [ebx*8]
sub ecx, ebx
movsd xmm0, qword [edx + ecx*8 + 0x28]
movsd qword [esp + 0x160], xmm0
mov dword [esp + 0x1a8], ecx
cmp eax, 0x20
jae 0x10178aea
mov ecx, eax
mov eax, 1
shl eax, cl
test al, 0xf
je 0x10178aea
mov dword [esp + 0x1a0], 1
jmp 0x10178afa
xor eax, eax
mov dword [esp + 0x1a0], eax
mov dword [esp + 0xe8], eax
mov eax, dword [ebp + 0x10]
test eax, eax
jle 0x10178b17
mov edx, 0x2710
cmp eax, 0x2710
cmovg eax, edx
mov dword [esp + 0x104], eax
jmp 0x10178b22
mov dword [esp + 0x104], 0x14
mov eax, dword [esp + 0x104]
lea edx, [eax*4]
push edx
call fcn.101bcde0
mov dword [esp + 0x138], eax
push 0x2000
call fcn.101bcde0
mov dword [esp + 0x1b4], eax
mov eax, dword [0x10219d04]
lea edx, [ebx + ebx*2]
mov dword [esp + 0x1bc], edx
push 8
push dword [eax + edx*8 + 0x14]
call fcn.101beb7a
mov dword [esp + 0x1c0], eax
mov edi, dword [0x10219cc8]
lea esi, [edi*4]
push esi
call fcn.101bcde0
mov dword [esp + 0xf8], eax
lea eax, [edi*8]
push eax
call fcn.101bcde0
mov dword [esp + 0x148], eax
push esi
call fcn.101bcde0
add esp, 0x1c
mov dword [esp + 0xe0], eax
test edi, edi
jle 0x10178c95
mov edi, eax
mov dword [esp + 0xf4], ebx
xor esi, esi
mov ebx, dword [esp + 0xe4]
xor eax, eax
mov edx, dword [0x10219cd8]
mov ecx, dword [0x10219cd4]
movsd xmm0, qword [0x101f4ac0]
movsd xmm2, qword [0x101f4ab8]
movsd xmm1, qword [edx + esi*8]
mov edx, dword [ecx + esi*4]
mov ecx, dword [0x10219cd0]
movsd qword [esp + 0x28], xmm2
movsd qword [esp + 0x4c], xmm2
mulsd xmm0, xmm1
mulsd xmm1, qword [0x101f4ac8]
movsd qword [esp + 0x18], xmm0
movsd qword [esp + 0x20], xmm1
mov dword [esp + 0x54], 7
mov dword [esp], edx
mov edx, dword [ecx + esi*4]
mov dword [esp + 4], eax
lea ecx, [ebx + esi*4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
lea edx, [edi + esi*4]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
call fcn.100b6020
mov edx, dword [esp + 0x130]
xor eax, eax
lea ecx, [edx + esi*8]
push ecx
push dword [edi + esi*4]
push dword [ebx + esi*4]
call fcn.100b0a90
xor eax, eax
add esp, 0xc
mov edx, dword [0x10219cc8]
inc esi
cmp esi, edx
jl 0x10178bc9
mov ebx, dword [esp + 0xf4]
mov edi, edx
xor eax, eax
mov dword [esp + 0x178], eax
test edi, edi
jle 0x10178d34
movsd xmm3, qword [0x101f4ad8]
movsd xmm1, qword [0x101f4af0]
movsd xmm0, qword [esp + 0x160]
imul eax, ebx, 0xa10
movaps xmm2, xmm0
divsd xmm0, xmm1
movsd qword [esp + 0x68], xmm0
mulsd xmm2, xmm1
movsd xmm1, qword [0x101f4b00]
movsd qword [esp + 0x70], xmm2
mov dword [esp + 0xf0], eax
mov dword [esp + 0xf4], ebx
mov ecx, 0x800
xor esi, esi
mov dword [esp + 0x17c], ecx
pxor xmm4, xmm4
mov ebx, dword [0x10219cd8]
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0xf0]
movsd xmm0, qword [eax + ecx + 0x48]
comisd xmm0, xmmword [ebx + esi*8]
jbe 0x10179598
inc esi
cmp esi, edi
jl 0x10178d04
mov ebx, dword [esp + 0xf4]
push 0x10178a00
push 4
push dword [esp + 0x180]
push dword [esp + 0x1b8]
call fcn.101bec80
add esp, 0x10
xor edi, edi
cmp dword [esp + 0x178], 0
jle 0x1017a15f
fld qword [0x101f4b10]
fstp st(0)
mov edx, dword [esp + 0x104]
imul esi, ebx, 0xa10
xor eax, eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x138], edi
mov dword [esp + 0xf4], ebx
lea edx, [edx - 1]
mov dword [esp + 0x100], edx
mov ebx, dword [esp + 0x1ac]
mov edi, dword [esp + 0x108]
mov ecx, dword [esp + 0x138]
cmp ecx, dword [esp + 0x104]
mov edx, dword [ebx + edi*4]
mov ebx, dword [edx]
mov edi, dword [edx + 8]
mov eax, dword [edx + 4]
movsd xmm0, qword [edx + 0x10]
movsd qword [esp + 0xf8], xmm0
mov dword [esp + 0x10c], eax
je 0x1017a5da
cmp dword [esp + 0x138], 0
jle 0x10178e08
mov eax, dword [esp + 0x134]
mov edx, dword [eax]
movsd xmm0, qword [edx + 0x18]
mulsd xmm0, qword [0x101f4b18]
comisd xmm0, xmmword [esp + 0xf8]
ja 0x1017a156
movsd xmm0, qword [esp + 0xf8]
pxor xmm1, xmm1
ucomisd xmm0, xmm1
jp 0x10178e21
je 0x1017a5be
cmp dword [ebp + 0x14], 0
mov eax, dword [0x10219cfc]
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xec], eax
lea ecx, [edx + edx*2]
mov dword [esp + 0xf0], ecx
je 0x10178f0b
cmp dword [esp + 0x138], 0
mov ecx, dword [0x10219d04]
mov eax, dword [esp + 0x1b4]
mov edx, dword [esp + 0xec]
mov ecx, dword [ecx + eax*8 + 0xc]
mov eax, dword [esp + 0xf0]
fld qword [ecx + ebx*8]
mov edx, dword [edx + eax*8 + 0xc]
fsub qword [edx + edi*8]
jle 0x1017a744
fstp qword [esp + 0xc0]
mov dword [esp + 0xd8], edi
xor edx, edx
mov dword [esp + 0xdc], ebx
mov ebx, dword [esp + 0x134]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0xec]
fld qword [0x101f4ad0]
mov edi, dword [ebx + edx*4]
mov eax, dword [edi]
fld qword [ecx + eax*8]
fsubr qword [esp + 0xc0]
mov eax, dword [edi + 8]
mov edi, dword [edi + 4]
lea edi, [edi + edi*2]
mov edi, dword [esi + edi*8 + 0xc]
fadd qword [edi + eax*8]
fabs
fprem
fnstsw ax
sahf
jp 0x10178ed2
fstp st(1)
fld qword [0x101f4b10]
fcompp
fnstsw ax
sahf
ja 0x1017a53d
inc edx
cmp edx, dword [esp + 0x138]
jl 0x10178eab
mov edi, dword [esp + 0xd8]
mov ebx, dword [esp + 0xdc]
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x138]
dec eax
js 0x1017a5b0
mov edx, dword [esp + 0x138]
movsd xmm1, qword [esp + 0xf8]
mov dword [esp + 0xc8], esi
xor eax, eax
lea ecx, [edx*4 - 4]
add ecx, dword [esp + 0x134]
mov dword [esp + 0xd4], eax
lea esi, [eax*4]
neg esi
mov esi, dword [ecx + esi]
movsd xmm0, qword [esi + 0x18]
comisd xmm0, xmm1
jae 0x1017a586
inc eax
cmp eax, edx
jb 0x10178f47
mov esi, dword [esp + 0xc8]
mov dword [esp + 0x138], edx
xor eax, eax
mov dword [esp + 0xd4], eax
mov eax, dword [0x10219190]
mov edx, dword [esi + eax + 0x118]
mov ecx, dword [edx]
mov eax, dword [ecx + 0x10]
shl eax, 4
push eax
call fcn.101bcde0
mov dword [esp + 0xd4], eax
mov eax, dword [0x10219190]
mov edx, dword [eax + esi + 0x118]
mov eax, dword [edx]
mov ecx, dword [eax + 0x10]
shl ecx, 4
push ecx
push dword [eax]
push dword [esp + 0xdc]
call fcn.101d7590
add esp, 0x10
movsd xmm4, qword [0x10210c48]
movsd xmm5, qword [0x10210c50]
mov dword [esp + 0xc8], esi
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd8], edi
mov edi, dword [0x10219190]
mov ecx, dword [edi + esi + 0x118]
mov edx, dword [ecx]
mov eax, dword [edx + 0x10]
movsd xmm0, qword [edx + 0x48]
movsd qword [esp + 0x58], xmm0
movsd xmm1, qword [edx + 0x50]
mov edx, dword [esp + 0x1b4]
movsd qword [esp + 0x60], xmm1
movsd xmm2, qword [edi + esi + 0x78]
mov dword [esp + 0xcc], eax
mov eax, dword [0x10219d04]
mov ecx, dword [eax + edx*8]
addsd xmm2, qword [ecx + ebx*8]
movsd qword [esp + 0xb8], xmm2
pxor xmm6, xmm6
movsd qword [esp + 0x68], xmm2
mov ecx, dword [eax + edx*8 + 4]
mov eax, dword [esp + 0xec]
mov edx, dword [esp + 0xf0]
movsd xmm3, qword [edi + esi + 0x80]
addsd xmm3, qword [ecx + ebx*8]
mov edi, dword [esp + 0xd8]
mov ebx, dword [eax + edx*8]
addsd xmm4, qword [ebx + edi*8]
mov esi, dword [eax + edx*8 + 4]
addsd xmm5, qword [esi + edi*8]
movsd qword [esp + 0xb0], xmm3
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x78], xmm4
movsd qword [esp + 0x80], xmm5
lea ebx, [esp + 0x68]
mov dword [esp], ebx
mov ebx, 1
lea esi, [esp + 8]
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x78]
mov dword [esi], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [esi + 8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esi + 0xc], ecx
mov eax, dword [eax + edx*8 + 0xc]
subsd xmm6, qword [eax + edi*8]
mov esi, dword [esp + 0xc8]
movsd qword [esp + 0x18], xmm6
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0xdc]
call fcn.100aef80
mov eax, dword [0x10219190]
mov edx, dword [0x10219d04]
movsd xmm0, qword [esp + 0x68]
subsd xmm0, qword [esp + 0xb8]
addsd xmm0, qword [eax + esi + 0x78]
mov ecx, dword [esp + 0x1b4]
mov ecx, dword [edx + ecx*8]
addsd xmm0, qword [ecx + ebx*8]
mov ecx, dword [esp + 0xf0]
movsd xmm1, qword [esp + 0x70]
subsd xmm1, qword [esp + 0xb0]
addsd xmm1, qword [eax + esi + 0x80]
mov eax, dword [esp + 0x1b4]
mov dword [esp + 0xd8], edi
mov dword [esp + 0xc8], esi
mov esi, dword [edx + eax*8 + 4]
mov dword [esp + 0xdc], ebx
mov ebx, dword [0x10219cfc]
mov ecx, dword [ebx + ecx*8]
subsd xmm0, qword [ecx + edi*8]
mov ecx, dword [esp + 0xdc]
addsd xmm1, qword [esi + ecx*8]
mov ecx, dword [esp + 0xf0]
mov esi, dword [ebx + ecx*8 + 4]
subsd xmm1, qword [esi + edi*8]
mov esi, dword [edx + eax*8 + 0xc]
mov ecx, dword [ebx + ecx*8 + 0xc]
mov ebx, dword [esp + 0xdc]
movsd xmm5, qword [esi + ebx*8]
subsd xmm5, qword [ecx + edi*8]
mov edi, dword [esp + 0xd0]
mov esi, dword [esp + 0xcc]
mov ebx, dword [0x10219190]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x90], xmm1
movsd qword [esp + 0xa0], xmm5
mov dword [esp], edi
mov dword [esp + 8], esi
xor ecx, ecx
mov esi, dword [esp + 0xc8]
mov dword [esp + 4], ecx
movsd xmm2, qword [esi + ebx + 0x78]
lea edi, [esp + 0xc]
movsd qword [edi], xmm2
movsd xmm3, qword [esi + ebx + 0x80]
movsd qword [edi + 8], xmm3
pxor xmm4, xmm4
movsd qword [esp + 0x20], xmm4
mov dword [esp + 0x1c], ecx
lea edi, [esp + 0x28]
mov ebx, dword [esp + 0x88]
mov dword [edi], ebx
mov ecx, dword [esp + 0x8c]
mov dword [edi + 4], ecx
mov ebx, dword [esp + 0x90]
mov dword [edi + 8], ebx
mov ecx, dword [esp + 0x94]
mov dword [edi + 0xc], ecx
mov ebx, dword [esp + 0xdc]
mov edx, dword [edx + eax*8 + 8]
mov eax, dword [edx + ebx*4]
mov edi, dword [esp + 0xd8]
movsd qword [esp + 0x3c], xmm5
mov dword [esp + 0x38], eax
call fcn.100ae6e0
mov ecx, dword [0x10219190]
mov dword [esp + 8], 1
lea eax, [esp + 0xc]
pxor xmm2, xmm2
lea edx, [esp + 0x58]
mov dword [esp], edx
xor edx, edx
mov dword [esp + 4], edx
movsd xmm0, qword [ecx + esi + 0x78]
movsd qword [eax], xmm0
movsd xmm1, qword [ecx + esi + 0x80]
movsd qword [eax + 8], xmm1
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x1c], edx
lea eax, [esp + 0x28]
mov ecx, dword [esp + 0x88]
mov dword [eax], ecx
mov edx, dword [esp + 0x8c]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x90]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x94]
mov dword [eax + 0xc], edx
mov eax, dword [0x10219d04]
mov edx, dword [esp + 0x1b4]
movsd xmm3, qword [esp + 0xa0]
mov eax, dword [eax + edx*8 + 8]
mov ecx, dword [eax + ebx*4]
movsd qword [esp + 0x3c], xmm3
mov dword [esp + 0x38], ecx
call fcn.100ae6e0
mov edx, dword [esp + 0xd0]
mov ecx, dword [0x10219190]
mov eax, dword [esi + ecx + 0x118]
mov ecx, dword [esp + 0xcc]
mov dword [esp], edx
mov edx, dword [eax]
movsd xmm0, qword [edx + 0x18]
mov edx, dword [0x10219cd4]
movsd qword [esp + 4], xmm0
mov dword [esp + 0xc], ecx
lea eax, [esp + 0x58]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [edx + eax*4]
mov edx, dword [0x10219cd8]
movsd xmm1, qword [edx + eax*8]
movsd qword [esp + 0x18], xmm1
mov dword [esp + 0x14], ecx
mov ecx, dword [0x10219cd0]
mov eax, dword [ecx + eax*4]
xor edx, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x28], edx
lea eax, [esp + 0x98]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], edx
call fcn.100d28c0
mov eax, dword [0x10219190]
mov edx, dword [eax + esi + 0x118]
mov ecx, dword [edx]
movsd xmm0, qword [ecx + 0x18]
movaps xmm1, xmm0
subsd xmm1, qword [esp + 0x98]
divsd xmm1, xmm0
movsd qword [esp + 0xa8], xmm1
push dword [esp + 0xd0]
call fcn.101bceaa
pop ecx
movsd xmm0, qword [esp + 0xa8]
comisd xmm0, xmmword [0x101f4b08]
jbe 0x101793f3
mov eax, dword [esp + 0x108]
inc eax
cmp eax, dword [esp + 0x178]
mov dword [esp + 0x108], eax
jl 0x10178d97
jmp 0x1017a560
mov eax, dword [esp + 0xd4]
dec eax
js 0x1017944f
movsd xmm1, qword [esp + 0xa8]
movsd xmm2, qword [esp + 0xf8]
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x134]
mov edx, dword [esi + eax*4]
movsd xmm0, qword [edx + 0x18]
comisd xmm0, xmm2
ja 0x10179441
movsd xmm0, qword [edx + 0x10]
comisd xmm0, xmm1
cmova ecx, eax
dec eax
jns 0x10179424
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd4], ecx
mov eax, dword [esp + 0xd4]
cmp eax, dword [esp + 0x104]
jl 0x10179480
mov eax, dword [esp + 0x108]
inc eax
cmp eax, dword [esp + 0x178]
mov dword [esp + 0x108], eax
jl 0x10178d97
jmp 0x1017a560
cmp dword [esp + 0x1a0], 0
je 0x101794c7
mov eax, dword [0x10219d04]
mov edx, dword [esp + 0x1b4]
mov ecx, dword [esp + 0xe8]
mov eax, dword [eax + edx*8 + 8]
cmp ecx, dword [eax + ebx*4]
je 0x101794c7
mov eax, dword [esp + 0x108]
inc eax
cmp eax, dword [esp + 0x178]
mov dword [esp + 0x108], eax
jl 0x10178d97
jmp 0x1017a560
push 0x20
call fcn.101bcde0
pop ecx
mov edx, dword [esp + 0x10c]
movsd xmm0, qword [esp + 0xf8]
movsd xmm1, qword [esp + 0xa8]
mov ecx, dword [esp + 0x100]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 0x10], xmm1
mov dword [eax], ebx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x138]
mov dword [eax + 8], edi
cmp ecx, edx
cmovl edx, ecx
cmp edx, dword [esp + 0xd4]
jle 0x10179537
mov ebx, dword [esp + 0xd4]
mov edi, dword [esp + 0x134]
mov ecx, dword [edi + edx*4 - 4]
mov dword [edi + edx*4], ecx
dec edx
cmp edx, ebx
jg 0x10179524
mov dword [esp + 0xd4], ebx
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0xd4]
inc dword [esp + 0x108]
mov dword [edx + ecx*4], eax
mov eax, dword [esp + 0x138]
cmp eax, dword [esp + 0x104]
jge 0x1017957f
mov eax, dword [esp + 0x108]
inc dword [esp + 0x138]
cmp eax, dword [esp + 0x178]
jl 0x10178d97
jmp 0x1017a560
mov eax, dword [esp + 0x108]
cmp eax, dword [esp + 0x178]
jl 0x10178d97
jmp 0x1017a573
mov eax, dword [0x10219cfc]
lea edx, [esi + esi*2]
cmp dword [eax + edx*8 + 0x14], 0
mov dword [esp + 0x184], edx
jne 0x10179a0a
mov edi, dword [esp + 0xe4]
mov eax, dword [esp + 0xe0]
mov edi, dword [edi + esi*4]
mov eax, dword [eax + esi*4]
test eax, eax
jle 0x10179a0a
mov dword [esp + 0x100], eax
mov dword [esp + 0x1b8], esi
xor ebx, ebx
imul ecx, dword [0x1022002c], 0x168
mov edx, ebx
shl edx, 4
mov esi, dword [0x10220028]
movsd xmm6, qword [edx + edi]
movsd xmm5, qword [edx + edi + 8]
movsd qword [esp + 0x110], xmm6
movsd qword [esp + 0x118], xmm5
inc ebx
xor eax, eax
cmp ebx, dword [esp + 0x100]
cmovne eax, ebx
shl eax, 4
movsd xmm4, qword [eax + edi]
movaps xmm1, xmm4
movsd xmm3, qword [eax + edi + 8]
movsd qword [esp + 0x120], xmm4
movsd qword [esp + 0x128], xmm3
movaps xmm0, xmm3
subsd xmm1, xmm6
mulsd xmm1, xmm1
subsd xmm0, xmm5
mulsd xmm0, xmm0
addsd xmm1, xmm0
sqrtsd xmm2, xmm1
movsd xmm0, qword [ecx + esi - 0x48]
movsd qword [esp + 0x170], xmm2
comisd xmm6, xmm0
jbe 0x1017967a
comisd xmm4, xmm0
ja 0x101799f6
movsd qword [esp + 0x80], xmm3
movsd qword [esp + 0x78], xmm4
movsd qword [esp + 0x148], xmm5
movsd qword [esp + 0x140], xmm6
movsd xmm0, qword [edi + edx]
mov ecx, esp
movsd qword [ecx], xmm0
movsd xmm1, qword [edi + edx + 8]
movsd qword [ecx + 8], xmm1
lea edx, [esp + 0x10]
movsd xmm2, qword [eax + edi]
movsd qword [edx], xmm2
movsd xmm3, qword [eax + edi + 8]
movsd qword [edx + 8], xmm3
call fcn.100ac820
fstp qword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa8]
movsd xmm1, qword [0x101f4af8]
movsd xmm4, qword [0x101f4ad0]
mov dword [esp + 4], 2
subsd xmm1, xmm0
lea eax, [esp + 0x110]
mov dword [esp], eax
addsd xmm4, xmm1
lea edx, [esp + 8]
pxor xmm0, xmm0
comisd xmm0, xmm1
ja 0x10179719
movaps xmm4, xmm1
movsd qword [esp + 0xa0], xmm4
movsd xmm2, qword [0x10210c48]
movsd qword [edx], xmm2
movsd xmm3, qword [0x10210c50]
movsd qword [edx + 8], xmm3
movsd qword [esp + 0x18], xmm4
mov dword [esp + 0x20], 1
call fcn.100aef80
mov ecx, dword [esp + 0x140]
mov edx, esp
mov dword [edx], ecx
mov esi, dword [esp + 0x144]
mov dword [edx + 4], esi
mov eax, dword [esp + 0x148]
mov dword [edx + 8], eax
mov ecx, dword [esp + 0x14c]
mov dword [edx + 0xc], ecx
lea eax, [esp + 0x10]
mov edx, dword [esp + 0x78]
mov dword [eax], edx
mov esi, dword [esp + 0x7c]
mov dword [eax + 4], esi
mov edx, dword [esp + 0x80]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x84]
mov dword [eax + 0xc], ecx
call fcn.100ac820
fstp qword [esp + 0xa8]
movsd xmm0, qword [esp + 0xa8]
call fcn.101baec0
mulsd xmm0, qword [esp + 0x160]
movsd xmm1, qword [esp + 0x170]
pxor xmm2, xmm2
comisd xmm1, xmm2
jbe 0x101799f6
mov edx, dword [0x10219d00]
mov eax, dword [0x10219cfc]
movsd qword [esp + 0x168], xmm0
mov dword [esp + 0xec], edx
pxor xmm1, xmm1
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xd8], edi
mov edi, dword [esp + 0x184]
mov esi, 0xffffffff
mov ebx, eax
movaps xmm4, xmm1
addsd xmm4, qword [esp + 0x118]
movsd xmm2, qword [0x1021f6c0]
cmp dword [0x1021f6c8], 0
movsd xmm0, qword [0x1021fc70]
addsd xmm0, qword [0x1021fca8]
addsd xmm0, qword [0x1021fca8]
jne 0x10179849
movaps xmm2, xmm0
inc esi
cvtsi2sd xmm3, esi
mulsd xmm3, qword [esp + 0x168]
addsd xmm3, qword [esp + 0x140]
comisd xmm2, xmm3
jbe 0x101799cc
mov edx, dword [ebx + edi*8 + 0x14]
lea ecx, [edx*8 + 8]
push ecx
push dword [ebx + edi*8]
movsd qword [esp + 0x90], xmm4
movsd qword [esp + 0x98], xmm1
call fcn.101bcb76
movsd xmm1, qword [esp + 0x98]
movsd xmm4, qword [esp + 0x90]
mov edx, dword [ebx + edi*8 + 0x14]
mov dword [ebx + edi*8], eax
lea ecx, [edx*8 + 8]
push ecx
push dword [ebx + edi*8 + 4]
movsd qword [esp + 0x98], xmm4
movsd qword [esp + 0xa0], xmm1
call fcn.101bcb76
movsd xmm1, qword [esp + 0xa0]
movsd xmm4, qword [esp + 0x98]
mov edx, dword [ebx + edi*8 + 0x14]
mov dword [ebx + edi*8 + 4], eax
lea ecx, [edx*8 + 8]
push ecx
push dword [ebx + edi*8 + 0xc]
movsd qword [esp + 0xa0], xmm4
movsd qword [esp + 0xa8], xmm1
call fcn.101bcb76
movsd xmm1, qword [esp + 0xa8]
movsd xmm4, qword [esp + 0xa0]
mov edx, dword [ebx + edi*8 + 0x14]
mov dword [ebx + edi*8 + 0xc], eax
lea ecx, [edx*4 + 4]
push ecx
push dword [ebx + edi*8 + 0x10]
movsd qword [esp + 0xa8], xmm4
movsd qword [esp + 0xb0], xmm1
call fcn.101bcb76
movsd xmm1, qword [esp + 0xb0]
movsd xmm4, qword [esp + 0xa8]
add esp, 0x20
movsd xmm0, qword [esp + 0xa0]
mov edx, dword [ebx + edi*8 + 0x14]
mov ecx, dword [ebx + edi*8 + 0xc]
movsd qword [ecx + edx*8], xmm0
mov ecx, dword [esp + 0x1a8]
mov dword [esp + 0xb4], esi
mov esi, dword [esp + 0xec]
movsd xmm3, qword [esi + ecx*8 + 0x28]
mulsd xmm3, qword [0x101f4b00]
mov esi, dword [ebx + edi*8]
mov ecx, dword [ebx + edi*8 + 4]
movaps xmm2, xmm3
subsd xmm2, qword [esp + 0x110]
movsd qword [esi + edx*8], xmm2
mov esi, dword [esp + 0xb4]
mov dword [ebx + edi*8 + 0x10], eax
subsd xmm3, xmm4
movsd qword [ecx + edx*8], xmm3
mov dword [eax + edx*4], 1
inc edx
mov dword [ebx + edi*8 + 0x14], edx
addsd xmm1, qword [esp + 0x160]
movsd xmm0, qword [esp + 0x170]
comisd xmm0, xmm1
ja 0x10179811
mov ebx, dword [esp + 0xdc]
mov edi, dword [esp + 0xd8]
cmp ebx, dword [esp + 0x100]
jl 0x101795de
mov esi, dword [esp + 0x1b8]
mov edi, dword [0x10219cf8]
mov edx, dword [0x10219cf4]
mov eax, dword [edi + esi*4]
test eax, eax
jle 0x1017a608
movsd xmm0, qword [0x101f4ab8]
movsd xmm4, qword [esp + 0x68]
movsd xmm5, qword [esp + 0x70]
movsd xmm6, qword [esp + 0x160]
mov ebx, 0xffffffff
xor ecx, ecx
mov dword [esp + 0x9c], ecx
mov ecx, dword [edi + esi*4]
mov dword [esp + 0x98], ecx
mov ecx, dword [edx + esi*4]
mov dword [esp + 0xb0], edi
mov edi, dword [esp + 0x9c]
mov dword [esp + 0x1b8], esi
mov esi, dword [esp + 0x98]
movsd xmm3, qword [ecx + edi*8]
comisd xmm5, xmm3
jbe 0x10179aa5
comisd xmm3, xmm4
jbe 0x10179aa5
movaps xmm2, xmm0
movaps xmm1, xmm0
subsd xmm3, xmm6
andps xmm3, xmmword [0x101f4a80]
movaps xmm0, xmm3
comisd xmm2, xmm3
cmova ebx, edi
minsd xmm0, xmm1
inc edi
cmp edi, esi
jl 0x10179a75
mov edi, dword [esp + 0xb0]
mov esi, dword [esp + 0x1b8]
cmp ebx, 0xffffffff
je 0x1017a608
mov edi, dword [0x10219cf0]
mov eax, dword [edi + esi*4]
mov edx, dword [eax + ebx*4]
shl edx, 4
push edx
call fcn.101bcde0
mov ecx, dword [0x10219ce8]
mov edx, dword [ecx + esi*4]
mov ecx, dword [edi + esi*4]
mov ecx, dword [ecx + ebx*4]
shl ecx, 4
push ecx
push dword [edx + ebx*4]
push eax
mov dword [esp + 0x1cc], eax
call fcn.101d7590
mov eax, dword [esp + 0x1cc]
add esp, 0x10
movsd xmm2, qword [0x10210c48]
movsd xmm1, qword [0x10210c50]
mov ecx, dword [esp + 0x184]
mov edx, dword [edi + esi*4]
mov edx, dword [edx + ebx*4]
mov edi, dword [0x10219cfc]
cmp dword [edi + ecx*8 + 0x14], 0
jle 0x1017a5f6
movsd qword [esp + 0xc0], xmm1
movsd qword [esp + 0xb8], xmm2
mov dword [esp + 0x1c0], edx
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1b8], esi
pxor xmm0, xmm0
xor ebx, ebx
jmp 0x10179b82
movsd xmm2, qword [0x10210c48]
movsd xmm1, qword [0x10210c50]
movsd qword [esp + 0xc0], xmm4
movsd qword [esp + 0xb8], xmm5
mov esi, dword [esp + 0x184]
mov edx, dword [esp + 0x1bc]
mov ecx, dword [edi + esi*8]
addsd xmm2, qword [ecx + ebx*8]
mov eax, dword [edi + esi*8 + 4]
addsd xmm1, qword [eax + ebx*8]
mov eax, dword [esp + 0x1c0]
movsd qword [esp + 0xc8], xmm2
movsd qword [esp + 0xd0], xmm1
mov dword [esp], edx
xor ecx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
lea edx, [esp + 0xc]
mov eax, dword [esp + 0xb8]
mov dword [edx], eax
mov eax, dword [esp + 0xbc]
mov dword [edx + 4], eax
mov eax, dword [esp + 0xc0]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xc4]
mov dword [edx + 0xc], eax
movsd qword [esp + 0x20], xmm0
lea eax, [esp + 0x28]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0xc8]
mov dword [eax], edx
mov edx, dword [esp + 0xcc]
mov dword [eax + 4], edx
mov edx, dword [esp + 0xd0]
mov dword [eax + 8], edx
mov edx, dword [esp + 0xd4]
mov dword [eax + 0xc], edx
mov edi, dword [edi + esi*8 + 0xc]
movsd xmm0, qword [edi + ebx*8]
movsd qword [esp + 0x3c], xmm0
mov dword [esp + 0x38], ecx
call fcn.100ae6e0
movsd xmm5, qword [esp + 0xc8]
movsd xmm4, qword [esp + 0xd0]
mov edi, dword [0x10219cfc]
mov eax, esi
mov edx, dword [edi + eax*8 + 0xc]
movsd xmm0, qword [edx + ebx*8]
mov ecx, dword [0x10219d04]
mov esi, dword [esp + 0x1b4]
mov eax, dword [ecx + esi*8 + 0x14]
mov dword [esp + 0x180], ecx
test eax, eax
jle 0x10179c95
mov ecx, dword [esp + 0x1b0]
xor edx, edx
pxor xmm1, xmm1
movsd qword [ecx + edx*8], xmm1
inc edx
cmp edx, eax
jl 0x10179c8b
cmp dword [esp + 0x1c0], 0
jle 0x10179fff
mov ecx, dword [0x10219d00]
mov esi, dword [esp + 0x1a8]
movsd xmm3, qword [0x101f4b28]
movsd xmm1, qword [0x101f4b30]
mov edx, dword [ecx + esi*8 + 0x18]
movsd xmm2, qword [ecx + esi*8 + 0x28]
movsd qword [esp + 0xf8], xmm4
movsd qword [esp + 0x108], xmm5
movsd qword [esp + 0x138], xmm0
mov dword [esp + 0x188], ecx
mov ecx, dword [ecx + esi*8 + 0xc]
mov dword [esp + 0x158], 0
mov dword [esp + 0x1c8], edx
mov edx, ecx
mov dword [esp + 0x15c], eax
mov dword [esp + 0x1c4], ebx
shr edx, 0x1f
add ecx, edx
mov edx, dword [esp + 0x188]
mov dword [esp + 0x154], edi
sar ecx, 1
mov dword [esp + 0x1cc], ecx
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0x1bc]
movsd xmm6, qword [0x101f4ad8]
movsd xmm5, qword [0x101f4b20]
mov esi, dword [esp + 0x1cc]
mov eax, ecx
shl eax, 4
movsd xmm0, qword [eax + ebx + 8]
addsd xmm6, xmm0
divsd xmm6, xmm2
andps xmm5, xmm6
movaps xmm7, xmm5
pxor xmm7, xmm6
cmpltsd xmm7, xmm3
andps xmm7, xmm3
orps xmm7, xmm5
movaps xmm4, xmm7
addsd xmm4, xmm6
subsd xmm4, xmm7
movaps xmm7, xmm4
subsd xmm7, xmm6
cmpnlesd xmm7, xmm5
andps xmm7, xmm1
subsd xmm4, xmm7
cvtsd2si edi, xmm4
lea esi, [esi + edi + 1]
cmp esi, dword [esp + 0x1c8]
jg 0x10179fc1
mov ebx, dword [esp + 0x1a8]
cmp esi, dword [edx + ebx*8 + 0x14]
jl 0x10179fc1
mov edi, dword [esp + 0x1bc]
movsd xmm5, qword [0x101f4b20]
movsd xmm6, qword [edi + eax]
addsd xmm6, qword [0x101f4ad8]
divsd xmm6, xmm2
mov dword [esp + 0x19c], esi
mov esi, ebx
mov ebx, dword [edx + esi*8 + 0x10]
mov edi, ebx
shr edi, 0x1f
add ebx, edi
sar ebx, 1
andps xmm5, xmm6
movaps xmm7, xmm5
pxor xmm7, xmm6
cmpltsd xmm7, xmm3
andps xmm7, xmm3
orps xmm7, xmm5
movaps xmm4, xmm7
addsd xmm4, xmm6
subsd xmm4, xmm7
movaps xmm7, xmm4
subsd xmm7, xmm6
cmpnlesd xmm7, xmm5
andps xmm7, xmm1
subsd xmm4, xmm7
cvtsd2si edi, xmm4
lea ebx, [ebx + edi + 1]
cmp ebx, dword [edx + esi*8 + 0x20]
mov esi, dword [esp + 0x19c]
jg 0x10179fc1
mov edi, dword [esp + 0x1a8]
cmp ebx, dword [edx + edi*8 + 0x1c]
jl 0x10179fc1
mov edi, dword [edx + edi*8 + 8]
mov dword [esp + 0x150], edi
mov edi, dword [edi + esi*4]
cmp dword [edi + ebx*4], 0
jle 0x10179fc1
mov dword [esp + 0x194], 0
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x1a8]
mov edi, dword [edx + eax*8]
mov eax, dword [esp + 0x150]
mov eax, dword [eax + esi*4]
mov edi, dword [edi + esi*4]
mov eax, dword [eax + ebx*4]
mov edi, dword [edi + ebx*4]
mov dword [esp + 0x198], eax
mov dword [esp + 0x1a4], edi
mov dword [esp + 0x190], ebx
mov dword [esp + 0x19c], esi
mov dword [esp + 0x158], ecx
mov ecx, dword [esp + 0x194]
cmp dword [esp + 0x1a0], 0
mov eax, dword [esp + 0x1a4]
mov edx, dword [eax + ecx*4]
je 0x10179f19
mov eax, dword [esp + 0x180]
mov ebx, dword [esp + 0x1b4]
mov esi, dword [esp + 0x198]
mov edi, dword [esp + 0xe8]
mov eax, dword [eax + ebx*8 + 8]
mov ebx, dword [esp + 0x1a4]
jmp 0x10179f03
mov edx, dword [ebx + ecx*4]
cmp edi, dword [eax + edx*4]
je 0x10179f12
inc ecx
cmp ecx, esi
jl 0x10179f00
jmp 0x10179fb3
mov dword [esp + 0x1a4], ebx
mov esi, dword [esp + 0x1a8]
mov ebx, dword [esp + 0x188]
mov eax, dword [esp + 0x19c]
movsd xmm6, qword [0x101f4ae0]
mov edi, dword [ebx + esi*8 + 4]
mov ebx, dword [edi + eax*4]
mov esi, dword [esp + 0x190]
mov edi, dword [esp + 0x1b0]
mov eax, dword [ebx + esi*4]
mov esi, dword [esp + 0x1bc]
mov ebx, dword [esp + 0x18c]
mulsd xmm6, xmm2
addsd xmm6, qword [edi + edx*8]
mov dword [esp + 0x194], ecx
shl ecx, 5
movsd xmm4, qword [eax + ecx]
subsd xmm4, qword [ebx + esi]
andps xmm4, xmmword [0x101f4a80]
movsd xmm5, qword [ecx + eax + 8]
mov ecx, dword [esp + 0x194]
subsd xmm6, xmm4
subsd xmm5, xmm0
inc ecx
cmp ecx, dword [esp + 0x198]
andps xmm5, xmmword [0x101f4a80]
subsd xmm6, xmm5
movsd qword [edi + edx*8], xmm6
jl 0x10179ec3
mov ecx, dword [esp + 0x158]
mov edx, dword [esp + 0x188]
inc ecx
cmp ecx, dword [esp + 0x1c0]
jl 0x10179d35
movsd xmm4, qword [esp + 0xf8]
movsd xmm5, qword [esp + 0x108]
movsd xmm0, qword [esp + 0x138]
mov eax, dword [esp + 0x15c]
mov ebx, dword [esp + 0x1c4]
mov edi, dword [esp + 0x154]
mov edx, dword [esp + 0x178]
add edx, eax
cmp edx, dword [esp + 0x17c]
jl 0x1017a08b
mov eax, dword [esp + 0x17c]
add eax, eax
cmp edx, eax
jge 0x1017a018
mov dword [esp + 0x17c], eax
lea edx, [eax*4]
push edx
push dword [esp + 0x1b0]
movsd qword [esp + 0x100], xmm4
movsd qword [esp + 0x110], xmm5
movsd qword [esp + 0x140], xmm0
call fcn.101bcb76
movsd xmm0, qword [esp + 0x140]
movsd xmm5, qword [esp + 0x110]
movsd xmm4, qword [esp + 0x100]
add esp, 8
mov dword [esp + 0x1ac], eax
mov edx, dword [esp + 0x1b4]
mov eax, dword [esp + 0x180]
mov eax, dword [eax + edx*8 + 0x14]
test eax, eax
jle 0x1017a13f
movsd qword [esp + 0xf8], xmm4
movsd qword [esp + 0x108], xmm5
movsd qword [esp + 0x138], xmm0
mov dword [esp + 0x1c4], ebx
mov ebx, dword [esp + 0x180]
mov dword [esp + 0x154], edi
mov edi, dword [esp + 0x178]
xor esi, esi
push 0x18
call fcn.101bcde0
pop ecx
mov edx, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1b8]
mov dword [edx + edi*4], eax
mov edx, dword [esp + 0x1c4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x1b0]
movsd xmm0, qword [ecx + esi*8]
movsd qword [eax + 0x10], xmm0
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1b4]
inc edi
inc esi
cmp esi, dword [ebx + eax*8 + 0x14]
jl 0x1017a0cc
movsd xmm4, qword [esp + 0xf8]
movsd xmm5, qword [esp + 0x108]
movsd xmm0, qword [esp + 0x138]
mov ebx, edx
mov dword [esp + 0x178], edi
mov edi, dword [esp + 0x154]
mov eax, dword [esp + 0x184]
inc ebx
cmp ebx, dword [edi + eax*8 + 0x14]
jl 0x10179b60
jmp 0x1017a5e8
mov edi, ecx
mov ebx, dword [esp + 0xf4]
mov eax, edi
shl eax, 4
push eax
call fcn.101bcde0
mov edx, dword [ebp + 0x18]
mov dword [edx], eax
lea esi, [edi*4]
push esi
call fcn.101bcde0
mov edx, dword [ebp + 0x1c]
mov dword [edx], eax
lea eax, [edi*8]
push eax
call fcn.101bcde0
mov edx, dword [ebp + 0x20]
push esi
mov dword [edx], eax
call fcn.101bcde0
add esp, 0x10
mov ecx, dword [ebp + 0x28]
mov edx, dword [ebp + 0x24]
mov dword [edx], eax
mov dword [ecx], edi
test edi, edi
jle 0x1017a47c
imul eax, ebx, 0xa10
xor esi, esi
mov dword [esp + 0x138], edi
mov dword [esp + 0x88], eax
pxor xmm0, xmm0
mov edx, dword [ebp + 0x18]
mov ebx, dword [0x10219190]
mov edi, dword [esp + 0x88]
mov eax, dword [edx]
movsd xmm1, qword [ebx + edi + 0x78]
mov edx, dword [esp + 0x134]
mov dword [esp + 0x90], esi
mov dword [esp + 8], 1
mov ecx, esi
shl ecx, 4
movsd qword [ecx + eax], xmm1
movsd xmm2, qword [ebx + edi + 0x80]
movsd qword [ecx + eax + 8], xmm2
mov esi, dword [edx + esi*4]
mov edx, dword [0x10219d04]
mov eax, dword [esi]
movsd xmm3, qword [ebx + edi + 0x78]
movsd xmm4, qword [ebx + edi + 0x80]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x1b4]
mov esi, dword [edx + ecx*8]
addsd xmm3, qword [esi + eax*8]
mov esi, dword [edx + ecx*8 + 4]
addsd xmm4, qword [esi + eax*8]
movsd qword [esp + 0x78], xmm3
movsd qword [esp + 0x80], xmm4
mov dword [esp + 0x94], eax
mov eax, dword [ebp + 0x18]
mov esi, dword [eax]
lea eax, [esp + 0xc]
add esi, dword [esp + 0x8c]
mov dword [esp], esi
xor esi, esi
mov dword [esp + 4], esi
movsd xmm5, qword [edi + ebx + 0x78]
movsd qword [eax], xmm5
movsd xmm6, qword [edi + ebx + 0x80]
movsd qword [eax + 8], xmm6
movsd qword [esp + 0x20], xmm0
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x78]
lea esi, [esp + 0x28]
mov dword [esi], ebx
mov edi, dword [esp + 0x7c]
mov dword [esi + 4], edi
mov eax, dword [esp + 0x80]
mov dword [esi + 8], eax
mov ebx, dword [esp + 0x84]
mov dword [esi + 0xc], ebx
mov esi, dword [edx + ecx*8 + 8]
mov edx, dword [edx + ecx*8 + 0xc]
mov eax, dword [esp + 0x94]
mov edi, dword [esi + eax*4]
mov esi, dword [esp + 0x90]
movsd xmm7, qword [edx + eax*8]
movsd qword [esp + 0x3c], xmm7
mov dword [esp + 0x38], edi
call fcn.100ae6e0
mov ebx, dword [0x10219cfc]
mov edi, dword [esp + 0x134]
movsd xmm1, qword [0x10210c48]
movsd xmm2, qword [0x10210c50]
mov edx, dword [edi + esi*4]
mov ecx, dword [edx + 8]
mov dword [esp + 0x90], esi
mov esi, dword [edx + 4]
lea edx, [esi + esi*2]
mov eax, dword [ebx + edx*8]
addsd xmm1, qword [eax + ecx*8]
mov esi, dword [ebp + 0x18]
mov edi, dword [ebx + edx*8 + 4]
addsd xmm2, qword [edi + ecx*8]
mov eax, dword [esi]
add eax, dword [esp + 0x8c]
movsd qword [esp + 0x78], xmm1
movsd qword [esp + 0x80], xmm2
mov dword [esp + 8], 1
xor esi, esi
pxor xmm0, xmm0
movaps xmm5, xmm0
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [esp + 0xc]
mov edi, dword [esp + 0x78]
mov dword [eax], edi
mov edi, dword [esp + 0x7c]
mov dword [eax + 4], edi
mov edi, dword [esp + 0x80]
mov dword [eax + 8], edi
mov edi, dword [esp + 0x84]
mov dword [eax + 0xc], edi
movsd qword [esp + 0x20], xmm0
lea eax, [esp + 0x28]
mov dword [esp + 0x1c], esi
movsd xmm3, qword [0x10210c48]
movsd qword [eax], xmm3
movsd xmm4, qword [0x10210c50]
movsd qword [eax + 8], xmm4
mov ebx, dword [ebx + edx*8 + 0xc]
subsd xmm5, qword [ebx + ecx*8]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x90]
movsd qword [esp + 0x3c], xmm5
call fcn.100ae6e0
mov edx, dword [esp + 0x134]
mov eax, dword [0x10219d04]
mov ecx, dword [esp + 0x1b4]
mov edi, dword [edx + esi*4]
mov edx, dword [edi]
mov ebx, dword [eax + ecx*8 + 8]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
mov ebx, dword [ebx + edx*4]
mov dword [eax + esi*4], ebx
mov eax, dword [edi + 8]
mov ebx, dword [0x10219d04]
mov edi, dword [edi + 4]
mov ecx, dword [ebx + ecx*8 + 0xc]
movsd xmm1, qword [ecx + edx*8]
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx]
mov dword [esp + 0xa0], edi
lea ebx, [edi + edi*2]
mov edi, dword [0x10219cfc]
mov edi, dword [edi + ebx*8 + 0xc]
subsd xmm1, qword [edi + eax*8]
movsd qword [edx + esi*8], xmm1
pxor xmm0, xmm0
mov edx, dword [esp + 0xa0]
mov eax, dword [ecx]
comisd xmm0, xmmword [eax + esi*8]
jbe 0x1017a45f
movsd xmm2, qword [0x101f4ad0]
mov ecx, dword [ebp + 0x20]
movsd xmm1, qword [eax + esi*8]
addsd xmm1, xmm2
movsd qword [eax + esi*8], xmm1
mov eax, dword [ecx]
comisd xmm0, xmmword [eax + esi*8]
ja 0x1017a448
mov eax, dword [ebp + 0x24]
mov ecx, dword [eax]
mov dword [ecx + esi*4], edx
inc esi
cmp esi, dword [esp + 0x138]
jl 0x1017a1c8
mov edi, dword [esp + 0x138]
push dword [esp + 0x1b0]
call fcn.101bceaa
pop ecx
test edi, edi
jle 0x1017a4a4
mov esi, dword [esp + 0x134]
xor ebx, ebx
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, edi
jl 0x1017a496
push dword [esp + 0x134]
call fcn.101bceaa
pop ecx
cmp dword [esp + 0x178], 0
jle 0x1017a4d9
mov esi, dword [esp + 0x1ac]
mov edi, dword [esp + 0x178]
xor ebx, ebx
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, edi
jl 0x1017a4cb
push dword [esp + 0x1ac]
call fcn.101bceaa
pop ecx
mov ebx, dword [0x10219cc8]
test ebx, ebx
jle 0x1017a507
mov edi, dword [esp + 0xe4]
xor esi, esi
push dword [edi + esi*4]
call fcn.101bceaa
pop ecx
inc esi
cmp esi, ebx
jl 0x1017a4f9
push dword [esp + 0xe4]
call fcn.101bceaa
push dword [esp + 0x134]
call fcn.101bceaa
push dword [esp + 0xe8]
call fcn.101bceaa
add esp, 0xc
xor eax, eax
add esp, 0x1f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0xc8]
mov eax, dword [esp + 0x108]
inc eax
cmp eax, dword [esp + 0x178]
mov dword [esp + 0x108], eax
jl 0x10178d97
mov edi, dword [esp + 0x138]
mov ebx, dword [esp + 0xf4]
jmp 0x1017a15f
mov edi, dword [esp + 0x138]
mov ebx, dword [esp + 0xf4]
jmp 0x1017a15f
mov esi, dword [esp + 0xc8]
mov dword [esp + 0xd4], eax
neg eax
mov dword [esp + 0x138], edx
add eax, dword [esp + 0x138]
mov dword [esp + 0xd4], eax
jmp 0x10178f7e
xor eax, eax
mov dword [esp + 0xd4], eax
jmp 0x10178f7e
mov eax, dword [esp + 0x108]
inc eax
cmp eax, dword [esp + 0x178]
mov dword [esp + 0x108], eax
jl 0x10178d97
mov edi, ecx
mov ebx, dword [esp + 0xf4]
jmp 0x1017a15f
mov eax, dword [esp + 0x1bc]
mov esi, dword [esp + 0x1b8]
push eax
call fcn.101bceaa
pop ecx
mov edi, dword [0x10219cc8]
jmp 0x10178d28
mov ecx, dword [0x10219ce8]
mov dword [esp + 0x5c], ecx
lea eax, [eax*4 + 4]
push eax
push dword [ecx + esi*4]
mov dword [esp + 0x6c], edx
call fcn.101bcb76
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x64]
mov dword [ecx + esi*4], eax
mov ecx, dword [0x10219cec]
mov eax, dword [edi + esi*4]
lea ebx, [eax*4 + 4]
mov dword [esp + 0x68], ecx
push ebx
push dword [ecx + esi*4]
mov dword [esp + 0x74], edx
call fcn.101bcb76
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
mov dword [ecx + esi*4], eax
mov ecx, dword [0x10219cf0]
mov eax, dword [edi + esi*4]
lea ebx, [eax*4 + 4]
mov dword [esp + 0x68], ecx
push ebx
push dword [ecx + esi*4]
mov dword [esp + 0x7c], edx
call fcn.101bcb76
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x70]
mov dword [ecx + esi*4], eax
mov eax, dword [edi + esi*4]
lea ebx, [eax*8 + 8]
push ebx
push dword [edx + esi*4]
mov dword [esp + 0x84], edx
call fcn.101bcb76
mov edx, dword [esp + 0x84]
add esp, 0x20
mov dword [edx + esi*4], eax
mov edx, dword [0x10219cdc]
test edx, edx
je 0x1017a6c1
movsd xmm0, qword [edx + esi*8]
jmp 0x1017a6c9
movsd xmm0, qword [0x101f4ae8]
mov ecx, dword [0x10219cd4]
mov edx, dword [edi + esi*4]
mov edi, dword [0x10219cd0]
mov ebx, dword [ecx + esi*4]
mov ecx, dword [edi + esi*4]
movsd qword [esp + 8], xmm0
movsd xmm0, qword [esp + 0x160]
movsd qword [esp + 0x20], xmm0
lea eax, [eax + edx*8]
mov dword [esp], ebx
mov ebx, dword [esp + 0x5c]
mov edi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ecx
mov dword [esp + 0x1c], eax
lea ecx, [edi + edx*4]
mov edi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
lea ecx, [edi + edx*4]
mov edi, dword [ebx + esi*4]
mov dword [esp + 0x14], ecx
lea ecx, [edi + edx*4]
mov dword [esp + 0x18], ecx
call fcn.100b5b50
mov edx, dword [0x10219cf8]
mov ebx, dword [edx + esi*4]
lea eax, [ebx + 1]
mov dword [edx + esi*4], eax
jmp 0x10179ac1
fstp st(0)
jmp 0x10178f0b