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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push edi
push esi
push ebx
sub esp, 0x334
mov edi, dword [ebp + 8]
mov edx, dword [0x1020ed34]
mov dword [esp + 0x32c], edx
mov eax, edi
inc dword [0x1021c280]
call fcn.10190cd4
test eax, eax
jne 0x1018ddbe
mov ecx, dword [esp + 0x32c]
call fcn.101bc753
mov eax, 1
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x2a8]
push eax
push dword [0x1021fb78]
call fcn.100ef220
add esp, 8
mov eax, dword [0x10219178]
cmp eax, dword [0x1020cd48]
jle 0x1018df2a
mov dword [0x1020cd48], eax
mov dword [0x1021c284], 0
xor eax, eax
pxor xmm0, xmm0
movaps xmmword [eax*8 + 0x1021a080], xmm0
movaps xmmword [eax*8 + 0x1021a090], xmm0
movaps xmmword [eax*8 + 0x1021a0a0], xmm0
movaps xmmword [eax*8 + 0x1021a0b0], xmm0
add eax, 8
cmp eax, 0x3e8
jb 0x1018ddfa
push dword [0x1021c288]
call fcn.101bceaa
mov eax, dword [0x10282f80]
shl eax, 2
push eax
call fcn.101bcde0
add esp, 8
mov ecx, dword [0x10282f80]
mov dword [0x1021c288], eax
mov dword [0x1021c28c], 0
test ecx, ecx
jle 0x1018dec8
mov esi, dword [0x10219190]
movsd xmm0, qword [0x101f5cd0]
mov dword [esp + 0x144], edi
xor ebx, ebx
mov edx, 1
mov dword [esp + 0x40], 0xa10
mov edi, dword [esp + 0x40]
pxor xmm3, xmm3
movsd xmm1, qword [edi + esi + 0x988]
comisd xmm1, xmm3
jbe 0x1018deb6
movsd xmm2, qword [0x1021fc80]
divsd xmm2, xmm0
movsd xmm1, qword [edi + esi + 0x48]
comisd xmm1, xmm2
jbe 0x1018deb6
mov dword [eax + ebx*4], edx
inc ebx
mov dword [0x1021c28c], ebx
add edi, 0xa10
inc edx
cmp edx, ecx
jle 0x1018de85
mov edi, dword [esp + 0x144]
push dword [0x1021c290]
call fcn.101bceaa
mov eax, dword [0x10282f80]
shl eax, 2
push eax
call fcn.101bcde0
add esp, 8
cmp dword [0x10282f80], 0
mov dword [0x1021c290], eax
mov dword [0x1021c294], 0
jle 0x1018df2a
mov ebx, 1
push ebx
call fcn.100ee540
pop ecx
test eax, eax
je 0x1018df21
mov edx, dword [0x1021c294]
mov eax, dword [0x1021c290]
mov dword [eax + edx*4], ebx
inc edx
mov dword [0x1021c294], edx
inc ebx
cmp ebx, dword [0x10282f80]
jle 0x1018df01
mov ecx, dword [ebp + 0x38]
mov edx, dword [ebp + 0x34]
mov eax, dword [ebp + 0x30]
movsd xmm2, qword [ebp + 0x28]
movsd xmm1, qword [ebp + 0x20]
movsd xmm0, qword [ebp + 0x18]
movsd qword [eax], xmm0
movsd qword [edx], xmm1
movsd qword [ecx], xmm2
lea ebx, [esp + 0x2ac]
push ebx
call fcn.100e37a0
push 0x14
push dword [esp + 0x2b4]
call fcn.100e38a0
add esp, 0xc
mov ecx, dword [edi + 0x68]
cmp ecx, 0x1e
jge 0x1018df81
mov dword [esp + 0xd8], 0x4b
jmp 0x1018dfd1
cmp ecx, 0x32
jge 0x1018df93
mov dword [esp + 0xd8], 0x32
jmp 0x1018dfd1
cmp ecx, 0x50
jge 0x1018dfa5
mov dword [esp + 0xd8], 0x28
jmp 0x1018dfd1
cmp ecx, 0x78
jge 0x1018dfb7
mov dword [esp + 0xd8], 0x19
jmp 0x1018dfd1
mov eax, 0xf
mov edx, 8
cmp ecx, 0xc8
cmovl edx, eax
mov dword [esp + 0xd8], edx
lea eax, [ecx*4 + 4]
push eax
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
shl eax, 4
add eax, 0x10
push eax
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x2d4], eax
mov eax, dword [edi + 0x68]
shl eax, 4
add eax, 0x10
push eax
push dword [edi + 0x44]
push dword [esp + 0x2f4]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x4c]
push dword [esp + 0x2fc]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [edi + 0x48]
push dword [esp + 0x304]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x28]
push dword [esp + 0x30c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x2c]
push dword [esp + 0x314]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x30]
push dword [esp + 0x31c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x34]
push dword [esp + 0x324]
call fcn.101d7590
add esp, 0x74
mov eax, dword [edi + 0x68]
test eax, eax
jle 0x1018e195
mov esi, dword [esp + 0x2d0]
mov ebx, 1
mov edx, dword [edi + 0x38]
cmp dword [edx + ebx*4], 0
je 0x1018e189
mov eax, dword [edi + 0x3c]
mov edx, dword [eax + ebx*4]
shl edx, 4
push edx
call fcn.101bcde0
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + ebx*4]
mov dword [esi + ebx*4], eax
shl ecx, 4
push ecx
push dword [edx + ebx*4]
push eax
call fcn.101d7590
add esp, 0x10
mov eax, dword [edi + 0x68]
jmp 0x1018e190
mov dword [esi + ebx*4], 0
inc ebx
cmp ebx, eax
jle 0x1018e150
lea eax, [eax*4 + 4]
push eax
call fcn.101bcde0
mov dword [esp + 0x314], eax
mov eax, dword [edi + 0x68]
shl eax, 4
add eax, 0x10
push eax
call fcn.101bcde0
mov dword [esp + 0x330], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x330], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
call fcn.101bcde0
mov dword [esp + 0x330], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x304], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x304], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x304], eax
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
call fcn.101bcde0
mov dword [esp + 0x304], eax
mov eax, dword [edi + 0x68]
shl eax, 4
add eax, 0x10
push eax
push dword [edi + 0x44]
push dword [esp + 0x350]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x4c]
push dword [esp + 0x358]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [edi + 0x48]
push dword [esp + 0x360]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x28]
push dword [esp + 0x33c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x2c]
push dword [esp + 0x344]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x30]
push dword [esp + 0x34c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x34]
push dword [esp + 0x354]
call fcn.101d7590
add esp, 0x74
mov eax, dword [edi + 0x68]
test eax, eax
jle 0x1018e359
mov esi, dword [esp + 0x310]
mov ebx, 1
mov edx, dword [edi + 0x38]
cmp dword [edx + ebx*4], 0
je 0x1018e34d
mov eax, dword [edi + 0x3c]
mov edx, dword [eax + ebx*4]
shl edx, 4
push edx
call fcn.101bcde0
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + ebx*4]
mov dword [esi + ebx*4], eax
shl ecx, 4
push ecx
push dword [edx + ebx*4]
push eax
call fcn.101d7590
add esp, 0x10
mov eax, dword [edi + 0x68]
jmp 0x1018e354
mov dword [esi + ebx*4], 0
inc ebx
cmp ebx, eax
jle 0x1018e314
movsd xmm0, qword [ebp + 0x28]
movsd xmm1, qword [ebp + 0x18]
movsd xmm2, qword [ebp + 0x20]
movsd qword [esp + 0x110], xmm0
movsd qword [esp + 0xe0], xmm1
movsd qword [esp + 0xe8], xmm2
lea eax, [eax*8 + 8]
push eax
call fcn.101bcde0
pop ecx
mov dword [esp + 0x2b0], eax
mov ecx, dword [edi + 0x68]
test ecx, ecx
jle 0x1018e499
mov esi, eax
mov edx, dword [edi + 0x10]
mov eax, 1
pxor xmm0, xmm0
pxor xmm2, xmm2
cmp dword [edx + eax*4], 0
je 0x1018e3ce
mov ebx, dword [edi + 0x40]
movsd xmm1, qword [ebx + eax*8]
movsd qword [esi + eax*8], xmm1
addsd xmm0, xmm1
jmp 0x1018e3d3
movsd qword [esi + eax*8], xmm2
inc eax
cmp eax, ecx
jle 0x1018e3b5
mov eax, dword [esp + 0x2b0]
lea eax, [eax + 8]
and eax, 0xf
je 0x1018e3f4
test al, 7
jne 0x1018fca2
mov eax, 1
lea edx, [eax + 8]
cmp ecx, edx
jl 0x1018fca2
mov edx, ecx
sub edx, eax
and edx, 7
neg edx
add edx, ecx
test eax, eax
jbe 0x1018e42c
mov esi, dword [esp + 0x2b0]
xor ebx, ebx
movsd xmm1, qword [esi + ebx*8 + 8]
divsd xmm1, xmm0
movsd qword [esi + ebx*8 + 8], xmm1
inc ebx
cmp ebx, eax
jb 0x1018e417
mov ebx, dword [esp + 0x2b0]
movaps xmm1, xmm0
unpcklpd xmm1, xmm1
movaps xmm2, xmmword [ebx + eax*8 + 8]
divpd xmm2, xmm1
movaps xmm3, xmmword [ebx + eax*8 + 0x18]
movaps xmm4, xmmword [ebx + eax*8 + 0x28]
movaps xmm5, xmmword [ebx + eax*8 + 0x38]
divpd xmm3, xmm1
divpd xmm4, xmm1
divpd xmm5, xmm1
movaps xmmword [ebx + eax*8 + 8], xmm2
movaps xmmword [ebx + eax*8 + 0x18], xmm3
movaps xmmword [ebx + eax*8 + 0x28], xmm4
movaps xmmword [ebx + eax*8 + 0x38], xmm5
add eax, 8
cmp eax, edx
jb 0x1018e43a
cmp edx, ecx
jae 0x1018e499
mov eax, dword [esp + 0x2b0]
movsd xmm1, qword [eax + edx*8 + 8]
divsd xmm1, xmm0
movsd qword [eax + edx*8 + 8], xmm1
inc edx
cmp edx, ecx
jb 0x1018e484
movsd xmm0, qword [ebp + 0x10]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x1018e4be
lea eax, [esp + 0x2d8]
push eax
push dword [0x1021fb78]
call fcn.100ef220
add esp, 8
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0xc]
movsd xmm2, qword [0x101f5d08]
movsd xmm1, qword [0x101f5d40]
mulsd xmm1, qword [ebp + 0x10]
movsd qword [esp + 0xf0], xmm1
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x134], ebx
mov dword [esp + 0x188], ebx
mov dword [esp + 0x10c], ebx
pxor xmm0, xmm0
movsd qword [esp + 0x118], xmm0
and eax, 8
mov dword [esp + 0x120], eax
mov eax, ecx
and eax, 4
and ecx, 2
mov dword [esp + 0x13c], ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x124], eax
and ecx, 1
mov dword [esp + 0x140], ecx
inc dword [esp + 0x134]
push ebx
call fcn.101bceaa
push esi
call fcn.101bceaa
add esp, 8
mov esi, dword [esp + 0x140]
mov dword [esp + 0x144], edi
mov edi, dword [esp + 0x13c]
xor eax, eax
mov ebx, eax
push 3
push 1
call fcn.100ed700
add esp, 8
test eax, eax
jne 0x1018eb65
test esi, esi
jne 0x1018e6ff
inc ebx
cmp ebx, 0x2710
jle 0x1018e564
mov edi, dword [esp + 0x144]
xor ebx, ebx
xor esi, esi
push 0
push 0xffffffffffffffff
push edi
call fcn.1014cea0
add esp, 0xc
test eax, eax
jne 0x1018fb1c
mov dword [esp + 0x2d4], 0
cmp dword [edi + 0x68], 0
jle 0x1018e604
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
mov esi, dword [esp + 0x2d0]
mov eax, 1
mov ebx, eax
mov edx, dword [esp + 0x310]
push dword [edx + ebx*4]
call fcn.101bceaa
push dword [esi + ebx*4]
call fcn.101bceaa
add esp, 8
inc ebx
cmp ebx, dword [edi + 0x68]
jle 0x1018e5d6
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
push dword [esp + 0x310]
call fcn.101bceaa
push dword [esp + 0x32c]
call fcn.101bceaa
push dword [esp + 0x32c]
call fcn.101bceaa
push dword [esp + 0x32c]
call fcn.101bceaa
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x300]
call fcn.101bceaa
push dword [esp + 0x300]
call fcn.101bceaa
push ebx
call fcn.101bceaa
push esi
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
push dword [esp + 0x2f8]
call fcn.101bceaa
add esp, 0x4c
mov ecx, dword [esp + 0x32c]
call fcn.101bc753
mov eax, dword [esp + 0x2d4]
add esp, 0x334
pop ebx
pop esi
pop edi
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
cmp eax, 0x2710
jge 0x1018fc99
mov eax, dword [edi + 0x68]
shl eax, 2
push eax
call fcn.101bcde0
mov dword [esp + 0x274], eax
mov eax, dword [edi + 0x68]
shl eax, 3
push eax
call fcn.101bcde0
mov dword [esp + 0x27c], eax
mov eax, dword [edi + 0x68]
shl eax, 2
push eax
call fcn.101bcde0
add esp, 0xc
mov dword [esp + 0x278], eax
mov eax, dword [edi + 0x68]
mov dword [esp + 0x284], eax
test eax, eax
jle 0x1018e7ab
xor edx, edx
mov ecx, dword [esp + 0x270]
lea eax, [edx + 1]
mov dword [ecx + edx*4], eax
mov ebx, dword [edi + 0x48]
movsd xmm0, qword [ebx + edx*8 + 8]
mov esi, dword [esp + 0x274]
movsd qword [esi + edx*8], xmm0
mov esi, dword [esp + 0x278]
mov ecx, dword [edi + 0x4c]
mov ebx, dword [ecx + edx*4 + 4]
mov dword [esi + edx*4], ebx
cmp eax, dword [esp + 0x284]
mov edx, eax
jl 0x1018e76d
push dword [edi + 0x68]
push 1
call fcn.100ed700
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x10]
cmp dword [eax + esi*4], 0
je 0x1018e7ab
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
mov dword [eax + esi*4], 0
movsd qword [esp + 0x290], xmm0
movsd qword [esp + 0x298], xmm1
mov dword [esp + 0x18], 1
mov dword [esp], edi
mov dword [esp + 0x1c], 1
lea ebx, [esp + 0x290]
pxor xmm2, xmm2
movsd qword [esp + 4], xmm2
mov dword [esp + 0xc], ebx
lea ebx, [esp + 0x298]
mov dword [esp + 0x10], ebx
lea eax, [esp + 0x2a0]
mov dword [esp + 0x14], eax
call fcn.10168350
movsd xmm0, qword [esp + 0x110]
movsd xmm1, qword [esp + 0xe0]
movsd xmm2, qword [esp + 0xe8]
movsd xmm3, qword [0x101f5d08]
movsd qword [esp + 4], xmm0
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0x20], xmm3
mov dword [esp + 0x28], 1
mov dword [esp], edi
lea eax, [esp + 0x270]
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x290]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], ebx
lea ecx, [esp + 0x28c]
mov dword [esp + 0x34], ecx
call fcn.1016dc70
mov edx, dword [edi + 0x10]
mov dword [edx + esi*4], 1
test eax, eax
jne 0x1018ea43
movsd xmm0, qword [esp + 0x290]
movsd xmm1, qword [esp + 0x298]
movsd xmm2, qword [0x1021fcb8]
movsd xmm3, qword [0x1021f8d8]
movsd qword [esp], xmm0
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
movsd qword [esp + 0x18], xmm3
lea eax, [esp + 0x2a0]
mov dword [esp + 0x20], eax
call fcn.10119260
movsd xmm0, qword [esp + 0x2a0]
comisd xmm0, xmmword [esp + 0x110]
jbe 0x1018ea43
mov eax, dword [ebp + 0x38]
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
movsd qword [esp + 0x110], xmm0
movsd qword [eax], xmm0
movsd xmm0, qword [esp + 0x290]
movsd qword [edx], xmm0
movsd xmm1, qword [esp + 0x298]
movsd qword [esp + 0xe0], xmm0
movsd qword [ecx], xmm1
mov eax, dword [edi + 0x68]
movsd qword [esp + 0xe8], xmm1
test eax, eax
jle 0x1018e98c
mov ebx, dword [esp + 0x310]
mov esi, 1
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
mov edx, dword [eax + esi*4]
shl edx, 4
push edx
push dword [ecx + esi*4]
push dword [ebx + esi*4]
call fcn.101d7590
add esp, 0xc
mov eax, dword [edi + 0x68]
inc esi
cmp esi, eax
jle 0x1018e969
shl eax, 4
add eax, 0x10
push eax
push dword [edi + 0x44]
push dword [esp + 0x330]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x4c]
push dword [esp + 0x338]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [edi + 0x48]
push dword [esp + 0x340]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x28]
push dword [esp + 0x31c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x2c]
push dword [esp + 0x324]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x30]
push dword [esp + 0x32c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x34]
push dword [esp + 0x334]
call fcn.101d7590
jmp 0x1018eb2b
mov eax, dword [edi + 0x68]
test eax, eax
jle 0x1018ea79
mov ebx, dword [esp + 0x310]
mov esi, 1
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
mov edx, dword [eax + esi*4]
shl edx, 4
push edx
push dword [ebx + esi*4]
push dword [ecx + esi*4]
call fcn.101d7590
add esp, 0xc
mov eax, dword [edi + 0x68]
inc esi
cmp esi, eax
jle 0x1018ea56
shl eax, 4
add eax, 0x10
push eax
push dword [esp + 0x32c]
push dword [edi + 0x44]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x334]
push dword [edi + 0x4c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [esp + 0x33c]
push dword [edi + 0x48]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x318]
push dword [edi + 0x28]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x320]
push dword [edi + 0x2c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x328]
push dword [edi + 0x30]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x330]
push dword [edi + 0x34]
call fcn.101d7590
add esp, 0x54
push dword [esp + 0x270]
call fcn.101bceaa
push dword [esp + 0x278]
call fcn.101bceaa
push dword [esp + 0x280]
call fcn.101bceaa
add esp, 0xc
xor ebx, ebx
xor esi, esi
mov dword [esp + 0x188], esi
jmp 0x1018f61b
cmp eax, 1
je 0x10190281
cmp eax, 2
je 0x10190005
cmp eax, 3
je 0x1018fcf1
cmp eax, 4
je 0x1018fcb8
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
xor ebx, ebx
xor esi, esi
cmp eax, 0x2710
jge 0x1018e594
cmp dword [esp + 0x188], 0
jle 0x1018f607
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
xor eax, eax
mov dword [esp + 0x190], eax
mov ebx, dword [esp + 0x190]
mov eax, dword [esp + 0x31c]
mov dword [esp + 0x314], 1
mov ecx, dword [edi]
mov dword [esp + 0x144], edi
shl ebx, 5
mov esi, dword [ebx + eax]
mov edx, dword [ecx + esi*4]
mov dword [esp + 0x19c], ebx
mov ebx, dword [ebx + eax + 0x10]
mov eax, dword [ecx + ebx*4]
mov dword [esp + 0x194], edx
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + esi*4]
mov dword [esp + 0x18c], eax
mov eax, dword [edi + 0x28]
mov dword [esp + 0x1a0], eax
mov eax, dword [eax + esi*4]
shl eax, 4
movsd xmm0, qword [ecx + eax]
mov eax, dword [edi + 0x2c]
movsd qword [esp + 0x170], xmm0
mov dword [esp + 0x1a4], eax
mov eax, dword [eax + esi*4]
shl eax, 4
movsd xmm1, qword [ecx + eax]
mov eax, dword [edi + 0x30]
movsd qword [esp + 0x150], xmm1
mov dword [esp + 0x1a8], eax
mov eax, dword [eax + esi*4]
shl eax, 4
movsd xmm2, qword [ecx + eax + 8]
mov eax, dword [edi + 0x34]
mov edi, dword [eax + esi*4]
mov eax, dword [eax + ebx*4]
movsd qword [esp + 0x158], xmm2
shl edi, 4
movsd xmm3, qword [ecx + edi + 8]
mov edi, dword [edx + ebx*4]
mov edx, dword [esp + 0x1a0]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x1a4]
movsd qword [esp + 0x148], xmm3
shl ecx, 4
movsd xmm4, qword [edi + ecx]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x1a8]
movsd qword [esp + 0x180], xmm4
shl ecx, 4
movsd xmm5, qword [edi + ecx]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x19c]
movsd qword [esp + 0x168], xmm5
shl ecx, 4
movsd xmm6, qword [edi + ecx + 8]
mov ecx, dword [esp + 0x31c]
movsd qword [esp + 0x178], xmm6
shl eax, 4
movsd xmm7, qword [edi + eax + 8]
mov edi, dword [esp + 0x324]
mov eax, dword [edi + esi*4]
mov edi, dword [edx + ecx + 4]
movsd qword [esp + 0x160], xmm7
mov dword [esp + 0x304], eax
mov dword [esp + 0x308], edi
lea eax, [esp + 0x318]
push eax
push 2
lea edx, [esp + 0x30c]
push edx
mov edi, dword [esp + 0x150]
call fcn.100ae420
add esp, 0xc
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + esi*4]
mov edx, dword [edi + 0x3c]
mov dword [esp], ecx
mov ecx, dword [edx + esi*4]
mov edx, dword [esp + 0x328]
mov dword [esp + 4], 0
mov eax, esi
shl eax, 4
mov dword [esp + 0x198], eax
mov dword [esp + 8], ecx
movsd xmm0, qword [eax + edx]
lea ecx, [esp + 0xc]
movsd qword [ecx], xmm0
movsd xmm1, qword [eax + edx + 8]
movsd qword [ecx + 8], xmm1
mov eax, dword [esp + 0x318]
mov dword [esp + 0x1c], eax
call fcn.100ae980
mov eax, dword [edi + 0x38]
mov edx, dword [eax + esi*4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + esi*4]
mov ecx, dword [esp + 0x328]
mov dword [esp], edx
mov edx, dword [esp + 0x198]
mov dword [esp + 4], eax
movsd xmm0, qword [edx + ecx]
lea eax, [esp + 8]
movsd qword [eax], xmm0
movsd xmm1, qword [edx + ecx + 8]
movsd qword [eax + 8], xmm1
mov ecx, dword [esp + 0x31c]
mov edx, dword [esp + 0x19c]
mov eax, dword [esp + 0x320]
movsd xmm2, qword [edx + ecx + 8]
subsd xmm2, qword [eax + esi*8]
movsd qword [esp + 0x18], xmm2
mov dword [esp + 0x20], 1
call fcn.100aef80
lea eax, [esp + 0x2f4]
push eax
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
push dword [edx + esi*4]
push dword [ecx + esi*4]
call fcn.100ae040
add esp, 0xc
mov ecx, dword [esp + 0x2f4]
movsd xmm3, qword [esp + 0x180]
addsd xmm3, qword [esp + 0x168]
mov eax, dword [edi + 0x28]
movsd xmm2, qword [0x101f5d08]
movsd xmm4, qword [esp + 0x178]
addsd xmm4, qword [esp + 0x160]
mov dword [eax + esi*4], ecx
mov edx, dword [esp + 0x2f8]
mov ecx, dword [edi + 0x2c]
mov dword [ecx + esi*4], edx
mov edx, dword [edi + 0x34]
mov eax, dword [esp + 0x2fc]
mov dword [edx + esi*4], eax
mov ecx, dword [esp + 0x300]
mov eax, dword [edi + 0x30]
mov dword [eax + esi*4], ecx
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + esi*4]
mov eax, dword [edi + 0x28]
mov edx, dword [eax + esi*4]
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + esi*4]
mov dword [esp], ecx
shl edx, 4
movsd xmm0, qword [ecx + edx]
mov edx, dword [edi + 0x30]
shl eax, 4
addsd xmm0, qword [ecx + eax]
mov eax, dword [edx + esi*4]
mov edx, dword [edi + 0x34]
mov edx, dword [edx + esi*4]
subsd xmm3, xmm0
mulsd xmm3, xmm2
movsd qword [esp + 8], xmm3
movsd qword [esp + 0x180], xmm3
shl eax, 4
movsd xmm1, qword [ecx + eax + 8]
shl edx, 4
addsd xmm1, qword [ecx + edx + 8]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + esi*4]
subsd xmm4, xmm1
mulsd xmm4, xmm2
movsd qword [esp + 0x178], xmm4
movsd qword [esp + 0x10], xmm4
mov dword [esp + 4], eax
call fcn.100ae570
mov eax, dword [esp + 0x31c]
mov edx, dword [esp + 0x19c]
movsd xmm1, qword [esp + 0x180]
movsd xmm2, qword [esp + 0x178]
mov ecx, dword [edx + eax + 4]
movsd xmm0, qword [edx + eax + 8]
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
mov dword [esp + 0x1ac], ebx
mov ebx, dword [edi + 0x4c]
mov dword [esp + 4], 1
mov dword [ebx + esi*4], ecx
mov ebx, dword [esp + 0x1ac]
mov ecx, dword [edi + 0x48]
movsd qword [ecx + esi*8], xmm0
mov eax, dword [edi + 0x44]
add eax, dword [esp + 0x198]
mov dword [esp], eax
call fcn.100ae570
mov edx, dword [0x10219190]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + esi*4]
imul ecx, dword [esp + 0x194], 0xa10
mov dword [esp + 0x1ac], ebx
mov ebx, dword [edx + ecx + 0x9f4]
mov edx, dword [edx + ecx + 0x9f8]
mov dword [esp], ebx
mov ebx, dword [esp + 0x198]
mov dword [esp + 4], edx
mov edx, dword [edi + 0x44]
movsd xmm0, qword [ebx + edx]
lea ecx, [esp + 8]
movsd qword [ecx], xmm0
movsd xmm1, qword [ebx + edx + 8]
movsd qword [ecx + 8], xmm1
mov ebx, dword [edi + 0x4c]
mov edx, dword [ebx + esi*4]
mov ecx, dword [edi + 0x48]
movsd xmm2, qword [ecx + esi*8]
mov ebx, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
movsd qword [esp + 0x1c], xmm2
mov dword [esp + 0x18], edx
mov edx, dword [ebx + esi*4]
shl edx, 4
mov ebx, dword [esp + 0x1ac]
movsd xmm3, qword [eax + edx + 8]
mov edx, dword [ecx + esi*4]
movsd qword [esp + 0x24], xmm3
shl edx, 4
movsd xmm4, qword [eax + edx + 8]
movsd qword [esp + 0x2c], xmm4
lea eax, [esp + 0x314]
mov dword [esp + 0x34], eax
call fcn.10112c70
cmp dword [esp + 0x314], 0
jne 0x1018f0ea
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + esi*4]
shl ecx, 4
push ecx
mov edx, dword [esp + 0x314]
push dword [edx + esi*4]
push dword [eax + esi*4]
call fcn.101d7590
add esp, 0xc
mov eax, dword [esp + 0x328]
mov edx, dword [esp + 0x198]
mov ecx, dword [edi + 0x44]
movsd xmm0, qword [edx + eax]
movsd qword [edx + ecx], xmm0
movsd xmm1, qword [edx + eax + 8]
mov eax, dword [esp + 0x324]
movsd qword [edx + ecx + 8], xmm1
mov ecx, dword [edi + 0x4c]
mov edx, dword [eax + esi*4]
mov eax, dword [esp + 0x320]
movsd xmm2, qword [eax + esi*8]
mov dword [ecx + esi*4], edx
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x2f0]
mov ecx, dword [ecx + esi*4]
movsd qword [edx + esi*8], xmm2
mov eax, dword [edi + 0x28]
mov edx, dword [esp + 0x2ec]
mov edx, dword [edx + esi*4]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x2e8]
mov ecx, dword [ecx + esi*4]
mov dword [eax + esi*4], edx
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x2e4]
mov edx, dword [edx + esi*4]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x34]
mov dword [eax + esi*4], edx
cmp dword [esp + 0x314], 0
je 0x1018f57d
cmp esi, ebx
je 0x1018f5dd
mov eax, dword [esp + 0x324]
mov ecx, dword [esp + 0x19c]
mov edx, dword [eax + ebx*4]
mov eax, dword [esp + 0x31c]
mov dword [esp + 0x304], edx
mov edx, dword [ecx + eax + 0x14]
mov dword [esp + 0x308], edx
lea ecx, [esp + 0x318]
push ecx
push 2
lea eax, [esp + 0x30c]
push eax
call fcn.100ae420
add esp, 0xc
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + ebx*4]
mov edx, dword [edi + 0x3c]
mov dword [esp], ecx
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x328]
mov dword [esp + 4], 0
mov eax, ebx
shl eax, 4
mov dword [esp + 0x128], eax
mov dword [esp + 8], ecx
movsd xmm0, qword [eax + edx]
lea ecx, [esp + 0xc]
movsd qword [ecx], xmm0
movsd xmm1, qword [eax + edx + 8]
movsd qword [ecx + 8], xmm1
mov eax, dword [esp + 0x318]
mov dword [esp + 0x1c], eax
call fcn.100ae980
mov eax, dword [edi + 0x38]
mov edx, dword [eax + ebx*4]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x328]
mov dword [esp], edx
mov edx, dword [esp + 0x128]
mov dword [esp + 4], eax
movsd xmm0, qword [edx + ecx]
lea eax, [esp + 8]
movsd qword [eax], xmm0
movsd xmm1, qword [edx + ecx + 8]
movsd qword [eax + 8], xmm1
mov ecx, dword [esp + 0x31c]
mov edx, dword [esp + 0x19c]
mov eax, dword [esp + 0x320]
movsd xmm2, qword [edx + ecx + 0x18]
subsd xmm2, qword [eax + ebx*8]
movsd qword [esp + 0x18], xmm2
mov dword [esp + 0x20], 1
call fcn.100aef80
lea eax, [esp + 0x2f4]
push eax
mov ecx, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
push dword [edx + ebx*4]
push dword [ecx + ebx*4]
call fcn.100ae040
add esp, 0xc
mov ecx, dword [esp + 0x2f4]
movsd xmm3, qword [esp + 0x170]
addsd xmm3, qword [esp + 0x150]
mov eax, dword [edi + 0x28]
movsd xmm2, qword [0x101f5d08]
movsd xmm4, qword [esp + 0x158]
addsd xmm4, qword [esp + 0x148]
mov dword [eax + ebx*4], ecx
mov edx, dword [esp + 0x2f8]
mov ecx, dword [edi + 0x2c]
mov dword [ecx + ebx*4], edx
mov edx, dword [edi + 0x34]
mov eax, dword [esp + 0x2fc]
mov dword [edx + ebx*4], eax
mov ecx, dword [esp + 0x300]
mov eax, dword [edi + 0x30]
mov dword [eax + ebx*4], ecx
mov edx, dword [edi + 0x38]
mov ecx, dword [edx + ebx*4]
mov eax, dword [edi + 0x28]
mov edx, dword [eax + ebx*4]
mov eax, dword [edi + 0x2c]
mov eax, dword [eax + ebx*4]
mov dword [esp], ecx
shl edx, 4
movsd xmm0, qword [ecx + edx]
mov edx, dword [edi + 0x30]
shl eax, 4
addsd xmm0, qword [ecx + eax]
mov eax, dword [edx + ebx*4]
mov edx, dword [edi + 0x34]
mov edx, dword [edx + ebx*4]
subsd xmm3, xmm0
mulsd xmm3, xmm2
movsd qword [esp + 8], xmm3
movsd qword [esp + 0x170], xmm3
shl eax, 4
movsd xmm1, qword [ecx + eax + 8]
shl edx, 4
addsd xmm1, qword [ecx + edx + 8]
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx + ebx*4]
subsd xmm4, xmm1
mulsd xmm4, xmm2
movsd qword [esp + 0x158], xmm4
movsd qword [esp + 0x10], xmm4
mov dword [esp + 4], eax
call fcn.100ae570
mov eax, dword [esp + 0x31c]
mov edx, dword [esp + 0x19c]
movsd xmm1, qword [esp + 0x170]
movsd xmm2, qword [esp + 0x158]
mov ecx, dword [edx + eax + 0x14]
movsd xmm0, qword [edx + eax + 0x18]
movsd qword [esp + 8], xmm1
movsd qword [esp + 0x10], xmm2
mov dword [esp + 0x12c], esi
mov esi, dword [edi + 0x4c]
mov dword [esp + 4], 1
mov dword [esi + ebx*4], ecx
mov esi, dword [esp + 0x12c]
mov ecx, dword [edi + 0x48]
movsd qword [ecx + ebx*8], xmm0
mov eax, dword [edi + 0x44]
add eax, dword [esp + 0x128]
mov dword [esp], eax
call fcn.100ae570
mov edx, dword [0x10219190]
mov ecx, dword [edi + 0x38]
mov eax, dword [ecx + ebx*4]
imul ecx, dword [esp + 0x18c], 0xa10
mov dword [esp + 0x12c], esi
mov esi, dword [edx + ecx + 0x9f4]
mov edx, dword [edx + ecx + 0x9f8]
mov dword [esp], esi
mov esi, dword [esp + 0x128]
mov dword [esp + 4], edx
mov edx, dword [edi + 0x44]
movsd xmm0, qword [esi + edx]
lea ecx, [esp + 8]
movsd qword [ecx], xmm0
movsd xmm1, qword [esi + edx + 8]
movsd qword [ecx + 8], xmm1
mov esi, dword [edi + 0x4c]
mov edx, dword [esi + ebx*4]
mov ecx, dword [edi + 0x48]
movsd xmm2, qword [ecx + ebx*8]
mov esi, dword [edi + 0x30]
mov ecx, dword [edi + 0x34]
movsd qword [esp + 0x1c], xmm2
mov dword [esp + 0x18], edx
mov edx, dword [esi + ebx*4]
shl edx, 4
mov esi, dword [esp + 0x12c]
movsd xmm3, qword [eax + edx + 8]
mov edx, dword [ecx + ebx*4]
movsd qword [esp + 0x24], xmm3
shl edx, 4
movsd xmm4, qword [eax + edx + 8]
movsd qword [esp + 0x2c], xmm4
lea eax, [esp + 0x314]
mov dword [esp + 0x34], eax
call fcn.10112c70
cmp dword [esp + 0x314], 0
jne 0x1018f5dd
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + esi*4]
shl ecx, 4
push ecx
mov edx, dword [esp + 0x314]
push dword [edx + esi*4]
push dword [eax + esi*4]
call fcn.101d7590
mov eax, dword [esp + 0x334]
mov edx, dword [esp + 0x1a4]
mov ecx, dword [edi + 0x44]
movsd xmm0, qword [edx + eax]
movsd qword [edx + ecx], xmm0
movsd xmm1, qword [edx + eax + 8]
mov eax, dword [esp + 0x330]
movsd qword [edx + ecx + 8], xmm1
mov ecx, dword [edi + 0x4c]
mov edx, dword [eax + esi*4]
mov eax, dword [esp + 0x32c]
movsd xmm2, qword [eax + esi*8]
mov dword [ecx + esi*4], edx
mov edx, dword [edi + 0x48]
mov ecx, dword [esp + 0x2fc]
mov ecx, dword [ecx + esi*4]
movsd qword [edx + esi*8], xmm2
mov eax, dword [edi + 0x28]
mov edx, dword [esp + 0x2f8]
mov edx, dword [edx + esi*4]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x2c]
mov ecx, dword [esp + 0x2f4]
mov ecx, dword [ecx + esi*4]
mov dword [eax + esi*4], edx
mov eax, dword [edi + 0x30]
mov edx, dword [esp + 0x2f0]
mov edx, dword [edx + esi*4]
mov dword [eax + esi*4], ecx
mov eax, dword [edi + 0x34]
mov dword [eax + esi*4], edx
mov edx, dword [edi + 0x38]
mov esi, dword [edi + 0x3c]
mov eax, dword [esi + ebx*4]
shl eax, 4
push eax
mov esi, dword [esp + 0x320]
push dword [esi + ebx*4]
push dword [edx + ebx*4]
call fcn.101d7590
add esp, 0x18
mov edx, dword [esp + 0x128]
mov eax, dword [esp + 0x328]
mov esi, dword [esp + 0x324]
mov ecx, dword [edi + 0x44]
movsd xmm0, qword [edx + eax]
movsd qword [edx + ecx], xmm0
movsd xmm1, qword [edx + eax + 8]
movsd qword [edx + ecx + 8], xmm1
mov edx, dword [esp + 0x320]
mov eax, dword [edi + 0x4c]
mov esi, dword [esi + ebx*4]
movsd xmm2, qword [edx + ebx*8]
mov dword [eax + ebx*4], esi
mov eax, dword [esp + 0x2f0]
mov esi, dword [esp + 0x2ec]
mov ecx, dword [edi + 0x48]
mov edx, dword [eax + ebx*4]
mov esi, dword [esi + ebx*4]
movsd qword [ecx + ebx*8], xmm2
mov ecx, dword [edi + 0x28]
mov dword [ecx + ebx*4], edx
mov eax, dword [edi + 0x2c]
mov edx, dword [esp + 0x2e8]
mov ecx, dword [edx + ebx*4]
mov edx, dword [esp + 0x2e4]
mov dword [eax + ebx*4], esi
mov eax, dword [edi + 0x30]
mov dword [eax + ebx*4], ecx
mov esi, dword [edi + 0x34]
mov ecx, dword [edx + ebx*4]
mov dword [esi + ebx*4], ecx
cmp dword [esp + 0x314], 0
jne 0x1018f5dd
mov eax, dword [esp + 0x188]
mov ebx, dword [esp + 0x31c]
mov edx, dword [esp + 0x19c]
mov ecx, eax
shl ecx, 5
mov esi, dword [ebx + ecx - 0x20]
dec dword [esp + 0x190]
mov dword [edx + ebx], esi
mov esi, dword [ebx + ecx - 0x1c]
mov dword [edx + ebx + 4], esi
movsd xmm0, qword [ebx + ecx - 0x18]
movsd qword [edx + ebx + 8], xmm0
dec eax
mov esi, dword [ebx + ecx - 0x10]
mov dword [edx + ebx + 0x10], esi
mov esi, dword [ebx + ecx - 0xc]
mov dword [edx + ebx + 0x14], esi
movsd xmm1, qword [ebx + ecx - 8]
movsd qword [edx + ebx + 0x18], xmm1
mov dword [esp + 0x188], eax
mov eax, dword [esp + 0x190]
inc eax
cmp eax, dword [esp + 0x188]
mov dword [esp + 0x190], eax
jl 0x1018ebd4
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
cmp dword [esp + 0x188], 0xffffffff
je 0x1018f622
cmp dword [esp + 0x188], 0
jne 0x1018f64e
inc dword [esp + 0x134]
mov dword [esp + 0x130], 1
pxor xmm0, xmm0
comisd xmm0, xmmword [esp + 0x110]
movsd qword [esp + 0x2a0], xmm0
ja 0x1018f819
jmp 0x1018f9db
movsd xmm0, qword [esp + 0x110]
movsd qword [esp + 4], xmm0
mov dword [esp], edi
lea eax, [esp + 0x290]
mov dword [esp + 0x18], 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], 1
lea edx, [esp + 0x298]
mov dword [esp + 0x10], edx
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x14], ecx
call fcn.10168350
test eax, eax
je 0x1018f6c7
pxor xmm0, xmm0
comisd xmm0, xmmword [esp + 0x110]
movsd qword [esp + 0x2a0], xmm0
jbe 0x1018f6db
xor eax, eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
jmp 0x1018f819
movsd xmm0, qword [esp + 0x2a0]
comisd xmm0, xmmword [esp + 0x110]
ja 0x1018f6b2
mov eax, dword [esp + 0x2ac]
mov dword [esp], eax
pxor xmm0, xmm0
movsd qword [esp + 4], xmm0
call fcn.100e38f0
mov edx, dword [edi + 0x68]
inc dword [esp + 0x10c]
test edx, edx
jle 0x1018f74f
mov dword [esp + 0x2dc], ebx
mov ebx, dword [esp + 0x310]
mov dword [esp + 0x31c], esi
mov eax, 1
mov esi, eax
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + esi*4]
shl ecx, 4
push ecx
push dword [ebx + esi*4]
push dword [eax + esi*4]
call fcn.101d7590
add esp, 0xc
mov edx, dword [edi + 0x68]
inc esi
cmp esi, edx
jle 0x1018f71e
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
shl edx, 4
add edx, 0x10
push edx
push dword [esp + 0x32c]
push dword [edi + 0x44]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x334]
push dword [edi + 0x4c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [esp + 0x33c]
push dword [edi + 0x48]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x318]
push dword [edi + 0x28]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x320]
push dword [edi + 0x2c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x328]
push dword [edi + 0x30]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x330]
push dword [edi + 0x34]
call fcn.101d7590
add esp, 0x54
xor eax, eax
mov dword [esp + 0x130], eax
mov dword [esp + 0x134], eax
jmp 0x1018f9db
mov eax, dword [esp + 0x2ac]
movsd xmm0, qword [esp + 0xe0]
subsd xmm0, qword [esp + 0x290]
movsd qword [esp + 4], xmm0
mov dword [esp], eax
call fcn.100e38f0
imul edx, dword [esp + 0x138], 0x320
mov eax, dword [0x1021c284]
mov ecx, dword [esp + 0x188]
movsd xmm1, qword [esp + 0x2a0]
movsd xmm0, qword [edx + ecx*8 + 0x1021a080]
subsd xmm0, qword [esp + 0x110]
movsd qword [esp + 0x110], xmm1
cmp ecx, eax
cmovge eax, ecx
mov dword [0x1021c284], eax
mov eax, dword [ebp + 0x38]
movsd qword [eax], xmm1
movsd xmm2, qword [esp + 0x290]
movsd qword [esp + 0xe0], xmm2
inc dword [esp + 0x10c]
addsd xmm0, xmm1
movsd qword [edx + ecx*8 + 0x1021a080], xmm0
mov edx, dword [ebp + 0x30]
mov ecx, dword [ebp + 0x34]
movsd qword [edx], xmm2
movsd xmm3, qword [esp + 0x298]
movsd qword [ecx], xmm3
mov edx, dword [edi + 0x68]
movsd qword [esp + 0xe8], xmm3
test edx, edx
jle 0x1018f926
mov dword [esp + 0x2dc], ebx
mov ebx, dword [esp + 0x310]
mov dword [esp + 0x31c], esi
mov eax, 1
mov esi, eax
mov eax, dword [edi + 0x38]
mov edx, dword [edi + 0x3c]
mov ecx, dword [edx + esi*4]
shl ecx, 4
push ecx
push dword [eax + esi*4]
push dword [ebx + esi*4]
call fcn.101d7590
add esp, 0xc
mov edx, dword [edi + 0x68]
inc esi
cmp esi, edx
jle 0x1018f8f5
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
shl edx, 4
add edx, 0x10
push edx
push dword [edi + 0x44]
push dword [esp + 0x330]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x4c]
push dword [esp + 0x338]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [edi + 0x48]
push dword [esp + 0x340]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x28]
push dword [esp + 0x31c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x2c]
push dword [esp + 0x324]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x30]
push dword [esp + 0x32c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [edi + 0x34]
push dword [esp + 0x334]
call fcn.101d7590
add esp, 0x54
lea eax, [esp + 0x2e0]
push eax
push dword [0x1021fb78]
call fcn.100ef220
add esp, 8
movsd xmm0, qword [esp + 0x110]
comisd xmm0, xmmword [esp + 0x118]
jbe 0x1018fa61
mov edx, dword [esp + 0x2e0]
mov eax, dword [esp + 0x2a8]
add eax, 0xea60
cmp edx, eax
jl 0x1018fa61
movsd xmm2, qword [esp + 0x110]
movsd xmm0, qword [esp + 0xe0]
movsd xmm1, qword [esp + 0xe8]
movsd qword [esp + 4], xmm0
movsd qword [esp + 0x118], xmm2
movsd qword [esp + 0xc], xmm1
movsd qword [esp + 0x14], xmm2
mov dword [esp + 0x2a8], edx
mov dword [esp], edi
call fcn.1015c030
movsd xmm0, qword [ebp + 0x10]
pxor xmm1, xmm1
comisd xmm0, xmm1
jbe 0x1018fa97
cvtsi2sd xmm0, dword [esp + 0x2e0]
cvtsi2sd xmm1, dword [esp + 0x2d8]
addsd xmm1, qword [esp + 0xf0]
comisd xmm0, xmm1
ja 0x1018e594
jmp 0x1018fae2
lea eax, [esp + 0x268]
push eax
push 1
push 0xf
push dword [esp + 0x2b8]
call fcn.100e3a30
add esp, 0x10
mov eax, dword [esp + 0x10c]
cmp eax, dword [esp + 0xd8]
jle 0x1018fae2
movsd xmm0, qword [0x101f5d38]
mulsd xmm0, qword [esp + 0xe0]
comisd xmm0, xmmword [esp + 0x268]
ja 0x1018e594
cmp dword [0x10219d44], 0
je 0x1018faf8
call fcn.10166290
test eax, eax
jne 0x1018fca9
cmp dword [esp + 0x130], 0
je 0x1018e535
cmp dword [esp + 0x134], 0x3e8
jle 0x1018e535
jmp 0x1018e594
lea eax, [esp + 0x40]
push 0x101f5d70
push eax
call fcn.101bc928
push 1
lea eax, [esp + 0x4c]
push eax
push dword [0x1021c280]
push dword [0x10219180]
push str.epim
call fcn.100e45a0
add esp, 0x1c
mov edx, dword [edi + 0x68]
test edx, edx
jle 0x1018fbb0
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
mov esi, dword [esp + 0x2d0]
mov eax, 1
mov ebx, eax
mov edx, dword [esi + ebx*4]
test edx, edx
je 0x1018fb90
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x3c]
mov ecx, dword [ecx + ebx*4]
shl ecx, 4
push ecx
push edx
push dword [eax + ebx*4]
call fcn.101d7590
add esp, 0xc
jmp 0x1018fb9a
mov edx, dword [edi + 0x38]
mov dword [edx + ebx*4], 0
mov edx, dword [edi + 0x68]
inc ebx
cmp ebx, edx
jle 0x1018fb6e
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
shl edx, 4
add edx, 0x10
push edx
push dword [esp + 0x2d0]
push dword [edi + 0x44]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x2d8]
push dword [edi + 0x4c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*8 + 8]
push edx
push dword [esp + 0x2e0]
push dword [edi + 0x48]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x2e8]
push dword [edi + 0x28]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x2f0]
push dword [edi + 0x2c]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x2f8]
push dword [edi + 0x30]
call fcn.101d7590
mov eax, dword [edi + 0x68]
lea edx, [eax*4 + 4]
push edx
push dword [esp + 0x300]
push dword [edi + 0x34]
call fcn.101d7590
add esp, 0x54
mov eax, dword [ebp + 0x30]
movsd xmm0, qword [ebp + 0x18]
mov edx, dword [ebp + 0x34]
movsd xmm1, qword [ebp + 0x20]
mov ecx, dword [ebp + 0x38]
movsd xmm2, qword [ebp + 0x28]
movsd qword [eax], xmm0
movsd qword [edx], xmm1
movsd qword [ecx], xmm2
mov dword [esp + 0x2d4], 9
jmp 0x1018e5b4
xor ebx, ebx
xor esi, esi
jmp 0x1018e594
xor edx, edx
jmp 0x1018e479
mov dword [0x1021fca4], 1
jmp 0x1018e594
cmp dword [esp + 0x120], 0
je 0x1018e580
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
xor ebx, ebx
xor esi, esi
cmp eax, 0x2710
jge 0x1018e594
jmp 0x1018ebaf
cmp dword [esp + 0x124], 0
je 0x1018e580
cmp dword [0x1021c28c], 0
je 0x1018e580
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
cmp eax, 0x2710
jge 0x1018fc99
push 4
mov eax, dword [edi + 0x68]
inc eax
push eax
call fcn.101beb7a
mov ebx, eax
push 5
push 1
call fcn.100ed700
mov dword [esp + 0x108], eax
mov ecx, eax
mov edx, dword [edi + 0x68]
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
cmp edx, ecx
cmovl ecx, edx
mov dword [esp + 0x108], ecx
shl ecx, 5
push ecx
call fcn.101bcde0
add esp, 0x14
mov esi, eax
mov eax, dword [edi + 0x68]
imul eax, dword [esp + 0xf8]
test eax, eax
jle 0x1018fff5
cmp dword [esp + 0xf8], 0
mov dword [esp + 0x188], 0
jle 0x1018f61b
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
xor eax, eax
mov esi, eax
mov edx, dword [0x1021c28c]
inc esi
dec edx
push edx
push 0
call fcn.100ed700
add esp, 8
mov ebx, dword [0x1021c288]
mov ecx, dword [ebx + eax*4]
mov edx, dword [edi + 8]
mov edx, dword [edx + ecx*4]
mov ebx, dword [edx]
mov edx, dword [edi + 0x10]
cmp dword [edx + ebx*4], 0
je 0x1018ffbf
mov edx, dword [esp + 0x2dc]
cmp dword [edx + ebx*4], 1
je 0x1018ffbf
mov ecx, dword [0x10219190]
mov edx, dword [edi]
imul edx, dword [edx + ebx*4], 0xa10
mov dword [esp + 0x10], 0
mov dword [esp + 0xbc], edx
lea edx, [ecx + edx + 0x820]
mov dword [esp], edx
mov edx, dword [esp + 0x320]
movsd xmm0, qword [edx + ebx*8]
movsd qword [esp + 4], xmm0
lea edx, [esp + 0x260]
mov dword [esp + 0xc], edx
call fcn.100ee900
mov edx, dword [0x10219190]
movsd xmm4, qword [esp + 0x260]
mov ecx, dword [esp + 0xbc]
movsd xmm5, qword [0x101f5cd8]
movsd xmm0, qword [edx + ecx + 0x988]
movaps xmm1, xmm0
movsd xmm2, qword [0x101f5ce0]
movsd xmm6, qword [0x101f5cf0]
movsd xmm7, qword [0x101f5ce8]
addsd xmm1, xmm4
subsd xmm0, xmm4
pxor xmm3, xmm3
subsd xmm3, xmm1
movsd xmm1, qword [0x101f5cd8]
addsd xmm5, xmm3
comisd xmm2, xmm3
addsd xmm1, xmm0
ja 0x1018fea9
movaps xmm5, xmm3
maxsd xmm6, xmm5
movsd qword [esp], xmm6
comisd xmm7, xmm0
ja 0x1018febb
movaps xmm1, xmm0
movsd xmm0, qword [0x101f5cf8]
minsd xmm0, xmm1
movsd qword [esp + 8], xmm0
call fcn.100ed440
fstp qword [esp + 0xc0]
movsd xmm0, qword [esp + 0xc0]
movsd xmm3, qword [0x101f5d48]
movsd xmm4, qword [0x101f5d58]
mov eax, dword [esp + 0x2dc]
mov ecx, dword [esp + 0x31c]
mov dword [esp + 0xc8], esi
mov esi, dword [esp + 0x320]
movsd xmm2, qword [esi + ebx*8]
mov esi, dword [esp + 0x324]
addsd xmm2, xmm0
divsd xmm2, qword [0x101f5d00]
mulsd xmm2, qword [0x101f5d10]
addsd xmm2, qword [0x101f5d08]
movsd xmm0, qword [0x101f5d50]
mov dword [eax + ebx*4], 1
mov eax, dword [esp + 0x188]
andps xmm3, xmm2
movaps xmm1, xmm3
mov edx, eax
shl edx, 5
mov dword [ecx + edx + 0x10], ebx
pxor xmm1, xmm2
cmpltsd xmm1, xmm0
mov dword [ecx + edx], ebx
mov ebx, dword [esi + ebx*4]
mov esi, dword [esp + 0xc8]
andps xmm1, xmm0
orps xmm1, xmm3
movaps xmm6, xmm1
mov dword [ecx + edx + 4], ebx
inc eax
mov dword [esp + 0x188], eax
addsd xmm6, xmm2
subsd xmm6, xmm1
movaps xmm5, xmm6
subsd xmm5, xmm2
cmpnlesd xmm5, xmm3
andps xmm5, xmm4
subsd xmm6, xmm5
divsd xmm6, qword [0x101f5d18]
divsd xmm6, qword [0x101f5d20]
mulsd xmm6, qword [0x101f5d00]
movsd qword [ecx + edx + 8], xmm6
mov edx, dword [edi + 0x68]
imul edx, dword [esp + 0xf8]
cmp esi, edx
jge 0x1018ffe2
mov edx, dword [esp + 0x188]
cmp edx, dword [esp + 0xf8]
jl 0x1018fdb2
mov ebx, dword [esp + 0x2dc]
mov esi, dword [esp + 0x31c]
jmp 0x1018ebaf
mov dword [esp + 0x188], 0
jmp 0x1018f61b
test edi, edi
je 0x1018e580
cmp dword [0x1021c294], 0
je 0x1018e580
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
cmp eax, 0x2710
jge 0x1018fc99
push 4
mov eax, dword [edi + 0x68]
inc eax
push eax
call fcn.101beb7a
mov ebx, eax
push 4
push 1
call fcn.100ed700
mov dword [esp + 0xec], eax
mov ecx, eax
mov edx, dword [edi + 0x68]
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
cmp edx, ecx
cmovl ecx, edx
mov dword [esp + 0xec], ecx
shl ecx, 5
push ecx
call fcn.101bcde0
add esp, 0x14
mov esi, eax
mov edx, dword [esp + 0xdc]
mov eax, dword [edi + 0x68]
imul edx, eax
test edx, edx
jle 0x1018fff5
cmp dword [esp + 0xdc], 0
mov dword [esp + 0x188], 0
jle 0x1018f61b
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
xor edx, edx
mov ebx, edx
push eax
push 1
inc ebx
call fcn.100ed700
add esp, 8
mov esi, eax
mov eax, dword [edi + 0x10]
cmp dword [eax + esi*4], 0
je 0x10190125
mov eax, dword [esp + 0x2dc]
cmp dword [eax + esi*4], 1
je 0x10190125
mov edx, dword [0x10219190]
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x1021fee4]
mov eax, dword [eax + esi*4]
mov dword [esp + 0xd4], ecx
imul ecx, ecx, 0xa10
mov dword [esp + 0xd0], edx
mov dword [esp + 0xcc], ecx
mov ecx, dword [edx + ecx + 0x934]
test ecx, ecx
je 0x10190153
cmp dword [ecx + eax*4], 0
jle 0x10190153
mov ecx, dword [esp + 0xdc]
mov eax, dword [edi + 0x68]
imul ecx, eax
cmp ebx, ecx
jge 0x1018ffe2
mov ecx, dword [esp + 0xdc]
cmp ecx, dword [esp + 0x188]
jg 0x101900c2
jmp 0x1018ffe2
mov edx, dword [esp + 0xcc]
mov ecx, dword [esp + 0xd0]
mov ecx, dword [ecx + edx + 0x930]
test ecx, ecx
je 0x10190172
cmp dword [ecx + eax*4], 0
jg 0x10190125
push dword [esp + 0xd4]
call fcn.100ee540
pop ecx
test eax, eax
je 0x10190125
cmp eax, 4
jne 0x101901b6
push 5
push 0xfffffffffffffffb
call fcn.100ed700
add esp, 8
cvtsi2sd xmm1, eax
divsd xmm1, qword [0x101f5d20]
mulsd xmm1, qword [0x101f5d00]
mov eax, dword [esp + 0x320]
addsd xmm1, qword [eax + esi*8]
jmp 0x10190230
mov eax, dword [esp + 0x320]
mov ecx, dword [0x10219190]
movsd xmm1, qword [eax + esi*8]
addsd xmm1, qword [0x101f5d00]
mov eax, dword [esp + 0xcc]
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 4], xmm1
mov dword [esp + 0x10], 0
lea eax, [ecx + eax + 0x820]
mov dword [esp], eax
lea eax, [esp + 0x258]
mov dword [esp + 0xc], eax
call fcn.100ee900
movsd xmm1, qword [esp + 0x70]
movsd xmm0, qword [esp + 0x258]
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0xcc]
comisd xmm0, xmmword [eax + ecx + 0x988]
ja 0x10190125
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x31c]
mov dword [esp + 0x78], ebx
mov ebx, dword [esp + 0x2dc]
mov dword [ebx + esi*4], 1
mov ebx, dword [esp + 0x324]
mov edx, eax
shl edx, 5
movsd qword [ecx + edx + 8], xmm1
mov dword [ecx + edx + 0x10], esi
inc eax
mov dword [ecx + edx], esi
mov esi, dword [ebx + esi*4]
mov ebx, dword [esp + 0x78]
mov dword [ecx + edx + 4], esi
mov dword [esp + 0x188], eax
jmp 0x10190125
test esi, esi
je 0x1018e580
mov edi, dword [esp + 0x144]
mov dword [esp + 0x138], eax
mov eax, ebx
mov dword [esp + 0x140], esi
cmp eax, 0x2710
jge 0x1018fc99
push 4
mov eax, dword [edi + 0x68]
inc eax
push eax
call fcn.101beb7a
mov ebx, eax
push 4
push 1
call fcn.100ed700
mov dword [esp + 0x10c], eax
mov ecx, eax
mov edx, dword [edi + 0x68]
mov eax, edx
shr eax, 0x1f
add edx, eax
sar edx, 1
cmp edx, ecx
cmovl ecx, edx
mov dword [esp + 0x10c], ecx
shl ecx, 5
push ecx
call fcn.101bcde0
add esp, 0x14
mov esi, eax
mov edx, dword [esp + 0xfc]
mov eax, dword [edi + 0x68]
imul edx, eax
test edx, edx
jle 0x1018fff5
cmp dword [esp + 0xfc], 0
mov dword [esp + 0x188], 0
jle 0x1018f61b
mov dword [esp + 0x2dc], ebx
mov dword [esp + 0x31c], esi
xor edx, edx
mov ebx, edx
push eax
push 1
inc ebx
call fcn.100ed700
add esp, 8
mov esi, eax
mov eax, dword [edi]
mov ecx, dword [eax + esi*4]
mov eax, dword [0x10219190]
mov dword [esp + 0x104], ecx
imul ecx, ecx, 0xa10
mov dword [esp + 0x108], ecx
mov ecx, dword [eax + ecx + 0x87c]
mov dword [esp + 0x100], ecx
mov ecx, dword [edi + 0x10]
cmp dword [ecx + esi*4], 0
je 0x101903cd
movsd xmm0, qword [0x1021fc80]
divsd xmm0, qword [0x101f5cd0]
mov ecx, dword [esp + 0x108]
comisd xmm0, xmmword [eax + ecx + 0x48]
ja 0x101903cd
mov ecx, dword [esp + 0x2dc]
cmp dword [ecx + esi*4], 1
je 0x101903cd
mov ecx, dword [esp + 0x108]
mov edx, dword [eax + ecx + 0x888]
mov ecx, dword [0x102202fc]
mov edx, dword [ecx + edx*4]
cmp edx, 1
jle 0x101903cd
mov ecx, dword [esp + 0x108]
cmp dword [eax + ecx + 0x974], 0
jle 0x101903fb
mov ecx, dword [esp + 0xfc]
mov eax, dword [edi + 0x68]
imul ecx, eax
cmp ebx, ecx
jge 0x1018ffe2
mov ecx, dword [esp + 0xfc]
cmp ecx, dword [esp + 0x188]
jg 0x10190331
jmp 0x1018ffe2
shl edx, 2
push edx
call fcn.101bcde0
mov dword [esp + 0x80], eax
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0x10c]
mov ecx, dword [eax + ecx + 0x888]
mov eax, dword [0x102202fc]
mov eax, dword [eax + ecx*4]
shl eax, 2
push eax
call fcn.101bcde0
mov dword [esp + 0x88], eax
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0x110]
mov ecx, dword [eax + ecx + 0x888]
mov eax, dword [0x102202fc]
mov eax, dword [eax + ecx*4]
shl eax, 2
push eax
call fcn.101bcde0
mov dword [esp + 0x90], eax
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0x114]
mov ecx, dword [eax + ecx + 0x888]
mov eax, dword [0x102202fc]
mov eax, dword [eax + ecx*4]
shl eax, 3
push eax
call fcn.101bcde0
mov dword [esp + 0x98], eax
mov ecx, dword [0x10219190]
mov eax, dword [esp + 0x118]
mov ecx, dword [eax + ecx + 0x888]
mov eax, dword [0x102202fc]
mov eax, dword [eax + ecx*4]
shl eax, 3
push eax
call fcn.101bcde0
add esp, 0x14
mov dword [esp + 0x8c], eax
mov eax, dword [0x10219190]
mov edx, dword [0x102202fc]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xa8], eax
mov eax, dword [eax + ecx + 0x888]
cmp dword [edx + eax*4], 0
jle 0x10190694
mov dword [esp + 0xb0], edx
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0x144], edi
xor ecx, ecx
shl eax, 2
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x94], ecx
mov edi, dword [0x10220300]
mov ecx, dword [esp + 0xa4]
mov ebx, dword [esp + 0x144]
mov edx, dword [eax + edi]
mov edx, dword [edx + ecx*4]
mov esi, dword [ebx + 8]
mov edi, dword [esi + edx*4]
mov esi, dword [esp + 0xa8]
mov ebx, dword [edi]
imul ecx, edx, 0xa10
mov edi, dword [ecx + esi + 0x87c]
mov dword [esp + 0xac], edx
mov edx, dword [0x10220304]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x100]
mov esi, dword [edx + ecx*4]
test esi, esi
jle 0x101905a3
mov edx, dword [0x10220308]
mov ecx, dword [edx + ecx*4]
mov dword [esp + 0xa0], eax
xor ebx, ebx
lea eax, [ebx + ebx*2]
shl eax, 4
cmp edi, dword [ecx + eax]
je 0x101906d5
inc ebx
cmp ebx, esi
jl 0x10190588
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
mov ecx, dword [esp + 0xb0]
inc edx
cmp edx, dword [eax + ecx]
mov dword [esp + 0xa4], edx
jl 0x10190517
mov ecx, dword [esp + 0x94]
mov esi, dword [esp + 0x98]
mov ebx, dword [esp + 0x90]
mov edi, dword [esp + 0x144]
test ecx, ecx
jle 0x10190694
dec ecx
push ecx
push 0
call fcn.100ed700
add esp, 8
mov edx, dword [esp + 0x7c]
mov ecx, dword [edx + eax*4]
mov edx, dword [esp + 0x2dc]
mov dword [esp + 0x144], edi
mov edi, dword [edi + 8]
mov dword [esp + 0x90], ebx
mov ebx, dword [edi + ecx*4]
mov ebx, dword [ebx]
mov edi, dword [esp + 0x188]
mov dword [edx + ebx*4], 1
mov ecx, edi
shl ecx, 5
mov dword [edx + esi*4], 1
mov edx, dword [esp + 0x31c]
inc edi
mov dword [ecx + edx], esi
mov esi, dword [esp + 0x80]
mov esi, dword [esi + eax*4]
mov dword [ecx + edx + 4], esi
mov esi, dword [esp + 0x88]
movsd xmm0, qword [esi + eax*8]
mov esi, dword [esp + 0x8c]
movsd xmm1, qword [esi + eax*8]
movsd qword [ecx + edx + 8], xmm0
movsd qword [ecx + edx + 0x18], xmm1
mov dword [ecx + edx + 0x10], ebx
mov ebx, dword [esp + 0x84]
mov ebx, dword [ebx + eax*4]
mov dword [ecx + edx + 0x14], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x188], edi
mov edi, dword [esp + 0x144]
push dword [esp + 0x7c]
call fcn.101bceaa
push dword [esp + 0x84]
call fcn.101bceaa
push dword [esp + 0x8c]
call fcn.101bceaa
push dword [esp + 0x94]
call fcn.101bceaa
push dword [esp + 0x9c]
call fcn.101bceaa
add esp, 0x14
jmp 0x101903cd
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x9c]
movsd xmm0, qword [ecx + ebx + 0x18]
comisd xmm0, xmmword [0x101f5d28]
jbe 0x101905a3
movsd xmm0, qword [ecx + ebx + 0x10]
comisd xmm0, xmmword [0x101f5d30]
jbe 0x101905a3
movsd xmm0, qword [ecx + ebx + 0x20]
comisd xmm0, xmmword [0x101f5d28]
jbe 0x101905a3
mov ecx, dword [esp + 0x144]
mov esi, dword [esp + 0xb8]
mov ebx, dword [ecx + 0x10]
cmp dword [ebx + esi*4], 0
je 0x101905a3
mov ecx, dword [esp + 0x2dc]
mov ebx, esi
cmp dword [ecx + ebx*4], 1
je 0x101905a3
mov ecx, dword [esp + 0x104]
cmp ecx, dword [esp + 0xac]
je 0x101905a3
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x108]
cmp edi, dword [ecx + ebx + 0x87c]
je 0x101905a3
mov ecx, dword [esp + 0x144]
mov ebx, dword [esp + 0x98]
mov edi, dword [ecx + 0x58]
mov ecx, esi
mov esi, dword [edi + ebx*4]
cmp esi, dword [edi + ecx*4]
jne 0x101905a3
mov ebx, dword [esp + 0xa8]
mov ecx, dword [esp + 0xb4]
cmp dword [ecx + ebx + 0x974], 0
jg 0x101905a3
mov eax, dword [0x1021fee4]
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x108]
mov ecx, dword [eax + ecx*4]
mov ebx, dword [ebx + esi + 0x934]
test ebx, ebx
je 0x101907ef
cmp dword [ebx + ecx*4], 0
jle 0x101907ef
mov dword [esp + 0x5c], 1
jmp 0x101907f7
mov dword [esp + 0x5c], 0
mov ebx, dword [esp + 0xb8]
mov edi, dword [esp + 0xa8]
mov esi, dword [esp + 0xb4]
mov eax, dword [eax + ebx*4]
mov ebx, dword [esi + edi + 0x934]
test ebx, ebx
je 0x1019082a
cmp dword [ebx + eax*4], 0
jle 0x1019082a
mov dword [esp + 0x58], 1
jmp 0x10190832
mov dword [esp + 0x58], 0
mov ebx, edi
mov esi, dword [esp + 0x108]
mov ebx, dword [ebx + esi + 0x930]
test ebx, ebx
je 0x10190856
cmp dword [ebx + ecx*4], 0
jle 0x10190856
mov dword [esp + 0x50], 1
jmp 0x1019085e
mov dword [esp + 0x50], 0
mov ebx, edi
mov ecx, dword [esp + 0xb4]
mov ecx, dword [ecx + ebx + 0x930]
test ecx, ecx
je 0x10190882
cmp dword [ecx + eax*4], 0
jle 0x10190882
mov dword [esp + 0x54], 1
jmp 0x1019088a
mov dword [esp + 0x54], 0
mov ebx, dword [esp + 0x144]
mov ecx, dword [esp + 0xb8]
mov edi, dword [esp + 0x100]
mov eax, dword [ebx + 0x4c]
mov esi, dword [eax + ecx*4]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x304], esi
mov edx, dword [edx + edi*4]
mov eax, dword [edx + ebx + 4]
mov dword [esp + 0x308], eax
lea ebx, [esp + 0x304]
lea edx, [esp + 0x250]
push edx
push 2
push ebx
call fcn.100ae420
mov eax, dword [esp + 0x150]
mov ecx, dword [esp + 0xa4]
mov edi, dword [0x10220308]
mov edx, dword [eax + 0x4c]
mov esi, dword [edx + ecx*4]
mov eax, dword [esp + 0x10c]
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x310], esi
mov ecx, dword [edi + eax*4]
mov esi, dword [edx + ecx + 4]
mov dword [esp + 0x314], esi
lea edi, [esp + 0x260]
push edi
push 2
push ebx
call fcn.100ae420
add esp, 0x18
mov edx, dword [esp + 0x144]
mov ecx, dword [0x10220308]
mov ebx, dword [esp + 0x100]
mov edi, dword [esp + 0x9c]
mov eax, dword [edx + 0x48]
mov esi, dword [ecx + ebx*4]
mov edx, dword [esp + 0xb8]
mov ecx, dword [esp + 0x98]
movsd xmm0, qword [esi + edi + 8]
movsd xmm1, qword [eax + edx*8]
movaps xmm3, xmm1
movsd xmm4, qword [eax + ecx*8]
movaps xmm2, xmm4
addsd xmm3, xmm0
movsd qword [esp + 0x48], xmm3
subsd xmm2, xmm0
movsd xmm0, qword [0x1020c140]
movsd qword [esp + 0x40], xmm2
subsd xmm3, xmm4
comisd xmm0, xmm3
jbe 0x101909a1
pxor xmm2, xmm2
subsd xmm2, xmm0
comisd xmm3, xmm2
ja 0x101909a8
cmp dword [esp + 0x5c], 1
je 0x101909e1
movsd xmm2, qword [esp + 0x40]
subsd xmm2, xmm1
comisd xmm0, xmm2
jbe 0x101909d0
pxor xmm1, xmm1
subsd xmm1, xmm0
comisd xmm2, xmm1
jbe 0x101909d0
mov dword [esp + 0x6c], 1
jmp 0x101909e9
cmp dword [esp + 0x58], 1
je 0x101909e1
mov dword [esp + 0x6c], 1
jmp 0x101909e9
mov dword [esp + 0x6c], 0
mov eax, dword [esp + 0x144]
mov edx, dword [esp + 0x250]
mov ebx, dword [eax + 0x4c]
cmp edx, dword [ebx + ecx*4]
mov dword [esp + 0x68], edx
je 0x10190a0a
cmp dword [esp + 0x50], 1
je 0x10190a24
mov eax, dword [esp + 0x254]
mov edx, dword [esp + 0xb8]
cmp eax, dword [ebx + edx*4]
je 0x10190a2c
cmp dword [esp + 0x54], 1
jne 0x10190a2c
mov dword [esp + 0x6c], 0
mov edx, dword [0x10219190]
mov eax, dword [esp + 0x108]
mov ecx, dword [eax + edx + 0x980]
mov dword [esp + 0x60], edx
test ecx, ecx
mov dword [esp + 0x64], ecx
jl 0x10190cb2
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0xb4]
mov eax, dword [eax + edx + 0x980]
test eax, eax
jl 0x10190c9d
cmp dword [esp + 0x68], 3
je 0x10190c7a
cmp dword [esp + 0x68], 1
je 0x10190c86
cmp dword [esp + 0x68], 2
je 0x10190c6f
mov edx, dword [esp + 0x254]
cmp edx, 3
je 0x10190c4f
cmp edx, 1
je 0x10190c65
cmp edx, 2
je 0x10190c46
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x108]
movsd xmm0, qword [esp + 0x48]
movsd qword [esp + 4], xmm0
lea ecx, [eax + edx + 0x820]
mov dword [esp + 0x10], 0
mov dword [esp], ecx
lea ebx, [esp + 0x240]
mov dword [esp + 0xc], ebx
call fcn.100ee900
mov eax, dword [0x10219190]
mov edx, dword [esp + 0xb4]
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 4], xmm0
lea ecx, [eax + edx + 0x820]
mov dword [esp + 0x10], 0
mov dword [esp], ecx
lea ebx, [esp + 0x248]
mov dword [esp + 0xc], ebx
call fcn.100ee900
mov eax, dword [0x10219190]
movsd xmm0, qword [esp + 0x240]
mov edx, dword [esp + 0x108]
comisd xmm0, xmmword [eax + edx + 0x988]
mov dword [esp + 0xa8], eax
ja 0x10190b64
movsd xmm0, qword [esp + 0x248]
mov edx, eax
mov eax, dword [esp + 0xb4]
comisd xmm0, xmmword [eax + edx + 0x988]
jbe 0x10190b8d
mov eax, dword [0x102202fc]
mov edx, dword [esp + 0xa8]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xb0], eax
mov eax, dword [edx + ecx + 0x888]
shl eax, 2
jmp 0x101905a3
cmp dword [esp + 0x6c], 0
je 0x10190c24
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0xac]
mov eax, dword [esp + 0x94]
mov ebx, dword [esp + 0x250]
mov esi, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x40]
movsd qword [edi + eax*8], xmm0
mov edi, dword [esp + 0x108]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x254]
mov ecx, dword [esp + 0x84]
mov dword [esi + eax*4], ebx
mov ebx, dword [esp + 0x8c]
mov esi, dword [esp + 0xa8]
movsd qword [ebx + eax*8], xmm1
mov dword [ecx + eax*4], edx
inc eax
mov dword [esp + 0x94], eax
mov eax, dword [0x102202fc]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + edi + 0x888]
shl eax, 2
jmp 0x101905a3
mov eax, dword [0x102202fc]
mov ecx, dword [esp + 0x108]
mov dword [esp + 0xb0], eax
mov eax, dword [edx + ecx + 0x888]
shl eax, 2
jmp 0x101905a3
cmp eax, 2
je 0x10190aad
cmp eax, 3
je 0x10190aad
mov dword [esp + 0x6c], 0
jmp 0x10190aad
cmp eax, 1
jne 0x10190c4f
jmp 0x10190aad
cmp dword [esp + 0x64], 2
je 0x10190a8b
cmp dword [esp + 0x64], 3
jne 0x10190c58
jmp 0x10190a8b
cmp dword [esp + 0x64], 1
je 0x10190a8b
cmp dword [esp + 0x64], 3
jne 0x10190c58
jmp 0x10190a8b
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
cmp ecx, dword [esp + 0x254]
jne 0x10190c58
jmp 0x10190a6a
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [esp + 0x68]
jne 0x10190c58
jmp 0x10190a50