Function at 0x1012b6f0
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 eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x40]
movsd xmm1, qword [0x101f2140]
mov ecx, dword [eax]
movsd qword [esp + 0x180], xmm1
movsd qword [esp + 0x178], xmm1
inc dword [0x102196f4]
cmp dword [ebp + 0x44], 0
mov dword [edx], 0
je 0x1012b73c
mov eax, dword [ebp + 0x44]
mov dword [eax], 0
imul eax, ecx, 0xa10
mov edx, dword [0x10219190]
mov dword [esp + 0x19c], eax
mov eax, dword [edx + eax + 0x92c]
xor esi, esi
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x168], esi
mov dword [esp + 0x12c], esi
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1d0], edi
test eax, eax
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1e8], edi
jle 0x1012b8b6
movsd xmm0, qword [0x101f2148]
movsd xmm2, qword [0x101f2158]
movsd qword [esp + 0x120], xmm0
movsd xmm0, qword [0x101f2170]
movsd qword [esp + 0x130], xmm1
mov dword [esp + 0x1c4], esi
mov esi, dword [ebp + 0x20]
mov dword [esp + 0x128], edi
mov dword [esp + 0x164], eax
mov dword [esp + 0x1a0], edx
xor ecx, ecx
mov dword [esp + 0x170], ecx
mov dword [esp + 0x198], ecx
lea ecx, [esi*4]
mov dword [esp + 0x11c], ecx
lea ecx, [esi*8]
mov dword [esp + 0xec], ecx
mov edx, dword [esp + 0x19c]
mov eax, dword [esp + 0x1a0]
mov ecx, dword [eax + edx + 0x928]
mov eax, dword [esp + 0x198]
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x1c0], eax
test eax, eax
jle 0x1012b876
mov ecx, dword [ebp + 8]
mov eax, dword [esi + 0x10]
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
xor edi, edi
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x188], esi
mov ebx, dword [eax + edi*4]
mov esi, dword [edx + ebx*4]
mov esi, dword [esi]
cmp dword [ecx + esi*4], 0
jne 0x1012c537
inc edi
cmp edi, dword [esp + 0x1c0]
jl 0x1012b853
mov ebx, dword [esp + 0x1c8]
mov eax, dword [esp + 0x198]
inc eax
cmp eax, dword [esp + 0x164]
mov dword [esp + 0x198], eax
jl 0x1012b80a
movsd xmm2, qword [0x101f2158]
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x128]
xor eax, eax
test ebx, ebx
jne 0x1012b8c6
test eax, eax
jne 0x1012bc03
mov dword [esp + 0x170], 1
jmp 0x1012bc03
test eax, eax
jne 0x1012bc03
test ebx, ebx
jle 0x1012b95a
mov dword [esp + 0x1c4], esi
mov esi, dword [esp + 0x1d4]
xor eax, eax
mov dword [esp + 0x128], edi
mov edi, eax
lea edx, [esp + 0xe0]
push edx
mov ecx, dword [esp + 0x16c]
push dword [ecx + edi*4]
push dword [esi + edi*4]
call fcn.100ae040
add esp, 0xc
mov edx, dword [esp + 0xe0]
movsd xmm0, qword [esp + 0x130]
mov ecx, dword [esi + edi*4]
shl edx, 4
comisd xmm0, xmmword [ecx + edx]
jbe 0x1012b947
mov edx, dword [esp + 0xe4]
shl edx, 4
movsd xmm0, qword [ecx + edx]
comisd xmm0, xmmword [esp + 0x120]
ja 0x1012bdb6
inc edi
cmp edi, ebx
jl 0x1012b8ef
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x128]
mov edx, dword [ebp + 0x3c]
mov eax, dword [0x1021fc08]
cmp eax, 3
je 0x1012bb31
cmp eax, 4
jne 0x1012ba19
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x178]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0xc]
call fcn.101304ac
push 0x10
call fcn.101bcde0
pop ecx
mov edx, dword [ebp + 0x40]
movsd xmm0, qword [esp + 0x178]
mov dword [edx], eax
movsd qword [eax], xmm0
movsd xmm1, qword [esp + 0x180]
movsd qword [eax + 8], xmm1
mov eax, dword [ebp + 0x48]
mov dword [eax], 1
jmp 0x1012bbef
cmp eax, 5
jne 0x1012baae
mov eax, dword [ebp + 0x38]
mov ecx, dword [esp + 0x168]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x12c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1e8]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 8]
call fcn.1012da2c
mov dword [esp + 0x80], eax
jmp 0x1012bbd8
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x178]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0xc]
call fcn.1012b50c
mov dword [esp + 0x80], eax
push 0x10
call fcn.101bcde0
pop ecx
jmp 0x1012bbaf
mov eax, dword [esp + 0x168]
mov ecx, dword [esp + 0x1ec]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x12c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1d0]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1cc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1e8]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x30], edx
lea edx, [esp + 0x178]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0xc]
call fcn.1012ff9c
mov dword [esp + 0x80], eax
push 0x10
call fcn.101bcde0
pop ecx
mov edx, dword [ebp + 0x40]
movsd xmm0, qword [esp + 0x178]
mov dword [edx], eax
movsd qword [eax], xmm0
movsd xmm1, qword [esp + 0x180]
movsd qword [eax + 8], xmm1
mov eax, dword [ebp + 0x48]
mov dword [eax], 1
cmp dword [esp + 0x80], 0
je 0x1012bbef
mov dword [esp + 0x170], 9
jmp 0x1012bc34
cmp dword [ebp + 0x44], 0
je 0x1012bc34
mov eax, dword [ebp + 0x44]
cmp dword [eax], 0
je 0x1012c510
jmp 0x1012bc34
push 0x10
call fcn.101bcde0
pop ecx
mov edx, dword [ebp + 0x40]
movsd xmm0, qword [esp + 0x178]
mov dword [edx], eax
movsd qword [eax], xmm0
movsd xmm1, qword [esp + 0x180]
movsd qword [eax + 8], xmm1
mov eax, dword [ebp + 0x48]
mov dword [eax], 1
test ebx, ebx
jle 0x1012bd04
mov dword [esp + 0x1c8], ebx
xor eax, eax
mov ebx, eax
mov edx, dword [esp + 0x1e8]
cmp dword [edx + ebx*4], 0
jle 0x1012bc9a
mov dword [esp + 0x1c4], esi
xor eax, eax
mov esi, eax
mov edx, dword [esp + 0x1ec]
mov ecx, dword [edx + ebx*4]
push dword [ecx + esi*4]
call fcn.101bceaa
pop ecx
test edi, edi
je 0x1012bc86
mov edx, dword [edi + ebx*4]
test edx, edx
je 0x1012bc86
push dword [edx + esi*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x1e8]
inc esi
cmp esi, dword [edx + ebx*4]
jl 0x1012bc5f
mov esi, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1ec]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x1d4]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test edi, edi
je 0x1012bcc8
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x1cc]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x1d8]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test esi, esi
je 0x1012bcf6
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [esp + 0x1c8]
jl 0x1012bc47
push dword [esp + 0x1d4]
call fcn.101bceaa
push dword [esp + 0x16c]
call fcn.101bceaa
push esi
call fcn.101bceaa
push dword [esp + 0x138]
call fcn.101bceaa
push dword [esp + 0x1fc]
call fcn.101bceaa
push dword [esp + 0x1e4]
call fcn.101bceaa
push edi
call fcn.101bceaa
push dword [esp + 0x1e8]
call fcn.101bceaa
push dword [esp + 0x208]
call fcn.101bceaa
add esp, 0x24
mov eax, dword [ebp + 0x48]
cmp dword [eax], 0
jle 0x1012bd79
cmp dword [esp + 0x170], 0
je 0x1012bda7
cmp dword [esp + 0x170], 9
je 0x1012bd95
mov eax, 1
add esp, 0x1f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, 9
add esp, 0x1f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
xor eax, eax
add esp, 0x1f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
movsd xmm2, qword [0x101f2158]
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x128]
movsd xmm0, qword [esp + 0x130]
subsd xmm0, xmm2
comisd xmm0, xmmword [esp + 0x120]
jbe 0x1012b95a
movsd xmm0, qword [esp + 0x120]
comisd xmm0, xmmword [0x101f2160]
jbe 0x1012b95a
lea eax, [ebx*4 + 4]
mov dword [esp + 0x80], eax
push eax
push dword [esp + 0x1d8]
call fcn.101bcb76
mov dword [esp + 0x98], eax
push dword [esp + 0x88]
push dword [esp + 0x174]
call fcn.101bcb76
add esp, 0x10
mov dword [esp + 0x88], eax
test esi, esi
je 0x1012be54
push dword [esp + 0x80]
push esi
call fcn.101bcb76
add esp, 8
mov esi, eax
lea eax, [ebx*8 + 8]
push eax
push dword [esp + 0x130]
call fcn.101bcb76
mov dword [esp + 0x94], eax
push dword [esp + 0x88]
push dword [esp + 0x1f8]
call fcn.101bcb76
mov dword [esp + 0x12c], eax
push dword [esp + 0x90]
push dword [esp + 0x1e4]
call fcn.101bcb76
add esp, 0x18
mov dword [esp + 0x94], eax
test edi, edi
je 0x1012bebc
push dword [esp + 0x80]
push edi
call fcn.101bcb76
add esp, 8
mov edi, eax
push dword [esp + 0x80]
push dword [esp + 0x1d0]
call fcn.101bcb76
mov dword [esp + 0xa0], eax
push dword [esp + 0x88]
push dword [esp + 0x1f4]
call fcn.101bcb76
add esp, 0x10
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x88]
xor edx, edx
mov dword [eax + ebx*4], edx
test esi, esi
mov dword [ecx + ebx*4], edx
je 0x1012bf14
mov dword [esi + ebx*4], 0
mov eax, dword [esp + 0x8c]
push 8
pxor xmm0, xmm0
movsd qword [eax + ebx*8], xmm0
call fcn.101bcde0
mov edx, dword [esp + 0x120]
mov dword [edx + ebx*4], eax
push 8
call fcn.101bcde0
add esp, 8
mov edx, dword [esp + 0x94]
mov dword [edx + ebx*4], eax
test edi, edi
je 0x1012bf58
push 8
call fcn.101bcde0
pop ecx
mov dword [edi + ebx*4], eax
push 0x10
call fcn.101bcde0
mov edx, dword [esp + 0x9c]
mov dword [edx + ebx*4], eax
mov eax, dword [esp + 0x12c]
push 0x40
mov dword [eax + ebx*4], 0
call fcn.101bcde0
mov edx, dword [esp + 0x124]
movsd xmm0, qword [esp + 0x128]
mov ecx, dword [edx + ebx*4]
mov dword [ecx], eax
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
movsd qword [ecx + 0x30], xmm0
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
mov eax, dword [ebp + 0x10]
movsd qword [ecx], xmm0
mov ecx, dword [eax]
movsd xmm1, qword [ecx]
subsd xmm1, qword [0x1021f8e0]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x20], xmm1
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x10], xmm1
movsd xmm3, qword [0x1021f8d8]
mov ecx, dword [eax]
movsd xmm2, qword [ecx + 8]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
subsd xmm2, xmm3
subsd xmm2, xmm3
movsd qword [ecx + 0x18], xmm2
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 8], xmm2
mov eax, dword [eax]
movsd xmm4, qword [eax + 8]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
addsd xmm4, xmm3
addsd xmm4, xmm3
movsd qword [ecx + 0x38], xmm4
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x9c]
movsd qword [ecx + 0x28], xmm4
mov ecx, dword [eax + ebx*4]
mov dword [ecx], 4
mov edx, dword [edx + ebx*4]
mov eax, dword [edx]
movsd xmm6, qword [eax]
subsd xmm6, qword [eax + 0x10]
mov edx, dword [esp + 0xa0]
push 0x40
movsd xmm5, qword [eax + 0x28]
subsd xmm5, qword [eax + 0x18]
mulsd xmm6, xmm5
mov ecx, dword [edx + ebx*4]
movsd qword [ecx], xmm6
call fcn.101bcde0
add esp, 0xc
mov edx, dword [esp + 0x11c]
movsd xmm1, qword [esp + 0x130]
mov ecx, dword [edx + ebx*4]
mov dword [ecx + 4], eax
test edi, edi
mov eax, dword [ebp + 0x10]
movsd xmm0, qword [0x1021f8e0]
mov ecx, dword [eax]
addsd xmm0, qword [ecx]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
movsd qword [ecx + 0x30], xmm0
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
movsd qword [ecx], xmm0
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
movsd qword [ecx + 0x20], xmm1
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
movsd qword [ecx + 0x10], xmm1
mov ecx, dword [eax]
movsd xmm2, qword [ecx + 8]
movsd xmm3, qword [0x1021f8d8]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
subsd xmm2, xmm3
subsd xmm2, xmm3
movsd qword [ecx + 0x18], xmm2
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx + 4]
movsd qword [ecx + 8], xmm2
mov eax, dword [eax]
movsd xmm4, qword [eax + 8]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax + 4]
addsd xmm4, xmm3
addsd xmm4, xmm3
movsd qword [ecx + 0x38], xmm4
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x94]
movsd qword [ecx + 0x28], xmm4
mov ecx, dword [eax + ebx*4]
mov dword [ecx + 4], 4
mov edx, dword [edx + ebx*4]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x98]
movsd xmm6, qword [eax]
subsd xmm6, qword [eax + 0x10]
movsd xmm5, qword [eax + 0x28]
subsd xmm5, qword [eax + 0x18]
mulsd xmm6, xmm5
mov ecx, dword [edx + ebx*4]
movsd qword [ecx + 8], xmm6
je 0x1012c1c4
push 0x20
call fcn.101bcde0
movsd xmm0, qword [0x101f2168]
push 0x20
mov edx, dword [edi + ebx*4]
mov dword [edx], eax
mov eax, dword [edi + ebx*4]
mov ecx, dword [eax]
movsd qword [ecx], xmm0
mov eax, dword [edi + ebx*4]
mov edx, dword [eax]
movsd qword [edx + 8], xmm0
mov ecx, dword [edi + ebx*4]
mov eax, dword [ecx]
movsd qword [eax + 0x10], xmm0
mov edx, dword [edi + ebx*4]
mov ecx, dword [edx]
movsd qword [ecx + 0x18], xmm0
call fcn.101bcde0
add esp, 8
movsd xmm0, qword [0x101f2168]
mov edx, dword [edi + ebx*4]
mov dword [edx + 4], eax
mov eax, dword [edi + ebx*4]
mov ecx, dword [eax + 4]
movsd qword [ecx], xmm0
mov eax, dword [edi + ebx*4]
mov edx, dword [eax + 4]
movsd qword [edx + 8], xmm0
mov ecx, dword [edi + ebx*4]
mov eax, dword [ecx + 4]
movsd qword [eax + 0x10], xmm0
mov edx, dword [edi + ebx*4]
mov ecx, dword [edx + 4]
movsd qword [ecx + 0x18], xmm0
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x90]
mov dword [ecx + ebx*4], 2
movsd xmm0, qword [0x1021f8e0]
movsd qword [esp + 0x78], xmm0
mov dword [esp], eax
lea edx, [ebx + 1]
mov dword [esp + 0x70], 1
mov dword [esp + 0x9c], edx
dec ebx
mov dword [esp + 0x84], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], esi
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x11c]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
lea ecx, [esp + 0xf4]
mov dword [esp + 0x34], ecx
lea edx, [esp + 0xf8]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0xfc]
mov dword [esp + 0x40], ecx
lea edx, [esp + 0x100]
mov dword [esp + 0x44], edx
lea edx, [esp + 0x104]
mov dword [esp + 0x48], edx
lea edx, [esp + 0x108]
mov dword [esp + 0x4c], edx
lea edx, [esp + 0x10c]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
lea edx, [esp + 0x110]
mov dword [esp + 0x58], edx
lea edx, [esp + 0x114]
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x118]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x6c], eax
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 0x28]
mov dword [esp + 0x74], edx
call fcn.100a1c90
mov ebx, eax
test ebx, ebx
jne 0x1012c301
cmp dword [esp + 0x104], 0
jne 0x1012c30c
mov dword [esp + 0x170], 9
cmp dword [esp + 0x9c], 0
jle 0x1012c3e9
mov dword [esp + 0x80], ebx
xor eax, eax
mov ebx, eax
mov edx, dword [esp + 0x128]
cmp dword [edx + ebx*4], 0
jle 0x1012c378
mov dword [esp + 0x1c4], esi
xor eax, eax
mov esi, eax
mov edx, dword [esp + 0x11c]
mov ecx, dword [edx + ebx*4]
push dword [ecx + esi*4]
call fcn.101bceaa
pop ecx
test edi, edi
je 0x1012c364
mov edx, dword [edi + ebx*4]
test edx, edx
je 0x1012c364
push dword [edx + esi*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x128]
inc esi
cmp esi, dword [edx + ebx*4]
jl 0x1012c33d
mov esi, dword [esp + 0x1c4]
mov edx, dword [esp + 0x11c]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x98]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test edi, edi
je 0x1012c3a6
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x98]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x94]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test esi, esi
je 0x1012c3d4
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [esp + 0x9c]
jl 0x1012c325
mov ebx, dword [esp + 0x80]
push dword [esp + 0x90]
call fcn.101bceaa
push dword [esp + 0x8c]
call fcn.101bceaa
push esi
call fcn.101bceaa
push dword [esp + 0x98]
call fcn.101bceaa
push dword [esp + 0x12c]
call fcn.101bceaa
push dword [esp + 0xa8]
call fcn.101bceaa
push edi
call fcn.101bceaa
push dword [esp + 0xb4]
call fcn.101bceaa
push dword [esp + 0x148]
call fcn.101bceaa
add esp, 0x24
test ebx, ebx
jne 0x1012c4d4
mov ebx, dword [esp + 0x104]
test ebx, ebx
jle 0x1012c4d4
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x100]
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
mov edi, dword [esp + 0x10c]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x108]
mov dword [esp + 0x168], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x12c], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x1d0], eax
mov dword [esp + 0x1cc], edx
mov dword [esp + 0x1e8], ecx
jmp 0x1012b95a
xor esi, esi
mov dword [esp + 0x1d4], esi
xor ebx, ebx
mov dword [esp + 0x168], esi
mov dword [esp + 0x12c], esi
xor edi, edi
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x1cc], edi
mov dword [esp + 0x1e8], ebx
jmp 0x1012b95a
push 0x18
call fcn.101bcde0
pop ecx
mov edx, dword [ebp + 0x44]
movsd xmm0, qword [0x101f2150]
mov dword [edx], eax
mov dword [eax], 0xfffffffd
mov eax, dword [edx]
movsd qword [eax + 8], xmm0
jmp 0x1012bc34
mov dword [esp + 0x158], esi
mov esi, dword [esp + 0x188]
mov eax, dword [esi + 0x30]
test al, 2
mov dword [esp + 0x15c], ebx
mov ebx, dword [esp + 0x1c8]
je 0x1012c569
movsd xmm0, qword [esi + 0x20]
comisd xmm0, xmmword [0x101f2158]
jae 0x1012c584
test al, 1
je 0x1012d083
movsd xmm0, qword [esi + 0x28]
comisd xmm0, xmmword [0x101f2158]
jb 0x1012d083
cmp dword [esp + 0x1d4], 0
je 0x1012d52f
lea eax, [ebx*4 + 4]
mov dword [esp + 0x9c], eax
push eax
push dword [esp + 0x1d8]
call fcn.101bcb76
mov dword [esp + 0x198], eax
push dword [esp + 0xa4]
push dword [esp + 0x174]
call fcn.101bcb76
add esp, 0x10
mov dword [esp + 0x8c], eax
cmp dword [esp + 0x1c4], 0
je 0x1012c5f8
push dword [esp + 0x9c]
push dword [esp + 0x1c8]
call fcn.101bcb76
add esp, 8
mov dword [esp + 0x1c4], eax
lea eax, [ebx*8 + 8]
push eax
push dword [esp + 0x130]
call fcn.101bcb76
mov dword [esp + 0x90], eax
push dword [esp + 0xa4]
push dword [esp + 0x1f8]
call fcn.101bcb76
mov dword [esp + 0x1f4], eax
push dword [esp + 0xac]
push dword [esp + 0x1e4]
call fcn.101bcb76
add esp, 0x18
mov dword [esp + 0x18c], eax
cmp dword [esp + 0x128], 0
je 0x1012c671
push dword [esp + 0x9c]
push dword [esp + 0x12c]
call fcn.101bcb76
add esp, 8
mov dword [esp + 0x128], eax
push dword [esp + 0x9c]
push dword [esp + 0x1d0]
call fcn.101bcb76
mov dword [esp + 0x1c4], eax
push dword [esp + 0xa4]
push dword [esp + 0x1f4]
call fcn.101bcb76
add esp, 0x10
mov dword [esp + 0x1e0], eax
xor edx, edx
cmp dword [esp + 0x1c4], 0
mov eax, dword [esp + 0x190]
mov ecx, dword [esp + 0x8c]
mov dword [eax + ebx*4], edx
mov dword [ecx + ebx*4], edx
je 0x1012c6d6
mov eax, dword [esp + 0x1c4]
mov dword [eax + ebx*4], 0
mov eax, dword [esp + 0x88]
push 0x1c
pxor xmm0, xmm0
movsd qword [eax + ebx*8], xmm0
call fcn.101bcde0
mov edx, dword [esp + 0x1e8]
mov dword [edx + ebx*4], eax
push 0x1c
call fcn.101bcde0
add esp, 8
cmp dword [esp + 0x128], 0
mov edx, dword [esp + 0x18c]
mov dword [edx + ebx*4], eax
je 0x1012c727
push 0x1c
call fcn.101bcde0
pop ecx
mov edx, dword [esp + 0x128]
mov dword [edx + ebx*4], eax
push 0x38
call fcn.101bcde0
mov edx, dword [esp + 0x1c0]
mov dword [edx + ebx*4], eax
mov eax, dword [esp + 0x1e4]
push 0x40
mov dword [eax + ebx*4], 0
call fcn.101bcde0
add esp, 8
mov edx, dword [esp + 0x1e4]
mov ecx, dword [edx + ebx*4]
mov dword [esp + 0x1c8], ebx
mov dword [ecx], eax
mov eax, dword [ebp + 0x10]
movsd xmm0, qword [0x1021f8e0]
mov ecx, dword [eax]
addsd xmm0, qword [ecx]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x30], xmm0
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx], xmm0
mov ecx, dword [eax]
movsd xmm1, qword [ecx]
subsd xmm1, qword [0x1021f8e0]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x20], xmm1
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x10], xmm1
movsd xmm1, qword [0x101f2170]
mov ecx, dword [eax]
movsd xmm2, qword [ecx + 8]
subsd xmm2, qword [0x1021f8d8]
subsd xmm2, qword [0x1021f8d8]
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 0x18], xmm2
mov ecx, dword [edx + ebx*4]
mov ecx, dword [ecx]
movsd qword [ecx + 8], xmm2
movsd xmm2, qword [0x101f2158]
mov eax, dword [eax]
movsd xmm3, qword [eax + 8]
addsd xmm3, qword [0x1021f8d8]
addsd xmm3, qword [0x1021f8d8]
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
movsd qword [ecx + 0x38], xmm3
mov eax, dword [edx + ebx*4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x18c]
movsd qword [ecx + 0x28], xmm3
mov ecx, dword [eax + ebx*4]
mov dword [ecx], 4
mov edx, dword [edx + ebx*4]
mov eax, dword [edx]
movsd xmm5, qword [eax]
subsd xmm5, qword [eax + 0x10]
mov edx, dword [esp + 0x1bc]
movsd xmm4, qword [eax + 0x28]
subsd xmm4, qword [eax + 0x18]
mov eax, dword [esp + 0x158]
mov ecx, dword [edx + ebx*4]
mulsd xmm5, xmm4
movsd xmm4, qword [0x101f2140]
movsd qword [ecx], xmm5
imul ecx, dword [esp + 0x15c], 0xa10
mov edx, 1
shl eax, 4
mov dword [esp + 0xe0], 0
mov dword [esp + 0x98], ecx
mov ecx, edi
shl ecx, 4
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x174], edx
mov dword [esp + 0xe4], edi
movsd xmm0, qword [0x101f2140]
movsd qword [esp + 0xa0], xmm4
test eax, eax
jne 0x1012c9e3
mov ecx, dword [esi + 0x30]
test cl, 2
je 0x1012c9f5
movsd xmm6, qword [esi + 0x20]
comisd xmm6, xmm2
jb 0x1012c9f5
movaps xmm0, xmm6
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + 0x44]
mov ebx, dword [esp + 0x90]
mov edx, dword [esi + 0x18]
movsd xmm3, qword [edi + ebx]
mov edi, dword [esp + 0x94]
movsd xmm7, qword [edx + edi]
addsd xmm0, xmm3
addsd xmm0, xmm7
cmp ecx, 2
jne 0x1012c93e
movsd xmm5, qword [esp + 0x130]
minsd xmm5, xmm0
movsd qword [esp + 0x130], xmm5
subsd xmm3, xmm6
addsd xmm3, xmm7
movsd xmm6, qword [esp + 0x120]
maxsd xmm6, xmm3
movsd qword [esp + 0x120], xmm6
mov edx, dword [ebp + 8]
mov ecx, ebx
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xd0], xmm0
mov ebx, dword [edx + 0x44]
movsd xmm3, qword [ecx + ebx]
subsd xmm3, qword [esi + 0x20]
mov ebx, dword [ebp + 0x10]
mov edx, dword [esi + 0x18]
addsd xmm3, qword [edi + edx]
movsd qword [esp + 0xb0], xmm3
movsd qword [esp + 0xc0], xmm3
mov ecx, dword [ebx]
movsd xmm5, qword [ecx + 8]
subsd xmm5, qword [0x101f2178]
subsd xmm5, qword [0x1021f8d8]
subsd xmm5, qword [0x1021f8d8]
movsd qword [esp + 0xa8], xmm5
movsd qword [esp + 0xb8], xmm5
mov edi, dword [ebx]
movsd xmm6, qword [edi + 8]
addsd xmm6, qword [0x101f2178]
addsd xmm6, qword [0x1021f8d8]
addsd xmm6, qword [0x1021f8d8]
movsd qword [esp + 0xc8], xmm6
movsd qword [esp + 0xd8], xmm6
jmp 0x1012c9f5
cmp eax, 1
je 0x1012d45c
cmp eax, 2
je 0x1012d324
comisd xmm0, xmm1
ja 0x1012cc19
mov edx, dword [esp + 0x174]
test edx, edx
jle 0x1012cc19
mov edi, dword [esp + 0x18c]
mov dword [esp + 0x1a8], edx
xor ebx, ebx
mov dword [esp + 0xe0], eax
mov dword [esp + 0x188], esi
mov esi, dword [esp + 0x1c8]
mov edx, dword [esp + 0x1e4]
movsd xmm1, qword [0x101f2150]
movsd qword [esp + 0x1c], xmm1
mov dword [esp + 0x1a4], 5
mov ecx, dword [edx + esi*4]
mov eax, dword [ecx + ebx*4]
mov edx, dword [esp + 0x1bc]
mov ecx, dword [edx + esi*4]
movsd xmm0, qword [ecx + ebx*8]
mov edx, dword [edi + esi*4]
mov ecx, dword [edx + ebx*4]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x24], 4
mov dword [esp], eax
mov dword [esp + 0x10], ecx
xor eax, eax
mov dword [esp + 4], eax
lea edx, [esp + 0xa0]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
lea ecx, [esp + 0x1a4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], eax
lea edx, [esp + 0x1ac]
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
lea ecx, [esp + 0x1b0]
mov dword [esp + 0x40], ecx
lea edx, [esp + 0x1b4]
mov dword [esp + 0x44], edx
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
call fcn.100d2c30
test eax, eax
jne 0x1012cbe5
mov eax, dword [esp + 0x1e4]
mov edx, dword [eax + esi*4]
push dword [edx + ebx*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x1ac]
mov eax, dword [esp + 0x1e4]
mov eax, dword [eax + esi*4]
mov ecx, dword [edx]
mov dword [eax + ebx*4], ecx
mov edx, dword [esp + 0x1b4]
mov eax, dword [edi + esi*4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x1bc]
mov dword [eax + ebx*4], ecx
mov ecx, dword [esp + 0x1b0]
mov eax, dword [edx + esi*4]
movsd xmm0, qword [ecx]
movsd qword [eax + ebx*8], xmm0
cmp dword [esp + 0x1b8], 1
jle 0x1012cbbe
mov eax, dword [esp + 0x174]
mov dword [esp + 0xe8], ebx
mov edx, 1
mov ebx, dword [esp + 0x1ac]
mov ecx, dword [esp + 0x1e4]
mov ecx, dword [ecx + esi*4]
mov ebx, dword [ebx + edx*4]
mov dword [ecx + eax*4], ebx
mov ecx, dword [esp + 0x1b4]
mov ebx, dword [edi + esi*4]
mov ecx, dword [ecx + edx*4]
mov dword [ebx + eax*4], ecx
mov ecx, dword [esp + 0x1b0]
mov ebx, dword [esp + 0x1bc]
mov ebx, dword [ebx + esi*4]
movsd xmm0, qword [ecx + edx*8]
movsd qword [ebx + eax*8], xmm0
inc eax
inc edx
cmp edx, dword [esp + 0x1b8]
jl 0x1012cb63
mov ebx, dword [esp + 0xe8]
mov dword [esp + 0x174], eax
push dword [esp + 0x1ac]
call fcn.101bceaa
push dword [esp + 0x1b4]
call fcn.101bceaa
push dword [esp + 0x1bc]
call fcn.101bceaa
add esp, 0xc
inc ebx
cmp ebx, dword [esp + 0x1a8]
jl 0x1012ca33
movsd xmm1, qword [0x101f2170]
movsd xmm2, qword [0x101f2158]
movsd xmm4, qword [0x101f2140]
mov eax, dword [esp + 0xe0]
mov esi, dword [esp + 0x188]
inc eax
cmp eax, 2
jle 0x1012c8a5
cmp dword [esp + 0x128], 0
mov edx, dword [esp + 0x174]
mov ebx, dword [esp + 0x1c8]
mov edi, dword [esp + 0xe4]
je 0x1012ccd5
test edx, edx
jle 0x1012ccd5
mov dword [esp + 0x174], edx
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0x128]
mov dword [esp + 0x188], esi
xor eax, eax
mov esi, eax
push 0x20
call fcn.101bcde0
pop ecx
movsd xmm0, qword [0x101f2168]
mov edx, dword [edi + ebx*4]
mov dword [edx + esi*4], eax
mov ecx, dword [edi + ebx*4]
mov edx, dword [ecx + esi*4]
movsd qword [edx], xmm0
mov edx, dword [edi + ebx*4]
mov edx, dword [edx + esi*4]
movsd qword [edx + 8], xmm0
mov edx, dword [edi + ebx*4]
mov edx, dword [edx + esi*4]
movsd qword [edx + 0x10], xmm0
mov edx, dword [edi + ebx*4]
mov edx, dword [edx + esi*4]
movsd qword [edx + 0x18], xmm0
inc esi
cmp esi, dword [esp + 0x174]
jb 0x1012cc6e
mov edx, dword [esp + 0x174]
mov esi, dword [esp + 0x188]
mov dword [esp + 0x128], edi
mov edi, dword [esp + 0xe4]
mov eax, dword [esp + 0x1e0]
mov ecx, dword [esp + 0x190]
mov dword [esp + 0x70], 1
mov dword [eax + ebx*4], edx
movsd xmm0, qword [0x1021f8e0]
movsd qword [esp + 0x78], xmm0
lea edx, [ebx + 1]
mov dword [esp + 0x194], edx
mov dword [esp], ecx
mov ecx, dword [esp + 0x88]
dec ebx
mov dword [esp + 0xf0], ebx
mov ebx, dword [esp + 0x1c4]
mov dword [esp + 4], ebx
xor ebx, ebx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x1bc]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x1e4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x128]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
lea eax, [esp + 0xf4]
mov dword [esp + 0x34], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ebx
lea edx, [esp + 0xfc]
mov dword [esp + 0x40], edx
lea ecx, [esp + 0x100]
mov dword [esp + 0x44], ecx
lea eax, [esp + 0x104]
mov dword [esp + 0x48], eax
lea edx, [esp + 0x108]
mov dword [esp + 0x4c], edx
lea ecx, [esp + 0x10c]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ebx
lea eax, [esp + 0x110]
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x114]
mov dword [esp + 0x5c], edx
mov edx, dword [eax + 0x28]
lea ecx, [esp + 0x118]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ebx
mov dword [esp + 0x68], ebx
lea ebx, [esp + 0xf0]
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x74], edx
call fcn.100a1c90
mov ebx, eax
test ebx, ebx
jne 0x1012ce1c
cmp dword [esp + 0x104], 0
jne 0x1012ce27
mov dword [esp + 0x170], 9
cmp dword [esp + 0x194], 0
jle 0x1012cf3c
mov dword [esp + 0x84], ebx
mov dword [esp + 0xe4], edi
mov edi, dword [esp + 0x1c4]
mov dword [esp + 0x188], esi
mov esi, dword [esp + 0x128]
xor eax, eax
mov ebx, eax
mov edx, dword [esp + 0x1e0]
cmp dword [edx + ebx*4], 0
jle 0x1012ceaf
mov dword [esp + 0x1c4], edi
xor eax, eax
mov edi, eax
mov edx, dword [esp + 0x1e4]
mov ecx, dword [edx + ebx*4]
push dword [ecx + edi*4]
call fcn.101bceaa
pop ecx
test esi, esi
je 0x1012ce9b
mov edx, dword [esi + ebx*4]
test edx, edx
je 0x1012ce9b
push dword [edx + edi*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x1e0]
inc edi
cmp edi, dword [edx + ebx*4]
jl 0x1012ce74
mov edi, dword [esp + 0x1c4]
mov edx, dword [esp + 0x1e4]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x190]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test esi, esi
je 0x1012cedd
push dword [esi + ebx*4]
call fcn.101bceaa
pop ecx
mov edx, dword [esp + 0x1bc]
push dword [edx + ebx*4]
call fcn.101bceaa
mov edx, dword [esp + 0x194]
push dword [edx + ebx*4]
call fcn.101bceaa
add esp, 8
test edi, edi
je 0x1012cf0b
push dword [edi + ebx*4]
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [esp + 0x194]
jl 0x1012ce5c
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x1c4], edi
mov edi, dword [esp + 0xe4]
mov dword [esp + 0x128], esi
mov esi, dword [esp + 0x188]
push dword [esp + 0x190]
call fcn.101bceaa
push dword [esp + 0x90]
call fcn.101bceaa
push dword [esp + 0x1cc]
call fcn.101bceaa
push dword [esp + 0x94]
call fcn.101bceaa
push dword [esp + 0x1f4]
call fcn.101bceaa
push dword [esp + 0x1a0]
call fcn.101bceaa
push dword [esp + 0x140]
call fcn.101bceaa
push dword [esp + 0x1d8]
call fcn.101bceaa
push dword [esp + 0x200]
call fcn.101bceaa
add esp, 0x24
test ebx, ebx
jne 0x1012d042
mov ebx, dword [esp + 0x104]
test ebx, ebx
jle 0x1012d042
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0x100]
mov ecx, dword [esp + 0xf8]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x168], edx
mov edx, dword [esp + 0x108]
mov dword [esp + 0x1c4], ecx
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x12c], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x1ec], edx
mov edx, dword [esp + 0x110]
mov dword [esp + 0x1d0], ecx
mov ecx, dword [esp + 0x118]
mov dword [esp + 0x128], eax
mov dword [esp + 0x1cc], edx
mov dword [esp + 0x1e8], ecx
jmp 0x1012d083
xor ebx, ebx
mov dword [esp + 0x1d4], ebx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x1c4], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x1ec], ebx
mov dword [esp + 0x1d0], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x1cc], ebx
mov dword [esp + 0x1e8], ebx
movsd xmm0, qword [0x101f2140]
mov edx, dword [esp + 0x158]
movsd xmm1, qword [0x101f2158]
movsd xmm2, qword [0x101f2140]
movsd qword [esp + 0x138], xmm0
movsd xmm0, qword [0x101f2170]
xor eax, eax
shl edx, 4
mov dword [esp + 0x158], edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 0x1c8], ebx
mov ecx, edi
mov dword [esp + 0xe4], edi
shl ecx, 4
jmp 0x1012d0fd
mov eax, dword [esp + 0x158]
mov edx, dword [ebp + 8]
mov dword [esp + 0x16c], ecx
mov ecx, dword [esp + 0x160]
test byte [esi + 0x30], 2
je 0x1012d169
comisd xmm1, xmmword [esi + 0x20]
jbe 0x1012d169
movsd xmm4, qword [esp + 0x178]
comisd xmm4, xmm0
ja 0x1012d127
movsd xmm3, qword [0x101f2160]
comisd xmm3, xmm4
jbe 0x1012d169
movsd xmm4, qword [0x1021f8d8]
movsd qword [esp + 0x150], xmm4
pxor xmm3, xmm3
movsd qword [esp + 0x140], xmm3
mov ebx, dword [esi + 0x18]
mov edi, dword [edx + 0x44]
movsd xmm3, qword [ecx + ebx]
addsd xmm3, qword [eax + edi]
movsd qword [esp + 0x148], xmm3
movsd qword [esp + 0x138], xmm3
jmp 0x1012d171
movsd xmm3, qword [0x101f2140]
imul ebx, dword [esp + 0x15c], 0xa10
mov dword [esp + 0x160], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x158], eax
comisd xmm3, xmm0
ja 0x1012d25c
cmp dword [ebp + 0x20], 0
jle 0x1012d25c
mov edi, dword [ebp + 0x14]
mov dword [esp + 0x16c], ecx
xor ebx, ebx
mov dword [esp + 0x188], esi
mov esi, dword [ebp + 0x10]
xor eax, eax
push eax
push eax
lea edx, [esp + 0x1e4]
push edx
lea ecx, [esp + 0x1e4]
push ecx
push 1
lea eax, [esp + 0x14c]
push eax
push dword [edi + ebx*4]
push dword [esi + ebx*4]
call fcn.100aa050
add esp, 0x20
cmp dword [esp + 0x1dc], 0
jle 0x1012d230
movsd xmm0, qword [esp + 0x178]
mov eax, dword [esp + 0x1d8]
movsd xmm1, qword [eax]
comisd xmm0, xmm1
jbe 0x1012d229
movsd qword [esp + 0x178], xmm1
movsd xmm0, qword [eax + 8]
movsd qword [esp + 0x180], xmm0
push eax
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [ebp + 0x20]
jl 0x1012d1c2
movsd xmm0, qword [0x101f2170]
movsd xmm1, qword [0x101f2158]
movsd xmm2, qword [0x101f2140]
mov ecx, dword [esp + 0x16c]
mov esi, dword [esp + 0x188]
inc ecx
cmp ecx, 2
jg 0x1012d292
movsd qword [esp + 0x138], xmm2
test ecx, ecx
je 0x1012d0e5
cmp ecx, 1
je 0x1012d961
cmp ecx, 2
je 0x1012d87c
movsd xmm3, qword [0x101f2140]
jmp 0x1012d198
mov ebx, dword [esp + 0x1c8]
mov eax, dword [esi + 0x30]
test al, 2
je 0x1012d2af
movsd xmm0, qword [0x101f2158]
comisd xmm0, xmmword [esi + 0x20]
ja 0x1012d2c2
test al, 1
je 0x1012d2f0
movsd xmm0, qword [0x101f2158]
comisd xmm0, xmmword [esi + 0x28]
jbe 0x1012d2f0
movsd xmm2, qword [0x101f2158]
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x128]
cmp dword [esp + 0x170], 0
jne 0x1012bc03
mov eax, 1
jmp 0x1012b8aa
cmp dword [esp + 0x170], 0
jne 0x1012da07
mov eax, dword [0x10219190]
mov edx, dword [esp + 0x19c]
mov ecx, dword [eax + edx + 0x92c]
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x164], ecx
jmp 0x1012b876
movsd xmm0, qword [esi + 0x28]
comisd xmm0, xmm2
jb 0x1012d44f
cmp dword [esi + 0x34], 0
jle 0x1012d44f
mov ecx, dword [0x10219190]
mov ebx, dword [ebp + 8]
movsd xmm6, qword [0x1021f8d8]
mov edx, dword [ebx + 0x44]
mov edi, dword [esi + 0x14]
movaps xmm3, xmm6
subsd xmm3, qword [esi + 8]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe4]
mov edi, dword [edi + eax*4]
subsd xmm3, xmm0
mov eax, dword [esp + 0x98]
mov ebx, dword [eax + ecx + 0x928]
mov edi, dword [ebx + edi*4]
mov ebx, dword [esp + 0x90]
movsd xmm5, qword [ebx + edx + 8]
addsd xmm5, qword [edi + 8]
subsd xmm5, qword [eax + ecx + 0x80]
mov edx, dword [esp + 0x19c]
mov eax, dword [ebp + 0x10]
subsd xmm3, xmm5
addsd xmm3, qword [ecx + edx + 0x80]
movsd qword [esp + 0xa8], xmm3
movsd qword [esp + 0xb8], xmm3
movsd xmm0, qword [esi + 0x28]
subsd xmm0, qword [esi + 8]
subsd xmm0, xmm5
addsd xmm0, qword [ecx + edx + 0x80]
addsd xmm0, xmm6
movsd qword [esp + 0xc8], xmm0
movsd qword [esp + 0xd8], xmm0
mov ecx, dword [eax]
movsd xmm0, qword [ecx]
addsd xmm0, qword [0x101f2178]
addsd xmm0, qword [0x1021f8e0]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xd0], xmm0
mov edx, dword [eax]
movsd xmm7, qword [edx]
subsd xmm7, qword [0x101f2178]
mov eax, dword [esp + 0xe0]
subsd xmm7, qword [0x1021f8e0]
movsd qword [esp + 0xb0], xmm7
movsd qword [esp + 0xc0], xmm7
jmp 0x1012c9f5
movsd xmm0, qword [0x101f2140]
jmp 0x1012c9f5
movsd xmm3, qword [esi + 0x28]
comisd xmm3, xmm2
jb 0x1012c9f5
cmp dword [esi + 0x34], 1
jg 0x1012c9f5
mov ecx, dword [ebp + 8]
mov edi, dword [esp + 0x94]
mov edx, dword [esi + 0x18]
mov ebx, dword [ecx + 0x44]
movsd xmm0, qword [edi + edx + 8]
mov edx, dword [esp + 0x90]
addsd xmm0, qword [edx + ebx + 8]
subsd xmm0, xmm3
movsd qword [esp + 0xa8], xmm0
movsd qword [esp + 0xb8], xmm0
mov ebx, dword [esi + 0x18]
movsd xmm3, qword [esi + 0x28]
addsd xmm3, qword [edi + ebx + 8]
mov ecx, dword [ecx + 0x44]
addsd xmm3, qword [edx + ecx + 8]
mov edx, dword [ebp + 0x10]
movsd qword [esp + 0xc8], xmm3
movsd qword [esp + 0xd8], xmm3
mov edi, dword [edx]
movsd xmm0, qword [edi]
addsd xmm0, qword [0x101f2178]
addsd xmm0, qword [0x1021f8e0]
movsd qword [esp + 0xa0], xmm0
movsd qword [esp + 0xd0], xmm0
mov ecx, dword [edx]
movsd xmm5, qword [ecx]
subsd xmm5, qword [0x101f2178]
subsd xmm5, qword [0x1021f8e0]
movsd qword [esp + 0xb0], xmm5
movsd qword [esp + 0xc0], xmm5
jmp 0x1012c9f5
push dword [esp + 0x11c]
call fcn.101bcde0
mov dword [esp + 0x1d8], eax
push dword [esp + 0x120]
call fcn.101bcde0
add esp, 8
mov dword [esp + 0x168], eax
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x1012d575
push dword [esp + 0x11c]
call fcn.101bcde0
pop ecx
mov dword [esp + 0x1c4], eax
jmp 0x1012d57e
xor eax, eax
mov dword [esp + 0x1c4], eax
push dword [esp + 0xec]
call fcn.101bcde0
mov dword [esp + 0x130], eax
push dword [esp + 0x120]
call fcn.101bcde0
mov dword [esp + 0x1f4], eax
push dword [esp + 0x124]
call fcn.101bcde0
add esp, 0xc
mov dword [esp + 0x1d0], eax
cmp dword [ebp + 0x2c], 0
je 0x1012d5d6
push dword [esp + 0x11c]
call fcn.101bcde0
pop ecx
mov dword [esp + 0x128], eax
jmp 0x1012d5df
xor eax, eax
mov dword [esp + 0x128], eax
push dword [esp + 0x11c]
call fcn.101bcde0
mov dword [esp + 0x1d0], eax
push dword [esp + 0x120]
call fcn.101bcde0
add esp, 8
mov dword [esp + 0x1e8], eax
mov ebx, dword [ebp + 0x20]
test ebx, ebx
jle 0x1012c592
mov dword [esp + 0x1c8], ebx
mov ebx, dword [ebp + 0x2c]
mov dword [esp + 0xe4], edi
xor eax, eax
mov dword [esp + 0x188], esi
mov esi, dword [ebp + 0x14]
mov edi, eax
mov edx, dword [esi + edi*4]
shl edx, 4
push edx
call fcn.101bcde0
mov edx, dword [esp + 0x1d8]
mov dword [edx + edi*4], eax
mov edx, dword [ebp + 0x10]
mov ecx, dword [esi + edi*4]
shl ecx, 4
push ecx
push dword [edx + edi*4]
push eax
call fcn.101d7590
add esp, 0x10
cmp dword [ebp + 0x18], 0
mov ecx, dword [esp + 0x168]
mov edx, dword [esi + edi*4]
mov dword [ecx + edi*4], edx
je 0x1012d6b6
mov edx, dword [ebp + 0x18]
cmp dword [edx + edi*4], 0
je 0x1012d6a8
mov edx, dword [esi + edi*4]
shl edx, 3
push edx
call fcn.101bcde0
mov edx, dword [esp + 0x1c8]
mov dword [edx + edi*4], eax
mov edx, dword [ebp + 0x18]
mov ecx, dword [esi + edi*4]
shl ecx, 3
push ecx
push dword [edx + edi*4]
push eax
call fcn.101d7590
add esp, 0x10
jmp 0x1012d6b6
mov edx, dword [esp + 0x1c4]
mov dword [edx + edi*4], 0
mov edx, dword [ebp + 0x1c]
mov ecx, dword [esp + 0x12c]
movsd xmm0, qword [edx + edi*8]
mov edx, dword [ebp + 0x34]
movsd qword [ecx + edi*8], xmm0
mov edx, dword [edx + edi*4]
shl edx, 2
push edx
call fcn.101bcde0
mov edx, dword [esp + 0x1f0]
mov ecx, dword [ebp + 0x34]
mov dword [edx + edi*4], eax
mov edx, dword [ecx + edi*4]
shl edx, 2
push edx
call fcn.101bcde0
add esp, 8
mov edx, dword [esp + 0x1d0]
mov dword [edx + edi*4], eax
test ebx, ebx
je 0x1012d733
cmp dword [ebx + edi*4], 0
je 0x1012d725
mov edx, dword [ebp + 0x34]
mov ecx, dword [edx + edi*4]
shl ecx, 2
push ecx
call fcn.101bcde0
pop ecx
mov edx, dword [esp + 0x128]
mov dword [edx + edi*4], eax
jmp 0x1012d733
mov edx, dword [esp + 0x128]
mov dword [edx + edi*4], 0
mov edx, dword [ebp + 0x34]
mov ecx, dword [edx + edi*4]
shl ecx, 3
push ecx
call fcn.101bcde0
pop ecx
mov edx, dword [esp + 0x1cc]
mov ecx, dword [ebp + 0x34]
mov dword [edx + edi*4], eax
mov edx, dword [ecx + edi*4]
mov ecx, dword [esp + 0x1e8]
mov dword [ecx + edi*4], edx
mov edx, dword [ebp + 0x34]
cmp dword [edx + edi*4], 0
jle 0x1012d858
mov ebx, dword [ebp + 0x28]
xor eax, eax
mov esi, eax
mov edx, dword [ebx + edi*4]
mov ecx, dword [edx + esi*4]
shl ecx, 4
push ecx
call fcn.101bcde0
mov edx, dword [esp + 0x1f0]
mov ecx, dword [edx + edi*4]
mov dword [ecx + esi*4], eax
mov edx, dword [edx + edi*4]
mov ecx, dword [ebp + 0x24]
mov eax, dword [ecx + edi*4]
mov ecx, dword [ebx + edi*4]
mov ecx, dword [ecx + esi*4]
shl ecx, 4
push ecx
push dword [eax + esi*4]
push dword [edx + esi*4]
call fcn.101d7590
add esp, 0x10
cmp dword [ebp + 0x2c], 0
mov edx, dword [esp + 0x1d0]
mov ecx, dword [ebx + edi*4]
mov eax, dword [edx + edi*4]
mov edx, dword [ecx + esi*4]
mov dword [eax + esi*4], edx
je 0x1012d827
mov edx, dword [ebp + 0x2c]
mov edx, dword [edx + edi*4]
test edx, edx
je 0x1012d827
cmp dword [edx + esi*4], 0
je 0x1012d816
mov edx, dword [ebx + edi*4]
mov ecx, dword [edx + esi*4]
shl ecx, 3
push ecx
call fcn.101bcde0
mov edx, dword [esp + 0x12c]
mov ecx, dword [edx + edi*4]
mov dword [ecx + esi*4], eax
mov edx, dword [edx + edi*4]
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + edi*4]
mov ecx, dword [ebx + edi*4]
mov ecx, dword [ecx + esi*4]
shl ecx, 3
push ecx
push dword [eax + esi*4]
push dword [edx + esi*4]
call fcn.101d7590
add esp, 0x10
jmp 0x1012d827
mov edx, dword [esp + 0x128]
mov ecx, dword [edx + edi*4]
mov dword [ecx + esi*4], 0
mov edx, dword [ebp + 0x30]
mov ecx, dword [esp + 0x1cc]
mov edx, dword [edx + edi*4]
mov ecx, dword [ecx + edi*4]
movsd xmm0, qword [edx + esi*8]
mov edx, dword [ebp + 0x34]
movsd qword [ecx + esi*8], xmm0
inc esi
cmp esi, dword [edx + edi*4]
jl 0x1012d771
lea esi, [esi]
mov esi, dword [ebp + 0x14]
mov ebx, dword [ebp + 0x2c]
inc edi
cmp edi, dword [ebp + 0x20]
jl 0x1012d632
mov ebx, dword [esp + 0x1c8]
mov edi, dword [esp + 0xe4]
mov esi, dword [esp + 0x188]
jmp 0x1012c592
comisd xmm1, xmmword [esi + 0x28]
jbe 0x1012d285
cmp dword [esi + 0x34], 0
jle 0x1012d285
test byte [esi + 0x30], 1
jne 0x1012d8b8
movsd xmm4, qword [esp + 0x178]
comisd xmm4, xmm0
ja 0x1012d8b8
movsd xmm3, qword [0x101f2160]
comisd xmm3, xmm4
jbe 0x1012d285
imul ebx, dword [0x1022002c], 0x168
mov edi, dword [0x10220028]
mov edx, dword [0x10219190]
movsd xmm5, qword [0x1021f8d8]
mov eax, dword [ebp + 8]
pxor xmm3, xmm3
movsd qword [esp + 0x138], xmm3
movsd xmm4, qword [ebx + edi - 0x48]
mov ebx, dword [esp + 0x158]
movsd qword [esp + 0x148], xmm4
subsd xmm5, qword [esi + 8]
mov edi, dword [eax + 0x44]
subsd xmm5, qword [ebx + edi + 8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [esi + 0x14]
mov ebx, dword [eax + ebx*4]
pxor xmm3, xmm3
mov eax, dword [esp + 0x80]
mov edi, dword [eax + edx + 0x928]
mov edi, dword [edi + ebx*4]
subsd xmm5, qword [edi + 8]
addsd xmm5, qword [eax + edx + 0x80]
mov eax, dword [esp + 0x19c]
addsd xmm5, qword [edx + eax + 0x80]
movsd qword [esp + 0x150], xmm5
movsd qword [esp + 0x140], xmm5
jmp 0x1012d198
comisd xmm1, xmmword [esi + 0x28]
jbe 0x1012d285
cmp dword [esi + 0x34], 1
jg 0x1012d285
test byte [esi + 0x30], 1
jne 0x1012d99d
movsd xmm4, qword [esp + 0x178]
comisd xmm4, xmm0
ja 0x1012d99d
movsd xmm3, qword [0x101f2160]
comisd xmm3, xmm4
jbe 0x1012d285
imul eax, dword [0x1022002c], 0x168
mov edx, dword [0x10220028]
mov ebx, dword [ebp + 8]
mov edi, dword [esp + 0x160]
pxor xmm3, xmm3
movsd qword [esp + 0x138], xmm3
movsd xmm4, qword [eax + edx - 0x48]
movsd qword [esp + 0x148], xmm4
pxor xmm3, xmm3
mov eax, dword [esi + 0x18]
mov edx, dword [ebx + 0x44]
movsd xmm5, qword [edi + eax + 8]
mov edi, dword [esp + 0x158]
addsd xmm5, qword [edi + edx + 8]
movsd qword [esp + 0x150], xmm5
movsd qword [esp + 0x140], xmm5
jmp 0x1012d198
mov esi, dword [esp + 0x1c4]
mov edi, dword [esp + 0x128]
jmp 0x1012bc03