// File: /workspace/github_c_makefile_star2_O2/Cyan4973[P]FiniteStateEntropy/programs/fileio.c
// Function: FIO_compressFilename
unsigned long long FIO_compressFilename(const char* output_filename, const char* input_filename)
{
    U64 filesize = 0;
    U64 compressedfilesize = 0;
    FILE* finput;
    FILE* foutput;
    size_t const inputBlockSize = FIO_blockID_to_blockSize(g_blockSizeId);
    char* const in_buff = (char*)malloc(inputBlockSize);
    char* const out_buff = (char*)malloc(FSE_compressBound(inputBlockSize) + 5);
    XXH32_state_t xxhState;
    typedef size_t (*compressor_t) (void* dst, size_t dstSize, const void* src, size_t srcSize);
    compressor_t compressor;
    unsigned magicNumber;


    /* Init */
    if (!in_buff || !out_buff) EXM_THROW(21, "Allocation error : not enough memory");
    XXH32_reset (&xxhState, FSE_CHECKSUM_SEED);
    get_fileHandle(input_filename, output_filename, &finput, &foutput);
    switch (g_compressor)
    {
    case FIO_fse:
        compressor = FSE_compress;
        magicNumber = FIO_magicNumber_fse;
        break;
    case FIO_huf:
        compressor = HUF_compress;
        magicNumber = FIO_magicNumber_huf;
        break;
    case FIO_zlibh:
        compressor = FIO_ZLIBH_compress;
        magicNumber = FIO_magicNumber_zlibh;
        break;
    default :
        EXM_THROW(20, "unknown compressor selection");
    }

    /* Write Frame Header */
    FIO_writeLE32(out_buff, magicNumber);
    out_buff[4] = (char)g_blockSizeId;          /* Max Block Size descriptor */
    { size_t const sizeCheck = fwrite(out_buff, 1, FIO_FRAMEHEADERSIZE, foutput);
      if (sizeCheck!=FIO_FRAMEHEADERSIZE) EXM_THROW(22, "Write error : cannot write header"); }
    compressedfilesize += FIO_FRAMEHEADERSIZE;

    /* Main compression loop */
    while (1) {
        /* Fill input Buffer */
        size_t cSize;
        size_t const inSize = fread(in_buff, (size_t)1, (size_t)inputBlockSize, finput);
        DISPLAYLEVEL(6, "reading %zu bytes from input (%s)\n",
                        inSize, input_filename);
        if (inSize==0) break;
        filesize += inSize;
        XXH32_update(&xxhState, in_buff, inSize);
        DISPLAYUPDATE(2, "\rRead : %u MB   ", (U32)(filesize>>20));

        /* Compress Block */
        cSize = compressor(out_buff + FIO_maxBlockHeaderSize, FSE_compressBound(inputBlockSize), in_buff, inSize);
        if (FSE_isError(cSize)) EXM_THROW(23, "Compression error : %s ", FSE_getErrorName(cSize));

        /* Write cBlock */
        switch(cSize)
        {
        size_t headerSize;
        case 0: /* raw */
            DISPLAYLEVEL(6, "packing uncompressed block, of size %zu \n", inSize);
            if (inSize == inputBlockSize) {
                out_buff[0] = (BYTE)((bt_raw << 6) + BIT5);
                headerSize = 1;
            } else {
                out_buff[0] = (BYTE)(bt_raw << 6);
                out_buff[1] = (BYTE)(inSize >> 8);
                out_buff[2] = (BYTE)inSize;
                headerSize = 3;
            }
            { size_t const sizeCheck = fwrite(out_buff, 1, headerSize, foutput);
              if (sizeCheck!=headerSize) EXM_THROW(24, "Write error : cannot write block header"); }
            { size_t const sizeCheck = fwrite(in_buff, 1, inSize, foutput);
              if (sizeCheck!=(size_t)(inSize)) EXM_THROW(25, "Write error : cannot write block"); }
            compressedfilesize += inSize + headerSize;
            break;
        case 1: /* rle */
            DISPLAYLEVEL(6, "packing RLE block, of size %zu \n", inSize);
            if (inSize == inputBlockSize) {
                out_buff[0] = (BYTE)((bt_rle << 6) + BIT5);
                headerSize = 1;
            } else {
                out_buff[0] = (BYTE)(bt_rle << 6);
                out_buff[1] = (BYTE)(inSize >> 8);
                out_buff[2] = (BYTE)inSize;
                headerSize = 3;
            }
            out_buff[headerSize] = in_buff[0];
            { size_t const sizeCheck = fwrite(out_buff, 1, headerSize+1, foutput);
              if (sizeCheck!=(headerSize+1)) EXM_THROW(26, "Write error : cannot write rle block"); }
            compressedfilesize += headerSize + 1;
            break;
        default : /* compressed */
            DISPLAYLEVEL(6, "packing compressed block, of size %zu, into %zu bytes \n",
                            inSize, cSize);
            if (inSize == inputBlockSize) {
                out_buff[2] = (BYTE)((bt_compressed << 6) + BIT5);
                DISPLAYLEVEL(7, "generated block descriptor : %u \n", out_buff[2]);
                out_buff[3] = (BYTE)(cSize >> 8);
                out_buff[4] = (BYTE)cSize;
                headerSize = 3;
            } else {
                out_buff[0] = (BYTE)(bt_compressed << 6);
                out_buff[1] = (BYTE)(inSize >> 8);
                out_buff[2] = (BYTE)inSize;
                out_buff[3] = (BYTE)(cSize >> 8);
                out_buff[4] = (BYTE)cSize;
                headerSize = FIO_maxBlockHeaderSize;
            }
            { size_t const sizeCheck = fwrite(out_buff+(FIO_maxBlockHeaderSize-headerSize), 1, headerSize+cSize, foutput);
              if (sizeCheck!=(headerSize+cSize)) EXM_THROW(27, "Write error : cannot write rle block"); }
            compressedfilesize += headerSize + cSize;
            break;
        }

        DISPLAYUPDATE(2, "\rRead : %u MB  ==> %.2f%%   ", (U32)(filesize>>20), (double)(compressedfilesize/filesize)*100);
    }

    /* Checksum */
    {   U32 checksum = XXH32_digest(&xxhState);
        checksum = (checksum >> 5) & ((1U<<22)-1);
        out_buff[2] = (BYTE)checksum;
        out_buff[1] = (BYTE)(checksum >> 8);
        out_buff[0] = (BYTE)((checksum >> 16) + (bt_crc << 6));
        { size_t const sizeCheck = fwrite(out_buff, 1, 3, foutput);
          if (sizeCheck!=3) EXM_THROW(28, "Write error : cannot write checksum"); }
        compressedfilesize += 3;
    }

    /* Status */
    DISPLAYLEVEL(2, "\r%79s\r", "");
    DISPLAYLEVEL(2,"Compressed %llu bytes into %llu bytes ==> %.2f%%\n",
        (unsigned long long) filesize, (unsigned long long) compressedfilesize, (double)(compressedfilesize/filesize)*100);

    /* clean */
    free(in_buff);
    free(out_buff);
    fclose(finput);
    fclose(foutput);

    return compressedfilesize;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rsi, 0x10(%rsp)
movq %rdi, %rbx
movl $0x8000, %edi           # imm = 0x8000
callq 0x1150
movq %rax, %r15
movl $0x8000, %edi           # imm = 0x8000
callq 0x816f
leaq 0x5(%rax), %rdi
callq 0x1150
testq %r15, %r15
je 0x3b1b
movq %rax, %rbp
testq %rax, %rax
je 0x3b1b
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
callq 0x4c8a
leaq 0x40(%rsp), %rdx
leaq 0x38(%rsp), %rcx
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x3c9a
movl 0x12d63(%rip), %eax     # 0x16140
cmpq $0x3, %rax
jae 0x3b75
movl %eax, %ecx
shlb $0x4, %cl
addb $0x23, %cl
leaq 0x129ba(%rip), %rdx     # 0x15db0
movq (%rdx,%rax,8), %rax
movq %rax, 0x30(%rsp)
movb $0x9, (%rbp)
movb %cl, 0x1(%rbp)
movw $0x183e, 0x2(%rbp)      # imm = 0x183E
movb $0x5, 0x4(%rbp)
movq 0x38(%rsp), %rcx
pushq $0x1
popq %rsi
pushq $0x5
popq %rbx
movq %rbp, %rdi
movq %rbx, %rdx
movq %rcx, (%rsp)
callq 0x1190
cmpq $0x5, %rax
jne 0x3bd2
movq 0x40(%rsp), %r13
leaq 0x5(%rbp), %rax
movq %rax, 0x28(%rsp)
xorl %r14d, %r14d
movq %r13, 0x18(%rsp)
movq %rbx, 0x8(%rsp)
movl $0x8000, %edx           # imm = 0x8000
movq %r15, %rdi
pushq $0x1
popq %rsi
movq %r13, %rcx
callq 0x1060
movq %rax, %rbx
cmpl $0x6, 0x12c88(%rip)     # 0x160f4
jge 0x3719
testq %rbx, %rbx
je 0x3802
addq %rbx, %r14
leaq 0x48(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x4d0f
cmpl $0x2, 0x12c5f(%rip)     # 0x160f4
jl 0x34bb
movq 0x12caa(%rip), %rdi     # 0x16148
callq 0x3f7d
cmpl $0x96, %eax
ja 0x373e
cmpl $0x4, 0x12c3f(%rip)     # 0x160f4
jge 0x373e
movl $0x8000, %edi           # imm = 0x8000
callq 0x816f
movq 0x28(%rsp), %rdi
movq %rax, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq *0x30(%rsp)
movq %rax, %r12
movq %rax, %rdi
callq 0x67fa
movl 0x12c0c(%rip), %edx     # 0x160f4
testl %eax, %eax
jne 0x3901
cmpq $0x1, %r12
movq (%rsp), %rcx
pushq $0x1
popq %rsi
je 0x3584
testq %r12, %r12
jne 0x35d5
movq %r14, 0x20(%rsp)
cmpl $0x6, %edx
jge 0x378a
movb $0x60, %al
movq %rsi, %r12
cmpq $0x8000, %rbx           # imm = 0x8000
je 0x3536
movl %ebx, %eax
rolw $0x8, %ax
movw %ax, 0x1(%rbp)
movb $0x40, %al
pushq $0x3
popq %r12
movq %rbp, %rdi
movb %al, (%rbp)
movq %rsi, %r14
movq %r12, %rdx
movq %rcx, %r13
callq 0x1190
cmpq %r12, %rax
jne 0x3aaf
movq %r15, %rdi
movq %r14, %rsi
movq %rbx, %rdx
movq %r13, %rcx
callq 0x1190
cmpq %rbx, %rax
jne 0x3971
addq %rbx, %r12
movq 0x18(%rsp), %r13
movq 0x20(%rsp), %r14
movq 0x8(%rsp), %rbx
jmp 0x365e
cmpl $0x6, %edx
jge 0x37b1
movb $-0x60, %al
movq %rsi, %r12
cmpq $0x8000, %rbx           # imm = 0x8000
je 0x35a9
rolw $0x8, %bx
movw %bx, 0x1(%rbp)
movb $-0x80, %al
pushq $0x3
popq %r12
movb %al, (%rbp)
movb (%r15), %al
movb %al, (%rbp,%r12)
incq %r12
movq %rbp, %rdi
movq %r12, %rdx
callq 0x1190
cmpq %r12, %rax
movq 0x8(%rsp), %rbx
je 0x365e
jmp 0x39dc
cmpl $0x6, %edx
jge 0x37d8
cmpq $0x8000, %rbx           # imm = 0x8000
jne 0x3623
movb $0x20, 0x2(%rbp)
cmpl $0x7, 0x12b02(%rip)     # 0x160f4
pushq $0x3
popq %rax
movq 0x8(%rsp), %rbx
jl 0x3635
movq 0x129f5(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc4b8(%rip), %rsi      # 0xfac5
pushq $0x20
popq %rdx
xorl %eax, %eax
callq 0x1110
pushq $0x1
popq %rsi
movq (%rsp), %rcx
pushq $0x3
popq %rax
jmp 0x3635
movb $0x0, (%rbp)
movb %bh, 0x1(%rbp)
movb %bl, 0x2(%rbp)
pushq $0x5
popq %rax
movq 0x8(%rsp), %rbx
movl %r12d, %edx
rolw $0x8, %dx
movw %dx, 0x3(%rbp)
movq %rbp, %rdi
subq %rax, %rdi
addq $0x5, %rdi
addq %rax, %r12
movq %r12, %rdx
callq 0x1190
cmpq %r12, %rax
jne 0x3a47
addq %rbx, %r12
cmpl $0x2, 0x12a8c(%rip)     # 0x160f4
movq %r12, %rbx
jl 0x344a
movq 0x12ad0(%rip), %rdi     # 0x16148
callq 0x3f7d
cmpl $0x96, %eax
ja 0x3694
cmpl $0x4, 0x12a69(%rip)     # 0x160f4
movq %r12, %rbx
jl 0x344a
callq 0x1070
movq %rax, 0x12aa8(%rip)     # 0x16148
movq 0x12951(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
movq %r14, %rcx
shrq $0x14, %rcx
movq %r12, %rax
xorl %edx, %edx
divq %r14
movq %rax, %xmm1
punpckldq 0xb97a(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0xb982(%rip), %xmm1     # 0xf050
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xb936(%rip), %xmm0     # 0xf018
leaq 0xc3fe(%rip), %rsi      # 0xfae7
movl %ecx, %edx
movb $0x1, %al
callq 0x1110
cmpl $0x4, 0x129fb(%rip)     # 0x160f4
movq %r12, %rbx
jl 0x344a
movq 0x128c7(%rip), %rax     # 0x15fd0
movq (%rax), %rdi
callq 0x1160
movq %r12, %rbx
jmp 0x344a
movq 0x128d8(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc25e(%rip), %rsi      # 0xf988
movq %rbx, %rdx
movq 0x10(%rsp), %rcx
xorl %eax, %eax
callq 0x1110
jmp 0x3472
callq 0x1070
movq %rax, 0x129fe(%rip)     # 0x16148
movq 0x128a7(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
movq %r14, %rdx
shrq $0x14, %rdx
leaq 0xc249(%rip), %rsi      # 0xf9ab
xorl %eax, %eax
callq 0x1110
cmpl $0x4, 0x12984(%rip)     # 0x160f4
jl 0x34bb
movq 0x12853(%rip), %rax     # 0x15fd0
movq (%rax), %rdi
callq 0x1160
jmp 0x34bb
movq 0x12867(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc239(%rip), %rsi      # 0xf9d4
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1110
pushq $0x1
popq %rsi
movq (%rsp), %rcx
jmp 0x3518
movq 0x12840(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc285(%rip), %rsi      # 0xfa47
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1110
pushq $0x1
popq %rsi
movq (%rsp), %rcx
jmp 0x358d
movq 0x12819(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc2a4(%rip), %rsi      # 0xfa8d
movq %rbx, %rdx
movq %r12, %rcx
xorl %eax, %eax
callq 0x1110
pushq $0x1
popq %rsi
movq (%rsp), %rcx
jmp 0x35de
leaq 0x48(%rsp), %rdi
callq 0x4e93
movl %eax, %ecx
shrl $0x5, %ecx
movb %cl, 0x2(%rbp)
movl %eax, %ecx
shrl $0xd, %ecx
movb %cl, 0x1(%rbp)
shrl $0x15, %eax
orb $-0x40, %al
movb %al, (%rbp)
pushq $0x1
popq %rsi
pushq $0x3
popq %rdx
movq %rbp, %rdi
movq (%rsp), %rcx
callq 0x1190
cmpq $0x3, %rax
jne 0x3c2f
movq 0x8(%rsp), %rbx
addq $0x3, %rbx
cmpl $0x2, 0x128a4(%rip)     # 0x160f4
jge 0x3885
movq %r15, %rdi
callq 0x1030
movq %rbp, %rdi
callq 0x1030
movq %r13, %rdi
callq 0x1080
movq (%rsp), %rdi
callq 0x1080
movq %rbx, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x1276c(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xb7ef(%rip), %rsi      # 0xf085
leaq 0xbc08(%rip), %rdx      # 0xf4a5
xorl %eax, %eax
callq 0x1110
cmpl $0x2, 0x12849(%rip)     # 0x160f4
jl 0x3852
movq 0x12744(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
movq %rbx, %rax
xorl %edx, %edx
divq %r14
movq %rax, %xmm1
punpckldq 0xb774(%rip), %xmm1 # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
subpd 0xb77c(%rip), %xmm1     # 0xf050
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
addsd %xmm1, %xmm0
mulsd 0xb730(%rip), %xmm0     # 0xf018
leaq 0xc239(%rip), %rsi      # 0xfb28
movq %r14, %rdx
movq %rbx, %rcx
movb $0x1, %al
callq 0x1110
jmp 0x3852
testl %edx, %edx
jle 0x396a
movq 0x126ec(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xc002(%rip), %rsi      # 0xf918
pushq $0x17
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x127cd(%rip)     # 0x160f4
jle 0x396a
movq 0x126c8(%rip), %rax     # 0x15ff8
movq (%rax), %rbx
movq %r12, %rdi
callq 0x6804
leaq 0xc07a(%rip), %rsi      # 0xf9bc
movq %rbx, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x1279e(%rip)     # 0x160f4
jle 0x396a
movq 0x12699(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x17
jmp 0x3b15
cmpl $0x0, 0x1277c(%rip)     # 0x160f4
jle 0x39d5
movq 0x12677(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xbf8d(%rip), %rsi      # 0xf918
pushq $0x19
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x12758(%rip)     # 0x160f4
jle 0x39d5
movq 0x12653(%rip), %rax     # 0x15ff8
movq (%rax), %rcx
leaq 0xc077(%rip), %rdi      # 0xfa26
pushq $0x20
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x12733(%rip)     # 0x160f4
jle 0x39d5
movq 0x1262e(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x19
jmp 0x3b15
cmpl $0x0, 0x12711(%rip)     # 0x160f4
jle 0x3a40
movq 0x1260c(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xbf22(%rip), %rsi      # 0xf918
pushq $0x1a
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x126ed(%rip)     # 0x160f4
jle 0x3a40
movq 0x125e8(%rip), %rax     # 0x15ff8
movq (%rax), %rcx
leaq 0xc04e(%rip), %rdi      # 0xfa68
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x126c8(%rip)     # 0x160f4
jle 0x3a40
movq 0x125c3(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x1a
jmp 0x3b15
cmpl $0x0, 0x126a6(%rip)     # 0x160f4
jle 0x3aab
movq 0x125a1(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xbeb7(%rip), %rsi      # 0xf918
pushq $0x1b
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x12682(%rip)     # 0x160f4
jle 0x3aab
movq 0x1257d(%rip), %rax     # 0x15ff8
movq (%rax), %rcx
leaq 0xbfe3(%rip), %rdi      # 0xfa68
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x1265d(%rip)     # 0x160f4
jle 0x3aab
movq 0x12558(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x1b
jmp 0x3b15
cmpl $0x0, 0x1263e(%rip)     # 0x160f4
jle 0x3b13
movq 0x12539(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xbe4f(%rip), %rsi      # 0xf918
pushq $0x18
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x1261a(%rip)     # 0x160f4
jle 0x3b13
movq 0x12515(%rip), %rax     # 0x15ff8
movq (%rax), %rcx
leaq 0xbf11(%rip), %rdi      # 0xf9fe
pushq $0x27
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x125f5(%rip)     # 0x160f4
jle 0x3b13
movq 0x124f0(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x18
popq %rdi
callq 0x1180
cmpl $0x0, 0x125d2(%rip)     # 0x160f4
jle 0x3b71
movq 0x124cd(%rip), %rbx     # 0x15ff8
movq (%rbx), %rdi
leaq 0xbde3(%rip), %rsi      # 0xf918
pushq $0x15
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x125ae(%rip)     # 0x160f4
jle 0x3b71
movq (%rbx), %rcx
leaq 0xbdd2(%rip), %rdi      # 0xf924
pushq $0x24
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x12590(%rip)     # 0x160f4
jle 0x3b71
movq (%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x15
jmp 0x3b15
cmpl $0x0, 0x12578(%rip)     # 0x160f4
jle 0x3bcb
movq 0x12473(%rip), %rbx     # 0x15ff8
movq (%rbx), %rdi
leaq 0xbd89(%rip), %rsi      # 0xf918
pushq $0x14
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x12554(%rip)     # 0x160f4
jle 0x3bcb
movq (%rbx), %rcx
leaq 0xbd9d(%rip), %rdi      # 0xf949
pushq $0x1c
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x12536(%rip)     # 0x160f4
jle 0x3bcb
movq (%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x14
jmp 0x3b15
cmpl $0x0, 0x1251b(%rip)     # 0x160f4
jle 0x3c28
movq 0x12416(%rip), %rbx     # 0x15ff8
movq (%rbx), %rdi
leaq 0xbd2c(%rip), %rsi      # 0xf918
pushq $0x16
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x124f7(%rip)     # 0x160f4
jle 0x3c28
movq (%rbx), %rcx
leaq 0xbd5d(%rip), %rdi      # 0xf966
pushq $0x21
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x124d9(%rip)     # 0x160f4
jle 0x3c28
movq (%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x16
jmp 0x3b15
cmpl $0x0, 0x124be(%rip)     # 0x160f4
jle 0x3c93
movq 0x123b9(%rip), %rax     # 0x15ff8
movq (%rax), %rdi
leaq 0xbccf(%rip), %rsi      # 0xf918
pushq $0x1c
popq %rdx
xorl %eax, %eax
callq 0x1110
cmpl $0x0, 0x1249a(%rip)     # 0x160f4
jle 0x3c93
movq 0x12395(%rip), %rax     # 0x15ff8
movq (%rax), %rcx
leaq 0xbe97(%rip), %rdi      # 0xfb04
pushq $0x23
popq %rsi
pushq $0x1
popq %rdx
callq 0x1190
cmpl $0x0, 0x12475(%rip)     # 0x160f4
jle 0x3c93
movq 0x12370(%rip), %rax     # 0x15ff8
movq (%rax), %rsi
pushq $0xa
popq %rdi
callq 0x10d0
pushq $0x1c
jmp 0x3b15