// File: qema[P]orca-py/liborca.cpp
// Function: ecount4()
void ecount4() {
    clock_t startTime, endTime;
    startTime = clock();
    clock_t startTime_all, endTime_all;
    startTime_all = startTime;
    int frac,frac_prev;

    // precompute triangles that span over edges
    //printf("stage 1 - precomputing common nodes\n");
    int *tri = (int*)calloc(m,sizeof(int));
    frac_prev=-1;
    for (int i=0;i<m;i++) {
        frac = 100LL*i/m;
        if (frac!=frac_prev) {
            //printf("%d%%\r",frac);
            frac_prev=frac;
        }
        int x=edges[i].a, y=edges[i].b;
        for (int xi=0,yi=0; xi<deg[x] && yi<deg[y]; ) {
            if (adj[x][xi]==adj[y][yi]) { tri[i]++; xi++; yi++; }
            else if (adj[x][xi]<adj[y][yi]) { xi++; }
            else { yi++; }
        }
    }
    endTime = clock();
    //printf("%.2f\n", (double)(endTime-startTime)/CLOCKS_PER_SEC);
    startTime = endTime;

    // count full graphlets
    //printf("stage 2 - counting full graphlets\n");
    int64 *C4 = (int64*)calloc(m,sizeof(int64));
    int *neighx = (int*)malloc(n*sizeof(int)); // lookup table - edges to neighbors of x
    memset(neighx,-1,n*sizeof(int));
    int *neigh = (int*)malloc(n*sizeof(int)), nn; // lookup table - common neighbors of x and y
    PII *neigh_edges = (PII*)malloc(n*sizeof(PII)); // list of common neighbors of x and y
    frac_prev=-1;
    for (int x=0;x<n;x++) {
        frac = 100LL*x/n;
        if (frac!=frac_prev) {
            //printf("%d%%\r",frac);
            frac_prev=frac;
        }

        for (int nx=0;nx<deg[x];nx++) {
            int y=inc[x][nx].first, xy=inc[x][nx].second;
            neighx[y]=xy;
        }
        for (int nx=0;nx<deg[x];nx++) {
            int y=inc[x][nx].first, xy=inc[x][nx].second;
            if (y >= x) break;
            nn=0;
            for (int ny=0;ny<deg[y];ny++) {
                int z=inc[y][ny].first, yz=inc[y][ny].second;
                if (z >= y) break;
                if (neighx[z]==-1) continue;
                int xz=neighx[z];
                neigh[nn]=z;
                neigh_edges[nn]={xz, yz};
                nn++;
            }
            for (int i=0;i<nn;i++) {
                int z = neigh[i], xz = neigh_edges[i].first, yz = neigh_edges[i].second;
                for (int j=i+1;j<nn;j++) {
                    int w = neigh[j], xw = neigh_edges[j].first, yw = neigh_edges[j].second;
                    if (adjacent(z,w)) {
                        C4[xy]++;
                        C4[xz]++; C4[yz]++;
                        C4[xw]++; C4[yw]++;
                        // another iteration to count this last(smallest) edge instead of calling getEdgeId
                        //int zw=getEdgeId(z,w); C4[zw]++;
                    }
                }
            }
        }
        for (int nx=0;nx<deg[x];nx++) {
            int y=inc[x][nx].first, xy=inc[x][nx].second;
            neighx[y]=-1;
        }
    }
    endTime = clock();
    //printf("%.2f\n", (double)(endTime-startTime)/CLOCKS_PER_SEC);
    startTime = endTime;

    // count full graphlets for the smallest edge
    for (int x=0;x<n;x++) {
        frac = 100LL*x/n;
        if (frac!=frac_prev) {
            //printf("%d%%\r",frac);
            frac_prev=frac;
        }
        for (int nx=deg[x]-1;nx>=0;nx--) {
            int y=inc[x][nx].first, xy=inc[x][nx].second;
            if (y <= x) break;
            nn=0;
            for (int ny=deg[y]-1;ny>=0;ny--) {
                int z=adj[y][ny];
                if (z <= y) break;
                if (adjacent(x,z)==0) continue;
                neigh[nn++]=z;
            }
            for (int i=0;i<nn;i++) {
                int z = neigh[i];
                for (int j=i+1;j<nn;j++) {
                    int zz = neigh[j];
                    if (adjacent(z,zz)) {
                        C4[xy]++;
                    }
                }
            }
        }
    }
    endTime = clock();
    //printf("%.2f\n", (double)(endTime-startTime)/CLOCKS_PER_SEC);
    startTime = endTime;

    // set up a system of equations relating orbits for every node
    //printf("stage 3 - building systems of equations\n");
    int *common = (int*)calloc(n,sizeof(int));
    int *common_list = (int*)malloc(n*sizeof(int)), nc=0;
    frac_prev=-1;

    for (int x=0;x<n;x++) {
        frac = 100LL*x/n;
        if (frac!=frac_prev) {
            //printf("%d%%\r",frac);
            frac_prev=frac;
        }

        // common nodes of x and some other node
        for (int i=0;i<nc;i++) common[common_list[i]]=0;
        nc=0;
        for (int nx=0;nx<deg[x];nx++) {
            int y=adj[x][nx];
            for (int ny=0;ny<deg[y];ny++) {
                int z=adj[y][ny];
                if (z==x) continue;
                if (common[z]==0) common_list[nc++]=z;
                common[z]++;
            }
        }

        for (int nx=0;nx<deg[x];nx++) {
            int y=inc[x][nx].first, xy=inc[x][nx].second;
            int e=xy;
            for (int n1=0;n1<deg[x];n1++) {
                int z=inc[x][n1].first, xz=inc[x][n1].second;
                if (z==y) continue;
                if (adjacent(y,z)) { // triangle
                    if (x<y) {
                        eorbit[e][1]++;
                        eorbit[e][10] += tri[xy]-1;
                        eorbit[e][7] += deg[z]-2;
                    }
                    eorbit[e][9] += tri[xz]-1;
                    eorbit[e][8] += deg[x]-2;
                }
            }
            for (int n1=0;n1<deg[y];n1++) {
                int z=inc[y][n1].first, yz=inc[y][n1].second;
                if (z==x) continue;
                if (!adjacent(x,z)) { // path x-y-z
                    eorbit[e][0]++;
                    eorbit[e][6] += tri[yz];
                    eorbit[e][5] += common[z]-1;
                    eorbit[e][4] += deg[y]-2;
                    eorbit[e][3] += deg[x]-1;
                    eorbit[e][2] += deg[z]-1;
                }
            }
        }
    }
    // solve system of equations
    for (int e=0;e<m;e++) {
        eorbit[e][11]=C4[e];
        eorbit[e][10]=(eorbit[e][10]-2*eorbit[e][11])/2;
        eorbit[e][9]=(eorbit[e][9]-4*eorbit[e][11]);
        eorbit[e][8]=(eorbit[e][8]-eorbit[e][9]-4*eorbit[e][10]-4*eorbit[e][11]);
        eorbit[e][7]=(eorbit[e][7]-eorbit[e][9]-2*eorbit[e][11]);
        eorbit[e][6]=(eorbit[e][6]-eorbit[e][9])/2;
        eorbit[e][5]=(eorbit[e][5]-eorbit[e][9])/2;
        eorbit[e][4]=(eorbit[e][4]-2*eorbit[e][6]-eorbit[e][8]-eorbit[e][9])/2;
        eorbit[e][3]=(eorbit[e][3]-2*eorbit[e][5]-eorbit[e][8]-eorbit[e][9])/2;
        eorbit[e][2]=(eorbit[e][2]-2*eorbit[e][5]-2*eorbit[e][6]-eorbit[e][9]);
    }

    endTime = clock();
    //printf("%.2f\n", (double)(endTime-startTime)/CLOCKS_PER_SEC);

    endTime_all = endTime;
    //printf("total: %.2f\n", (double)(endTime_all-startTime_all)/CLOCKS_PER_SEC);

    free(tri);
    free(C4);
    free(neighx);
    free(neigh);
    free(neigh_edges);
    free(common);
    free(common_list);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
callq 0x10120
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x1c745(%rip), %rax     # 0x2df48
movslq (%rax), %rdi
movl $0x4, %esi
callq 0x10110
movq %rax, -0x30(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
movq 0x1c71c(%rip), %rcx     # 0x2df48
cmpl (%rcx), %eax
jge 0x11995
movslq -0x34(%rbp), %rax
imulq $0x64, %rax, %rax
movq 0x1c705(%rip), %rcx     # 0x2df48
movslq (%rcx), %rcx
cqto
idivq %rcx
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x1185c
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movq 0x1c755(%rip), %rax     # 0x2dfb8
movq (%rax), %rax
movslq -0x34(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x38(%rbp)
movq 0x1c741(%rip), %rax     # 0x2dfb8
movq (%rax), %rax
movslq -0x34(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x3c(%rbp)
movl $0x0, -0x40(%rbp)
movl $0x0, -0x44(%rbp)
movl -0x40(%rbp), %ecx
movq 0x1c72b(%rip), %rax     # 0x2dfc8
movq (%rax), %rdx
movslq -0x38(%rbp), %rsi
xorl %eax, %eax
cmpl (%rdx,%rsi,4), %ecx
movb %al, -0x151(%rbp)
jge 0x118ce
movl -0x44(%rbp), %eax
movq 0x1c70d(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x3c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
setl %al
movb %al, -0x151(%rbp)
movb -0x151(%rbp), %al
testb $0x1, %al
jne 0x118dd
jmp 0x11985
movq 0x1c6ac(%rip), %rax     # 0x2df90
movq (%rax), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1c693(%rip), %rcx     # 0x2df90
movq (%rcx), %rcx
movslq -0x3c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq -0x44(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jne 0x11936
movq -0x30(%rbp), %rax
movslq -0x34(%rbp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x11980
movq 0x1c653(%rip), %rax     # 0x2df90
movq (%rax), %rax
movslq -0x38(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movq 0x1c63a(%rip), %rcx     # 0x2df90
movq (%rcx), %rcx
movslq -0x3c(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movslq -0x44(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x11975
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1197e
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x11980
jmp 0x11893
jmp 0x11987
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x11822
callq 0x10120
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq 0x1c59b(%rip), %rax     # 0x2df48
movslq (%rax), %rdi
movl $0x8, %esi
callq 0x10110
movq %rax, -0x50(%rbp)
movq 0x1c5db(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x102f0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq 0x1c5c0(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdx
shlq $0x2, %rdx
movl $0xff, %esi
callq 0x100e0
movq 0x1c5a8(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x102f0
movq %rax, -0x60(%rbp)
movq 0x1c591(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdi
shlq $0x3, %rdi
callq 0x102f0
movq %rax, -0x70(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x74(%rbp)
movl -0x74(%rbp), %eax
movq 0x1c569(%rip), %rcx     # 0x2dfa0
cmpl (%rcx), %eax
jge 0x11e8d
movslq -0x74(%rbp), %rax
imulq $0x64, %rax, %rax
movq 0x1c552(%rip), %rcx     # 0x2dfa0
movslq (%rcx), %rcx
cqto
idivq %rcx
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x11a67
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl $0x0, -0x78(%rbp)
movl -0x78(%rbp), %eax
movq 0x1c550(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x74(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x11ad6
movq 0x1c4fd(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x78(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x7c(%rbp)
movq 0x1c4e1(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x78(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %edx
movq -0x58(%rbp), %rax
movslq -0x7c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x78(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x78(%rbp)
jmp 0x11a6e
movl $0x0, -0x84(%rbp)
movl -0x84(%rbp), %eax
movq 0x1c4db(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x74(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x11def
movq 0x1c484(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x84(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x88(%rbp)
movq 0x1c462(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x84(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x8c(%rbp)
movl -0x88(%rbp), %eax
cmpl -0x74(%rbp), %eax
jl 0x11b52
jmp 0x11def
movl $0x0, -0x64(%rbp)
movl $0x0, -0x90(%rbp)
movl -0x90(%rbp), %eax
movq 0x1c458(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x88(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x11c6b
movq 0x1c3fe(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x88(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x90(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x94(%rbp)
movq 0x1c3d9(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x88(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x90(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x98(%rbp)
movl -0x94(%rbp), %eax
cmpl -0x88(%rbp), %eax
jl 0x11be1
jmp 0x11c6b
movq -0x58(%rbp), %rax
movslq -0x94(%rbp), %rcx
cmpl $-0x1, (%rax,%rcx,4)
jne 0x11bf4
jmp 0x11c57
movq -0x58(%rbp), %rax
movslq -0x94(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x9c(%rbp)
movl -0x94(%rbp), %edx
movq -0x60(%rbp), %rax
movslq -0x64(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
leaq -0xa4(%rbp), %rdi
leaq -0x9c(%rbp), %rsi
leaq -0x98(%rbp), %rdx
callq 0x20f50
movq -0x70(%rbp), %rdi
movslq -0x64(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
leaq -0xa4(%rbp), %rsi
callq 0x20f80
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x11b63
movl $0x0, -0xa8(%rbp)
movl -0xa8(%rbp), %eax
cmpl -0x64(%rbp), %eax
jge 0x11dd9
movq -0x60(%rbp), %rax
movslq -0xa8(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xac(%rbp)
movq -0x70(%rbp), %rax
movslq -0xa8(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0xb0(%rbp)
movq -0x70(%rbp), %rax
movslq -0xa8(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0xb4(%rbp)
movl -0xa8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
movl -0xb8(%rbp), %eax
cmpl -0x64(%rbp), %eax
jge 0x11dc3
movq -0x60(%rbp), %rax
movslq -0xb8(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xbc(%rbp)
movq -0x70(%rbp), %rax
movslq -0xb8(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0xc0(%rbp)
movq -0x70(%rbp), %rax
movslq -0xb8(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0xc4(%rbp)
movq 0x1c285(%rip), %rax     # 0x2dfa8
movq (%rax), %rax
movl -0xac(%rbp), %edi
movl -0xbc(%rbp), %esi
callq *%rax
testb $0x1, %al
jne 0x11d3a
jmp 0x11dad
movq -0x50(%rbp), %rax
movslq -0x8c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rax
movslq -0xb0(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rax
movslq -0xb4(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rax
movslq -0xc0(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
movq -0x50(%rbp), %rax
movslq -0xc4(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
jmp 0x11daf
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x11cd0
jmp 0x11dc5
movl -0xa8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa8(%rbp)
jmp 0x11c75
jmp 0x11ddb
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x11ae0
movl $0x0, -0xc8(%rbp)
movl -0xc8(%rbp), %eax
movq 0x1c1c2(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x74(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x11e7d
movq 0x1c16f(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0xcc(%rbp)
movq 0x1c14d(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x74(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xc8(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0xd0(%rbp)
movq -0x58(%rbp), %rax
movslq -0xcc(%rbp), %rcx
movl $0xffffffff, (%rax,%rcx,4) # imm = 0xFFFFFFFF
movl -0xc8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc8(%rbp)
jmp 0x11df9
jmp 0x11e7f
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x11a2d
callq 0x10120
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movl $0x0, -0xd4(%rbp)
movl -0xd4(%rbp), %eax
movq 0x1c0eb(%rip), %rcx     # 0x2dfa0
cmpl (%rcx), %eax
jge 0x1210e
movslq -0xd4(%rbp), %rax
imulq $0x64, %rax, %rax
movq 0x1c0d1(%rip), %rcx     # 0x2dfa0
movslq (%rcx), %rcx
cqto
idivq %rcx
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x11ee8
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movq 0x1c0d9(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0xd4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xd8(%rbp)
cmpl $0x0, -0xd8(%rbp)
jl 0x120f8
movq 0x1c06f(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0xd4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xd8(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0xdc(%rbp)
movq 0x1c04a(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0xd4(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xd8(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0xe0(%rbp)
movl -0xdc(%rbp), %eax
cmpl -0xd4(%rbp), %eax
jg 0x11f70
jmp 0x120f8
movl $0x0, -0x64(%rbp)
movq 0x1c04a(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0xdc(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movl %eax, -0xe4(%rbp)
cmpl $0x0, -0xe4(%rbp)
jl 0x12029
movq 0x1bfe8(%rip), %rax     # 0x2df90
movq (%rax), %rax
movslq -0xdc(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0xe4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xe8(%rbp)
movl -0xe8(%rbp), %eax
cmpl -0xdc(%rbp), %eax
jg 0x11fd6
jmp 0x12029
movq 0x1bfcb(%rip), %rax     # 0x2dfa8
movq (%rax), %rax
movl -0xd4(%rbp), %edi
movl -0xe8(%rbp), %esi
callq *%rax
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x11ffa
jmp 0x12015
movl -0xe8(%rbp), %edx
movq -0x60(%rbp), %rax
movl -0x64(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x64(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movl -0xe4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xe4(%rbp)
jmp 0x11f94
movl $0x0, -0xec(%rbp)
movl -0xec(%rbp), %eax
cmpl -0x64(%rbp), %eax
jge 0x120e2
movq -0x60(%rbp), %rax
movslq -0xec(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xf0(%rbp)
movl -0xec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf4(%rbp)
movl -0xf4(%rbp), %eax
cmpl -0x64(%rbp), %eax
jge 0x120cc
movq -0x60(%rbp), %rax
movslq -0xf4(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0xf8(%rbp)
movq 0x1bf1d(%rip), %rax     # 0x2dfa8
movq (%rax), %rax
movl -0xf0(%rbp), %edi
movl -0xf8(%rbp), %esi
callq *%rax
testb $0x1, %al
jne 0x120a2
jmp 0x120b9
movq -0x50(%rbp), %rax
movslq -0xe0(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
addq $0x1, %rdx
movq %rdx, (%rax,%rcx,8)
jmp 0x120bb
movl -0xf4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xf4(%rbp)
jmp 0x12065
jmp 0x120ce
movl -0xec(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xec(%rbp)
jmp 0x12033
jmp 0x120e4
movl -0xd8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xd8(%rbp)
jmp 0x11f05
jmp 0x120fa
movl -0xd4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd4(%rbp)
jmp 0x11ea8
callq 0x10120
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq 0x1be7a(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdi
movl $0x4, %esi
callq 0x10110
movq %rax, -0x100(%rbp)
movq 0x1be5f(%rip), %rax     # 0x2dfa0
movslq (%rax), %rdi
shlq $0x2, %rdi
callq 0x102f0
movq %rax, -0x108(%rbp)
movl $0x0, -0x10c(%rbp)
movl $0xffffffff, -0x28(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x110(%rbp)
movl -0x110(%rbp), %eax
movq 0x1be24(%rip), %rcx     # 0x2dfa0
cmpl (%rcx), %eax
jge 0x1277a
movslq -0x110(%rbp), %rax
imulq $0x64, %rax, %rax
movq 0x1be0a(%rip), %rcx     # 0x2dfa0
movslq (%rcx), %rcx
cqto
idivq %rcx
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x28(%rbp), %eax
je 0x121af
movl -0x24(%rbp), %eax
movl %eax, -0x28(%rbp)
movl $0x0, -0x114(%rbp)
movl -0x114(%rbp), %eax
cmpl -0x10c(%rbp), %eax
jge 0x121f8
movq -0x100(%rbp), %rax
movq -0x108(%rbp), %rcx
movslq -0x114(%rbp), %rdx
movslq (%rcx,%rdx,4), %rcx
movl $0x0, (%rax,%rcx,4)
movl -0x114(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x114(%rbp)
jmp 0x121b9
movl $0x0, -0x10c(%rbp)
movl $0x0, -0x118(%rbp)
movl -0x118(%rbp), %eax
movq 0x1bdaf(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x110(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x12329
movq 0x1bd5d(%rip), %rax     # 0x2df90
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x118(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x11c(%rbp)
movl $0x0, -0x120(%rbp)
movl -0x120(%rbp), %eax
movq 0x1bd60(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x11c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x12313
movq 0x1bd0e(%rip), %rax     # 0x2df90
movq (%rax), %rax
movslq -0x11c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x120(%rbp), %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x124(%rbp)
movl -0x124(%rbp), %eax
cmpl -0x110(%rbp), %eax
jne 0x122b0
jmp 0x122ff
movq -0x100(%rbp), %rax
movslq -0x124(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
jne 0x122e8
movl -0x124(%rbp), %edx
movq -0x108(%rbp), %rax
movl -0x10c(%rbp), %ecx
movl %ecx, %esi
addl $0x1, %esi
movl %esi, -0x10c(%rbp)
movslq %ecx, %rcx
movl %edx, (%rax,%rcx,4)
movq -0x100(%rbp), %rax
movslq -0x124(%rbp), %rcx
movl (%rax,%rcx,4), %edx
addl $0x1, %edx
movl %edx, (%rax,%rcx,4)
movl -0x120(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x120(%rbp)
jmp 0x1225b
jmp 0x12315
movl -0x118(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x118(%rbp)
jmp 0x1220c
movl $0x0, -0x128(%rbp)
movl -0x128(%rbp), %eax
movq 0x1bc88(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x110(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x12764
movq 0x1bc2e(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x128(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x12c(%rbp)
movq 0x1bc09(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x128(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x130(%rbp)
movl -0x130(%rbp), %eax
movl %eax, -0x134(%rbp)
movl $0x0, -0x138(%rbp)
movl -0x138(%rbp), %eax
movq 0x1bc07(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x110(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x1256c
movq 0x1bbad(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x138(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x13c(%rbp)
movq 0x1bb88(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x138(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x140(%rbp)
movl -0x13c(%rbp), %eax
cmpl -0x12c(%rbp), %eax
jne 0x12432
jmp 0x12558
movq 0x1bb6f(%rip), %rax     # 0x2dfa8
movq (%rax), %rax
movl -0x12c(%rbp), %edi
movl -0x13c(%rbp), %esi
callq *%rax
testb $0x1, %al
jne 0x12453
jmp 0x12556
movl -0x110(%rbp), %eax
cmpl -0x12c(%rbp), %eax
jge 0x124ee
movq 0x1baec(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x8(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
movslq -0x130(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1bab7(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x50(%rax), %rcx
movq %rcx, 0x50(%rax)
movq 0x1bb0a(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0x13c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x2, %eax
movslq %eax, %rcx
movq 0x1ba80(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x38(%rax), %rcx
movq %rcx, 0x38(%rax)
movq -0x30(%rbp), %rax
movslq -0x140(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1ba4f(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x48(%rax), %rcx
movq %rcx, 0x48(%rax)
movq 0x1baa2(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x2, %eax
movslq %eax, %rcx
movq 0x1ba18(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x40(%rax), %rcx
movq %rcx, 0x40(%rax)
jmp 0x12558
movl -0x138(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x138(%rbp)
jmp 0x123b4
movl $0x0, -0x144(%rbp)
movl -0x144(%rbp), %eax
movq 0x1ba45(%rip), %rcx     # 0x2dfc8
movq (%rcx), %rcx
movslq -0x12c(%rbp), %rdx
cmpl (%rcx,%rdx,4), %eax
jge 0x1274e
movq 0x1b9eb(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x12c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x144(%rbp), %rcx
movl (%rax,%rcx,8), %eax
movl %eax, -0x148(%rbp)
movq 0x1b9c6(%rip), %rax     # 0x2df88
movq (%rax), %rax
movslq -0x12c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x144(%rbp), %rcx
movl 0x4(%rax,%rcx,8), %eax
movl %eax, -0x14c(%rbp)
movl -0x148(%rbp), %eax
cmpl -0x110(%rbp), %eax
jne 0x125f4
jmp 0x1273a
movq 0x1b9ad(%rip), %rax     # 0x2dfa8
movq (%rax), %rax
movl -0x110(%rbp), %edi
movl -0x148(%rbp), %esi
callq *%rax
testb $0x1, %al
jne 0x12738
movq 0x1b93d(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movslq -0x14c(%rbp), %rcx
movslq (%rax,%rcx,4), %rcx
movq 0x1b90f(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x30(%rax), %rcx
movq %rcx, 0x30(%rax)
movq -0x100(%rbp), %rax
movslq -0x148(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1b8db(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x28(%rax), %rcx
movq %rcx, 0x28(%rax)
movq 0x1b92e(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0x12c(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x2, %eax
movslq %eax, %rcx
movq 0x1b8a4(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x20(%rax), %rcx
movq %rcx, 0x20(%rax)
movq 0x1b8f7(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0x110(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1b86d(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x18(%rax), %rcx
movq %rcx, 0x18(%rax)
movq 0x1b8c0(%rip), %rax     # 0x2dfc8
movq (%rax), %rax
movslq -0x148(%rbp), %rcx
movl (%rax,%rcx,4), %eax
subl $0x1, %eax
movslq %eax, %rcx
movq 0x1b836(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x134(%rbp), %rdx
movq (%rax,%rdx,8), %rax
addq 0x10(%rax), %rcx
movq %rcx, 0x10(%rax)
jmp 0x1273a
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
jmp 0x12576
jmp 0x12750
movl -0x128(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x128(%rbp)
jmp 0x12333
jmp 0x12766
movl -0x110(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x110(%rbp)
jmp 0x1216f
movl $0x0, -0x150(%rbp)
movl -0x150(%rbp), %eax
movq 0x1b7b7(%rip), %rcx     # 0x2df48
cmpl (%rcx), %eax
jge 0x12bd3
movq -0x50(%rbp), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
movq 0x1b7a9(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x58(%rax)
movq 0x1b790(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x50(%rax), %rax
movq 0x1b777(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x58(%rcx), %rcx
shlq %rcx
subq %rcx, %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq 0x1b74b(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x50(%rax)
movq 0x1b732(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x48(%rax), %rcx
movq 0x1b719(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x58(%rax), %rax
shlq $0x2, %rax
subq %rax, %rcx
movq 0x1b6f9(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x48(%rax)
movq 0x1b6e0(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x40(%rax), %rcx
movq 0x1b6c7(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
subq 0x48(%rax), %rcx
movq 0x1b6ae(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x50(%rax), %rax
shlq $0x2, %rax
subq %rax, %rcx
movq 0x1b68e(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x58(%rax), %rax
shlq $0x2, %rax
subq %rax, %rcx
movq 0x1b66e(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x40(%rax)
movq 0x1b655(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x38(%rax), %rcx
movq 0x1b63c(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
subq 0x48(%rax), %rcx
movq 0x1b623(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x58(%rax), %rax
shlq %rax
subq %rax, %rcx
movq 0x1b604(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x38(%rax)
movq 0x1b5eb(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x30(%rax), %rax
movq 0x1b5d2(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x48(%rcx), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq 0x1b5ac(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x30(%rax)
movq 0x1b593(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x28(%rax), %rax
movq 0x1b57a(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x48(%rcx), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq 0x1b554(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x28(%rax)
movq 0x1b53b(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20(%rax), %rax
movq 0x1b522(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x30(%rcx), %rcx
shlq %rcx
subq %rcx, %rax
movq 0x1b503(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x40(%rcx), %rax
movq 0x1b4ea(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x48(%rcx), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq 0x1b4c4(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x20(%rax)
movq 0x1b4ab(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rax
movq 0x1b492(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq 0x28(%rcx), %rcx
shlq %rcx
subq %rcx, %rax
movq 0x1b473(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x40(%rcx), %rax
movq 0x1b45a(%rip), %rcx     # 0x2df58
movq (%rcx), %rcx
movslq -0x150(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
subq 0x48(%rcx), %rax
movl $0x2, %ecx
cqto
idivq %rcx
movq %rax, %rcx
movq 0x1b434(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x18(%rax)
movq 0x1b41b(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x10(%rax), %rcx
movq 0x1b402(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x28(%rax), %rax
shlq %rax
subq %rax, %rcx
movq 0x1b3e3(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x30(%rax), %rax
shlq %rax
subq %rax, %rcx
movq 0x1b3c4(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
subq 0x48(%rax), %rcx
movq 0x1b3ab(%rip), %rax     # 0x2df58
movq (%rax), %rax
movslq -0x150(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq %rcx, 0x10(%rax)
movl -0x150(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x150(%rbp)
jmp 0x12784
callq 0x10120
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rdi
callq 0x102a0
movq -0x50(%rbp), %rdi
callq 0x102a0
movq -0x58(%rbp), %rdi
callq 0x102a0
movq -0x60(%rbp), %rdi
callq 0x102a0
movq -0x70(%rbp), %rdi
callq 0x102a0
movq -0x100(%rbp), %rdi
callq 0x102a0
movq -0x108(%rbp), %rdi
callq 0x102a0
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
nopw %cs:(%rax,%rax)