// File: /workspace/github_c_makefile_star2_O0/esheldon[P]xshear/src/redshear.c
// Function: main
int main(int argc, char** argv) {
    int64 counter=0;
    if (argc < 2) {
        usage_and_exit();
    }

    const char* config_url = argv[1];
    ShearConfig* config=sconfig_read(config_url);

    // this is the beginning of the table
    LensumHash* hash = NULL;

    Lensum* lensum = lensum_new(config->nbin, config->shear_style, config->scstyle, config->shear_units);
    Lensum* lensum_tot = lensum_new(config->nbin, config->shear_style, config->scstyle, config->shear_units);
    while (lensum_read_into(lensum, stdin)) {
        counter++;
        if (counter == 1) {
            wlog("first lensum: %ld %.8g %ld\n", 
                 lensum->index, lensum->weight, 
                 lensum->totpairs);
        }
        if ((counter % 10000) == 0) {
            wlog(".");
        }
        if (((counter+1) % 1000000) == 0) {
            wlog("\n");
            comma_print(stderr,counter+1);
            wlog("\n");
        }

        LensumHash* this_lens = find_lens(hash, lensum->index);
        if (this_lens == NULL) {
            // copy of lensum made inside
            LensumHash* lh = lensum_hash_fromlensum(lensum);
            // this gets expanded to lh->lensum->index
            HASH_ADD_INT64(hash, lensum->index, lh);
        } else {
            lensum_add(this_lens->lensum, lensum);
        }
        lensum_add(lensum_tot, lensum);

    }

    wlog("\nlast lensum: %ld %.8g %ld\n", 
            lensum->index, lensum->weight, lensum->totpairs);

    wlog("Read a total of %ld\n", counter);

    // this is the summary
    lensum_print(lensum_tot);

    wlog("Writing results to stdout\n");
    LensumHash *tlensum=NULL;
    for(tlensum=hash; tlensum != NULL; tlensum=tlensum->hh.next) {
        lensum_write(tlensum->lensum, stdout);
    }

    wlog("Done\n");

    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movl $0x0, -0x4(%rbp)
movl %edi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
cmpl $0x2, -0x8(%rbp)
jge 0xc3bc
callq 0xc350
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x6c70
movq %rax, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x28(%rbp), %rax
movl 0x18(%rax), %esi
movq -0x28(%rbp), %rax
movl 0x20(%rax), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
callq 0x5bb0
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x28(%rbp), %rax
movl 0x18(%rax), %esi
movq -0x28(%rbp), %rax
movl 0x20(%rax), %edx
movq -0x28(%rbp), %rax
movl 0x4c(%rax), %ecx
callq 0x5bb0
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq 0x5ba4(%rip), %rax      # 0x11fd8
movq (%rax), %rsi
callq 0x6590
cmpl $0x0, %eax
je 0xcfa7
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
cmpq $0x1, -0x18(%rbp)
jne 0xc489
movq 0x5b99(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x38(%rbp), %rax
movsd 0x18(%rax), %xmm0
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rcx
leaq 0x2b8c(%rip), %rsi      # 0xf00e
movb $0x1, %al
callq 0x2170
movq -0x18(%rbp), %rax
movl $0x2710, %ecx           # imm = 0x2710
cqto
idivq %rcx
cmpq $0x0, %rdx
jne 0xc4b5
movq 0x5b54(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x1db1(%rip), %rsi      # 0xe25f
movb $0x0, %al
callq 0x2170
movq -0x18(%rbp), %rax
addq $0x1, %rax
movl $0xf4240, %ecx          # imm = 0xF4240
cqto
idivq %rcx
cmpq $0x0, %rdx
jne 0xc514
movq 0x5b24(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x2ae1(%rip), %rsi      # 0xefbf
movb $0x0, %al
callq 0x2170
movq 0x5b0c(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
addq $0x1, %rsi
callq 0xbc20
movq 0x5af5(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x2ab2(%rip), %rsi      # 0xefbf
movb $0x0, %al
callq 0x2170
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0xbe10
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0xcf85
movq -0x38(%rbp), %rdi
callq 0xbdd0
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x50(%rbp), %rax
movq (%rax), %rcx
addq $0x10, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x50(%rbp), %rax
movl $0x8, 0x38(%rax)
cmpq $0x0, -0x30(%rbp)
jne 0xc66d
movq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x10(%rax)
movl $0x40, %edi
callq 0x21d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x30(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xc5b4
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2250
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
movl $0x40, %edx
callq 0x2100
movq -0x30(%rbp), %rcx
addq $0x8, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x20, 0x8(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x5, 0xc(%rax)
movq -0x30(%rbp), %rcx
addq $0x8, %rcx
movq -0x30(%rbp), %rax
subq %rax, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rax)
movl $0x200, %edi            # imm = 0x200
callq 0x21d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, (%rax)
jne 0xc645
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2250
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
xorl %esi, %esi
movl $0x200, %edx            # imm = 0x200
callq 0x2100
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movl $0xa0111fe1, 0x38(%rax) # imm = 0xA0111FE1
jmp 0xc6ba
movq -0x50(%rbp), %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x18(%rax), %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdx
xorl %eax, %eax
subq 0x20(%rdx), %rax
addq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x50(%rbp), %rcx
addq $0x8, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x50(%rbp), %rax
movq (%rax), %rax
addq $0x10, %rax
movq %rax, -0x68(%rbp)
movq -0x50(%rbp), %rax
movl $0xfeedbeef, 0x3c(%rax) # imm = 0xFEEDBEEF
movl $0x9e3779b9, -0x5c(%rbp) # imm = 0x9E3779B9
movl $0x9e3779b9, -0x58(%rbp) # imm = 0x9E3779B9
movl $0x8, -0x60(%rbp)
cmpl $0xc, -0x60(%rbp)
jb 0xc94a
movq -0x68(%rbp), %rax
movsbl (%rax), %eax
movq -0x68(%rbp), %rcx
movsbl 0x1(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x68(%rbp), %rcx
movsbl 0x2(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x68(%rbp), %rcx
movsbl 0x3(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x4(%rax), %eax
movq -0x68(%rbp), %rcx
movsbl 0x5(%rcx), %ecx
shll $0x8, %ecx
addl %ecx, %eax
movq -0x68(%rbp), %rcx
movsbl 0x6(%rcx), %ecx
shll $0x10, %ecx
addl %ecx, %eax
movq -0x68(%rbp), %rcx
movsbl 0x7(%rcx), %ecx
shll $0x18, %ecx
addl %ecx, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x8(%rax), %ecx
movq -0x68(%rbp), %rax
movsbl 0x9(%rax), %eax
shll $0x8, %eax
addl %eax, %ecx
movq -0x68(%rbp), %rax
movsbl 0xa(%rax), %eax
shll $0x10, %eax
addl %eax, %ecx
movq -0x68(%rbp), %rax
movsbl 0xb(%rax), %eax
shll $0x18, %eax
addl %eax, %ecx
movq -0x50(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0xd, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0x8, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0xd, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0xc, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0x10, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0x5, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0x3, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0xa, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0xf, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x68(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x68(%rbp)
movl -0x60(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x60(%rbp)
jmp 0xc70a
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
addl $0x8, %ecx
movl %ecx, 0x3c(%rax)
movl -0x60(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0xa0(%rbp)
subl $0xa, %eax
ja 0xca45
movq -0xa0(%rbp), %rax
leaq 0x2610(%rip), %rcx      # 0xef8c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x68(%rbp), %rax
movsbl 0xa(%rax), %ecx
shll $0x18, %ecx
movq -0x50(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x68(%rbp), %rax
movsbl 0x9(%rax), %ecx
shll $0x10, %ecx
movq -0x50(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x68(%rbp), %rax
movsbl 0x8(%rax), %ecx
shll $0x8, %ecx
movq -0x50(%rbp), %rax
addl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x68(%rbp), %rax
movsbl 0x7(%rax), %eax
shll $0x18, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x6(%rax), %eax
shll $0x10, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x5(%rax), %eax
shll $0x8, %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x4(%rax), %eax
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x3(%rax), %eax
shll $0x18, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x2(%rax), %eax
shll $0x10, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x68(%rbp), %rax
movsbl 0x1(%rax), %eax
shll $0x8, %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x68(%rbp), %rax
movsbl (%rax), %eax
addl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
jmp 0xca47
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0xd, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0x8, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0xd, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0xc, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0x10, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0x5, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x58(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
shrl $0x3, %eax
xorl -0x58(%rbp), %eax
movl %eax, -0x58(%rbp)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %ecx
movl -0x5c(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %eax
shll $0xa, %eax
xorl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x58(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %edx
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x3c(%rax)
movl -0x5c(%rbp), %ecx
shrl $0xf, %ecx
movq -0x50(%rbp), %rax
xorl 0x3c(%rax), %ecx
movl %ecx, 0x3c(%rax)
movq -0x50(%rbp), %rax
movl 0x3c(%rax), %eax
movq -0x30(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x54(%rbp)
jmp 0xcbdd
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x50(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0xcc66
movq -0x50(%rbp), %rcx
addq $0x8, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x50(%rbp), %rcx
addq $0x8, %rcx
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x54(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %eax
movq -0x30(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq (%rcx), %rcx
movl -0x54(%rbp), %edx
shlq $0x4, %rdx
addq %rdx, %rcx
movl 0xc(%rcx), %ecx
addl $0x1, %ecx
imull $0xa, %ecx, %ecx
cmpl %ecx, %eax
jb 0xcf7f
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x1, 0x34(%rax)
je 0xcf7f
jmp 0xccd8
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edi
shlq $0x4, %rdi
callq 0x21d0
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
jne 0xcd0d
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x2250
movq -0x88(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %edx
shlq $0x4, %rdx
xorl %esi, %esi
callq 0x2100
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x10(%rax), %eax
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0xc(%rcx), %ecx
addl $0x1, %ecx
shrl %cl, %eax
movl %eax, %ecx
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x10(%rax), %esi
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
shll %eax
subl $0x1, %eax
andl %eax, %esi
xorl %eax, %eax
movl $0x1, %edx
cmpl $0x0, %esi
cmovnel %edx, %eax
addl %eax, %ecx
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x28(%rax)
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x0, 0x2c(%rax)
movl $0x0, -0x70(%rbp)
movl -0x70(%rbp), %eax
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x8(%rcx), %eax
jae 0xcece
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl -0x70(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0xcebe
movq -0x78(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rax
movl 0x34(%rax), %eax
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0x8(%rcx), %ecx
shll %ecx
subl $0x1, %ecx
andl %ecx, %eax
movl %eax, -0x6c(%rbp)
movq -0x88(%rbp), %rax
movl -0x6c(%rbp), %ecx
shlq $0x4, %rcx
addq %rcx, %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rcx
movl 0x8(%rcx), %eax
addl $0x1, %eax
movl %eax, 0x8(%rcx)
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
cmpl 0x28(%rcx), %eax
jbe 0xce66
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x2c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x2c(%rax)
movq -0x90(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
xorl %edx, %edx
divl 0x28(%rcx)
movl %eax, %ecx
movq -0x90(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x78(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x90(%rbp), %rax
movq (%rax), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x90(%rbp), %rax
cmpq $0x0, (%rax)
je 0xcea3
movq -0x78(%rbp), %rcx
movq -0x90(%rbp), %rax
movq (%rax), %rax
movq %rcx, 0x18(%rax)
movq -0x78(%rbp), %rcx
movq -0x90(%rbp), %rax
movq %rcx, (%rax)
movq -0x80(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0xcdca
jmp 0xcec0
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0xcd9a
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
callq 0x2030
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %ecx
shll %ecx
movl %ecx, 0x8(%rax)
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movq -0x88(%rbp), %rcx
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x2c(%rax), %eax
movq -0x50(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0x10(%rcx), %ecx
shrl %ecx
cmpl %ecx, %eax
jbe 0xcf43
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x30(%rax), %eax
addl $0x1, %eax
movl %eax, -0xa4(%rbp)
jmp 0xcf4d
xorl %eax, %eax
movl %eax, -0xa4(%rbp)
jmp 0xcf4d
movl -0xa4(%rbp), %ecx
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl %ecx, 0x30(%rax)
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x1, 0x30(%rax)
jbe 0xcf7b
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movl $0x1, 0x34(%rax)
jmp 0xcf7d
jmp 0xcf7f
jmp 0xcf81
jmp 0xcf83
jmp 0xcf95
movq -0x48(%rbp), %rax
movq (%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0x5dc0
movq -0x40(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x5dc0
jmp 0xc429
movq 0x504a(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x38(%rbp), %rax
movsd 0x18(%rax), %xmm0
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rcx
leaq 0x2059(%rip), %rsi      # 0xf02a
movb $0x1, %al
callq 0x2170
movq 0x5019(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x2059(%rip), %rsi      # 0xf046
movb $0x0, %al
callq 0x2170
movq -0x40(%rbp), %rdi
callq 0x5ff0
movq 0x4ff4(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x204d(%rip), %rsi      # 0xf05b
movb $0x0, %al
callq 0x2170
movq $0x0, -0x98(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x98(%rbp)
cmpq $0x0, -0x98(%rbp)
je 0xd062
movq -0x98(%rbp), %rax
movq (%rax), %rdi
movq 0x4f8a(%rip), %rax      # 0x11fd0
movq (%rax), %rsi
callq 0x5810
movq -0x98(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0xd02b
movq 0x4f8f(%rip), %rax      # 0x11ff8
movq (%rax), %rdi
leaq 0x2003(%rip), %rsi      # 0xf076
movb $0x0, %al
callq 0x2170
xorl %eax, %eax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop