// File: /workspace/github_cpp_makefile_star2_O2/bobverity[P]MavericK/MCMCobject_admixture.cpp
// Function: MCMCobject_admixture::MCMCobject_admixture(globals&, int, int, int, int, double)
MCMCobject_admixture::MCMCobject_admixture(globals &globals, int _Kindex, int _burnin, int _samples, int _thinning, double _beta) {
    
    // copy some values over from globals object
    data = globals.data;
    
    Kindex = _Kindex;
    K = globals.Kmin+Kindex;
    n = globals.n;
    loci = globals.loci;
    J = globals.J;
    ploidy_vec = globals.ploidy_vec;
    uniquePops = globals.uniquePops;
    geneCopies = globals.geneCopies;
    
    lambda = globals.lambda;
    fixAlpha_on = globals.fixAlpha_on;
    alpha = globals.alpha[Kindex];
    alphaPropSD = globals.alphaPropSD[Kindex];
    beta = _beta;
    
    outputQmatrix_pop_on = globals.outputQmatrix_pop_on;
    
    burnin = _burnin;
    samples = _samples;
    thinning = _thinning;
    
    //log_lookup = globals.log_lookup;
    
    linearGroup = vector<int>(geneCopies);
    group = vector< vector< vector<int> > >(n);
    for (int ind=0; ind<n; ind++) {
        group[ind] = vector< vector<int> >(loci);
        for (int l=0; l<loci; l++) {
            group[ind][l] = vector<int>(ploidy_vec[ind]);
        }
    }
    group_propose = group;
    
    // initialise allele counts and frequencies
    alleleCounts = vector< vector< vector<int> > >(K);
    alleleCountsTotals = vector< vector<int> >(K);
    alleleFreqs = vector< vector< vector<double> > >(K);
    for (int k=0; k<K; k++) {
        alleleCounts[k] = vector< vector<int> >(loci);
        alleleCountsTotals[k] = vector<int>(loci);
        alleleFreqs[k] = vector< vector<double> >(loci);
        for (int l=0; l<loci; l++) {
            alleleCounts[k][l] = vector<int>(J[l]);
            alleleFreqs[k][l] = vector<double>(J[l]);
        }
    }
    
    // initialise admix counts and frequencies
    admixCounts = vector< vector<int> >(n,vector<int>(K));
    admixCountsTotals = vector<int>(n);
    admixFreqs = vector< vector<double> >(n,vector<double>(K));
    
    // initialise objects for calculating assignment probabilities
    logProbVec = vector<double>(K);
    logProbVecSum = 0;  // (used in Qmatrix calculation)
    logProbVecMax = 0;
    probVec = vector<double>(K);
    probVecSum = 0;
    
    // initialise Qmatrices
    logQmatrix_gene_old = vector< vector<double> >(geneCopies, vector<double>(K));
    logQmatrix_gene_new = vector< vector<double> >(geneCopies, vector<double>(K));
    Qmatrix_gene_new = vector< vector<double> >(geneCopies, vector<double>(K));
    logQmatrix_gene_running = vector< vector<double> >(geneCopies, vector<double>(K));
    
    logQmatrix_gene = vector< vector<double> >(geneCopies, vector<double>(K));
    Qmatrix_gene = vector< vector<double> >(geneCopies, vector<double>(K));
    Qmatrix_ind = vector< vector<double> >(n, vector<double>(K));
    Qmatrix_pop = vector< vector<double> >(uniquePops.size(), vector<double>(K));
    
    // initialise objects for Hungarian algorithm
    costMat = vector< vector<double> >(K, vector<double>(K));
    bestPermOrder = vector<int>(K);
    
    edgesLeft = vector<int>(K);
    edgesRight = vector<int>(K);
    blockedLeft = vector<int>(K);
    blockedRight = vector<int>(K);
    
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movsd %xmm0, 0x130(%rsp)
movl %r9d, 0x84(%rsp)
movl %r8d, 0x40(%rsp)
movl %ecx, 0x48(%rsp)
movl %edx, %ebp
movq %rsi, %r15
movq %rdi, %r14
xorps %xmm0, %xmm0
andq $0x0, 0x10(%rdi)
movups %xmm0, (%rdi)
leaq 0x28(%rdi), %r12
leaq 0x40(%rdi), %rax
movq %rax, 0x78(%rsp)
leaq 0x58(%rdi), %rax
movq %rax, 0x128(%rsp)
leaq 0xc0(%rdi), %rax
movq %rax, 0x120(%rsp)
leaq 0xd8(%rdi), %rax
movq %rax, 0x50(%rsp)
leaq 0xf0(%rdi), %rax
movq %rax, 0x118(%rsp)
addq $0x110, %rdi            # imm = 0x110
leaq 0x128(%r14), %rax
movq %rax, 0x110(%rsp)
andq $0x0, 0x208(%r14)
movups %xmm0, 0x1f8(%r14)
andq $0x0, 0x248(%r14)
movups %xmm0, 0x238(%r14)
andq $0x0, 0x270(%r14)
leaq 0x140(%r14), %rax
movq %rax, 0x60(%rsp)
movups %xmm0, 0x260(%r14)
movups %xmm0, 0x28(%r14)
movups %xmm0, 0x38(%r14)
movups %xmm0, 0x48(%r14)
andq $0x0, 0x68(%r14)
movups %xmm0, 0x58(%r14)
movups %xmm0, 0xc0(%r14)
movups %xmm0, 0xd0(%r14)
movups %xmm0, 0xe0(%r14)
movups %xmm0, 0xf0(%r14)
andq $0x0, 0x100(%r14)
leaq 0x188(%r14), %rax
movq %rax, 0x108(%rsp)
leaq 0x1a0(%r14), %rax
movq %rax, 0x100(%rsp)
leaq 0x1b8(%r14), %rax
movq %rax, 0xf8(%rsp)
leaq 0x238(%r14), %rax
movq %rax, 0xf0(%rsp)
leaq 0x260(%r14), %rax
movq %rax, 0xe8(%rsp)
leaq 0x280(%r14), %rbx
leaq 0x298(%r14), %rax
movq %rax, 0xd8(%rsp)
leaq 0x2b0(%r14), %rax
movq %rax, 0xd0(%rsp)
leaq 0x2c8(%r14), %rax
movq %rax, 0xc8(%rsp)
leaq 0x2e0(%r14), %rax
movq %rax, 0xc0(%rsp)
leaq 0x2f8(%r14), %rax
movq %rax, 0xb8(%rsp)
leaq 0x310(%r14), %rax
movq %rax, 0xb0(%rsp)
leaq 0x328(%r14), %rax
movq %rax, 0x8(%rsp)
leaq 0x340(%r14), %rax
movq %rax, 0xa8(%rsp)
leaq 0x370(%r14), %rax
movq %rax, 0xa0(%rsp)
leaq 0x388(%r14), %rax
movq %rax, 0x98(%rsp)
leaq 0x3a0(%r14), %rax
movq %rax, 0x90(%rsp)
leaq 0x3b8(%r14), %rax
movq %rax, 0x68(%rsp)
leaq 0x3d0(%r14), %rax
movq %rax, 0x88(%rsp)
leaq 0x2d00(%rsi), %r13
movl $0xd8, %edx
movq %rdi, 0x70(%rsp)
xorl %esi, %esi
callq 0x3200
movl $0x168, %edx            # imm = 0x168
movq %rbx, 0xe0(%rsp)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x3200
movq %r14, %rdi
movq %r13, %rsi
callq 0x95d6
movl %ebp, 0x18(%r14)
addl 0x2bc8(%r15), %ebp
movl %ebp, 0x1c(%r14)
movq 0x2d18(%r15), %rax
movq %rax, 0x20(%r14)
leaq 0x2d20(%r15), %rsi
movq %r12, %rdi
callq 0x969e
leaq 0x2cd0(%r15), %rsi
movq 0x78(%rsp), %rdi
callq 0x969e
leaq 0x2c88(%r15), %rsi
movq 0x128(%rsp), %rdi
callq 0x9760
movslq 0x2d50(%r15), %rsi
movl %esi, 0x70(%r14)
movsd 0x2c50(%r15), %xmm0
movsd %xmm0, 0x78(%r14)
movb 0x2bd1(%r15), %al
movb %al, 0x80(%r14)
movslq 0x18(%r14), %rax
movq 0x2bd8(%r15), %rcx
movsd (%rcx,%rax,8), %xmm0
movsd %xmm0, 0x88(%r14)
movq 0x2bf0(%r15), %rcx
movsd (%rcx,%rax,8), %xmm0
movsd %xmm0, 0x90(%r14)
movsd 0x130(%rsp), %xmm0
movsd %xmm0, 0x98(%r14)
movb 0x2c3f(%r15), %al
movb %al, 0xa0(%r14)
movl 0x48(%rsp), %eax
movl %eax, 0xa4(%r14)
movl 0x40(%rsp), %eax
movl %eax, 0xa8(%r14)
movl 0x84(%rsp), %eax
movl %eax, 0xac(%r14)
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
movq %r12, 0x40(%rsp)
leaq 0x28(%rsp), %r15
movq 0x120(%rsp), %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x20(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x9820
leaq 0x28(%rsp), %r15
movq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0xa1dc
movq %r15, %rdi
callq 0x9872
xorl %r12d, %r12d
movslq 0x20(%r14), %rax
cmpq %rax, %r12
jge 0x6857
movq %r14, %r13
movslq 0x24(%r14), %rsi
movq %r15, %rdi
leaq 0x10(%rsp), %rdx
callq 0x9894
imulq $0x18, %r12, %r14
movq 0x50(%rsp), %rax
movq (%rax), %rdi
addq %r14, %rdi
movq %r15, %rsi
callq 0xa27c
movq %r15, %rdi
callq 0x98e6
xorl %ebp, %ebp
xorl %ebx, %ebx
movslq 0x24(%r13), %rax
cmpq %rax, %rbx
jge 0x684c
movq 0x78(%rsp), %rax
movq (%rax), %rax
movslq (%rax,%r12,4), %rsi
movq %r15, %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
movq 0x50(%rsp), %rax
movq (%rax), %rax
movq (%rax,%r14), %rdi
addq %rbp, %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
incq %rbx
addq $0x18, %rbp
jmp 0x6802
incq %r12
movq %r13, %r14
jmp 0x67be
movq 0x118(%rsp), %rdi
movq 0x50(%rsp), %rsi
movq 0x40(%rsp), %r12
callq 0x95d6
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x9820
leaq 0x28(%rsp), %r15
movq 0x70(%rsp), %rdi
movq %r15, %rsi
callq 0xa1dc
movq %r15, %rdi
callq 0x9872
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
movq 0x68(%rsp), %r13
callq 0x9894
leaq 0x28(%rsp), %r15
movq 0x110(%rsp), %rdi
movq %r15, %rsi
callq 0xa27c
movq %r15, %rdi
callq 0x98e6
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5014
leaq 0x28(%rsp), %r15
movq 0x60(%rsp), %rdi
movq %r15, %rsi
callq 0x54e6
movq %r15, %rdi
callq 0x5066
xorl %ebp, %ebp
movq %r14, 0x58(%rsp)
movslq 0x1c(%r14), %rsi
cmpq %rsi, %rbp
jge 0x6a44
movslq 0x24(%r14), %rsi
movq %r15, %rdi
leaq 0x10(%rsp), %r12
movq %r12, %rdx
callq 0x9894
imulq $0x18, %rbp, %rbx
movq 0x110(%r14), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0xa27c
movq %r15, %rdi
callq 0x98e6
movslq 0x24(%r14), %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x5f7c
movq %rbp, 0x48(%rsp)
movq 0x128(%r14), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x24(%r14), %rsi
movq %r15, %rdi
movq %r12, %rdx
callq 0x5088
movq 0x60(%rsp), %rax
movq (%rax), %rdi
addq %rbx, %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
xorl %ebp, %ebp
xorl %r14d, %r14d
movq 0x58(%rsp), %rax
movslq 0x24(%rax), %rax
cmpq %rax, %r14
jge 0x6a28
movq 0x40(%rsp), %r12
movq (%r12), %rax
movslq (%rax,%r14,4), %rsi
movq %r15, %rdi
leaq 0x10(%rsp), %r13
movq %r13, %rdx
callq 0x5f7c
movq 0x70(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx), %rdi
addq %rbp, %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movq (%r12), %rax
movslq (%rax,%r14,4), %rsi
movq %r15, %rdi
movq %r13, %rdx
callq 0x4f6c
movq 0x60(%rsp), %rax
movq (%rax), %rax
movq (%rax,%rbx), %rdi
addq %rbp, %rdi
movq %r15, %rsi
callq 0x55b8
movq %r15, %rdi
callq 0x51a2
incq %r14
addq $0x18, %rbp
jmp 0x69a0
movq 0x48(%rsp), %rbp
incq %rbp
movq 0x40(%rsp), %r12
movq 0x58(%rsp), %r14
movq 0x68(%rsp), %r13
jmp 0x6904
movslq 0x20(%r14), %r15
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x9908
leaq 0x28(%rsp), %r15
movq 0x108(%rsp), %rdi
movq %r15, %rsi
callq 0xa27c
movq %r15, %rdi
callq 0x98e6
leaq 0x10(%rsp), %rdi
callq 0x61d0
movslq 0x20(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %r15
movq 0x100(%rsp), %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x20(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xf8(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %r15
movq 0xf0(%rsp), %rdi
movq %r15, %rsi
callq 0x55b8
movq %r15, %rdi
callq 0x51a2
xorps %xmm0, %xmm0
movups %xmm0, 0x250(%r14)
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %r15
movq 0xe8(%rsp), %rdi
movq %r15, %rsi
callq 0x55b8
movq %r15, %rdi
callq 0x51a2
andq $0x0, 0x278(%r14)
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xe0(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xd8(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xd0(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xc8(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xc0(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x70(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xb8(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x20(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xb0(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movq 0x58(%r14), %rbx
movq 0x60(%r14), %r15
movslq 0x1c(%r14), %rsi
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
callq 0x4f6c
subq %rbx, %r15
sarq $0x5, %r15
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x1c(%r14), %r15
leaq 0x10(%rsp), %rdi
leaq 0x7(%rsp), %rdx
movq %r15, %rsi
callq 0x4f6c
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
leaq 0x6(%rsp), %rcx
movq %r15, %rsi
callq 0x4fbe
leaq 0x28(%rsp), %r15
movq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0x5566
movq %r15, %rdi
callq 0x50da
leaq 0x10(%rsp), %rdi
callq 0x51a2
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %r15
movq 0xa0(%rsp), %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %r15
movq 0x98(%rsp), %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %r15
movq 0x90(%rsp), %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %r15
movq %r13, %rdi
movq %r15, %rsi
callq 0x6266
movq %r15, %rdi
callq 0x61d0
movslq 0x1c(%r14), %rsi
leaq 0x28(%rsp), %rdi
leaq 0x10(%rsp), %rdx
callq 0x5f7c
leaq 0x28(%rsp), %rbx
movq 0x88(%rsp), %rdi
movq %rbx, %rsi
callq 0x6266
movq %rbx, %rdi
callq 0x61d0
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x6fad
jmp 0x6fad
jmp 0x6fad
jmp 0x6fad
jmp 0x6fad
movq %rax, %rbp
leaq 0x10(%rsp), %rdi
callq 0x51a2
jmp 0x703b
movq %rax, %rbp
jmp 0x703b
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x6fd9
jmp 0x7007
jmp 0x7007
jmp 0x7007
movq %rax, %rbp
leaq 0x10(%rsp), %rdi
callq 0x51a2
jmp 0x7036
jmp 0x7007
jmp 0x7007
movq %rax, %rbp
leaq 0x10(%rsp), %rdi
callq 0x61d0
jmp 0x7036
jmp 0x7007
jmp 0x7007
jmp 0x7007
jmp 0x7007
jmp 0x7010
jmp 0x7007
movq %rax, %rbp
jmp 0x7036
jmp 0x7010
jmp 0x7017
movq %rax, %rbp
jmp 0x7031
jmp 0x702b
movq %rax, %rbp
movq 0x40(%rsp), %r12
jmp 0x7024
movq %rax, %rbp
movq 0x58(%rsp), %r14
jmp 0x7036
movq %rax, %rbp
movq %r13, %r14
movq 0x40(%rsp), %r12
movq 0x8(%rsp), %rbx
leaq 0x1f8(%r14), %r13
leaq 0x358(%r14), %r15
leaq 0x1d0(%r14), %rax
movq %rax, 0x8(%rsp)
leaq 0x170(%r14), %rax
movq %rax, 0x48(%rsp)
leaq 0x158(%r14), %rax
movq %rax, 0x40(%rsp)
movq 0x88(%rsp), %rdi
callq 0x61d0
movq 0x68(%rsp), %rdi
callq 0x61d0
movq 0x90(%rsp), %rdi
callq 0x61d0
movq 0x98(%rsp), %rdi
callq 0x61d0
movq 0xa0(%rsp), %rdi
callq 0x61d0
movq %r15, %rdi
callq 0x61d0
movq 0xa8(%rsp), %rdi
callq 0x50da
movq %rbx, %rdi
callq 0x50da
movq 0xb0(%rsp), %rdi
callq 0x50da
movq 0xb8(%rsp), %rdi
callq 0x50da
movq 0xc0(%rsp), %rdi
callq 0x50da
movq 0xc8(%rsp), %rdi
callq 0x50da
movq 0xd0(%rsp), %rdi
callq 0x50da
movq 0xd8(%rsp), %rdi
callq 0x50da
movq 0xe0(%rsp), %rdi
callq 0x50da
movq 0xe8(%rsp), %rdi
callq 0x51a2
movq 0xf0(%rsp), %rdi
callq 0x51a2
movq %r13, %rdi
callq 0x51a2
movq 0x8(%rsp), %rdi
callq 0x98e6
movq 0xf8(%rsp), %rdi
callq 0x50da
movq 0x100(%rsp), %rdi
callq 0x61d0
movq 0x108(%rsp), %rdi
callq 0x98e6
movq 0x48(%rsp), %rdi
callq 0x98e6
movq 0x40(%rsp), %rdi
callq 0x9872
movq 0x60(%rsp), %rdi
callq 0x5066
movq 0x110(%rsp), %rdi
callq 0x98e6
movq 0x70(%rsp), %rdi
callq 0x9872
movq 0x118(%rsp), %rdi
callq 0x9872
movq 0x50(%rsp), %rdi
callq 0x9872
movq 0x120(%rsp), %rdi
callq 0x61d0
movq 0x128(%rsp), %rdi
callq 0x995e
movq 0x78(%rsp), %rdi
callq 0x61d0
movq %r12, %rdi
callq 0x61d0
movq %r14, %rdi
callq 0x9872
movq %rbp, %rdi
callq 0x35a0