// File: /workspace/github_c_makefile_star2_O0/debbiemarkslab[P]plmc/src/plm.c
// Function: OutputCouplingScores
void OutputCouplingScores(char *couplingsFile, const numeric_t *x,
    alignment_t *ali, options_t *options) {
    FILE *fpOutput = NULL;
    fpOutput = fopen(couplingsFile, "w");
    if (fpOutput != NULL) {
        /* Compute the norm of the coupling parameters between each pair */
        numeric_t *couplings =
        (numeric_t *) malloc((ali->nSites * (ali->nSites - 1) / 2)
                * sizeof(numeric_t));

        for (int i = 0; i < ali->nSites * (ali->nSites - 1) / 2;
            i++) couplings[i] = 0;
        for (int i = 0; i < ali->nSites - 1; i++)
            for (int j = i + 1; j < ali->nSites; j++) {
                /* Norm(eij) over ai, aj */
                numeric_t norm = 0.0;
                for (int ai = 0; ai < ali->nCodes; ai++)
                    for (int aj = 0; aj < ali->nCodes; aj++)
                        norm += xEij(i, j, ai, aj) * xEij(i, j, ai, aj);
                norm = sqrt(norm);
                coupling(i, j) = norm;
            }
        numeric_t nPairs =
            ((numeric_t) ((ali->nSites) * (ali->nSites - 1))) / 2.0;

        /* Remove first component of the norms (Average Product Correction) */
        if (!options->zeroAPC) {
            /* Determine the site-wise statistics of the norms */
            numeric_t C_avg = 0.0;
            numeric_t *C_pos_avg =
                (numeric_t *) malloc(ali->nSites * sizeof(numeric_t));
            for (int i = 0; i < ali->nSites; i++) {
                C_pos_avg[i] = 0.0;
            }
            for (int i = 0; i < ali->nSites - 1; i++) {
                for (int j = i + 1; j < ali->nSites; j++) {
                    C_pos_avg[i] +=
                        coupling(i, j) / (numeric_t) (ali->nSites - 1);
                    C_pos_avg[j] +=
                        coupling(i, j) / (numeric_t) (ali->nSites - 1);
                    C_avg += coupling(i, j) / nPairs;
                }
            }

            /* Remove the first component */
            for (int i = 0; i < ali->nSites - 1; i++)
                for (int j = i + 1; j < ali->nSites; j++)
                    coupling(i, j) =
                        coupling(i, j) - C_pos_avg[i] * C_pos_avg[j] / C_avg;    
        }

        /* Output scores */
        if (ali->target >= 0) {
            /* Focus mode */
            for (int i = 0; i < ali->nSites - 1; i++)
                for (int j = i + 1; j < ali->nSites; j++) {
                    char ai = (char) ali->alphabet[seq(ali->target, i)];
                    char aj = (char) ali->alphabet[seq(ali->target, j)];
                    fprintf(fpOutput, "%d %c %d %c 0 %f\n",
                        ali->offsets[i], ai, ali->offsets[j], aj,
                        coupling(i, j));
                }
        } else {
            for (int i = 0; i < ali->nSites - 1; i++)
                for (int j = i + 1; j < ali->nSites; j++)
                    fprintf(fpOutput, "%d - %d - 0 %f\n", i + 1, j + 1,
                        coupling(i, j));
        }

        fclose(fpOutput);
    } else {
        fprintf(stderr, "Error writing coupling scores\n");
        exit(1);
    }
}

// Assembly:
subq $0x178, %rsp            # imm = 0x178
movq %rdi, 0x170(%rsp)
movq %rsi, 0x168(%rsp)
movq %rdx, 0x160(%rsp)
movq %rcx, 0x158(%rsp)
movq $0x0, 0x150(%rsp)
movq 0x170(%rsp), %rdi
leaq 0x11481(%rip), %rsi     # 0x1a1a3
callq 0x1190
movq %rax, 0x150(%rsp)
cmpq $0x0, 0x150(%rsp)
je 0x9a91
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x1170
movq %rax, 0x148(%rsp)
movl $0x0, 0x144(%rsp)
movl 0x144(%rsp), %eax
movl %eax, 0xe4(%rsp)
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0xe4(%rsp), %eax
cmpl %ecx, %eax
jge 0x8deb
movq 0x148(%rsp), %rax
movslq 0x144(%rsp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x144(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x144(%rsp)
jmp 0x8d81
movl $0x0, 0x140(%rsp)
movl 0x140(%rsp), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x920d
movl 0x140(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x13c(%rsp)
movl 0x13c(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x91f5
xorps %xmm0, %xmm0
movsd %xmm0, 0x130(%rsp)
movl $0x0, 0x12c(%rsp)
movl 0x12c(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x9120
movl $0x0, 0x128(%rsp)
movl 0x128(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jge 0x9108
movq 0x168(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl %eax, 0xe0(%rsp)
movl 0x140(%rsp), %eax
cmpl 0x13c(%rsp), %eax
jge 0x8f2c
movl 0x13c(%rsp), %eax
movl 0x13c(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x140(%rsp), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl 0x128(%rsp), %ecx
movq 0x160(%rsp), %rdx
imull 0x8(%rdx), %ecx
addl %ecx, %eax
addl 0x12c(%rsp), %eax
movl %eax, 0xd4(%rsp)
jmp 0x8f8a
movl 0x140(%rsp), %eax
movl 0x140(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x13c(%rsp), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl 0x12c(%rsp), %ecx
movq 0x160(%rsp), %rdx
imull 0x8(%rdx), %ecx
addl %ecx, %eax
addl 0x128(%rsp), %eax
movl %eax, 0xd4(%rsp)
movq 0xd8(%rsp), %rax
movl 0xe0(%rsp), %ecx
movl 0xd4(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movsd %xmm0, 0xc0(%rsp)
movq 0x168(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl %eax, 0xd0(%rsp)
movl 0x140(%rsp), %eax
cmpl 0x13c(%rsp), %eax
jge 0x9051
movl 0x13c(%rsp), %eax
movl 0x13c(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x140(%rsp), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl 0x128(%rsp), %ecx
movq 0x160(%rsp), %rdx
imull 0x8(%rdx), %ecx
addl %ecx, %eax
addl 0x12c(%rsp), %eax
movl %eax, 0xbc(%rsp)
jmp 0x90af
movl 0x140(%rsp), %eax
movl 0x140(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x13c(%rsp), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movq 0x160(%rsp), %rcx
imull 0x8(%rcx), %eax
movl 0x12c(%rsp), %ecx
movq 0x160(%rsp), %rdx
imull 0x8(%rdx), %ecx
addl %ecx, %eax
addl 0x128(%rsp), %eax
movl %eax, 0xbc(%rsp)
movsd 0xc0(%rsp), %xmm0
movq 0xc8(%rsp), %rax
movl 0xd0(%rsp), %ecx
movl 0xbc(%rsp), %edx
addl %edx, %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm2
movsd 0x130(%rsp), %xmm1
mulsd %xmm2, %xmm0
addsd %xmm1, %xmm0
movsd %xmm0, 0x130(%rsp)
movl 0x128(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x128(%rsp)
jmp 0x8e76
jmp 0x910a
movl 0x12c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x12c(%rsp)
jmp 0x8e53
movsd 0x130(%rsp), %xmm0
callq 0x11e0
movsd %xmm0, 0x130(%rsp)
movsd 0x130(%rsp), %xmm0
movsd %xmm0, 0xa8(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0xb0(%rsp)
movl 0x140(%rsp), %eax
cmpl 0x13c(%rsp), %eax
jge 0x9195
movl 0x13c(%rsp), %eax
movl 0x13c(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x140(%rsp), %eax
movl %eax, 0xa4(%rsp)
jmp 0x91bf
movl 0x140(%rsp), %eax
movl 0x140(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x13c(%rsp), %eax
movl %eax, 0xa4(%rsp)
movq 0xb0(%rsp), %rax
movsd 0xa8(%rsp), %xmm0
movl 0xa4(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0x13c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x13c(%rsp)
jmp 0x8e24
jmp 0x91f7
movl 0x140(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x140(%rsp)
jmp 0x8df6
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
imull %ecx, %eax
cvtsi2sd %eax, %xmm0
movsd 0xfe23(%rip), %xmm1     # 0x19058
divsd %xmm1, %xmm0
movsd %xmm0, 0x120(%rsp)
movq 0x158(%rsp), %rax
cmpl $0x0, 0x58(%rax)
jne 0x9719
xorps %xmm0, %xmm0
movsd %xmm0, 0x118(%rsp)
movq 0x160(%rsp), %rax
movslq 0x4(%rax), %rdi
shlq $0x3, %rdi
callq 0x1170
movq %rax, 0x110(%rsp)
movl $0x0, 0x10c(%rsp)
movl 0x10c(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x92c7
movq 0x110(%rsp), %rax
movslq 0x10c(%rsp), %rcx
xorps %xmm0, %xmm0
movsd %xmm0, (%rax,%rcx,8)
movl 0x10c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10c(%rsp)
jmp 0x9288
movl $0x0, 0x108(%rsp)
movl 0x108(%rsp), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x9559
movl 0x108(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x104(%rsp)
movl 0x104(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x9541
movq 0x148(%rsp), %rax
movq %rax, 0x98(%rsp)
movl 0x108(%rsp), %eax
cmpl 0x104(%rsp), %eax
jge 0x9364
movl 0x104(%rsp), %eax
movl 0x104(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x108(%rsp), %eax
movl %eax, 0x94(%rsp)
jmp 0x938e
movl 0x108(%rsp), %eax
movl 0x108(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x104(%rsp), %eax
movl %eax, 0x94(%rsp)
movq 0x98(%rsp), %rax
movl 0x94(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
movq 0x110(%rsp), %rax
movslq 0x108(%rsp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x148(%rsp), %rax
movq %rax, 0x88(%rsp)
movl 0x108(%rsp), %eax
cmpl 0x104(%rsp), %eax
jge 0x9421
movl 0x104(%rsp), %eax
movl 0x104(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x108(%rsp), %eax
movl %eax, 0x84(%rsp)
jmp 0x944b
movl 0x108(%rsp), %eax
movl 0x108(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x104(%rsp), %eax
movl %eax, 0x84(%rsp)
movq 0x88(%rsp), %rax
movl 0x84(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x160(%rsp), %rax
movl 0x4(%rax), %eax
subl $0x1, %eax
cvtsi2sd %eax, %xmm1
divsd %xmm1, %xmm0
movq 0x110(%rsp), %rax
movslq 0x104(%rsp), %rcx
addsd (%rax,%rcx,8), %xmm0
movsd %xmm0, (%rax,%rcx,8)
movq 0x148(%rsp), %rax
movq %rax, 0x78(%rsp)
movl 0x108(%rsp), %eax
cmpl 0x104(%rsp), %eax
jge 0x94d8
movl 0x104(%rsp), %eax
movl 0x104(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x108(%rsp), %eax
movl %eax, 0x74(%rsp)
jmp 0x94ff
movl 0x108(%rsp), %eax
movl 0x108(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x104(%rsp), %eax
movl %eax, 0x74(%rsp)
movq 0x78(%rsp), %rax
movl 0x74(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
divsd 0x120(%rsp), %xmm0
addsd 0x118(%rsp), %xmm0
movsd %xmm0, 0x118(%rsp)
movl 0x104(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x104(%rsp)
jmp 0x9300
jmp 0x9543
movl 0x108(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x108(%rsp)
jmp 0x92d2
movl $0x0, 0x100(%rsp)
movl 0x100(%rsp), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x9717
movl 0x100(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xfc(%rsp)
movl 0xfc(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x96ff
movq 0x148(%rsp), %rax
movq %rax, 0x68(%rsp)
movl 0x100(%rsp), %eax
cmpl 0xfc(%rsp), %eax
jge 0x95f0
movl 0xfc(%rsp), %eax
movl 0xfc(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x100(%rsp), %eax
movl %eax, 0x64(%rsp)
jmp 0x9617
movl 0x100(%rsp), %eax
movl 0x100(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xfc(%rsp), %eax
movl %eax, 0x64(%rsp)
movq 0x68(%rsp), %rax
movl 0x64(%rsp), %ecx
movslq %ecx, %rcx
movsd (%rax,%rcx,8), %xmm0
movq 0x110(%rsp), %rax
movslq 0x100(%rsp), %rcx
movsd (%rax,%rcx,8), %xmm1
movq 0x110(%rsp), %rax
movslq 0xfc(%rsp), %rcx
mulsd (%rax,%rcx,8), %xmm1
divsd 0x118(%rsp), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, 0x50(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x58(%rsp)
movl 0x100(%rsp), %eax
cmpl 0xfc(%rsp), %eax
jge 0x96ab
movl 0xfc(%rsp), %eax
movl 0xfc(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0x100(%rsp), %eax
movl %eax, 0x4c(%rsp)
jmp 0x96d2
movl 0x100(%rsp), %eax
movl 0x100(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xfc(%rsp), %eax
movl %eax, 0x4c(%rsp)
movq 0x58(%rsp), %rax
movsd 0x50(%rsp), %xmm0
movl 0x4c(%rsp), %ecx
movslq %ecx, %rcx
movsd %xmm0, (%rax,%rcx,8)
movl 0xfc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xfc(%rsp)
jmp 0x9592
jmp 0x9701
movl 0x100(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x100(%rsp)
jmp 0x9564
jmp 0x9719
movq 0x160(%rsp), %rax
cmpl $0x0, 0x38(%rax)
jl 0x993f
movl $0x0, 0xf8(%rsp)
movl 0xf8(%rsp), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x993a
movl 0xf8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf4(%rsp)
movl 0xf4(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x9922
movq 0x160(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x160(%rsp), %rcx
movq 0x20(%rcx), %rcx
movl 0xf8(%rsp), %edx
movq 0x160(%rsp), %rsi
movl 0x38(%rsi), %esi
movq 0x160(%rsp), %rdi
imull 0x4(%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
movslq (%rcx,%rdx,4), %rcx
movb (%rax,%rcx), %al
movb %al, 0xf3(%rsp)
movq 0x160(%rsp), %rax
movq 0x10(%rax), %rax
movq 0x160(%rsp), %rcx
movq 0x20(%rcx), %rcx
movl 0xf4(%rsp), %edx
movq 0x160(%rsp), %rsi
movl 0x38(%rsi), %esi
movq 0x160(%rsp), %rdi
imull 0x4(%rdi), %esi
addl %esi, %edx
movslq %edx, %rdx
movslq (%rcx,%rdx,4), %rcx
movb (%rax,%rcx), %al
movb %al, 0xf2(%rsp)
movq 0x150(%rsp), %rax
movq %rax, 0x28(%rsp)
movq 0x160(%rsp), %rax
movq 0x40(%rax), %rax
movslq 0xf8(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, 0x30(%rsp)
movsbl 0xf3(%rsp), %eax
movl %eax, 0x34(%rsp)
movq 0x160(%rsp), %rax
movq 0x40(%rax), %rax
movslq 0xf4(%rsp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, 0x38(%rsp)
movsbl 0xf2(%rsp), %eax
movl %eax, 0x3c(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x40(%rsp)
movl 0xf8(%rsp), %eax
cmpl 0xf4(%rsp), %eax
jge 0x98af
movl 0xf4(%rsp), %eax
movl 0xf4(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xf8(%rsp), %eax
movl %eax, 0x24(%rsp)
jmp 0x98d6
movl 0xf8(%rsp), %eax
movl 0xf8(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xf4(%rsp), %eax
movl %eax, 0x24(%rsp)
movl 0x3c(%rsp), %r9d
movl 0x38(%rsp), %r8d
movl 0x34(%rsp), %ecx
movl 0x30(%rsp), %edx
movq 0x28(%rsp), %rdi
movq 0x40(%rsp), %rax
movl 0x24(%rsp), %esi
movslq %esi, %rsi
movsd (%rax,%rsi,8), %xmm0
leaq 0xfa49(%rip), %rsi      # 0x1934e
movb $0x1, %al
callq 0x1140
movl 0xf4(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf4(%rsp)
jmp 0x9764
jmp 0x9924
movl 0xf8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xf8(%rsp)
jmp 0x9736
jmp 0x9a82
movl $0x0, 0xec(%rsp)
movl 0xec(%rsp), %eax
movq 0x160(%rsp), %rcx
movl 0x4(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x9a80
movl 0xec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xe8(%rsp)
movl 0xe8(%rsp), %eax
movq 0x160(%rsp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x9a68
movq 0x150(%rsp), %rax
movq %rax, 0x8(%rsp)
movl 0xec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x10(%rsp)
movl 0xe8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
movq 0x148(%rsp), %rax
movq %rax, 0x18(%rsp)
movl 0xec(%rsp), %eax
cmpl 0xe8(%rsp), %eax
jge 0x99ff
movl 0xe8(%rsp), %eax
movl 0xe8(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xec(%rsp), %eax
movl %eax, 0x4(%rsp)
jmp 0x9a26
movl 0xec(%rsp), %eax
movl 0xec(%rsp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
addl 0xe8(%rsp), %eax
movl %eax, 0x4(%rsp)
movl 0x14(%rsp), %ecx
movl 0x10(%rsp), %edx
movq 0x8(%rsp), %rdi
movq 0x18(%rsp), %rax
movl 0x4(%rsp), %esi
movslq %esi, %rsi
movsd (%rax,%rsi,8), %xmm0
leaq 0xf915(%rip), %rsi      # 0x19360
movb $0x1, %al
callq 0x1140
movl 0xe8(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xe8(%rsp)
jmp 0x9978
jmp 0x9a6a
movl 0xec(%rsp), %eax
addl $0x1, %eax
movl %eax, 0xec(%rsp)
jmp 0x994a
jmp 0x9a82
movq 0x150(%rsp), %rdi
callq 0x10a0
jmp 0x9ab3
movq 0x12560(%rip), %rax     # 0x1bff8
movq (%rax), %rdi
leaq 0xf8ce(%rip), %rsi      # 0x19370
movb $0x0, %al
callq 0x1140
movl $0x1, %edi
callq 0x11c0
addq $0x178, %rsp            # imm = 0x178
retq
nopl (%rax,%rax)