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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x2f4
movsd xmm0, qword [ebp + 0x20]
mov edx, dword [0x10219850]
inc edx
mov dword [0x10219850], edx
pxor xmm6, xmm6
comisd xmm6, xmmword [ebp + 0x18]
jae 0x101394e6
mov eax, dword [0x10219178]
cmp eax, dword [0x1020c78c]
jle 0x101362ea
mov dword [0x10219854], 0
mov dword [0x1020c78c], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
test eax, eax
jle 0x101360ea
mov esi, dword [ebp + 8]
movsd qword [esp + 0x50], xmm0
mov ebx, 1
mov edx, dword [esi]
mov eax, dword [edx + ebx*4]
movsd qword [esp + 4], xmm6
call fcn.10139e30
pxor xmm6, xmm6
test eax, eax
jne 0x101360d6
inc dword [0x10219854]
mov eax, dword [esi + 0x68]
inc ebx
cmp ebx, eax
jle 0x101360b8
movsd xmm0, qword [esp + 0x50]
mov edx, dword [0x10219850]
movsd xmm2, qword [0x101f2760]
movsd xmm1, qword [0x101f2768]
movsd xmm4, qword [0x101f2770]
movsd xmm3, qword [0x101f2778]
movsd xmm5, qword [0x101f2780]
movsd xmm7, qword [0x101f2788]
movsd qword [0x102197d0], xmm6
movsd qword [0x102197f0], xmm6
movsd qword [0x102197f8], xmm2
movsd qword [0x10219800], xmm1
movsd xmm1, qword [0x101f2790]
movsd qword [0x10219808], xmm2
movsd xmm2, qword [0x101f2798]
movsd qword [0x10219810], xmm4
movsd qword [0x10219818], xmm3
movsd qword [0x10219820], xmm4
movsd qword [0x10219828], xmm5
movsd qword [0x10219830], xmm7
movsd qword [0x10219838], xmm1
movsd qword [0x10219840], xmm2
movsd qword [0x10219848], xmm6
mov dword [0x102198c8], 0xff
mov dword [0x1021985c], edx
mov ecx, 0xffffffff
mov edx, dword [0x10219180]
mov dword [0x10219898], ecx
mov dword [0x102198a4], ecx
xor ebx, ebx
mov dword [0x102198b0], ecx
mov dword [0x1021989c], ecx
mov dword [0x102198a8], ecx
mov dword [0x102198b4], ecx
mov dword [0x102198a0], ecx
lea eax, [eax + eax*2]
mov dword [0x102198ac], ecx
mov dword [0x102198b8], ecx
mov dword [0x102198bc], ecx
mov dword [0x10219858], ecx
mov dword [0x102198c0], ebx
lea esi, [eax*8 + 0x18]
mov dword [0x102198c4], ebx
push esi
push dword [0x102198d8]
movsd qword [esp + 0x58], xmm0
mov dword [0x102198cc], ebx
mov dword [0x102198d0], ebx
mov dword [0x102198d4], ebx
mov dword [0x10219860], edx
mov dword [0x10219864], ebx
mov dword [0x102197d8], ecx
mov dword [0x10219868], ebx
mov dword [0x1021986c], ebx
mov dword [0x10219870], ebx
mov dword [0x10219874], ebx
call fcn.101bcb76
movsd xmm0, qword [esp + 0x58]
pxor xmm6, xmm6
push dword [0x102198dc]
movsd qword [esp + 0x5c], xmm0
mov dword [0x102198d8], eax
call fcn.101bceaa
movsd xmm0, qword [esp + 0x5c]
add esp, 0xc
pxor xmm6, xmm6
cmp dword [0x10219878], 0
mov dword [0x102198dc], ebx
mov dword [0x102198e0], ebx
jle 0x101362c0
movsd qword [esp + 0x50], xmm0
mov esi, ebx
mov eax, dword [0x1021987c]
push dword [eax + esi*4]
call fcn.100e3d90
pop ecx
inc esi
cmp esi, dword [0x10219878]
jl 0x1013629f
movsd xmm0, qword [esp + 0x50]
pxor xmm6, xmm6
push dword [0x1021987c]
movsd qword [esp + 0x54], xmm0
call fcn.101bceaa
movsd xmm0, qword [esp + 0x54]
add esp, 4
pxor xmm6, xmm6
mov dword [0x1021987c], ebx
mov dword [0x10219878], ebx
cmp dword [ebp + 0xc], 0
movsd xmm5, qword [ebp + 0x10]
je 0x10136342
mov eax, dword [0x10219850]
mov edx, dword [0x10219180]
movsd qword [esp + 0x1f0], xmm5
movaps xmm1, xmm5
mov dword [0x1021985c], eax
mov eax, dword [0x1022002c]
imul ecx, eax, 0x168
mov dword [0x10219860], edx
mov edx, dword [0x10220028]
subsd xmm1, qword [ecx + edx - 0x38]
movsd qword [0x102197d0], xmm1
mov dword [0x10219864], 1
jmp 0x10136362
mov edx, dword [0x10220028]
mov eax, dword [0x1022002c]
imul ecx, eax, 0x168
movsd xmm1, qword [ecx + edx - 0x38]
movsd qword [esp + 0x1f0], xmm1
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [0x1021f690]
cmp ecx, 5
jl 0x10136386
cmp dword [0x10219180], 0xa
jl 0x10136386
cmp dword [0x1021f880], 2
je 0x101394f8
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x68]
test ecx, ecx
jle 0x101363b3
mov esi, dword [0x102198d8]
mov dword [esp + 0x50], edx
mov edi, 1
lea edx, [edi + edi*2]
mov dword [esi + edx*8 + 8], 0
inc edi
cmp edi, ecx
jle 0x1013639f
mov edx, dword [esp + 0x50]
mov ecx, dword [ebp + 0x30]
test ecx, ecx
je 0x101363c6
movsd xmm1, qword [0x101f27a0]
movsd qword [ecx], xmm1
cmp dword [ebp + 0xc], 0
je 0x101363dd
movsd xmm2, qword [ebp + 0x18]
mov dword [0x102198c8], 0xff
jmp 0x101363ef
imul eax, eax, 0x168
movsd xmm2, qword [eax + edx - 0x48]
movsd xmm0, qword [eax + edx - 0x40]
movaps xmm4, xmm6
movsd xmm1, qword [esp + 0x1f0]
subsd xmm1, qword [0x101f2828]
movsd qword [esp + 0x1f8], xmm4
movsd qword [esp + 0x208], xmm1
movaps xmm3, xmm6
movsd qword [esp + 0x200], xmm3
xor edi, edi
mov dword [esp + 0x290], edi
mov dword [esp + 0x294], edi
mov dword [esp + 0x28c], edi
maxsd xmm2, xmm0
mov eax, 2
movsd xmm0, qword [0x101f27c0]
subsd xmm2, xmm0
movsd qword [esp + 0x210], xmm2
movd xmm7, eax
pshufd xmm7, xmm7, 0
movdqa xmmword [esp + 0x1b0], xmm7
push 0
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
jne 0x1013648a
push 2
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x1013683f
mov ecx, dword [0x102198c4]
cmp ecx, 0x20
jae 0x1013683f
mov eax, 1
shl eax, cl
test al, 0x13
je 0x1013683f
push 0
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
jne 0x101364d4
push 2
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x1013683f
mov eax, dword [0x102198c0]
cmp eax, 1
je 0x1013993d
cmp dword [ebp + 0xc], 0
je 0x10136501
mov eax, dword [ebp + 8]
mov edx, dword [0x10219898]
mov eax, dword [eax + 0x68]
mov dword [esp + 0x194], 1
jmp 0x10136555
test eax, eax
je 0x10136527
mov eax, dword [0x10219180]
mov edx, dword [0x10219898]
cmp eax, edx
jl 0x1013677b
mov dword [0x102198c0], 0
jmp 0x10136826
mov eax, dword [ebp + 8]
call fcn.1013a2d0
mov dword [esp + 0x194], eax
cmp dword [esp + 0x194], 0
mov eax, dword [0x102198c0]
je 0x10136769
mov eax, dword [ebp + 8]
mov edx, dword [0x10219898]
mov eax, dword [eax + 0x68]
cvtsi2sd xmm1, dword [0x10219854]
cvtsi2sd xmm0, dword [0x1021f940]
divsd xmm1, xmm0
mulsd xmm1, qword [0x101f27a8]
mov dword [0x102198c0], 1
mov ecx, 0x64
mov ebx, dword [0x10219180]
mov dword [0x102198b0], ebx
mov dword [0x102198a4], ebx
cvttsd2si esi, xmm1
cmp esi, 0x1e
jge 0x101365a0
mov esi, 0x1e
cmp esi, 0x64
cmovge esi, ecx
add esi, ebx
cmp edx, esi
cmovge esi, edx
mov ebx, dword [ebp + 0x2c]
mov dword [0x10219898], esi
test eax, eax
jle 0x101366aa
mov edi, dword [ebp + 8]
mov esi, 1
xor ebx, ebx
mov ecx, dword [edi]
mov edx, dword [edi + 0x48]
movsd xmm0, qword [edx + esi*8]
mov eax, dword [ecx + esi*4]
movsd qword [esp + 4], xmm0
call fcn.10139e30
test eax, eax
je 0x10136690
mov eax, dword [edi + 0x10]
cmp dword [eax + esi*4], 0
je 0x10136690
mov eax, dword [edi + 0x44]
mov dword [esp], edi
mov dword [esp + 4], esi
mov edx, esi
shl edx, 4
movsd xmm0, qword [eax + edx]
lea ecx, [esp + 8]
movsd qword [ecx], xmm0
movsd xmm1, qword [eax + edx + 8]
movsd qword [ecx + 8], xmm1
mov eax, dword [edi + 0x4c]
mov edx, dword [eax + esi*4]
mov ecx, dword [edi + 0x48]
movsd xmm2, qword [ecx + esi*8]
mov ecx, dword [0x10219190]
mov eax, dword [edi]
movsd qword [esp + 0x1c], xmm2
mov dword [esp + 0x18], edx
imul edx, dword [eax + esi*4], 0xa10
mov eax, 1
cmp dword [edx + ecx + 0x9fc], 0
mov dword [esp + 0x28], ebx
mov edx, 0x1000
lea ecx, [esp + 0x150]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], ebx
cmove edx, eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x24], edx
call fcn.10161550
movsd xmm0, qword [esp + 0x150]
comisd xmm0, xmmword [esp + 0x210]
jae 0x101398e2
inc esi
cmp esi, dword [edi + 0x68]
jle 0x101365c8
cmp dword [0x102198c0], 0
mov ebx, dword [ebp + 0x2c]
je 0x10136826
push 0
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10139908
push 2
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10136704
movsd xmm1, qword [0x101f2828]
movsd qword [esp + 8], xmm1
pxor xmm0, xmm0
movsd qword [esp], xmm0
call fcn.100ed440
fstp qword [esp + 0x58]
movsd xmm1, qword [esp + 0x58]
movsd xmm0, qword [0x101f27f0]
comisd xmm1, xmm0
ja 0x10139908
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
jle 0x10136750
mov edi, dword [ebp + 8]
mov esi, 1
mov ecx, dword [edi]
mov edx, dword [edi + 0x48]
movsd xmm0, qword [edx + esi*8]
mov eax, dword [ecx + esi*4]
movsd qword [esp + 4], xmm0
call fcn.10139e30
test eax, eax
je 0x1013674a
mov eax, dword [edi + 0x10]
cmp dword [eax + esi*4], 0
je 0x1013674a
mov eax, dword [edi + 0x54]
mov dword [eax + esi*4], 1
inc dword [0x102198cc]
inc esi
cmp esi, dword [edi + 0x68]
jle 0x10136715
cmp dword [0x102198c0], 0
je 0x10136826
mov dword [0x102198c4], 1
jmp 0x10136771
test eax, eax
je 0x10136826
cmp dword [esp + 0x194], 0
jne 0x10136785
mov eax, dword [0x102198c4]
jmp 0x10136811
mov eax, dword [ebp + 8]
lea edx, [esp + 0x124]
call fcn.10139ec0
cmp dword [esp + 0x124], 0
je 0x101367a2
test eax, eax
je 0x1013677b
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
jle 0x101367c3
mov ecx, dword [ebp + 8]
mov eax, 1
mov edx, dword [ecx + 0x54]
mov dword [edx + eax*4], 0
inc eax
cmp eax, dword [ecx + 0x68]
jle 0x101367b3
mov ecx, dword [0x102198c8]
xor eax, eax
mov dword [0x102198cc], eax
mov dword [0x102198c0], eax
mov dword [0x102198c4], eax
mov edx, 0xffffffff
and ecx, 0xfa
mov dword [0x102198a4], edx
mov dword [0x10219898], edx
mov dword [0x102198a8], edx
mov dword [0x1021989c], edx
mov dword [0x102198ac], edx
mov dword [0x102198a0], edx
mov dword [0x102198c8], ecx
jmp 0x1013683f
test eax, eax
jne 0x1013683f
mov eax, dword [0x102198c8]
and eax, 0xfa
mov dword [0x102198c8], eax
jmp 0x1013683f
mov eax, dword [0x102198c8]
mov dword [0x102198c4], 0
and eax, 0xfa
mov dword [0x102198c8], eax
push 1
push ebx
call fcn.100e3e10
add esp, 8
mov edx, eax
mov eax, dword [0x102198c4]
test edx, edx
je 0x10139445
cmp eax, 2
je 0x10136866
test eax, eax
jne 0x10139480
push 1
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10139440
movsd xmm1, qword [0x1021fca8]
movsd qword [0x10219890], xmm1
push 6
push str.PUZZLE
push 0x1021ee00
movsd qword [esp + 0x134], xmm1
call fcn.101be28c
movsd xmm1, qword [esp + 0x134]
add esp, 0xc
test eax, eax
jne 0x101368cc
movsd xmm0, qword [0x101f27b8]
mulsd xmm1, xmm0
movsd qword [0x10219890], xmm1
movsd xmm0, qword [ebp + 0x18]
divsd xmm0, xmm1
movsd xmm3, qword [0x101f2818]
movsd xmm1, qword [0x101f2820]
andps xmm3, xmm0
movaps xmm2, xmm3
movsd xmm4, qword [0x101f2828]
mov edi, 1
pxor xmm2, xmm0
cmpltsd xmm2, xmm1
andps xmm2, xmm1
orps xmm2, xmm3
movaps xmm6, xmm2
addsd xmm6, xmm0
subsd xmm6, xmm2
movaps xmm5, xmm6
subsd xmm5, xmm0
cmpltsd xmm5, xmm3
andps xmm5, xmm4
addsd xmm6, xmm5
cvtsd2si eax, xmm6
test eax, eax
cmovle eax, edi
mov edi, dword [0x10219878]
mov dword [esp + 0x180], eax
cmp eax, edi
jle 0x1013699b
lea edx, [eax*4]
push edx
push dword [0x1021987c]
call fcn.101bcb76
add esp, 8
cmp edi, dword [esp + 0x180]
mov dword [0x1021987c], eax
jge 0x1013698f
mov esi, dword [esp + 0x180]
mov eax, dword [0x1021987c]
lea edx, [eax + edi*4]
push edx
call fcn.100e37a0
mov eax, dword [0x1021987c]
push 0x32
push dword [eax + edi*4]
call fcn.100e38a0
add esp, 0xc
inc edi
cmp edi, esi
jl 0x1013696a
mov eax, dword [esp + 0x180]
mov dword [0x10219878], eax
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x68]
mov dword [0x10219868], 0
xor eax, eax
xor ecx, ecx
test edx, edx
jle 0x1013745f
mov edi, dword [ebp + 8]
mov dword [esp + 0x188], ecx
mov esi, 1
mov ecx, dword [edi + 0x10]
cmp dword [ecx + esi*4], 0
je 0x10136c8a
mov ecx, dword [edi + 0x38]
mov ecx, dword [ecx + esi*4]
test ecx, ecx
je 0x10136c8a
movsd xmm6, qword [0x1021fb90]
movsd xmm3, qword [0x101f2818]
movsd xmm4, qword [0x101f2820]
mov ebx, dword [edi + 0x28]
mov edx, dword [ebx + esi*4]
mov ebx, dword [edi + 0x2c]
shl edx, 4
movsd xmm7, qword [ecx + edx]
mov edx, dword [ebx + esi*4]
movsd qword [esp + 0x278], xmm7
shl edx, 4
movsd xmm5, qword [ecx + edx]
subsd xmm7, xmm6
divsd xmm7, qword [0x10219890]
xor ecx, ecx
andps xmm3, xmm7
movaps xmm1, xmm3
pxor xmm1, xmm7
cmpltsd xmm1, xmm4
andps xmm1, xmm4
orps xmm1, xmm3
movaps xmm2, xmm1
addsd xmm2, xmm7
subsd xmm2, xmm1
movaps xmm0, xmm2
movsd xmm1, qword [0x101f2828]
subsd xmm0, xmm7
cmpnlesd xmm0, xmm3
andps xmm0, xmm1
movsd xmm3, qword [0x101f2818]
subsd xmm2, xmm0
movaps xmm0, xmm5
subsd xmm0, xmm6
divsd xmm0, qword [0x10219890]
andps xmm3, xmm0
cvtsd2si ebx, xmm2
movaps xmm2, xmm3
test ebx, ebx
cmovl ebx, ecx
pxor xmm2, xmm0
cmpltsd xmm2, xmm4
andps xmm2, xmm4
orps xmm2, xmm3
movaps xmm6, xmm2
addsd xmm6, xmm0
subsd xmm6, xmm2
movaps xmm4, xmm6
subsd xmm4, xmm0
cmpnlesd xmm4, xmm3
andps xmm4, xmm1
subsd xmm6, xmm4
cvtsd2si edx, xmm6
mov dword [esp + 0x2a8], edx
cmp edx, eax
jl 0x10136b95
mov ecx, dword [0x102198e0]
mov dword [esp + 0x1d0], eax
cmp edx, ecx
lea eax, [edx + 1]
mov dword [esp + 0x190], ecx
mov dword [esp + 0x18c], eax
mov eax, dword [esp + 0x1d0]
jl 0x10136b47
push 0x60
push dword [esp + 0x190]
push dword [esp + 0x198]
push dword [0x102198dc]
movsd qword [esp + 0x290], xmm5
call fcn.100db0e0
movsd xmm5, qword [esp + 0x290]
add esp, 0x10
mov dword [esp + 0x188], 1
mov dword [0x102198dc], eax
mov eax, dword [esp + 0x18c]
mov dword [0x102198e0], eax
mov eax, dword [0x10219868]
lea edx, [eax + eax*2]
shl edx, 5
cmp eax, dword [esp + 0x2a8]
jg 0x10136b89
mov ecx, dword [0x102198dc]
add edx, ecx
mov ecx, dword [esp + 0x2a8]
xor edi, edi
pxor xmm0, xmm0
movsd qword [edx], xmm0
mov dword [edx + 0x58], edi
mov dword [edx + 0x48], edi
mov dword [edx + 0x50], edi
mov dword [edx + 0x4c], edi
mov dword [edx + 0x54], edi
inc eax
add edx, 0x60
cmp eax, ecx
jle 0x10136b6b
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x18c]
mov dword [0x10219868], eax
cmp ebx, dword [esp + 0x2a8]
jg 0x10139cd9
mov eax, dword [0x102198dc]
movsd qword [esp + 0x280], xmm5
push 4
lea edi, [ebx + ebx*2]
shl edi, 5
mov ecx, dword [eax + edi + 0x58]
lea edx, [ecx + 1]
push edx
push ecx
push dword [eax + edi + 0x48]
call fcn.100db0e0
mov edx, dword [0x102198dc]
mov ecx, dword [edx + edi + 0x58]
mov dword [edx + edi + 0x48], eax
lea eax, [ecx + 1]
push 8
push eax
push ecx
push dword [edx + edi + 0x4c]
call fcn.100db0e0
mov edx, dword [0x102198dc]
mov ecx, dword [edx + edi + 0x58]
mov dword [edx + edi + 0x4c], eax
lea eax, [ecx + 1]
push 8
push eax
push ecx
push dword [edx + edi + 0x50]
call fcn.100db0e0
mov edx, dword [0x102198dc]
mov ecx, dword [edx + edi + 0x58]
mov dword [edx + edi + 0x50], eax
lea eax, [ecx + 1]
push 8
push eax
push ecx
push dword [edx + edi + 0x54]
call fcn.100db0e0
add esp, 0x40
mov edx, dword [0x102198dc]
movsd xmm0, qword [esp + 0x278]
movsd xmm1, qword [esp + 0x280]
mov ecx, dword [edx + edi + 0x58]
inc ebx
mov dword [edx + edi + 0x54], eax
mov eax, dword [edx + edi + 0x48]
mov dword [eax + ecx*4], esi
mov eax, dword [0x102198dc]
mov ecx, dword [edi + eax + 0x58]
mov edx, dword [edi + eax + 0x4c]
movsd qword [edx + ecx*8], xmm0
mov ecx, dword [edi + eax + 0x58]
mov edx, dword [edi + eax + 0x50]
movsd qword [edx + ecx*8], xmm1
inc dword [edi + eax + 0x58]
cmp ebx, dword [esp + 0x2a8]
jle 0x10136bb0
mov edi, dword [ebp + 8]
mov eax, dword [0x10219868]
mov edx, dword [edi + 0x68]
inc esi
cmp esi, edx
jle 0x101369c6
mov ecx, dword [esp + 0x188]
mov ebx, dword [ebp + 0x2c]
test eax, eax
jle 0x1013745f
mov dword [esp + 0x188], ecx
xor esi, esi
xor ebx, ebx
cvtsi2sd xmm2, esi
movsd xmm4, qword [0x10219890]
movaps xmm3, xmm4
mulsd xmm2, xmm4
addsd xmm2, qword [0x1021fb90]
movsd xmm1, qword [0x1021fb88]
movsd xmm0, qword [0x1021fbb8]
movsd xmm5, qword [0x101f27f0]
movsd xmm7, qword [0x101f27f0]
mov ecx, dword [0x102198dc]
movsd qword [esp + 0x238], xmm2
movsd qword [esp + 0x248], xmm2
movsd qword [esp + 0x230], xmm1
movsd qword [esp + 0x240], xmm1
movsd qword [esp + 0x250], xmm0
movsd qword [esp + 0x260], xmm0
movaps xmm6, xmm2
addsd xmm3, xmm2
movsd qword [esp + 0x228], xmm3
movsd qword [esp + 0x258], xmm3
addsd xmm6, xmm3
mulsd xmm6, xmm5
movsd qword [esp + 0x2c0], xmm6
movaps xmm5, xmm1
subsd xmm3, xmm2
lea edx, [esi + esi*2]
addsd xmm5, xmm0
mulsd xmm5, xmm7
movsd qword [esp + 0x2c8], xmm5
subsd xmm0, xmm1
mulsd xmm0, xmm3
shl edx, 5
cmp dword [0x1021f6c8], 0
movsd qword [edx + ecx + 0x40], xmm0
movsd qword [edx + ecx + 0x38], xmm0
je 0x10136de0
movsd xmm0, qword [esp + 0x228]
movsd xmm1, qword [0x1021f6c0]
subsd xmm1, xmm4
comisd xmm0, xmm1
jb 0x10136de0
cmp esi, dword [0x10219878]
pxor xmm0, xmm0
movsd qword [ecx + edx], xmm0
jge 0x1013744c
mov eax, dword [0x1021987c]
mov edx, dword [eax + esi*4]
mov dword [esp], edx
pxor xmm0, xmm0
movsd qword [esp + 4], xmm0
call fcn.100e38f0
mov eax, dword [0x10219868]
jmp 0x1013744c
cmp dword [edx + ecx + 0x58], 0
pxor xmm2, xmm2
jle 0x10137256
movsd qword [esp + 0x2a0], xmm2
mov edi, ebx
mov dword [esp + 0x21c], esi
mov ebx, edx
mov eax, dword [ebp + 8]
mov esi, dword [ecx + ebx + 0x48]
mov esi, dword [esi + edi*4]
mov eax, dword [eax]
mov eax, dword [eax + esi*4]
mov edx, dword [ecx + ebx + 0x4c]
movsd xmm0, qword [edx + edi*8]
comisd xmm0, xmmword [esp + 0x238]
jb 0x10136eb6
movsd xmm0, qword [esp + 0x228]
mov edx, dword [ecx + ebx + 0x50]
comisd xmm0, xmmword [edx + edi*8]
jb 0x10136eb6
imul eax, eax, 0xa10
mov esi, dword [0x10219190]
mov edx, dword [esi + eax + 0x9fc]
test edx, edx
je 0x10136e72
cmp dword [esi + eax + 0xa00], 0
je 0x10136e72
movsd xmm1, qword [edx + 0x18]
subsd xmm1, qword [esi + eax + 0x48]
addsd xmm1, qword [esi + eax + 0x50]
jmp 0x10136e78
movsd xmm1, qword [esi + eax + 0x50]
movsd xmm2, qword [esp + 0x2a0]
movsd xmm0, qword [ecx + ebx + 0x38]
mov edx, dword [ecx + ebx + 0x54]
subsd xmm0, xmm1
movsd qword [ecx + ebx + 0x38], xmm0
movsd qword [edx + edi*8], xmm1
addsd xmm1, xmm2
cmp dword [esi + eax + 0x5c], 0
je 0x10136ea8
movaps xmm2, xmm1
movsd qword [esp + 0x2a0], xmm2
jmp 0x10137237
imul eax, eax, 0xa10
mov edx, dword [0x10219190]
mov dword [esp + 0x2b8], eax
mov eax, dword [edx + eax + 0x9fc]
mov dword [esp + 0x2bc], eax
test eax, eax
je 0x1013706c
mov eax, dword [esp + 0x2b8]
cmp dword [edx + eax + 0xa00], 0
je 0x1013706c
mov eax, dword [esp + 0x2bc]
mov ecx, dword [eax + 0x10]
shl ecx, 4
push ecx
call fcn.101bcde0
mov dword [esp + 0x29c], eax
mov eax, dword [0x10219190]
mov ecx, dword [esp + 0x2bc]
mov ecx, dword [eax + ecx + 0x9fc]
mov eax, dword [ecx + 0x10]
shl eax, 4
push eax
push dword [ecx]
push dword [esp + 0x2a4]
call fcn.101d7590
add esp, 0x10
mov eax, dword [0x10219190]
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x2d8], edi
mov edi, dword [esp + 0x2b8]
mov edx, dword [eax + edi + 0x9fc]
mov edx, dword [edx + 0x10]
mov dword [esp], ecx
xor ecx, ecx
pxor xmm2, xmm2
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
movsd xmm0, qword [edi + eax + 0x78]
lea edx, [esp + 0xc]
movsd qword [edx], xmm0
movsd xmm1, qword [edi + eax + 0x80]
mov eax, dword [ebp + 8]
movsd qword [edx + 8], xmm1
mov edi, dword [eax + 0x44]
movsd qword [esp + 0x20], xmm2
mov dword [esp + 0x1c], ecx
mov ecx, esi
shl ecx, 4
movsd xmm3, qword [ecx + edi]
lea edx, [esp + 0x28]
movsd qword [edx], xmm3
movsd xmm4, qword [ecx + edi + 8]
movsd qword [edx + 8], xmm4
mov ecx, dword [eax + 0x4c]
mov edi, dword [ecx + esi*4]
mov eax, dword [eax + 0x48]
movsd xmm5, qword [eax + esi*8]
movsd qword [esp + 0x3c], xmm5
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x2d8]
call fcn.100ae6e0
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0x2b8]
mov eax, dword [ecx + eax + 0x9fc]
movsd xmm1, qword [eax + 0x18]
mov eax, dword [eax + 0x10]
movsd qword [esp + 0x18], xmm1
mov dword [esp + 0xc], 4
lea ecx, [esp + 0x228]
mov dword [esp + 0x28], 1
mov dword [esp], ecx
mov ecx, dword [0x102198dc]
movsd xmm0, qword [ebx + ecx + 0x40]
movsd qword [esp + 4], xmm0
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x298]
mov dword [esp + 0x14], ecx
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x2d0]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
call fcn.100d28c0
push dword [esp + 0x298]
call fcn.101bceaa
pop ecx
jmp 0x101370dc
movsd xmm0, qword [ecx + ebx + 0x40]
mov ecx, dword [ebp + 8]
movsd qword [esp + 4], xmm0
lea eax, [esp + 0x228]
mov dword [esp + 0xc], 4
mov dword [esp], eax
lea eax, [esp + 0x2c0]
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + esi*4]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x40]
movsd xmm1, qword [eax + esi*8]
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + esi*4]
movsd qword [esp + 0x18], xmm1
xor ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], ecx
lea eax, [esp + 0x2d0]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
call fcn.100d28c0
mov ecx, dword [0x102198dc]
movsd xmm3, qword [esp + 0x2a0]
mov edx, dword [0x10219190]
movsd xmm0, qword [ebx + ecx + 0x38]
subsd xmm0, qword [esp + 0x2d0]
mov eax, dword [ebx + ecx + 0x54]
movsd qword [ebx + ecx + 0x38], xmm0
movsd xmm1, qword [esp + 0x2d0]
movsd qword [eax + edi*8], xmm1
mov eax, dword [esp + 0x2b8]
movsd xmm2, qword [esp + 0x2d0]
cmp dword [eax + edx + 0x5c], 0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x7c]
addsd xmm2, xmm3
je 0x1013713c
movaps xmm3, xmm2
cmp dword [eax + esi*4], 0
movsd qword [esp + 0x2a0], xmm3
jle 0x10137237
mov dword [esp + 0x2d8], edi
mov dword [esp + 0x2dc], ebx
mov ebx, dword [ebp + 8]
xor eax, eax
mov edi, eax
mov dword [esp + 0xc], 4
lea edx, [esp + 0x228]
mov dword [esp], edx
mov edx, dword [esp + 0x2dc]
movsd xmm0, qword [ecx + edx + 0x40]
mov edx, dword [ebx + 0x6c]
mov edx, dword [edx + esi*4]
mov edx, dword [edx + edi*4]
movsd qword [esp + 4], xmm0
mov dword [esp + 0x28], 1
lea ecx, [esp + 0x2c0]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov edx, dword [ebx + 0x74]
mov edx, dword [edx + esi*4]
movsd xmm1, qword [edx + edi*8]
mov edx, dword [ebx + 0x70]
mov edx, dword [edx + esi*4]
mov edx, dword [edx + edi*4]
movsd qword [esp + 0x18], xmm1
mov dword [esp + 0x20], edx
xor ecx, ecx
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x2d0]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ecx
call fcn.100d28c0
mov ecx, dword [0x102198dc]
movsd xmm0, qword [esp + 0x2d0]
mov edx, dword [esp + 0x2dc]
addsd xmm0, qword [edx + ecx + 0x38]
mov eax, dword [esp + 0x2d8]
movsd qword [edx + ecx + 0x38], xmm0
mov edx, dword [edx + ecx + 0x54]
movsd xmm1, qword [edx + eax*8]
subsd xmm1, qword [esp + 0x2d0]
movsd qword [edx + eax*8], xmm1
inc edi
mov edx, dword [ebx + 0x7c]
cmp edi, dword [edx + esi*4]
jl 0x10137164
mov edi, eax
mov ebx, dword [esp + 0x2dc]
inc edi
cmp edi, dword [ecx + ebx + 0x58]
jl 0x10136e03
movsd xmm2, qword [esp + 0x2a0]
mov esi, dword [esp + 0x21c]
mov edx, ebx
xor ebx, ebx
mov eax, dword [0x1021f820]
test eax, eax
jle 0x101373df
movsd qword [esp + 0x2a0], xmm2
mov edi, ebx
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x220], ecx
mov dword [esp + 0x21c], esi
movsd xmm1, qword [esp + 0x238]
mov edx, dword [0x1021f828]
mov edx, dword [edx + edi*4]
mov ecx, dword [edx]
mov esi, dword [edx + 0xc]
mov ebx, dword [esi + 4]
shl ebx, 4
movsd xmm3, qword [ecx + ebx]
comisd xmm1, xmm3
jae 0x101373b6
movsd xmm2, qword [esp + 0x228]
mov ebx, dword [esi]
shl ebx, 4
movsd xmm0, qword [ecx + ebx]
comisd xmm0, xmm2
jae 0x101373b6
comisd xmm0, xmm1
jb 0x1013730d
comisd xmm2, xmm3
jb 0x1013730d
mov ecx, dword [esp + 0x2dc]
movsd xmm0, qword [edx + 0x18]
mulsd xmm0, qword [ebp + 0x10]
divsd xmm0, qword [0x101f27a8]
mov edx, dword [esp + 0x220]
movsd xmm1, qword [edx + ecx + 0x38]
subsd xmm1, xmm0
movsd qword [edx + ecx + 0x38], xmm1
jmp 0x101373b6
mov esi, dword [esp + 0x2dc]
mov ebx, dword [esp + 0x220]
movsd xmm0, qword [ebx + esi + 0x40]
movsd xmm1, qword [edx + 0x18]
mov edx, dword [edx + 0x10]
movsd qword [esp + 4], xmm0
movsd qword [esp + 0x18], xmm1
lea eax, [esp + 0x228]
mov dword [esp + 0xc], 4
mov dword [esp], eax
lea eax, [esp + 0x2c0]
mov dword [esp + 0x28], 1
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], edx
xor eax, eax
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x2d0]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], eax
call fcn.100d28c0
mov edx, dword [0x102198dc]
movsd xmm0, qword [esp + 0x2d0]
mulsd xmm0, qword [ebp + 0x10]
divsd xmm0, qword [0x101f27a8]
mov eax, esi
movsd xmm1, qword [eax + edx + 0x38]
subsd xmm1, xmm0
movsd qword [eax + edx + 0x38], xmm1
mov eax, dword [0x1021f820]
mov dword [esp + 0x220], edx
inc edi
cmp edi, eax
jl 0x10137283
movsd xmm2, qword [esp + 0x2a0]
mov edx, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x220]
mov esi, dword [esp + 0x21c]
xor ebx, ebx
mov eax, dword [0x10219868]
cvtsi2sd xmm0, eax
movsd xmm1, qword [0x1021f958]
divsd xmm1, xmm0
mulsd xmm1, qword [0x101f2808]
comisd xmm2, xmm1
jb 0x1013740f
cmp dword [0x1021f880], 2
je 0x101399cc
movsd xmm2, qword [ecx + edx + 0x38]
cmp dword [0x1021f8f8], 3
je 0x10139cab
movsd xmm0, qword [ecx + edx + 0x40]
movaps xmm1, xmm0
subsd xmm1, xmm2
divsd xmm1, xmm0
mulsd xmm1, qword [0x101f27a8]
cmp esi, dword [0x10219878]
movsd qword [ecx + edx], xmm1
jl 0x10139c8b
inc esi
cmp esi, eax
jl 0x10136cb0
mov ecx, dword [esp + 0x188]
mov ebx, dword [ebp + 0x2c]
cmp dword [0x10219864], 0
je 0x101374d5
mov edx, dword [0x1021985c]
add edx, 0x1e
cmp edx, dword [0x10219850]
jl 0x10137486
cmp dword [0x10219180], 0x32
jl 0x10137486
test ecx, ecx
je 0x101374c4
movsd xmm0, qword [0x102197d0]
movsd xmm1, qword [0x101f27e0]
comisd xmm1, xmm0
jbe 0x101374b2
movsd xmm1, qword [0x101f27f0]
mulsd xmm0, xmm1
movsd qword [0x102197f0], xmm0
jmp 0x101374ed
movsd xmm0, qword [0x101f27e8]
movsd qword [0x102197f0], xmm0
jmp 0x101374ed
pxor xmm0, xmm0
movsd qword [0x102197f0], xmm0
jmp 0x10137721
test ecx, ecx
pxor xmm0, xmm0
movsd qword [0x102197f0], xmm0
je 0x10137721
pxor xmm0, xmm0
mov dword [0x10219864], 0
test eax, eax
jle 0x10139a11
mov edx, dword [0x102198dc]
cmp eax, 8
jl 0x10139a0a
cvtsi2sd xmm3, dword [esp + 0x180]
movdqa xmm2, xmmword [0x101f2730]
movsd xmm4, qword [esp + 0x1f0]
movdqa xmm1, xmmword [esp + 0x1b0]
movsd qword [esp + 0xf0], xmm0
movaps xmm5, xmm0
addsd xmm5, qword [esp + 0x208]
mov ecx, eax
and ecx, 7
neg ecx
add ecx, eax
xor esi, esi
addsd xmm4, xmm0
movaps xmm0, xmmword [0x101f2740]
unpcklpd xmm5, xmm5
unpcklpd xmm3, xmm3
unpcklpd xmm4, xmm4
cvtdq2pd xmm6, xmm2
divpd xmm6, xmm3
movaps xmm7, xmmword [0x101f2750]
lea edi, [esi + esi*2]
shl edi, 5
subpd xmm7, xmm6
mulpd xmm7, xmm0
addpd xmm7, xmm4
movlpd qword [edi + edx + 0x30], xmm7
movhpd qword [edi + edx + 0x90], xmm7
movlpd qword [edi + edx + 0x28], xmm5
movhpd qword [edi + edx + 0x88], xmm5
movaps xmm7, xmmword [0x101f2750]
paddd xmm2, xmm1
cvtdq2pd xmm6, xmm2
divpd xmm6, xmm3
subpd xmm7, xmm6
mulpd xmm7, xmm0
addpd xmm7, xmm4
movlpd qword [edi + edx + 0xf0], xmm7
movhpd qword [edi + edx + 0x150], xmm7
movlpd qword [edi + edx + 0xe8], xmm5
movhpd qword [edi + edx + 0x148], xmm5
movaps xmm7, xmmword [0x101f2750]
paddd xmm2, xmm1
cvtdq2pd xmm6, xmm2
divpd xmm6, xmm3
subpd xmm7, xmm6
mulpd xmm7, xmm0
addpd xmm7, xmm4
movlpd qword [edi + edx + 0x1b0], xmm7
movhpd qword [edi + edx + 0x210], xmm7
movlpd qword [edi + edx + 0x1a8], xmm5
movhpd qword [edi + edx + 0x208], xmm5
movaps xmm7, xmmword [0x101f2750]
paddd xmm2, xmm1
cvtdq2pd xmm6, xmm2
divpd xmm6, xmm3
subpd xmm7, xmm6
mulpd xmm7, xmm0
addpd xmm7, xmm4
movlpd qword [edi + edx + 0x270], xmm7
movhpd qword [edi + edx + 0x2d0], xmm7
movlpd qword [edi + edx + 0x268], xmm5
movhpd qword [edi + edx + 0x2c8], xmm5
paddd xmm2, xmm1
add esi, 8
cmp esi, ecx
jb 0x10137568
movsd xmm0, qword [esp + 0xf0]
movdqa xmmword [esp + 0x1b0], xmm1
lea esi, [ecx + ecx*2]
shl esi, 5
cmp ecx, eax
jae 0x101399e1
cvtsi2sd xmm1, dword [esp + 0x180]
movaps xmm2, xmm0
addsd xmm0, qword [esp + 0x1f0]
addsd xmm2, qword [esp + 0x208]
movsd xmm6, qword [0x101f2828]
movsd xmm4, qword [0x101f27d8]
movsd qword [esi + edx + 0x28], xmm2
movaps xmm5, xmm6
pxor xmm3, xmm3
cvtsi2sd xmm3, ecx
divsd xmm3, xmm1
inc ecx
subsd xmm5, xmm3
mulsd xmm5, xmm4
addsd xmm5, xmm0
movsd qword [esi + edx + 0x30], xmm5
add esi, 0x60
cmp ecx, eax
jb 0x101376c5
mov esi, dword [0x102198bc]
mov ecx, dword [0x10219858]
mov dword [esp + 0x16c], esi
test esi, esi
mov dword [esp + 0x160], ecx
jge 0x10137743
xor edi, edi
jmp 0x101377e2
mov esi, dword [0x102198bc]
mov ecx, dword [0x10219858]
mov dword [esp + 0x16c], esi
test esi, esi
mov dword [esp + 0x160], ecx
jl 0x101377d8
mov eax, dword [ebp + 8]
push 4
mov edx, dword [eax + 0x68]
inc edx
push edx
call fcn.101beb7a
mov edi, eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [ecx + 0x54]
push edi
call fcn.101d7590
add esp, 0x14
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
jle 0x1013778f
mov ecx, dword [ebp + 8]
mov eax, 1
mov edx, dword [ecx + 0x54]
mov dword [edx + eax*4], 0
inc eax
cmp eax, dword [ecx + 0x68]
jle 0x1013777f
cmp dword [ebp + 0x30], 0
mov dword [0x102198cc], 0
mov dword [0x102198bc], 0xffffffff
je 0x101377cc
movsd xmm0, qword [0x1021fb90]
addsd xmm0, qword [0x10219890]
mov eax, dword [ebp + 0x30]
movsd qword [eax], xmm0
mov eax, dword [0x10219868]
mov esi, 0xffffffff
jmp 0x101377da
mov eax, dword [0x10219868]
mov esi, 0xffffffff
jmp 0x101377da
xor edi, edi
test eax, eax
jle 0x10139a34
mov ecx, dword [0x102198dc]
mov dword [esp + 0x29c], ecx
mov ebx, ecx
xor edx, edx
mov dword [esp + 0x184], edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x1d4], esi
mov esi, dword [esp + 0x160]
cmp edx, esi
jg 0x10137813
test edi, edi
je 0x1013783d
lea ecx, [edx + edx*2]
shl ecx, 5
movsd xmm0, qword [ecx + ebx + 0x28]
movsd xmm1, qword [ecx + ebx + 0x30]
movsd qword [ecx + ebx + 8], xmm0
movsd qword [ecx + ebx + 0x18], xmm0
movsd qword [ecx + ebx + 0x10], xmm1
movsd qword [ecx + ebx + 0x20], xmm1
inc edx
cmp edx, eax
jl 0x1013780b
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
cmp eax, 1
jle 0x10139a34
movsd xmm4, qword [0x101f2828]
mov esi, dword [esp + 0x29c]
mov ecx, 0xffffffff
xor edx, edx
dec eax
pxor xmm0, xmm0
cvtsi2sd xmm1, edx
lea ebx, [edx + edx*2]
shl ebx, 5
movsd xmm3, qword [esi + ebx]
addsd xmm0, xmm3
movaps xmm2, xmm0
addsd xmm1, xmm4
divsd xmm2, xmm1
comisd xmm2, xmmword [ebx + esi + 0x10]
jb 0x101378ac
movsd xmm1, qword [0x101f27d0]
comisd xmm3, xmm1
cmova ecx, edx
inc edx
cmp edx, eax
jl 0x10137877
mov ebx, dword [ebp + 0x2c]
test ecx, ecx
jl 0x10137998
mov ebx, dword [esp + 0x29c]
mov dword [esp + 0x184], edi
mov dword [esp + 0x1d0], eax
xor edx, edx
mov dword [esp + 0x1a8], ecx
cmp dword [ebp + 0x30], 0
mov esi, edx
mov eax, edx
je 0x10137902
mov edi, dword [ebp + 0x30]
lea ecx, [edx + 2]
cvtsi2sd xmm0, ecx
mulsd xmm0, qword [0x10219890]
addsd xmm0, qword [0x1021fb90]
movsd qword [edi], xmm0
lea edi, [edx + edx*2]
shl edi, 5
cmp dword [edi + ebx + 0x58], 0
jle 0x10137968
mov dword [esp + 0x1d4], esi
mov dword [esp + 0x1c0], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1ac], edx
xor ecx, ecx
mov edx, dword [ebx + edi + 0x48]
mov esi, dword [edx + ecx*4]
mov edx, dword [eax + 0x54]
cmp dword [edx + esi*4], 0
jne 0x1013794c
mov dword [edx + esi*4], 1
mov ebx, dword [0x102198dc]
inc dword [0x102198cc]
inc ecx
cmp ecx, dword [ebx + edi + 0x58]
jl 0x10137929
mov esi, dword [esp + 0x1d4]
mov eax, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1ac]
inc edx
cmp edx, dword [esp + 0x1d0]
jge 0x10139c70
cmp edx, dword [esp + 0x1a8]
jle 0x101378da
mov edi, dword [esp + 0x184]
mov dword [esp + 0x29c], ebx
mov ebx, dword [ebp + 0x2c]
test edx, edx
jne 0x101379dd
cmp dword [ebp + 0x30], 0
mov dword [0x102198bc], 0xffffffff
je 0x10139a45
movsd xmm0, qword [0x1021fb90]
addsd xmm0, qword [0x10219890]
mov esi, dword [ebp + 0x30]
mov eax, dword [ebp + 8]
movsd qword [esi], xmm0
mov ecx, dword [eax + 0x68]
mov esi, 0xffffffff
mov dword [0x10219858], 0xffffffff
jmp 0x10138c5e
mov dword [0x102198bc], eax
mov dword [0x10219858], esi
test esi, esi
jl 0x10139a54
mov ecx, dword [esp + 0x29c]
lea eax, [esi + esi*2]
shl eax, 5
cmp dword [ecx + eax + 0x58], 0
jle 0x10137c77
cvtsi2sd xmm1, esi
addsd xmm1, qword [0x101f2828]
movsd qword [esp + 0x198], xmm1
mov ebx, eax
xor ecx, ecx
mov dword [esp + 0x1d8], ecx
mov dword [esp + 0x184], edi
mov edi, ecx
mov dword [esp + 0x1d4], esi
lea ecx, [esi + 1]
cvtsi2sd xmm0, ecx
mov esi, dword [esp + 0x29c]
movsd qword [esp + 0x130], xmm0
movsd xmm2, qword [0x10219890]
movsd xmm1, qword [0x1021fb90]
movsd xmm0, qword [esp + 0x198]
mulsd xmm0, xmm2
mov edx, dword [esi + ebx + 0x50]
movsd xmm3, qword [edx + edi*8]
addsd xmm0, xmm1
comisd xmm3, xmm0
jbe 0x10137aa6
mulsd xmm2, qword [esp + 0x130]
movaps xmm0, xmm3
mov edx, dword [esi + ebx + 0x4c]
subsd xmm0, xmm2
subsd xmm2, qword [edx + edi*8]
subsd xmm0, xmm1
addsd xmm2, xmm1
comisd xmm0, xmm2
ja 0x10137ab5
comisd xmm3, xmmword [esp + 0x210]
jb 0x10137c54
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x168]
mov esi, dword [esi + ebx + 0x48]
mov edx, dword [esi + edi*4]
mov dword [esp + 0x268], edx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x164]
call fcn.10139cf0
mov edx, dword [esp + 0x168]
mov esi, dword [0x102198dc]
mov ecx, dword [esp + 0x164]
sub dword [0x102198cc], edx
test edx, edx
jle 0x10137c4d
movsd xmm0, qword [0x101f27a8]
mov dword [esp + 0x274], ecx
mov ecx, dword [esp + 0x28c]
xor eax, eax
mov dword [esp + 0x26c], edx
mov dword [esp + 0x1d8], edi
mov dword [esp + 0x15c], ebx
mov ebx, 0xffffffff
mov edx, dword [esp + 0x268]
mov edi, dword [esp + 0x274]
cmp edx, dword [edi + eax*4]
jne 0x10137b57
mov edi, dword [esp + 0x1d4]
mov ecx, dword [esp + 0x1d8]
jmp 0x10137be9
mov edx, dword [esp + 0x1d4]
mov dword [esp + 0x288], eax
mov edi, ebx
mov dword [esp + 0x218], edi
mov dword [esp + 0x29c], esi
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x29c]
lea eax, [edx + edx*2]
shl eax, 5
mov ebx, dword [eax + ecx + 0x58]
test ebx, ebx
jle 0x10137bb8
mov esi, ecx
mov edi, dword [esp + 0x274]
mov eax, dword [eax + esi + 0x48]
mov esi, dword [esp + 0x288]
mov esi, dword [edi + esi*4]
xor ecx, ecx
cmp esi, dword [eax + ecx*4]
je 0x10139c40
inc ecx
cmp ecx, ebx
jl 0x10137baa
lea esi, [esi]
lea edi, [edi]
dec edx
jns 0x10137b7c
mov edi, dword [esp + 0x218]
mov eax, dword [esp + 0x288]
mov esi, dword [esp + 0x29c]
mov ecx, dword [esp + 0x28c]
mov ebx, 0xffffffff
cmp edi, 0xffffffff
je 0x10137c23
lea edi, [edi + edi*2]
shl edi, 5
mov edx, dword [edi + esi + 0x54]
movsd xmm1, qword [edi + esi + 0x38]
addsd xmm1, qword [edx + ecx*8]
movsd xmm2, qword [edi + esi + 0x40]
movsd qword [edi + esi + 0x38], xmm1
movaps xmm3, xmm2
subsd xmm3, xmm1
divsd xmm3, xmm2
mulsd xmm3, xmm0
movsd qword [edi + esi], xmm3
inc eax
cmp eax, dword [esp + 0x26c]
jl 0x10137b31
mov edi, dword [esp + 0x1d8]
mov ebx, dword [esp + 0x15c]
mov dword [esp + 0x28c], ecx
mov ecx, dword [esp + 0x274]
push ecx
call fcn.101bceaa
pop ecx
inc edi
cmp edi, dword [esi + ebx + 0x58]
jl 0x10137a4f
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov esi, dword [0x102198bc]
test esi, esi
jl 0x10139a54
mov eax, dword [0x1021f864]
test eax, eax
jg 0x10137c8d
cmp dword [0x1021f86c], 0
jle 0x101382d3
lea eax, [eax*8 + 8]
push eax
call fcn.101bcde0
mov dword [esp + 0x114], eax
mov eax, dword [0x1021f864]
lea ecx, [eax*8 + 8]
push ecx
call fcn.101bcde0
add esp, 8
mov dword [esp + 0xd8], eax
mov eax, dword [0x1021f864]
mov dword [esp + 0xa4], eax
test eax, eax
jle 0x10137e4f
mov eax, dword [esp + 0x110]
lea edx, [eax + 8]
and edx, 0xf
je 0x10137cee
test dl, 7
jne 0x10139a5f
mov edx, 1
lea eax, [edx + 8]
cmp eax, dword [esp + 0xa4]
jg 0x10139a5f
mov eax, dword [esp + 0xa4]
mov ecx, eax
sub ecx, edx
and ecx, 7
neg ecx
add ecx, eax
mov dword [esp + 0xa0], ecx
test edx, edx
jbe 0x10137d43
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x110]
xor eax, eax
pxor xmm0, xmm0
movsd qword [ecx + eax*8 + 8], xmm0
movsd qword [ebx + eax*8 + 8], xmm0
inc eax
cmp eax, edx
jb 0x10137d2f
mov ebx, dword [ebp + 0x2c]
mov eax, dword [esp + 0xd8]
lea ecx, [eax + edx*8 + 8]
test cl, 0xf
je 0x10137db9
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x110]
pxor xmm0, xmm0
movsd qword [ecx + edx*8 + 8], xmm0
movhpd qword [ecx + edx*8 + 0x10], xmm0
movaps xmmword [ebx + edx*8 + 8], xmm0
movsd qword [ecx + edx*8 + 0x18], xmm0
movhpd qword [ecx + edx*8 + 0x20], xmm0
movaps xmmword [ebx + edx*8 + 0x18], xmm0
movsd qword [ecx + edx*8 + 0x28], xmm0
movhpd qword [ecx + edx*8 + 0x30], xmm0
movaps xmmword [ebx + edx*8 + 0x28], xmm0
movsd qword [ecx + edx*8 + 0x38], xmm0
movhpd qword [ecx + edx*8 + 0x40], xmm0
movaps xmmword [ebx + edx*8 + 0x38], xmm0
add edx, 8
cmp edx, eax
jb 0x10137d6c
jmp 0x10137e01
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x110]
pxor xmm0, xmm0
movaps xmmword [ecx + edx*8 + 8], xmm0
movaps xmmword [ebx + edx*8 + 8], xmm0
movaps xmmword [ecx + edx*8 + 0x18], xmm0
movaps xmmword [ebx + edx*8 + 0x18], xmm0
movaps xmmword [ecx + edx*8 + 0x28], xmm0
movaps xmmword [ebx + edx*8 + 0x28], xmm0
movaps xmmword [ecx + edx*8 + 0x38], xmm0
movaps xmmword [ebx + edx*8 + 0x38], xmm0
add edx, 8
cmp edx, eax
jb 0x10137dd2
mov ebx, dword [ebp + 0x2c]
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jbe 0x10137e4f
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0x110]
pxor xmm0, xmm0
movsd qword [ebx + eax*8 + 8], xmm0
movsd qword [edx + eax*8 + 8], xmm0
inc eax
cmp eax, ecx
jb 0x10137e3b
mov ebx, dword [ebp + 0x2c]
mov eax, dword [0x1021f86c]
lea ecx, [eax*8 + 8]
push ecx
call fcn.101bcde0
mov dword [esp + 0x118], eax
mov eax, dword [0x1021f86c]
lea ecx, [eax*8 + 8]
push ecx
call fcn.101bcde0
add esp, 8
mov dword [esp + 0x9c], eax
mov eax, dword [0x1021f86c]
mov dword [esp + 0x98], eax
test eax, eax
jle 0x10138003
mov eax, dword [esp + 0x114]
lea eax, [eax + 8]
and eax, 0xf
je 0x10137eb4
test al, 7
jne 0x10139a6d
mov eax, 1
lea ecx, [eax + 8]
cmp ecx, dword [esp + 0x98]
jg 0x10139a6d
mov ecx, dword [esp + 0x98]
mov edx, ecx
sub edx, eax
and edx, 7
neg edx
add edx, ecx
mov dword [esp + 0x6c], edx
test eax, eax
jbe 0x10137f06
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x114]
xor ecx, ecx
pxor xmm0, xmm0
movsd qword [ebx + ecx*8 + 8], xmm0
movsd qword [edx + ecx*8 + 8], xmm0
inc ecx
cmp ecx, eax
jb 0x10137ef2
mov ebx, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x9c]
lea ecx, [ecx + eax*8 + 8]
test cl, 0xf
je 0x10137f79
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x114]
pxor xmm0, xmm0
movsd qword [ebx + eax*8 + 8], xmm0
movhpd qword [ebx + eax*8 + 0x10], xmm0
movaps xmmword [edx + eax*8 + 8], xmm0
movsd qword [ebx + eax*8 + 0x18], xmm0
movhpd qword [ebx + eax*8 + 0x20], xmm0
movaps xmmword [edx + eax*8 + 0x18], xmm0
movsd qword [ebx + eax*8 + 0x28], xmm0
movhpd qword [ebx + eax*8 + 0x30], xmm0
movaps xmmword [edx + eax*8 + 0x28], xmm0
movsd qword [ebx + eax*8 + 0x38], xmm0
movhpd qword [ebx + eax*8 + 0x40], xmm0
movaps xmmword [edx + eax*8 + 0x38], xmm0
add eax, 8
cmp eax, ecx
jb 0x10137f2c
jmp 0x10137fbe
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x114]
pxor xmm0, xmm0
movaps xmmword [ebx + eax*8 + 8], xmm0
movaps xmmword [edx + eax*8 + 8], xmm0
movaps xmmword [ebx + eax*8 + 0x18], xmm0
movaps xmmword [edx + eax*8 + 0x18], xmm0
movaps xmmword [ebx + eax*8 + 0x28], xmm0
movaps xmmword [edx + eax*8 + 0x28], xmm0
movaps xmmword [ebx + eax*8 + 0x38], xmm0
movaps xmmword [edx + eax*8 + 0x38], xmm0
add eax, 8
cmp eax, ecx
jb 0x10137f8f
mov ebx, dword [ebp + 0x2c]
mov dword [esp + 0x6c], ecx
mov eax, dword [esp + 0x98]
cmp eax, dword [esp + 0x6c]
jbe 0x10138003
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x9c]
mov edx, dword [esp + 0x114]
pxor xmm0, xmm0
movsd qword [ebx + eax*8 + 8], xmm0
movsd qword [edx + eax*8 + 8], xmm0
inc eax
cmp eax, ecx
jb 0x10137fef
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov dword [esp + 0x158], ecx
test ecx, ecx
jle 0x10138298
mov esi, dword [ebp + 8]
mov edx, dword [0x10219190]
movsd xmm2, qword [0x101f27a0]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov esi, dword [esi + 0x54]
mov dword [esp + 0x140], eax
mov dword [esp + 0x118], esi
mov dword [esp + 0x184], edi
mov dword [esp + 0x144], ecx
mov eax, 1
mov esi, dword [esp + 0x144]
mov ecx, dword [esp + 0x140]
mov ebx, dword [esi + eax*4]
mov esi, dword [ecx + eax*4]
mov dword [esp + 0x148], ebx
imul ebx, ebx, 0xa10
mov ecx, dword [ebx + edx + 0x9fc]
test ecx, ecx
je 0x1013809b
cmp dword [ebx + edx + 0xa00], 0
je 0x1013809b
movsd xmm1, qword [ecx + 0x18]
subsd xmm1, qword [ebx + edx + 0x48]
addsd xmm1, qword [ebx + edx + 0x50]
jmp 0x101380a1
movsd xmm1, qword [ebx + edx + 0x50]
mov ecx, dword [ebx + edx + 0x930]
mov dword [esp + 0x14c], ecx
test ecx, ecx
je 0x1013810e
mov edi, dword [ecx + esi*4]
test edi, edi
jle 0x1013810e
mov ecx, dword [esp + 0x118]
cmp dword [ecx + eax*4], 0
je 0x101380f0
cmp dword [ebx + edx + 0x5c], 0
je 0x101380e4
movaps xmm0, xmm1
mov ecx, dword [esp + 0x9c]
addsd xmm0, qword [ecx + edi*8]
movsd qword [ecx + edi*8], xmm0
jmp 0x101380f0
mov ecx, dword [esp + 0x9c]
movsd qword [ecx + edi*8], xmm2
movaps xmm0, xmm1
mov ecx, dword [esp + 0x14c]
mov edi, dword [esp + 0x114]
mov ecx, dword [ecx + esi*4]
addsd xmm0, qword [edi + ecx*8]
movsd qword [edi + ecx*8], xmm0
mov ecx, dword [ebx + edx + 0x934]
test ecx, ecx
je 0x1013817c
mov ecx, dword [ecx + esi*4]
test ecx, ecx
jle 0x1013817c
mov edi, dword [esp + 0x118]
cmp dword [edi + eax*4], 0
je 0x10138156
cmp dword [ebx + edx + 0x5c], 0
je 0x1013814a
movaps xmm0, xmm1
mov ebx, dword [esp + 0xd8]
addsd xmm0, qword [ebx + ecx*8]
movsd qword [ebx + ecx*8], xmm0
jmp 0x10138156
mov ebx, dword [esp + 0xd8]
movsd qword [ebx + ecx*8], xmm2
imul ecx, dword [esp + 0x148], 0xa10
mov ebx, dword [ecx + edx + 0x934]
mov edi, dword [ebx + esi*4]
mov esi, dword [esp + 0x110]
addsd xmm1, qword [esi + edi*8]
movsd qword [esi + edi*8], xmm1
inc eax
cmp eax, dword [esp + 0x158]
jle 0x10138052
mov edi, dword [esp + 0x184]
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x118]
mov esi, 1
mov ebx, dword [esp + 0x140]
cmp dword [eax + esi*4], 0
mov edx, dword [ecx + esi*4]
mov ebx, dword [ebx + esi*4]
je 0x1013826e
imul edx, edx, 0xa10
mov ecx, dword [0x10219190]
mov eax, dword [ecx + edx + 0x934]
test eax, eax
je 0x1013826e
mov eax, dword [eax + ebx*4]
test eax, eax
jle 0x1013826e
mov edi, dword [esp + 0x110]
movsd xmm0, qword [edi + eax*8]
mulsd xmm0, qword [0x101f2798]
mov edi, dword [esp + 0xd8]
comisd xmm0, xmmword [edi + eax*8]
jbe 0x1013826e
mov eax, dword [ecx + edx + 0x930]
test eax, eax
je 0x1013826e
mov ecx, dword [eax + ebx*4]
test ecx, ecx
jle 0x1013826e
mov eax, dword [esp + 0x114]
mov edx, dword [esp + 0x9c]
movsd xmm0, qword [eax + ecx*8]
mulsd xmm0, qword [0x101f2798]
comisd xmm0, xmmword [edx + ecx*8]
jbe 0x1013826e
mov eax, dword [ebp + 8]
lea ebx, [esp + 0x54]
mov dword [esp + 0xc], ebx
mov edx, esi
lea ecx, [esp + 0x50]
call fcn.10139cf0
mov eax, dword [esp + 0x54]
push dword [esp + 0x50]
sub dword [0x102198cc], eax
call fcn.101bceaa
pop ecx
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x68]
mov dword [esp + 0x158], edx
inc esi
cmp esi, dword [esp + 0x158]
jg 0x10138288
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 4]
mov eax, dword [edx + 0x54]
mov ecx, dword [edx]
jmp 0x101381ab
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov esi, dword [0x102198bc]
push dword [esp + 0x110]
call fcn.101bceaa
push dword [esp + 0xdc]
call fcn.101bceaa
push dword [esp + 0x11c]
call fcn.101bceaa
push dword [esp + 0xa8]
call fcn.101bceaa
add esp, 0x10
test esi, esi
jl 0x10139a54
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
test ecx, ecx
jle 0x10138456
mov eax, dword [0x10219190]
mov dword [esp + 0x224], ecx
mov dword [esp + 0x184], edi
mov edx, 1
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
imul esi, dword [ecx + edx*4], 0xa10
cmp dword [eax + esi + 0x84c], 0
je 0x10138429
mov ecx, dword [eax + esi + 0x870]
mov dword [esp + 0x2ac], ecx
test ecx, ecx
jle 0x10138429
mov ecx, dword [edi + 0x54]
mov ebx, dword [edi + 8]
mov dword [esp + 0x2b4], ecx
mov dword [esp + 0x2b0], ebx
mov ebx, dword [eax + esi + 0x850]
mov dword [esp + 0x1cc], esi
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1c8], eax
xor ecx, ecx
mov eax, ebx
mov ebx, ecx
mov esi, dword [esp + 0x2b0]
mov edi, dword [eax + ebx*4]
mov esi, dword [esi + edi*4]
mov edi, dword [esp + 0x2b4]
mov esi, dword [esi]
lea edx, [ecx + 1]
cmp dword [edi + esi*4], 0
cmovne ecx, edx
inc ebx
cmp ebx, dword [esp + 0x2ac]
jl 0x1013835f
mov esi, dword [esp + 0x1cc]
mov edx, dword [esp + 0x1c4]
mov eax, dword [esp + 0x1c8]
mov edi, dword [ebp + 8]
test ecx, ecx
je 0x10138429
cmp ecx, dword [esp + 0x2ac]
je 0x10138429
mov dword [esp + 0x1c4], edx
mov edx, dword [esp + 0x2b0]
xor ebx, ebx
mov eax, dword [eax + esi + 0x850]
mov eax, dword [eax + ebx*4]
mov ecx, dword [edx + eax*4]
lea edx, [esp + 0x1e0]
mov eax, edi
mov dword [esp + 0xc], edx
mov edx, dword [ecx]
lea ecx, [esp + 0x1dc]
call fcn.10139cf0
mov eax, dword [esp + 0x1e0]
push dword [esp + 0x1dc]
sub dword [0x102198cc], eax
call fcn.101bceaa
pop ecx
mov eax, dword [0x10219190]
inc ebx
cmp ebx, dword [eax + esi + 0x870]
jge 0x10138418
mov edx, dword [edi + 8]
jmp 0x101383c2
mov edx, dword [esp + 0x1c4]
mov ecx, dword [edi + 0x68]
mov dword [esp + 0x224], ecx
inc edx
cmp edx, dword [esp + 0x224]
jle 0x101382fc
mov ecx, dword [esp + 0x224]
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov esi, dword [0x102198bc]
test esi, esi
jl 0x10138c5e
mov eax, dword [ebp + 8]
lea edx, [esp + 0x124]
call fcn.10139ec0
test eax, eax
jne 0x10138477
cmp dword [esp + 0x124], 0
jne 0x1013857b
mov esi, dword [0x102198bc]
mov ecx, dword [0x102198dc]
lea eax, [esi + esi*2]
mov edx, eax
shl edx, 5
cmp dword [ecx + edx + 0x58], 0
jle 0x1013854f
cvtsi2sd xmm0, esi
mov esi, dword [ebp + 8]
movsd qword [esp + 0x1a0], xmm0
mov dword [esp + 0x184], edi
xor edx, edx
shl eax, 5
mov ebx, eax
mov eax, ecx
mov edi, edx
movsd xmm1, qword [0x10219890]
mulsd xmm1, qword [esp + 0x1a0]
mov ecx, dword [eax + ebx + 0x50]
movsd xmm0, qword [ecx + edi*8]
mov ecx, dword [eax + ebx + 0x4c]
subsd xmm0, xmm1
subsd xmm0, qword [0x1021fb90]
subsd xmm1, qword [ecx + edi*8]
addsd xmm1, qword [0x1021fb90]
comisd xmm0, xmm1
jbe 0x10138534
lea ecx, [esp + 0x120]
mov edx, dword [eax + ebx + 0x48]
mov edx, dword [edx + edi*4]
mov dword [esp + 0xc], ecx
mov eax, esi
lea ecx, [esp + 0x11c]
call fcn.10139cf0
mov ecx, dword [esp + 0x120]
push dword [esp + 0x11c]
sub dword [0x102198cc], ecx
call fcn.101bceaa
pop ecx
mov eax, dword [0x102198dc]
inc edi
cmp edi, dword [eax + ebx + 0x58]
jl 0x101384b8
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov esi, dword [0x102198bc]
mov eax, 0xffffffff
mov dword [0x102198a4], eax
mov dword [0x10219898], eax
dec esi
mov dword [0x102198a8], eax
mov dword [0x1021989c], eax
mov dword [0x102198ac], eax
mov dword [0x102198a0], eax
mov dword [0x102198bc], esi
jmp 0x10138581
mov esi, dword [0x102198bc]
test esi, esi
jl 0x10139a54
cmp dword [0x1021f690], 0
jle 0x10138621
cmp dword [0x1021f6b8], 0
jne 0x10138621
mov eax, dword [0x102198cc]
mov ecx, dword [0x1022002c]
mov dword [esp + 0x10c], eax
test ecx, ecx
mov dword [esp + 0x104], eax
jle 0x1013863a
mov eax, dword [0x10220028]
mov ebx, dword [esp + 0x10c]
mov dword [esp + 0x184], edi
mov edi, eax
mov dword [esp + 0x1d4], esi
xor eax, eax
pxor xmm1, xmm1
mov esi, eax
movsd xmm0, qword [esi + edi + 0x130]
comisd xmm0, xmm1
jbe 0x101385fc
mov edx, dword [esi + edi + 0x14]
cmp edx, ebx
cmovge ebx, edx
add esi, 0x168
inc eax
cmp eax, ecx
jb 0x101385e4
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x1d4]
mov dword [esp + 0x10c], ebx
mov ebx, dword [ebp + 0x2c]
jmp 0x1013863a
mov eax, dword [0x1021f940]
mov ecx, dword [0x102198cc]
mov dword [esp + 0x10c], eax
mov dword [esp + 0x104], ecx
mov eax, dword [esp + 0x10c]
sub eax, dword [esp + 0x104]
cmp eax, 0xf
jl 0x10138666
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x68]
sub edx, dword [0x1021fc88]
mov ecx, dword [eax + 0x14]
sub ecx, dword [eax + 0x18]
sub edx, ecx
cmp edx, 1
jle 0x1013869e
mov eax, dword [0x102198d0]
mov ecx, dword [esp + 0x10c]
add ecx, dword [0x102198d4]
inc eax
sub ecx, dword [esp + 0x104]
mov dword [esp + 0x108], eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0x10c], ecx
mov dword [esp + 0xe8], ecx
jmp 0x101386bc
xor eax, eax
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], eax
mov dword [esp + 0x108], eax
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0x1d4], esi
add eax, eax
cdq
mov dword [esp + 0x184], edi
mov edi, 1
cmp ecx, 1
mov esi, ecx
cmovle esi, edi
idiv esi
cmp ecx, eax
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x1d4]
jle 0x10138886
push esi
push 1
xor eax, eax
mov dword [0x102198d0], eax
mov dword [0x102198d4], eax
call fcn.100ed700
add esp, 8
mov edx, eax
cmp dword [0x1021f838], 0
mov eax, dword [0x102198bc]
je 0x1013874b
cmp dword [0x1021f834], 0
je 0x1013874b
cvtsi2sd xmm1, edx
cvtsi2sd xmm2, eax
movsd xmm0, qword [0x101f27b8]
mulsd xmm2, xmm0
comisd xmm1, xmm2
cmova edx, eax
mov esi, eax
sub esi, edx
cmp eax, esi
jl 0x10138878
mov ecx, dword [0x102198dc]
mov dword [esp + 0x184], edi
mov ebx, eax
mov dword [esp + 0x1ec], edx
mov edx, esi
lea esi, [ebx + ebx*2]
shl esi, 5
mov eax, dword [ecx + esi + 0x58]
test eax, eax
jle 0x10138858
cvtsi2sd xmm0, ebx
movsd qword [esp + 0x138], xmm0
xor edi, edi
cmp ebx, edx
jg 0x101387fd
test ebx, ebx
je 0x101387fd
movsd xmm1, qword [0x10219890]
movsd xmm0, qword [0x1021fb90]
movsd xmm5, qword [esp + 0x138]
mov dword [esp + 0x1d4], edx
movaps xmm2, xmm5
movaps xmm4, xmm0
mulsd xmm2, xmm1
mov edx, dword [ecx + esi + 0x50]
movsd xmm3, qword [edx + edi*8]
mov edx, dword [ecx + esi + 0x4c]
subsd xmm4, qword [edx + edi*8]
subsd xmm3, xmm2
subsd xmm3, xmm0
addsd xmm4, xmm2
comisd xmm3, xmm4
ja 0x101387f4
inc edi
cmp edi, eax
jl 0x101387b8
mov edx, dword [esp + 0x1d4]
jmp 0x10138858
movsd qword [esp + 0x138], xmm5
mov eax, dword [ebp + 8]
lea edx, [esp + 0x1e8]
mov ecx, dword [ecx + esi + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [ecx + edi*4]
lea ecx, [esp + 0x1e4]
call fcn.10139cf0
mov edx, dword [esp + 0x1e8]
push dword [esp + 0x1e4]
sub dword [0x102198cc], edx
call fcn.101bceaa
pop ecx
mov edx, dword [0x102198bc]
sub edx, dword [esp + 0x1ec]
mov ecx, dword [0x102198dc]
mov eax, dword [ecx + esi + 0x58]
inc edi
cmp edi, eax
jl 0x10138790
lea esi, [esi]
lea edi, [edi]
dec ebx
cmp ebx, edx
jge 0x1013876f
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov esi, edx
dec esi
mov dword [0x102198bc], esi
jns 0x1013889f
jmp 0x10139a54
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov dword [0x102198d4], eax
mov dword [0x102198d0], ecx
cmp dword [0x10219d74], 3
je 0x10139b55
cmp dword [0x1021f8f8], 3
je 0x10139adf
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
test ecx, ecx
jle 0x10138970
mov eax, dword [ebp + 8]
movsd xmm0, qword [0x101f27b0]
movsd xmm2, qword [esp + 0x200]
movsd xmm3, qword [esp + 0x1f8]
mov eax, dword [eax + 0x10]
mov ebx, dword [ebp + 8]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x184], edi
mov eax, 1
mov dword [esp + 0x1d4], esi
mov esi, dword [esp + 0xfc]
cmp dword [esi + eax*4], 0
je 0x10138948
mov edi, dword [ebx + 0x2c]
mov edx, dword [edi + eax*4]
mov edi, dword [ebx + 0x38]
mov edi, dword [edi + eax*4]
shl edx, 4
movsd xmm1, qword [edi + edx]
comisd xmm1, xmm0
jbe 0x10138948
mov edx, dword [ebx + 0x44]
movaps xmm0, xmm1
mov dword [esp + 0x290], eax
mov edi, eax
shl edi, 4
movsd xmm2, qword [edx + edi]
movsd xmm3, qword [edx + edi + 8]
inc eax
cmp eax, ecx
jle 0x1013890b
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
movsd qword [esp + 0x200], xmm2
movsd qword [esp + 0x1f8], xmm3
mov eax, dword [esp + 0x290]
cmp eax, dword [0x102197d8]
jne 0x10138c26
movsd xmm2, qword [0x1020c110]
movsd xmm0, qword [esp + 0x200]
subsd xmm0, qword [0x102197e0]
comisd xmm2, xmm0
jbe 0x10138c26
pxor xmm1, xmm1
subsd xmm1, xmm2
comisd xmm0, xmm1
jbe 0x10138c26
movsd xmm0, qword [esp + 0x1f8]
subsd xmm0, qword [0x102197e8]
comisd xmm2, xmm0
jbe 0x10138c26
comisd xmm0, xmm1
jbe 0x10138c26
mov eax, dword [0x102198dc]
mov dword [esp + 0x100], eax
lea edx, [esi + esi*2]
shl edx, 5
cmp dword [eax + edx + 0x58], 0
mov dword [esp + 0x60], edx
jle 0x10138c11
cvtsi2sd xmm0, esi
movsd qword [esp + 0x90], xmm0
mov dword [esp + 0x184], edi
mov edi, edx
xor eax, eax
mov ebx, eax
mov dword [esp + 0x1d4], esi
mov esi, dword [esp + 0x100]
movsd xmm2, qword [0x10219890]
mulsd xmm2, qword [esp + 0x90]
movsd xmm0, qword [0x1021fb90]
mov edx, dword [esi + edi + 0x50]
movsd xmm1, qword [edx + ebx*8]
mov ecx, dword [esi + edi + 0x4c]
subsd xmm1, xmm2
subsd xmm1, xmm0
addsd xmm2, xmm0
subsd xmm2, qword [ecx + ebx*8]
comisd xmm1, xmm2
jbe 0x10138bf0
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x68]
mov esi, dword [esi + edi + 0x48]
mov edx, dword [esi + ebx*4]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0x64]
call fcn.10139cf0
mov edx, dword [esp + 0x68]
mov esi, dword [0x102198dc]
mov ecx, dword [esp + 0x64]
sub dword [0x102198cc], edx
test edx, edx
jle 0x10138be9
movsd xmm0, qword [0x101f27a8]
mov dword [esp + 0xec], ecx
mov dword [esp + 0xe0], edx
xor eax, eax
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x294]
mov ecx, 0xffffffff
mov edx, dword [esp + 0xdc]
mov edi, dword [esp + 0xec]
cmp edx, dword [edi + eax*4]
jne 0x10138af6
mov edi, dword [esp + 0x1d4]
mov ebx, dword [esp + 0xa8]
jmp 0x10138b88
mov edx, dword [esp + 0x1d4]
mov dword [esp + 0xf8], eax
mov edi, ecx
mov dword [esp + 0xb4], edi
mov dword [esp + 0x100], esi
mov dword [esp + 0x294], ebx
mov ecx, dword [esp + 0x100]
lea eax, [edx + edx*2]
shl eax, 5
mov ebx, dword [eax + ecx + 0x58]
test ebx, ebx
jle 0x10138b57
mov esi, ecx
mov edi, dword [esp + 0xec]
mov eax, dword [eax + esi + 0x48]
mov esi, dword [esp + 0xf8]
mov esi, dword [edi + esi*4]
xor ecx, ecx
cmp esi, dword [eax + ecx*4]
je 0x10139a9a
inc ecx
cmp ecx, ebx
jl 0x10138b49
lea esi, [esi]
lea edi, [edi]
dec edx
jns 0x10138b1b
mov edi, dword [esp + 0xb4]
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x100]
mov ebx, dword [esp + 0x294]
mov ecx, 0xffffffff
cmp edi, 0xffffffff
je 0x10138bc2
lea edi, [edi + edi*2]
shl edi, 5
mov edx, dword [edi + esi + 0x54]
movsd xmm1, qword [edi + esi + 0x38]
addsd xmm1, qword [edx + ebx*8]
movsd xmm2, qword [edi + esi + 0x40]
movsd qword [edi + esi + 0x38], xmm1
movaps xmm3, xmm2
subsd xmm3, xmm1
divsd xmm3, xmm2
mulsd xmm3, xmm0
movsd qword [edi + esi], xmm3
inc eax
cmp eax, dword [esp + 0xe0]
jl 0x10138ad0
mov ecx, dword [esp + 0xec]
mov edi, dword [esp + 0x60]
mov dword [esp + 0x294], ebx
mov ebx, dword [esp + 0xa8]
push ecx
call fcn.101bceaa
pop ecx
inc ebx
cmp ebx, dword [esi + edi + 0x58]
jl 0x10138a26
mov edi, dword [esp + 0x184]
mov ebx, dword [ebp + 0x2c]
mov eax, dword [ebp + 8]
mov esi, dword [0x102198bc]
mov ecx, dword [eax + 0x68]
dec esi
mov dword [0x102198bc], esi
test edi, edi
je 0x10139a78
test ecx, ecx
jg 0x10138c6e
jmp 0x10138c8e
movsd xmm0, qword [esp + 0x200]
movsd xmm1, qword [esp + 0x1f8]
movsd qword [0x102197e0], xmm0
movsd qword [0x102197e8], xmm1
mov dword [0x102197d8], eax
test edi, edi
je 0x10139a7c
test ecx, ecx
jg 0x10138c6e
jmp 0x10139acc
test edi, edi
je 0x10139a8b
test ecx, ecx
jle 0x10139c31
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x54]
mov eax, 1
cmp dword [edx + eax*4], 0
je 0x10138c89
cmp dword [edi + eax*4], 0
je 0x10139b78
inc eax
cmp eax, ecx
jle 0x10138c79
test esi, esi
jl 0x10139a8b
cmp dword [esp + 0x16c], 0
jge 0x10138caa
mov eax, dword [0x10219180]
mov dword [0x102198b4], eax
test ecx, ecx
jle 0x10138d24
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x178], 1
mov ebx, dword [esp + 0x178]
mov dword [esp + 0x17c], 0x18
mov dword [esp + 0x174], eax
mov eax, dword [0x102198d8]
mov edx, dword [esp + 0x174]
mov dword [esp + 0x184], edi
mov dword [esp + 0x1d4], esi
mov esi, dword [esp + 0x17c]
cmp dword [edx + ebx*4], 1
je 0x10139bdf
mov dword [esi + eax + 8], 0
add esi, 0x18
inc ebx
cmp ebx, ecx
jle 0x10138cf9
mov edi, dword [esp + 0x184]
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
cmp dword [ebp + 0xc], 0
jne 0x10139210
movsd xmm1, qword [0x102197f8]
cmp esi, dword [esp + 0x16c]
jge 0x10138d7d
test esi, esi
jl 0x10138d7d
mov ecx, dword [0x102198dc]
lea eax, [esi + 1]
mov edx, eax
xor eax, eax
mov ebx, eax
movsd xmm0, qword [ebx + ecx + 0x18]
movsd xmm2, qword [ebx + ecx + 0x20]
addsd xmm0, xmm1
movsd qword [ebx + ecx + 0x18], xmm0
addsd xmm2, xmm1
movsd qword [ebx + ecx + 0x20], xmm2
inc eax
add ebx, 0x60
cmp eax, edx
jb 0x10138d52
mov ebx, dword [ebp + 0x2c]
cmp esi, dword [esp + 0x16c]
jne 0x1013910c
mov ecx, dword [0x10219858]
movsd xmm0, qword [0x10219810]
mov dword [esp + 0xc4], ecx
lea eax, [ecx + 1]
test ecx, ecx
mov dword [esp + 0xd4], eax
jl 0x10138de4
mov ecx, dword [0x102198dc]
mov edx, eax
xor eax, eax
mov ebx, eax
movsd xmm2, qword [ebx + ecx + 8]
movsd xmm3, qword [ebx + ecx + 0x10]
addsd xmm2, xmm0
movsd qword [ebx + ecx + 8], xmm2
addsd xmm3, xmm0
movsd qword [ebx + ecx + 0x10], xmm3
inc eax
add ebx, 0x60
cmp eax, edx
jb 0x10138db9
mov ebx, dword [ebp + 0x2c]
mov eax, dword [0x10219868]
lea ecx, [eax - 1]
cmp ecx, dword [esp + 0xd4]
jle 0x10139119
mov ecx, dword [0x102198dc]
movsd xmm6, qword [0x10219828]
movsd xmm5, qword [0x10219838]
movsd xmm3, qword [0x10219830]
mov dword [esp + 0xb8], ecx
mov ecx, eax
sub ecx, dword [esp + 0xc4]
add ecx, 0xfffffffe
cmp ecx, 8
mov dword [esp + 0xc8], ecx
jl 0x10139b87
movsd xmm4, qword [esp + 0x1f0]
movsd qword [esp + 0x80], xmm6
movsd qword [esp + 0x88], xmm5
movaps xmm2, xmm4
mov dword [esp + 0x1d4], esi
mov edx, ecx
and edx, 7
mov dword [esp + 0xbc], 0
mov esi, dword [esp + 0xbc]
neg edx
add edx, ecx
mov ecx, dword [esp + 0xc4]
addsd xmm2, xmm6
lea ecx, [ecx + ecx*2]
shl ecx, 5
movaps xmm7, xmm5
unpcklpd xmm7, xmm7
add ecx, dword [esp + 0xb8]
movaps xmmword [esp + 0x70], xmm7
movaps xmm5, xmmword [esp + 0x70]
mov dword [esp + 0xc0], ecx
mov ecx, edx
addsd xmm4, xmm3
unpcklpd xmm2, xmm2
mov ebx, dword [esp + 0xc0]
unpcklpd xmm4, xmm4
movaps xmm7, xmm2
lea edx, [esi + esi*2]
shl edx, 5
movsd xmm6, qword [ebx + edx + 0x88]
movhpd xmm6, qword [ebx + edx + 0xe8]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x88], xmm7
movhpd qword [ebx + edx + 0xe8], xmm7
movaps xmm7, xmm4
movsd xmm6, qword [ebx + edx + 0x90]
movhpd xmm6, qword [ebx + edx + 0xf0]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x90], xmm7
movhpd qword [ebx + edx + 0xf0], xmm7
movaps xmm7, xmm2
movsd xmm6, qword [ebx + edx + 0x148]
movhpd xmm6, qword [ebx + edx + 0x1a8]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x148], xmm7
movhpd qword [ebx + edx + 0x1a8], xmm7
movaps xmm7, xmm4
movsd xmm6, qword [ebx + edx + 0x150]
movhpd xmm6, qword [ebx + edx + 0x1b0]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x150], xmm7
movhpd qword [ebx + edx + 0x1b0], xmm7
movaps xmm7, xmm2
movsd xmm6, qword [ebx + edx + 0x208]
movhpd xmm6, qword [ebx + edx + 0x268]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x208], xmm7
movhpd qword [ebx + edx + 0x268], xmm7
movaps xmm7, xmm4
movsd xmm6, qword [ebx + edx + 0x210]
movhpd xmm6, qword [ebx + edx + 0x270]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x210], xmm7
movhpd qword [ebx + edx + 0x270], xmm7
movaps xmm7, xmm2
movsd xmm6, qword [ebx + edx + 0x2c8]
movhpd xmm6, qword [ebx + edx + 0x328]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x2c8], xmm7
movhpd qword [ebx + edx + 0x328], xmm7
movaps xmm7, xmm4
movsd xmm6, qword [ebx + edx + 0x2d0]
movhpd xmm6, qword [ebx + edx + 0x330]
addpd xmm6, xmm5
maxpd xmm7, xmm6
movlpd qword [ebx + edx + 0x2d0], xmm7
movhpd qword [ebx + edx + 0x330], xmm7
add esi, 8
cmp esi, ecx
jb 0x10138ebf
movsd xmm6, qword [esp + 0x80]
movsd xmm5, qword [esp + 0x88]
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
mov edx, ecx
lea ecx, [edx + edx*2]
shl ecx, 5
cmp edx, dword [esp + 0xc8]
mov dword [esp + 0xcc], ecx
jae 0x10139119
movsd xmm2, qword [esp + 0x1f0]
mov ecx, dword [esp + 0xc4]
mov ebx, edx
mov dword [esp + 0x1d4], esi
addsd xmm6, xmm2
lea ecx, [ecx + ecx*2]
mov esi, dword [esp + 0xc8]
shl ecx, 5
add ecx, dword [esp + 0xb8]
addsd xmm3, xmm2
mov edx, ecx
mov ecx, dword [esp + 0xcc]
movaps xmm4, xmm6
movsd xmm2, qword [ecx + edx + 0x88]
movsd xmm7, qword [ecx + edx + 0x90]
addsd xmm2, xmm5
maxsd xmm4, xmm2
movsd qword [ecx + edx + 0x88], xmm4
movaps xmm2, xmm3
addsd xmm7, xmm5
inc ebx
maxsd xmm2, xmm7
movsd qword [ecx + edx + 0x90], xmm2
add ecx, 0x60
cmp ebx, esi
jb 0x101390be
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
jmp 0x10139119
mov eax, dword [0x10219868]
movsd xmm0, qword [0x10219810]
cmp esi, dword [esp + 0x16c]
jle 0x10139225
mov ecx, dword [esp + 0x16c]
lea edx, [ecx + 1]
test ecx, ecx
jl 0x1013917d
mov ecx, dword [0x102198dc]
mov dword [esp + 0xac], ecx
mov dword [esp + 0x1d4], esi
xor ecx, ecx
mov esi, dword [esp + 0xac]
mov ebx, ecx
movsd xmm2, qword [ecx + esi + 0x18]
movsd xmm3, qword [ecx + esi + 0x20]
movsd qword [ecx + esi + 8], xmm2
movsd qword [ecx + esi + 0x10], xmm3
inc ebx
add ecx, 0x60
cmp ebx, edx
jb 0x10139153
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
mov ecx, esi
sub ecx, dword [esp + 0x16c]
cmp edx, esi
mov dword [esp + 0xd0], ecx
jg 0x10139225
movsd xmm2, qword [0x10219840]
mov ecx, dword [esp + 0x16c]
mov dword [esp + 0x1d4], esi
mov esi, dword [esp + 0xd0]
xor edx, edx
lea ecx, [ecx + ecx*2]
shl ecx, 5
add ecx, dword [0x102198dc]
mov dword [esp + 0xb0], ecx
mov ecx, edx
mov ebx, dword [esp + 0xb0]
movsd xmm3, qword [ecx + ebx + 0x88]
movsd xmm4, qword [ecx + ebx + 0x90]
addsd xmm3, xmm2
movsd qword [ecx + ebx + 0x88], xmm3
addsd xmm4, xmm2
movsd qword [ecx + ebx + 0x90], xmm4
inc edx
add ecx, 0x60
cmp edx, esi
jb 0x101391d0
mov esi, dword [esp + 0x1d4]
mov ebx, dword [ebp + 0x2c]
jmp 0x10139225
mov eax, dword [0x10219868]
movsd xmm1, qword [0x102197f8]
movsd xmm0, qword [0x10219810]
test esi, esi
jl 0x10139b8e
cvtsi2sd xmm3, dword [esp + 0x180]
movsd xmm2, qword [0x101f27c0]
movsd xmm4, qword [0x10219808]
divsd xmm2, xmm3
addsd xmm2, qword [0x101f2828]
mulsd xmm1, xmm2
mulsd xmm0, xmm2
mov esi, 2
mov dword [0x102198c4], 2
minsd xmm4, xmm1
movsd xmm1, qword [0x10219820]
movsd qword [0x102197f8], xmm4
minsd xmm1, xmm0
movsd qword [0x10219810], xmm1
test edi, edi
je 0x101392a4
push edi
mov dword [esp + 0x274], eax
call fcn.101bceaa
mov eax, dword [esp + 0x274]
add esp, 4
test eax, eax
jle 0x10139301
mov edx, dword [0x102198dc]
mov dword [esp + 0x170], esi
mov ebx, edx
mov dword [esp + 0x270], eax
xor edi, edi
lea esi, [edi + edi*2]
shl esi, 5
push dword [esi + ebx + 0x48]
call fcn.101bceaa
push dword [esi + ebx + 0x4c]
call fcn.101bceaa
push dword [esi + ebx + 0x50]
call fcn.101bceaa
push dword [esi + ebx + 0x54]
call fcn.101bceaa
add esp, 0x10
inc edi
cmp edi, dword [esp + 0x270]
jl 0x101392c0
mov esi, dword [esp + 0x170]
mov ebx, dword [ebp + 0x2c]
test esi, esi
jne 0x10139314
mov eax, dword [0x102198c8]
and eax, 0xfd
mov dword [0x102198c8], eax
push 0
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10139337
push 0
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
jne 0x1013936a
push 2
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
jne 0x10139356
mov eax, dword [0x102198c4]
mov edx, dword [0x102198bc]
jmp 0x1013940c
push 2
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10139346
mov edx, dword [0x102198bc]
cmp edx, dword [esp + 0x16c]
jge 0x10139405
test edx, edx
jl 0x10139405
mov eax, dword [ebp + 8]
call fcn.1013a2d0
test eax, eax
je 0x10139346
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
jle 0x101393b2
mov ecx, dword [ebp + 8]
mov eax, 1
mov edx, dword [ecx + 0x54]
mov dword [edx + eax*4], 0
inc eax
cmp eax, dword [ecx + 0x68]
jle 0x101393a2
xor eax, eax
mov edx, 0xffffffff
cmp dword [esp + 0x16c], 0xffffffff
mov dword [0x102198cc], eax
mov dword [0x102198bc], edx
mov dword [0x102198c4], eax
mov dword [0x102198a4], edx
mov dword [0x10219898], edx
mov dword [0x102198a8], edx
mov dword [0x1021989c], edx
mov dword [0x102198ac], edx
mov dword [0x102198a0], edx
jge 0x10139449
xor eax, eax
cmp dword [esp + 0x16c], 0
jge 0x1013942c
jmp 0x10139449
mov eax, dword [0x102198c4]
jmp 0x10139419
cmp edx, dword [esp + 0x16c]
jge 0x10139419
test edx, edx
jge 0x1013942c
cmp edx, dword [esp + 0x16c]
jle 0x10139445
cmp dword [esp + 0x16c], 0
jl 0x10139445
mov edx, dword [0x102198c8]
or edx, 0xff
mov dword [0x102198c8], edx
jmp 0x10139445
mov eax, dword [0x102198c4]
test eax, eax
jne 0x10139480
xor esi, esi
push esi
push ebx
call fcn.100e3e10
add esp, 8
test eax, eax
je 0x10139470
push esi
push dword [0x102198c8]
call fcn.100e3e10
add esp, 8
test eax, eax
jne 0x10136468
inc esi
cmp esi, 3
jl 0x1013944b
mov dword [0x102198c8], 0xff
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
test eax, eax
jle 0x101394d7
mov ecx, dword [ebp + 8]
mov edx, 1
mov ebx, dword [0x10219190]
mov esi, dword [ecx]
imul esi, dword [esi + edx*4], 0xa10
cmp dword [ebx + esi + 0x84c], 0
jne 0x101394d2
cmp dword [ebx + esi + 0x874], 1
jne 0x101394d2
mov eax, dword [ecx + 0x54]
mov ebx, dword [ebx + esi + 0x850]
mov edi, dword [ebx]
mov esi, dword [ecx + 8]
mov ebx, dword [esi + edi*4]
mov edi, dword [ebx]
mov esi, dword [eax + edx*4]
mov dword [eax + edi*4], esi
mov eax, dword [ecx + 0x68]
inc edx
cmp edx, eax
jle 0x10139492
xor eax, eax
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov eax, 1
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
test ebx, ebx
je 0x101394d7
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
mov dword [esp + 0x58], 0
jle 0x1013953d
mov ebx, dword [esp + 0x58]
mov esi, dword [ebp + 8]
mov eax, 1
mov ecx, dword [esi + 0x54]
cmp dword [ecx + eax*4], 0
lea edx, [ebx + 1]
cmovne ebx, edx
mov dword [ecx + eax*4], 0
inc eax
cmp eax, dword [esi + 0x68]
jle 0x10139519
mov ecx, dword [0x1021f690]
mov dword [esp + 0x58], ebx
cmp dword [ebp + 0xc], 0
mov dword [0x102198cc], 0
je 0x10139557
movsd qword [0x10219848], xmm6
jmp 0x10139580
cmp dword [esp + 0x58], 0
jne 0x10139568
movsd qword [0x10219848], xmm6
jmp 0x10139580
movsd xmm0, qword [0x101f27c0]
addsd xmm0, qword [0x10219848]
movsd qword [0x10219848], xmm0
shl ecx, 4
push ecx
call fcn.101bcde0
mov ebx, eax
pxor xmm6, xmm6
push 4
push dword [0x1021f690]
call fcn.101beb7a
add esp, 0xc
mov dword [esp + 0x64], eax
pxor xmm6, xmm6
mov eax, dword [0x1021f690]
test eax, eax
jle 0x101395c5
xor edx, edx
mov ecx, edx
shl ecx, 4
movsd qword [ebx + ecx], xmm6
mov dword [ecx + ebx + 8], edx
inc edx
cmp edx, eax
jl 0x101395b2
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x68]
mov dword [esp + 0x6c], 0xffffffff
test edi, edi
jle 0x101396a3
mov esi, dword [0x10219190]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x10]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x60], edi
mov dword [esp + 0x50], eax
mov ecx, 1
mov dword [esp + 0x5c], ebx
mov eax, dword [esp + 0x68]
cmp dword [eax + ecx*4], 0
je 0x1013968c
mov eax, dword [ebp + 8]
mov ebx, dword [eax]
imul eax, dword [ebx + ecx*4], 0xa10
mov edi, dword [eax + esi + 0x9fc]
test edi, edi
je 0x10139664
cmp dword [eax + esi + 0xa00], 0
je 0x10139664
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x50]
movsd xmm0, qword [edi + 0x18]
subsd xmm0, qword [eax + esi + 0x48]
addsd xmm0, qword [eax + esi + 0x50]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x54], ebx
mov ebx, dword [ebx + ecx*4]
shl ebx, 4
addsd xmm0, qword [eax + ebx]
movsd qword [eax + ebx], xmm0
mov ebx, dword [esp + 0x54]
jmp 0x10139684
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 0x50]
movsd xmm0, qword [eax + esi + 0x50]
mov eax, dword [esp + 0x5c]
mov edi, dword [ebx + ecx*4]
shl edi, 4
addsd xmm0, qword [eax + edi]
movsd qword [eax + edi], xmm0
mov eax, dword [ebx + ecx*4]
cmp eax, edx
cmovge edx, eax
inc ecx
cmp ecx, dword [esp + 0x60]
jle 0x10139600
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x6c], edx
xor edi, edi
test eax, eax
jle 0x10139708
mov edx, dword [0x1021f6b4]
movsd xmm0, qword [0x101f2800]
mov dword [esp + 0x5c], ebx
xor ecx, ecx
mov esi, ebx
movsd xmm3, qword [0x101f27a8]
movsd xmm1, qword [0x101f27f8]
mov ebx, dword [edx + ecx*4]
divsd xmm3, qword [ebx + 0x18]
mulsd xmm3, qword [esi]
pxor xmm2, xmm2
cmpltsd xmm1, xmm3
movd ebx, xmm1
neg ebx
add edi, ebx
cvtsi2sd xmm2, ecx
mulsd xmm2, xmm0
inc ecx
addsd xmm3, xmm2
movsd qword [esi], xmm3
add esi, 0x10
cmp ecx, eax
jb 0x101396bf
mov ebx, dword [esp + 0x5c]
push 0x100adf70
push 0x10
push eax
push ebx
call fcn.101bec80
add esp, 0x10
mov edx, edi
shr edx, 0x1f
add edx, edi
sar edx, 1
cmp dword [0x10220314], 1
je 0x101398c2
mov eax, 1
test edx, edx
cmovle edx, eax
push edx
push eax
call fcn.100ed700
add esp, 8
neg eax
add eax, edi
xor esi, esi
dec eax
js 0x1013977c
mov edx, dword [0x1021f6b8]
mov dword [esp + 0x54], edi
mov ecx, eax
shl ecx, 4
mov edi, dword [ecx + ebx + 8]
cmp edi, dword [esp + 0x6c]
jne 0x10139769
test edx, edx
jne 0x10139775
mov ecx, dword [esp + 0x64]
mov dword [ecx + edi*4], 1
inc esi
dec eax
jns 0x10139756
mov edi, dword [esp + 0x54]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
test eax, eax
jle 0x10139800
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x50], esi
mov esi, dword [ebp + 8]
mov edx, 1
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], ebx
mov ebx, dword [esi + 0x10]
cmp dword [ebx + edx*4], 0
je 0x101397ef
mov edi, dword [0x1021f690]
test edi, edi
jle 0x101397ef
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], edi
xor ebx, ebx
mov eax, ebx
shl eax, 4
mov eax, dword [eax + esi + 8]
cmp dword [ecx + eax*4], 0
je 0x101397dd
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x50]
cmp eax, dword [edi + edx*4]
je 0x101398a3
inc ebx
cmp ebx, dword [esp + 0x68]
jl 0x101397bf
mov eax, dword [esp + 0x60]
mov dword [esp + 0x5c], esi
mov esi, dword [ebp + 8]
inc edx
cmp edx, eax
jle 0x1013979e
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov ebx, dword [esp + 0x5c]
push ebx
call fcn.101bceaa
push dword [esp + 0x68]
call fcn.101bceaa
add esp, 8
mov edx, dword [0x10219180]
cmp esi, dword [0x1021986c]
je 0x10139826
mov dword [0x10219870], edx
cmp dword [esp + 0x58], 0
mov dword [0x1021986c], esi
jne 0x1013983d
mov dword [0x10219874], edx
mov eax, edx
jmp 0x10139842
mov eax, dword [0x10219874]
imul ecx, edi, 0x64
add ecx, eax
cmp edx, ecx
jl 0x1013988a
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
mov dword [0x1021986c], 0
mov dword [0x10219874], 0
jle 0x10139880
mov ecx, dword [ebp + 8]
mov eax, 1
mov edx, dword [ecx + 0x54]
mov dword [edx + eax*4], 0
inc eax
cmp eax, dword [ecx + 0x68]
jle 0x10139870
mov dword [0x102198cc], 0
mov dword [0x102198c4], 8
xor eax, eax
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
inc dword [0x102198cc]
mov dword [esp + 0x5c], esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x54]
mov dword [eax + edx*4], 1
mov eax, dword [esi + 0x68]
jmp 0x101397ef
cmp edx, 4
jl 0x101398cc
mov edx, 4
mov eax, 1
test edx, edx
cmovle edx, eax
push edx
push eax
call fcn.100ed700
jmp 0x10139740
mov ebx, dword [ebp + 0x2c]
mov edx, dword [0x102198c8]
xor eax, eax
mov dword [0x102198c0], eax
and edx, 0xfa
mov dword [0x102198c4], eax
mov dword [0x102198c8], edx
jmp 0x1013683f
push 0x1021fc40
push 0x1021f9e0
mov eax, dword [0x10219898]
mov dword [0x1021fec0], eax
call fcn.101776e0
add esp, 8
mov dword [0x102198c4], 4
xor eax, eax
add esp, 0x2f4
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0xc], 0
je 0x10139955
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x68]
test eax, eax
jle 0x101399a8
mov edx, dword [0x10219898]
jmp 0x10139970
mov edx, dword [0x10219898]
cmp edx, dword [0x10219180]
jg 0x1013677b
mov eax, dword [ebp + 8]
cmp dword [eax + 0x68], 0
jle 0x101399bd
mov esi, dword [ebp + 8]
mov ecx, 1
mov eax, dword [esi + 0x54]
mov dword [eax + ecx*4], 0
mov eax, dword [esi + 0x68]
inc ecx
cmp ecx, eax
jle 0x10139978
cmp dword [ebp + 0xc], 0
mov dword [0x102198cc], 0
jne 0x101364f4
mov eax, dword [0x10219180]
jmp 0x10136510
mov edx, dword [0x10219898]
mov dword [0x102198cc], 0
jmp 0x101364f4
mov dword [0x102198cc], 0
jmp 0x10136518
subsd xmm2, xmm1
addsd xmm2, qword [ecx + edx + 0x38]
movsd qword [ecx + edx + 0x38], xmm2
jmp 0x10137415
mov esi, dword [0x102198bc]
mov ecx, dword [0x10219858]
mov dword [esp + 0x16c], esi
test esi, esi
mov dword [esp + 0x160], ecx
jge 0x10137743
xor edi, edi
jmp 0x101377e2
xor ecx, ecx
jmp 0x10137691
mov esi, dword [0x102198bc]
mov eax, dword [0x10219858]
mov dword [esp + 0x16c], esi
test esi, esi
mov dword [esp + 0x160], eax
jge 0x10137743
xor edi, edi
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
mov dword [0x10219858], esi
jmp 0x10138c5e
mov dword [0x10219858], 0xffffffff
mov esi, 0xffffffff
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
jmp 0x10138c5e
xor eax, eax
mov dword [esp + 0xa0], eax
jmp 0x10137e0b
xor eax, eax
mov dword [esp + 0x6c], eax
jmp 0x10137fc5
test esi, esi
js 0x10139a8b
mov eax, dword [0x10219180]
mov dword [0x102198a8], eax
jmp 0x10138c96
mov dword [0x102198b4], 0x7fffffff
jmp 0x10138caa
mov dword [esp + 0xb4], edx
test edx, edx
mov dword [esp + 0x294], ecx
jl 0x10138b57
mov edi, edx
mov eax, dword [esp + 0xf8]
mov esi, dword [esp + 0x100]
mov ebx, ecx
mov ecx, 0xffffffff
jmp 0x10138b8d
cmp dword [esp + 0x16c], 0
jl 0x10138ca0
jmp 0x10138d24
mov ecx, dword [0x10219180]
mov eax, dword [0x102198b4]
add eax, 5
cmp ecx, eax
jl 0x101388b9
cmp dword [esp + 0x16c], 0
jl 0x101388b9
mov eax, dword [0x10219860]
add eax, 0x64
cmp ecx, eax
jl 0x101388b9
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x68]
test ecx, ecx
jle 0x10139b37
mov esi, dword [ebp + 8]
mov eax, 1
mov edx, dword [esi + 0x54]
mov dword [edx + eax*4], 0
mov ecx, dword [esi + 0x68]
inc eax
cmp eax, ecx
jle 0x10139b25
mov dword [0x102198cc], 0
mov esi, 0xffffffff
mov dword [0x102198bc], 0xffffffff
jmp 0x10138c5e
mov eax, dword [0x102198b4]
add eax, 5
cmp eax, dword [0x10219180]
jg 0x101388ac
cmp dword [esp + 0x16c], 0
jge 0x10139b13
jmp 0x101388ac
mov eax, dword [0x10219180]
mov dword [0x102198a8], eax
jmp 0x10138c8e
xor ecx, ecx
jmp 0x10139064
mulsd xmm1, qword [0x101f27c8]
mulsd xmm0, qword [0x101f27c8]
movsd xmm2, qword [0x10219800]
xor esi, esi
mov dword [0x102198c4], esi
maxsd xmm2, xmm1
movsd xmm1, qword [0x10219818]
movsd qword [0x102197f8], xmm2
maxsd xmm1, xmm0
movsd qword [0x10219810], xmm1
mov dword [0x102198d0], esi
mov dword [0x102198d4], esi
jmp 0x10139289
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x54]
cmp dword [edi + ebx*4], 0
jne 0x10138d03
mov dword [esi + eax + 8], 1
mov dword [esp + 0x174], edx
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0xc8]
mov edi, dword [edi + ebx*4]
mov dword [esi + eax + 0xc], edi
mov edi, dword [edx + 0x4c]
mov edi, dword [edi + ebx*4]
mov edx, dword [edx + 0x48]
movsd xmm0, qword [edx + ebx*8]
mov edx, dword [esp + 0x174]
movsd qword [esi + eax], xmm0
mov dword [esi + eax + 0x10], edi
jmp 0x10138d0b
mov dword [0x102198b4], 0x7fffffff
jmp 0x10138d24
mov dword [esp + 0x218], edx
test edx, edx
mov dword [esp + 0x28c], ecx
jl 0x10137bb8
mov edi, edx
mov eax, dword [esp + 0x288]
mov esi, dword [esp + 0x29c]
mov ebx, 0xffffffff
jmp 0x10137bee
mov edi, dword [esp + 0x184]
mov dword [esp + 0x29c], ebx
mov ebx, dword [ebp + 0x2c]
mov dword [0x102198bc], eax
jmp 0x101379e2
mov eax, dword [0x1021987c]
mov edx, dword [eax + esi*4]
movsd qword [esp + 4], xmm1
mov dword [esp], edx
call fcn.100e38f0
mov eax, dword [0x10219868]
jmp 0x1013744c
movsd xmm0, qword [ecx + edx + 0x40]
movaps xmm1, xmm0
mulsd xmm0, qword [0x101f27d8]
divsd xmm0, qword [0x101f2810]
subsd xmm1, xmm2
divsd xmm1, xmm0
mulsd xmm1, qword [0x101f27a8]
jmp 0x1013743b
mov edx, dword [edi + 0x68]
jmp 0x10136c8a