// File: /workspace/github_cpp_makefile_star2_O3/ttalvitie[P]traveling-santa/optimize.cpp
// Function: initialPaths(long long)
vector<Path> initialPaths(Z wtLimit) {
    vector<Point> points;
	ifstream fp("nicelist.txt");
    if(!fp.good()) throw 0;
	while(true) {
		string item;
		fp >> item;
		if(!fp.good()) {
			break;
		}
		for(char& c : item) {
			if(c == ';') c = ' ';
		}
		item.push_back('\n');
		stringstream ss(item);
		ss.exceptions(ss.failbit | ss.badbit | ss.eofbit);
        Point point;
		double la, lo;
		ss >> point.child >> la >> lo >> point.wt;
        if(point.child == -1) throw 0;
		point.pos = Vec3::fromLatLong(la, lo);
        points.push_back(point);
    }

    Path path;
    path.points.push_back(Korvatunturi);

    while(!points.empty()) {
        double bestDist = Infty;
        int bestPi = -1;
        for(int pi = 0; pi < len(points); ++pi) {
            double dist = sphereDist(path.points.back().pos, points[pi].pos);
            if(dist < bestDist) {
                bestDist = dist;
                bestPi = pi;
            }
        }
        if(bestPi == -1) throw 0;
        swap(points[bestPi], points.back());
        path.points.push_back(points.back());
        points.pop_back();
    }

    path.points.push_back(Korvatunturi);

    while(true) {
        bool progress = false;
        for(int i = 1; i < len(path.points); ++i) {
            for(int j = i + 2; j < len(path.points); ++j) {
                double costDiff = 0.0;
                costDiff -= sphereDist(path.points[i - 1].pos, path.points[i].pos);
                costDiff -= sphereDist(path.points[j - 1].pos, path.points[j].pos);
                costDiff += sphereDist(path.points[i - 1].pos, path.points[j - 1].pos);
                costDiff += sphereDist(path.points[i].pos, path.points[j].pos);
                if(costDiff < 0.0) {
                    reverse(path.points.begin() + i, path.points.begin() + j);
                    progress = true;
                }
            }
        }
        if(!progress) break;
    }

    vector<Path> paths;
    int i = 1;
    while(i != len(path.points) - 1) {
        int j = i;
        Z wt = 0;
        while(j != len(path.points) - 1 && (j == i || wt + path.points[j].wt <= wtLimit)) {
            wt += path.points[j].wt;
            ++j;
        }
        Path sub;
        sub.points.push_back(Korvatunturi);
        sub.points.insert(sub.points.end(), path.points.begin() + i, path.points.begin() + j);
        sub.points.push_back(Korvatunturi);
        sub.finalize();
        paths.push_back(move(sub));
        i = j;
    }

    return paths;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x498, %rsp            # imm = 0x498
movq %rsi, 0xe8(%rsp)
movq %rdi, 0x48(%rsp)
xorpd %xmm0, %xmm0
movapd %xmm0, 0x10(%rsp)
movq $0x0, 0x20(%rsp)
leaq 0x49b6(%rip), %rsi      # 0x70dc
leaq 0x290(%rsp), %rbx
movq %rbx, %rdi
movl $0x8, %edx
callq 0x2340
movq (%rbx), %rax
movq -0x18(%rax), %rax
cmpl $0x0, 0x2b0(%rsp,%rax)
jne 0x3300
leaq 0xb0(%rsp), %r14
leaq 0x290(%rsp), %r13
leaq 0xa0(%rsp), %rbp
leaq 0x100(%rsp), %rbx
leaq 0x50(%rsp), %r15
movq %r14, 0xa0(%rsp)
movq $0x0, 0xa8(%rsp)
movb $0x0, 0xb0(%rsp)
movq %r13, %rdi
movq %rbp, %rsi
callq 0x2200
movq 0x290(%rsp), %rax
movq -0x18(%rax), %rax
movl 0x2b0(%rsp,%rax), %r12d
testl %r12d, %r12d
jne 0x2980
movq 0xa8(%rsp), %rax
testq %rax, %rax
je 0x27e2
movq 0xa0(%rsp), %rcx
xorl %edx, %edx
cmpb $0x3b, (%rcx,%rdx)
jne 0x27da
movb $0x20, (%rcx,%rdx)
incq %rdx
cmpq %rdx, %rax
jne 0x27d0
movq %rbp, %rdi
movl $0xa, %esi
callq 0x21a0
movq %rbx, %rdi
movq %rbp, %rsi
movl $0x18, %edx
callq 0x2280
movq 0x100(%rsp), %rax
movq -0x18(%rax), %rax
leaq (%rsp,%rax), %rdi
addq $0x100, %rdi            # imm = 0x100
movl $0x7, 0x1c(%rdi)
movl 0x20(%rdi), %esi
callq 0x22d0
movq %rbx, %rdi
movq %r15, %rsi
callq 0x20f0
movq %rax, %rdi
leaq 0xf8(%rsp), %rsi
callq 0x2100
movq %rax, %rdi
leaq 0xf0(%rsp), %rsi
callq 0x2100
movq %rax, %rdi
leaq 0x70(%rsp), %rsi
callq 0x2210
cmpl $-0x1, 0x50(%rsp)
je 0x32dd
movsd 0x7d38(%rip), %xmm0     # 0xa5a8
movsd 0xf8(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, (%rsp)
mulsd 0xf0(%rsp), %xmm0
movsd %xmm0, 0x90(%rsp)
callq 0x2350
movapd %xmm0, 0x30(%rsp)
movsd (%rsp), %xmm0
callq 0x2350
movaps %xmm0, 0xd0(%rsp)
movsd 0x90(%rsp), %xmm0
callq 0x2030
movaps %xmm0, 0x90(%rsp)
movsd (%rsp), %xmm0
callq 0x2350
movaps %xmm0, 0xc0(%rsp)
movsd (%rsp), %xmm0
callq 0x2030
movapd 0x30(%rsp), %xmm1
unpcklpd 0x90(%rsp), %xmm1       # xmm1 = xmm1[0],mem[0]
movapd 0xd0(%rsp), %xmm2
unpcklpd 0xc0(%rsp), %xmm2       # xmm2 = xmm2[0],mem[0]
mulpd %xmm1, %xmm2
movupd %xmm2, 0x58(%rsp)
movsd %xmm0, 0x68(%rsp)
movq 0x18(%rsp), %rsi
cmpq 0x20(%rsp), %rsi
je 0x2957
movq 0x80(%rsp), %rax
movq %rax, 0x30(%rsi)
movupd 0x50(%rsp), %xmm0
movupd 0x60(%rsp), %xmm1
movupd 0x70(%rsp), %xmm2
movupd %xmm2, 0x20(%rsi)
movupd %xmm1, 0x10(%rsi)
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x18(%rsp)
jmp 0x2964
leaq 0x10(%rsp), %rdi
movq %r15, %rdx
callq 0x62ee
movq %rbx, %rdi
movq 0x664a(%rip), %rsi      # 0x8fb8
callq 0x2150
leaq 0x180(%rsp), %rdi
callq 0x2060
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x299d
movq 0xb0(%rsp), %rsi
incq %rsi
callq 0x21e0
testl %r12d, %r12d
je 0x2775
xorpd %xmm0, %xmm0
leaq 0x50(%rsp), %rdi
movapd %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq 0x6826(%rip), %rdx      # 0x91e8
xorl %esi, %esi
callq 0x62ee
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
cmpq %rcx, %rax
je 0x2c0a
leaq 0x50(%rsp), %rbx
subq %rax, %rcx
shrq $0x3, %rcx
imull $0xb6db6db7, %ecx, %ecx # imm = 0xB6DB6DB7
testl %ecx, %ecx
jle 0x32ba
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl $0x18, %r14d
xorl %r15d, %r15d
movsd 0x4604(%rip), %xmm0     # 0x7010
movsd %xmm0, (%rsp)
movq 0x58(%rsp), %rcx
movsd -0x30(%rcx), %xmm1
movsd -0x28(%rcx), %xmm7
movsd -0x20(%rcx), %xmm2
movsd -0x10(%rax,%r14), %xmm3
movsd -0x8(%rax,%r14), %xmm4
movsd (%rax,%r14), %xmm6
movapd %xmm1, %xmm8
mulsd %xmm3, %xmm8
movapd %xmm2, %xmm0
movapd %xmm4, %xmm9
mulsd %xmm2, %xmm9
movapd %xmm7, %xmm5
mulsd %xmm3, %xmm2
mulsd %xmm7, %xmm3
mulsd %xmm4, %xmm7
addsd %xmm7, %xmm8
movsd 0x6772(%rip), %xmm7     # 0x91e0
movsd %xmm7, 0x30(%rsp)
mulsd %xmm6, %xmm0
addsd %xmm8, %xmm0
mulsd %xmm6, %xmm5
subsd %xmm9, %xmm5
mulsd %xmm1, %xmm6
subsd %xmm6, %xmm2
mulsd %xmm4, %xmm1
subsd %xmm3, %xmm1
mulsd %xmm2, %xmm2
mulsd %xmm5, %xmm5
addsd %xmm2, %xmm5
mulsd %xmm1, %xmm1
addsd %xmm5, %xmm1
sqrtsd %xmm1, %xmm1
divsd %xmm1, %xmm0
callq 0x2180
movsd 0x30(%rsp), %xmm1
subsd %xmm0, %xmm1
mulsd 0x453f(%rip), %xmm1     # 0x7008
movsd (%rsp), %xmm0
ucomisd %xmm1, %xmm0
cmoval %r15d, %ebp
minsd %xmm0, %xmm1
movapd %xmm1, %xmm0
incq %r15
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
movq %rcx, %rdx
subq %rax, %rdx
shrq $0x3, %rdx
imull $0xb6db6db7, %edx, %edx # imm = 0xB6DB6DB7
movslq %edx, %rdx
addq $0x38, %r14
cmpq %rdx, %r15
jl 0x2a0c
cmpl $-0x1, %ebp
je 0x32ba
movslq %ebp, %rdx
imulq $0x38, %rdx, %rsi
leaq -0x38(%rcx), %rdx
movq 0x30(%rax,%rsi), %rdi
movq %rdi, 0x130(%rsp)
movups (%rax,%rsi), %xmm0
movups 0x10(%rax,%rsi), %xmm1
movups 0x20(%rax,%rsi), %xmm2
movaps %xmm2, 0x120(%rsp)
movaps %xmm1, 0x110(%rsp)
movaps %xmm0, 0x100(%rsp)
movq -0x8(%rcx), %rdi
movq %rdi, 0x30(%rax,%rsi)
movups -0x38(%rcx), %xmm0
movups -0x28(%rcx), %xmm1
movups -0x18(%rcx), %xmm2
movups %xmm2, 0x20(%rax,%rsi)
movups %xmm1, 0x10(%rax,%rsi)
movups %xmm0, (%rax,%rsi)
movq 0x130(%rsp), %rsi
movq %rsi, -0x8(%rcx)
movapd 0x100(%rsp), %xmm0
movapd 0x110(%rsp), %xmm1
movapd 0x120(%rsp), %xmm2
movupd %xmm2, -0x18(%rcx)
movupd %xmm1, -0x28(%rcx)
movupd %xmm0, -0x38(%rcx)
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x2be6
movq 0x30(%rdx), %rdi
movq %rdi, 0x30(%rsi)
movupd (%rdx), %xmm0
movupd 0x10(%rdx), %xmm1
movupd 0x20(%rdx), %xmm2
movupd %xmm2, 0x20(%rsi)
movupd %xmm1, 0x10(%rsi)
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x2bf8
movq %rbx, %rdi
callq 0x62ee
movq 0x10(%rsp), %rax
movq 0x18(%rsp), %rcx
addq $-0x38, %rcx
movq %rcx, 0x18(%rsp)
cmpq %rcx, %rax
jne 0x29e1
movq 0x58(%rsp), %rsi
cmpq 0x60(%rsp), %rsi
je 0x2c4e
movq 0x65fb(%rip), %rax      # 0x9218
movq %rax, 0x30(%rsi)
movups 0x65e0(%rip), %xmm0     # 0x9208
movups %xmm0, 0x20(%rsi)
movups 0x65c5(%rip), %xmm0     # 0x91f8
movups %xmm0, 0x10(%rsi)
movupd 0x65a9(%rip), %xmm0     # 0x91e8
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x58(%rsp)
jmp 0x2c64
leaq 0x6593(%rip), %rdx      # 0x91e8
leaq 0x50(%rsp), %rdi
callq 0x62ee
movq 0x58(%rsp), %rsi
movq 0x50(%rsp), %rdi
movq %rsi, %rax
subq %rdi, %rax
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
cmpl $0x2, %eax
jl 0x3109
movl $0x3, %ebx
movl $0x1, %r12d
movl $0x70, %r13d
movl $0x0, 0x90(%rsp)
leaq 0x2(%r12), %rdx
movq %rsi, %rax
subq %rdi, %rax
sarq $0x3, %rax
movabsq $0x6db6db6db6db6db7, %rcx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rcx, %rax
movslq %eax, %rcx
cmpq %rcx, %rdx
jge 0x30e8
leaq -0x1(%r12), %rax
imulq $0x38, %rax, %r14
imulq $0x38, %r12, %r15
movq %rbx, 0xc0(%rsp)
movsd 0x8(%rdi,%r14), %xmm1
movsd 0x10(%rdi,%r14), %xmm6
movsd 0x18(%rdi,%r14), %xmm2
movsd 0x8(%rdi,%r15), %xmm3
movsd 0x10(%rdi,%r15), %xmm4
movapd %xmm1, %xmm7
mulsd %xmm3, %xmm7
movapd %xmm2, %xmm0
movapd %xmm4, %xmm8
mulsd %xmm2, %xmm8
movapd %xmm6, %xmm5
mulsd %xmm3, %xmm2
mulsd %xmm6, %xmm3
mulsd %xmm4, %xmm6
addsd %xmm6, %xmm7
movsd 0x18(%rdi,%r15), %xmm6
mulsd %xmm6, %xmm0
addsd %xmm7, %xmm0
mulsd %xmm6, %xmm5
subsd %xmm8, %xmm5
mulsd %xmm1, %xmm6
subsd %xmm6, %xmm2
mulsd %xmm4, %xmm1
subsd %xmm3, %xmm1
mulsd %xmm2, %xmm2
mulsd %xmm5, %xmm5
addsd %xmm2, %xmm5
mulsd %xmm1, %xmm1
addsd %xmm5, %xmm1
sqrtsd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd 0x646b(%rip), %xmm1     # 0x91e0
movaps %xmm1, (%rsp)
callq 0x2180
movapd %xmm0, 0x30(%rsp)
movq 0x50(%rsp), %rax
imulq $0x38, %rbx, %rbp
movsd -0x30(%rax,%rbp), %xmm1
movsd -0x28(%rax,%rbp), %xmm6
movsd -0x20(%rax,%rbp), %xmm2
movsd 0x8(%rax,%rbp), %xmm3
movsd 0x10(%rax,%rbp), %xmm4
movapd %xmm1, %xmm7
mulsd %xmm3, %xmm7
movapd %xmm2, %xmm0
movapd %xmm4, %xmm8
mulsd %xmm2, %xmm8
movapd %xmm6, %xmm5
mulsd %xmm3, %xmm2
mulsd %xmm6, %xmm3
mulsd %xmm4, %xmm6
addsd %xmm6, %xmm7
movsd 0x18(%rax,%rbp), %xmm6
mulsd %xmm6, %xmm0
addsd %xmm7, %xmm0
mulsd %xmm6, %xmm5
subsd %xmm8, %xmm5
mulsd %xmm1, %xmm6
subsd %xmm6, %xmm2
mulsd %xmm4, %xmm1
subsd %xmm3, %xmm1
mulsd %xmm2, %xmm2
mulsd %xmm5, %xmm5
addsd %xmm2, %xmm5
mulsd %xmm1, %xmm1
addsd %xmm5, %xmm1
sqrtsd %xmm1, %xmm1
divsd %xmm1, %xmm0
movaps (%rsp), %xmm1
movhps 0x63bd(%rip), %xmm1     # xmm1 = xmm1[0,1],mem[0,1]
movaps %xmm1, (%rsp)
callq 0x2180
movapd 0x30(%rsp), %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
movapd (%rsp), %xmm1
subpd %xmm2, %xmm1
movapd 0x41f9(%rip), %xmm0     # 0x7040
mulpd %xmm0, %xmm1
movapd %xmm1, (%rsp)
movq 0x50(%rsp), %rax
movsd 0x8(%rax,%r14), %xmm1
movsd 0x10(%rax,%r14), %xmm6
movsd 0x18(%rax,%r14), %xmm2
movsd -0x30(%rax,%rbp), %xmm3
movsd -0x28(%rax,%rbp), %xmm4
movapd %xmm1, %xmm7
mulsd %xmm3, %xmm7
movapd %xmm2, %xmm0
movapd %xmm4, %xmm8
mulsd %xmm2, %xmm8
movapd %xmm6, %xmm5
mulsd %xmm3, %xmm2
mulsd %xmm6, %xmm3
mulsd %xmm4, %xmm6
addsd %xmm6, %xmm7
movsd -0x20(%rax,%rbp), %xmm6
mulsd %xmm6, %xmm0
addsd %xmm7, %xmm0
mulsd %xmm6, %xmm5
subsd %xmm8, %xmm5
mulsd %xmm1, %xmm6
subsd %xmm6, %xmm2
mulsd %xmm4, %xmm1
subsd %xmm3, %xmm1
mulsd %xmm2, %xmm2
mulsd %xmm5, %xmm5
addsd %xmm2, %xmm5
mulsd %xmm1, %xmm1
addsd %xmm5, %xmm1
sqrtsd %xmm1, %xmm1
divsd %xmm1, %xmm0
movsd 0x62f5(%rip), %xmm1     # 0x91e0
movaps %xmm1, 0x30(%rsp)
callq 0x2180
movapd %xmm0, 0xd0(%rsp)
movq 0x50(%rsp), %rax
movsd 0x8(%rax,%r15), %xmm1
movsd 0x10(%rax,%r15), %xmm6
movsd 0x18(%rax,%r15), %xmm2
movsd 0x8(%rax,%rbp), %xmm3
movsd 0x10(%rax,%rbp), %xmm4
movapd %xmm1, %xmm7
mulsd %xmm3, %xmm7
movapd %xmm2, %xmm0
movapd %xmm4, %xmm8
mulsd %xmm2, %xmm8
movapd %xmm6, %xmm5
mulsd %xmm3, %xmm2
mulsd %xmm6, %xmm3
mulsd %xmm4, %xmm6
addsd %xmm6, %xmm7
movsd 0x18(%rax,%rbp), %xmm6
mulsd %xmm6, %xmm0
addsd %xmm7, %xmm0
mulsd %xmm6, %xmm5
subsd %xmm8, %xmm5
mulsd %xmm1, %xmm6
subsd %xmm6, %xmm2
mulsd %xmm4, %xmm1
subsd %xmm3, %xmm1
mulsd %xmm2, %xmm2
mulsd %xmm5, %xmm5
addsd %xmm2, %xmm5
mulsd %xmm1, %xmm1
addsd %xmm5, %xmm1
sqrtsd %xmm1, %xmm1
divsd %xmm1, %xmm0
movaps 0x30(%rsp), %xmm1
movhps 0x6243(%rip), %xmm1     # xmm1 = xmm1[0,1],mem[0,1]
movaps %xmm1, 0x30(%rsp)
callq 0x2180
movapd 0xd0(%rsp), %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
movapd 0x30(%rsp), %xmm2
subpd %xmm1, %xmm2
mulpd 0x407a(%rip), %xmm2     # 0x7040
xorpd %xmm0, %xmm0
movapd (%rsp), %xmm1
subsd %xmm1, %xmm0
unpckhpd %xmm1, %xmm1            # xmm1 = xmm1[1,1]
subsd %xmm1, %xmm0
addsd %xmm2, %xmm0
unpckhpd %xmm2, %xmm2            # xmm2 = xmm2[1,1]
addsd %xmm0, %xmm2
xorpd %xmm0, %xmm0
ucomisd %xmm2, %xmm0
movq 0x50(%rsp), %rdi
jbe 0x30b4
leaq (%rdi,%r15), %rcx
leaq (%rdi,%rbp), %rax
addq $-0x38, %rax
movb $0x1, %dl
movl %edx, 0x90(%rsp)
cmpq %rcx, %rax
jbe 0x30b4
leaq (%rdi,%r13), %rcx
movq -0x8(%rcx), %rdx
movq %rdx, 0x130(%rsp)
movups -0x38(%rcx), %xmm0
movups -0x28(%rcx), %xmm1
movups -0x18(%rcx), %xmm2
movaps %xmm2, 0x120(%rsp)
movaps %xmm1, 0x110(%rsp)
movaps %xmm0, 0x100(%rsp)
movq 0x30(%rax), %rdx
movq %rdx, -0x8(%rcx)
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movups %xmm2, -0x18(%rcx)
movups %xmm1, -0x28(%rcx)
movups %xmm0, -0x38(%rcx)
movq 0x130(%rsp), %rdx
movq %rdx, 0x30(%rax)
movapd 0x100(%rsp), %xmm0
movapd 0x110(%rsp), %xmm1
movapd 0x120(%rsp), %xmm2
movupd %xmm2, 0x20(%rax)
movupd %xmm1, 0x10(%rax)
movupd %xmm0, (%rax)
addq $-0x38, %rax
leaq 0x38(%rcx), %rdx
cmpq %rax, %rcx
movq %rdx, %rcx
jb 0x301c
incq %rbx
movq 0x58(%rsp), %rsi
movq %rsi, %rax
subq %rdi, %rax
sarq $0x3, %rax
movabsq $0x6db6db6db6db6db7, %rcx # imm = 0x6DB6DB6DB6DB6DB7
imulq %rcx, %rax
movslq %eax, %rcx
cmpq %rcx, %rbx
jl 0x2cdc
movq 0xc0(%rsp), %rbx
incq %r12
incq %rbx
addq $0x38, %r13
cmpq %rcx, %r12
jl 0x2c9e
testb $0x1, 0x90(%rsp)
jne 0x2c69
xorpd %xmm0, %xmm0
movq 0x48(%rsp), %rcx
movupd %xmm0, (%rcx)
movq $0x0, 0x10(%rcx)
decl %eax
cmpl $0x1, %eax
je 0x326d
movl $0x1, %ebp
leaq 0x60b3(%rip), %rbx      # 0x91e8
leaq 0x100(%rsp), %r15
movslq %ebp, %rcx
imulq $0x38, %rcx, %r12
leaq (%rdi,%r12), %rcx
addq $0x20, %rcx
xorl %edx, %edx
xorl %esi, %esi
movq 0xe8(%rsp), %rdi
testq %rdx, %rdx
je 0x3168
addq (%rcx,%rdx), %rsi
cmpq %rdi, %rsi
jle 0x316b
jmp 0x3177
addq (%rcx), %rsi
incl %ebp
addq $0x38, %rdx
cmpl %ebp, %eax
jne 0x3158
movl %eax, %ebp
xorpd %xmm0, %xmm0
movapd %xmm0, 0x100(%rsp)
movq $0x0, 0x110(%rsp)
movq %r15, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x62ee
movq 0x50(%rsp), %rax
movq 0x108(%rsp), %rsi
addq %rax, %r12
movslq %ebp, %rcx
imulq $0x38, %rcx, %rcx
addq %rax, %rcx
movq %r15, %rdi
movq %r12, %rdx
callq 0x64d2
movq 0x108(%rsp), %rsi
cmpq 0x110(%rsp), %rsi
je 0x320f
movq 0x603d(%rip), %rax      # 0x9218
movq %rax, 0x30(%rsi)
movups 0x6022(%rip), %xmm0     # 0x9208
movups %xmm0, 0x20(%rsi)
movups 0x6007(%rip), %xmm0     # 0x91f8
movups %xmm0, 0x10(%rsi)
movupd 0x5feb(%rip), %xmm0     # 0x91e8
movupd %xmm0, (%rsi)
addq $0x38, %rsi
movq %rsi, 0x108(%rsp)
jmp 0x321a
movq %r15, %rdi
movq %rbx, %rdx
callq 0x62ee
movq %r15, %rdi
callq 0x5f5a
movq 0x48(%rsp), %rdi
movq %r15, %rsi
callq 0x6752
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x324c
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0x50(%rsp), %rdi
movq 0x58(%rsp), %rax
subq %rdi, %rax
shrq $0x3, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
decl %eax
cmpl %eax, %ebp
jne 0x313d
testq %rdi, %rdi
je 0x327f
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
leaq 0x290(%rsp), %rdi
callq 0x2040
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x32a3
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0x48(%rsp), %rax
addq $0x498, %rsp            # imm = 0x498
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x4, %edi
callq 0x20c0
movl $0x0, (%rax)
movq 0x5cdf(%rip), %rsi      # 0x8fb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x22f0
jmp 0x3321
movl $0x4, %edi
callq 0x20c0
movl $0x0, (%rax)
movq 0x5cbc(%rip), %rsi      # 0x8fb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x22f0
jmp 0x3321
movl $0x4, %edi
callq 0x20c0
movl $0x0, (%rax)
movq 0x5c99(%rip), %rsi      # 0x8fb0
movq %rax, %rdi
xorl %edx, %edx
callq 0x22f0
movq %rax, %rbx
jmp 0x33be
jmp 0x3335
jmp 0x3335
jmp 0x333f
jmp 0x333a
jmp 0x333f
jmp 0x337d
movq %rax, %rbx
jmp 0x33a7
movq %rax, %rbx
jmp 0x3363
movq %rax, %rbx
movq 0x5c6f(%rip), %rsi      # 0x8fb8
leaq 0x100(%rsp), %rdi
callq 0x2150
leaq 0x180(%rsp), %rdi
callq 0x2060
movq 0xa0(%rsp), %rdi
cmpq %r14, %rdi
je 0x33be
movq 0xb0(%rsp), %rsi
incq %rsi
jmp 0x33b9
movq %rax, %rbx
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x339d
movq 0x110(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq 0x48(%rsp), %rdi
callq 0x613e
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x33be
movq 0x60(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
leaq 0x290(%rsp), %rdi
callq 0x2040
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x33e2
movq 0x20(%rsp), %rsi
subq %rdi, %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2310