// File: /workspace/github_c_makefile_star2_O3/patriciogonzalezvivo[P]tprint/src/main.cpp
// Function: main
int main(int argc, char **argv){

    //  Get a list of ports
#ifdef PLATFORM_RPI
    std::string port = "/dev/ttyAMA0";
#else
    std::string port = "NONE";
#endif

    std::vector<serial::PortInfo> ports = serial::list_ports();
    for (uint i = 0; i < ports.size(); i++){
        // std::cout << ports[i].port << " - " << ports[i].description << " - " << ports[i].hardware_id << std::endl;
        std::string::size_type found = ports[i].description.find("Prolific Technology Inc. USB-Serial Controller");
        if (found != std::string::npos){
            port = ports[i].port;
            break;
        }
    }

    // Contect the printer to the port
    std::cout << "Connecting to port [" << port << "] ";
    if (printer.open(port)){
        printer.setControlParameter(7, 100, 2);
        printer.setAlign(LEFT);
        std::cout << "successfully."<< std::endl;
    } else {
        std::cout << "error."<< std::endl;
        return 0;
    }

    // Load files to watch

    if (argc == 1) {
        std::string line;
        while (std::getline(std::cin, line)){
            printer.print(line+"\n");
        }
    } else {
        for (int i = 1; i < argc ; i++){
            std::string argument = std::string(argv[i]);
            if (    haveExt(argument,"png") || haveExt(argument,"PNG") ||
                    haveExt(argument,"jpg") || haveExt(argument,"JPG") || 
                    haveExt(argument,"jpeg") || haveExt(argument,"JPEG") ){
                // Load Image and print it
                printer.printImg(argument);
            } else if ( haveExt(argument,"txt") || haveExt(argument,"TXT") ||
                        haveExt(argument,"md") || haveExt(argument,"MD") ){
                // Load Text to print
                std::string text = "";
                loadFromPath(argument,&text);
                printer.print(text+"\n");
            } else if (argument == "-s") {
                std::string text = "";
                for (int j = i+1; j < argc ; j++){
                    text += std::string(argv[j]) + " ";
                }
                printer.print(text+"\n");
                break;
            }
        }
    }

    // printer.close();
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x338, %rsp            # imm = 0x338
movq %rsi, 0xb0(%rsp)
movl %edi, 0x44(%rsp)
leaq 0xc8(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x11ec5(%rip), %rsi     # 0x20829
leaq 0x11ec2(%rip), %rdx     # 0x2082d
leaq 0xb8(%rsp), %rdi
callq 0x9f1e
leaq 0xd8(%rsp), %rdi
callq 0x888c
movq 0xd8(%rsp), %rax
cmpq %rax, 0xe0(%rsp)
je 0xea12
movl $0x1, %ebp
xorl %ecx, %ecx
leaq 0x11e89(%rip), %rbx     # 0x2082e
movabsq $-0x5555555555555555, %r15 # imm = 0xAAAAAAAAAAAAAAAB
leaq (%rcx,%rcx,2), %r14
shlq $0x5, %r14
leaq (%rax,%r14), %rdi
addq $0x20, %rdi
movl $0x2e, %ecx
movq %rbx, %rsi
xorl %edx, %edx
callq 0x85d0
cmpq $-0x1, %rax
jne 0xe9fa
movl %ebp, %ecx
movq 0xd8(%rsp), %rax
movq 0xe0(%rsp), %rdx
subq %rax, %rdx
sarq $0x5, %rdx
imulq %r15, %rdx
incl %ebp
cmpq %rcx, %rdx
ja 0xe9af
jmp 0xea12
addq 0xd8(%rsp), %r14
leaq 0xb8(%rsp), %rdi
movq %r14, %rsi
callq 0x81b0
movq 0x185a7(%rip), %rdi     # 0x26fc0
leaq 0x11e3d(%rip), %rsi     # 0x2085d
movl $0x14, %edx
callq 0x83b0
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq 0x1857f(%rip), %rdi     # 0x26fc0
callq 0x83b0
leaq 0x11e25(%rip), %rsi     # 0x20872
movl $0x2, %edx
movq %rax, %rdi
callq 0x83b0
leaq 0x1895f(%rip), %rdi     # 0x273c0
leaq 0xb8(%rsp), %rsi
callq 0x11702
testb %al, %al
je 0xebb0
leaq 0x18943(%rip), %rdi     # 0x273c0
movl $0x7, %esi
movl $0x64, %edx
movl $0x2, %ecx
callq 0x118c0
leaq 0x18928(%rip), %rdi     # 0x273c0
xorl %esi, %esi
callq 0x11b0e
movq 0x1851a(%rip), %rbx     # 0x26fc0
leaq 0x11dc8(%rip), %rsi     # 0x20875
movl $0xd, %edx
movq %rbx, %rdi
callq 0x83b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x82d0
movsbl %al, %esi
movq 0x184e8(%rip), %rdi     # 0x26fc0
callq 0x8050
movq %rax, %rdi
callq 0x8210
cmpl $0x1, 0x44(%rsp)
jne 0xebfb
leaq 0x140(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x10(%rsp), %rbp
movq 0x184cd(%rip), %rbx     # 0x26fe0
leaq 0x130(%rsp), %r14
movq %rsp, %r15
leaq 0x12c86(%rip), %r12     # 0x217ab
leaq 0x18894(%rip), %r13     # 0x273c0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x82d0
movsbl %al, %edx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8650
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0xf53a
movq %rbp, (%rsp)
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rdx
addq %rsi, %rdx
movq %r15, %rdi
callq 0xa1e2
movq %r15, %rdi
movq %r12, %rsi
callq 0x8670
movq %r13, %rdi
movq %r15, %rsi
callq 0x11d2c
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0xeb2c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xeb2c
movq 0x18409(%rip), %rbx     # 0x26fc0
leaq 0x11cc5(%rip), %rsi     # 0x20883
movl $0x6, %edx
movq %rbx, %rdi
callq 0x83b0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x82d0
movsbl %al, %esi
movq 0x183d7(%rip), %rdi     # 0x26fc0
callq 0x8050
movq %rax, %rdi
callq 0x8210
jmp 0xf55f
jle 0xf55f
leaq 0x10(%rsp), %r13
movl 0x44(%rsp), %eax
movq %rax, 0xa8(%rsp)
movl $0x1, %r15d
movl $0x2, %ebx
leaq 0x130(%rsp), %r14
movq 0xb0(%rsp), %rax
movq (%rax,%r15,8), %rsi
leaq 0x68(%rsp), %rdi
movq %r14, %rdx
callq 0x9d44
movq %r13, (%rsp)
movq %rsp, %rbp
movq %rbp, %rdi
leaq 0x11c3b(%rip), %rsi     # 0x2088a
leaq 0x11c37(%rip), %rdx     # 0x2088d
callq 0x9f1e
movq %r14, %rdi
leaq 0x11b28(%rip), %rsi     # 0x2078d
movq %rbp, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xecb1
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf041
leaq 0x30(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x20(%rsp), %r13
movq %r13, %rdi
leaq 0x11bb2(%rip), %rsi     # 0x2088e
leaq 0x11bae(%rip), %rdx     # 0x20891
callq 0x9f1e
movq %r14, %rdi
leaq 0x11a9b(%rip), %rsi     # 0x2078d
movq %r13, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xed3e
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf025
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x11b29(%rip), %rsi     # 0x20892
leaq 0x11b25(%rip), %rdx     # 0x20895
callq 0x9f1e
movq %r14, %rdi
leaq 0x11a0e(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xedcb
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf009
leaq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %r12
movq %r12, %rdi
leaq 0x11a97(%rip), %rsi     # 0x20896
leaq 0x11a93(%rip), %rdx     # 0x20899
callq 0x9f1e
movq %r14, %rdi
leaq 0x11978(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xee61
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xefe4
leaq 0x120(%rsp), %rax
movq %rax, 0x110(%rsp)
leaq 0x110(%rsp), %r12
movq %r12, %rdi
leaq 0x11a05(%rip), %rsi     # 0x2089a
leaq 0x11a02(%rip), %rdx     # 0x2089e
callq 0x9f1e
movq %r14, %rdi
leaq 0x118e2(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xeef7
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xefbf
leaq 0x100(%rsp), %rax
movq %rax, 0xf0(%rsp)
leaq 0xf0(%rsp), %r12
movq %r12, %rdi
leaq 0x11974(%rip), %rsi     # 0x2089f
leaq 0x11971(%rip), %rdx     # 0x208a3
callq 0x9f1e
movq %r14, %rdi
leaq 0x1184c(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xef8d
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
cmpq $-0x1, %r13
setne %bpl
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0xefba
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x8310
leaq 0x10(%rsp), %r13
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0xefe4
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf009
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xf025
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf041
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0xf057
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
testb %bpl, %bpl
je 0xf077
leaq 0x1835d(%rip), %rdi     # 0x273c0
leaq 0x68(%rsp), %rsi
movl $0x7f, %edx
callq 0x11e9e
jmp 0xf508
movq %r13, (%rsp)
movq %rsp, %r13
movq %r13, %rdi
leaq 0x1181c(%rip), %rsi     # 0x208a4
leaq 0x11818(%rip), %rdx     # 0x208a7
callq 0x9f1e
movq %r14, %rdi
leaq 0x116ef(%rip), %rsi     # 0x2078d
movq %r13, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf0ea
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf304
leaq 0x30(%rsp), %rax
movq %rax, 0x20(%rsp)
leaq 0x20(%rsp), %r13
movq %r13, %rdi
leaq 0x11793(%rip), %rsi     # 0x208a8
leaq 0x1178f(%rip), %rdx     # 0x208ab
callq 0x9f1e
movq %r14, %rdi
leaq 0x11662(%rip), %rsi     # 0x2078d
movq %r13, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf177
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf2e8
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x48(%rsp), %r12
movq %r12, %rdi
leaq 0x1170a(%rip), %rsi     # 0x208ac
leaq 0x11705(%rip), %rdx     # 0x208ae
callq 0x9f1e
movq %r14, %rdi
leaq 0x115d5(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf204
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movb $0x1, %bpl
cmpq $-0x1, %r13
leaq 0x10(%rsp), %r13
jne 0xf2cc
leaq 0x98(%rsp), %rax
movq %rax, 0x88(%rsp)
leaq 0x88(%rsp), %r12
movq %r12, %rdi
leaq 0x11677(%rip), %rsi     # 0x208af
leaq 0x11672(%rip), %rdx     # 0x208b1
callq 0x9f1e
movq %r14, %rdi
leaq 0x1153f(%rip), %rsi     # 0x2078d
movq %r12, %rdx
callq 0xfa39
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rcx
leaq 0x68(%rsp), %rdi
xorl %edx, %edx
callq 0x85d0
movq %rax, %r13
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf29a
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
cmpq $-0x1, %r13
setne %bpl
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf2c7
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8310
leaq 0x10(%rsp), %r13
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xf2e8
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf304
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0xf31a
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
testb %bpl, %bpl
je 0xf4ef
leaq 0x58(%rsp), %rax
movq %rax, 0x48(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0x12473(%rip), %rdx     # 0x217ac
movq %rdx, %rsi
callq 0x9f1e
movq %r14, %r12
movq %r14, %rdi
callq 0x83a0
leaq 0x30(%rsp), %rbp
movq %r13, (%rsp)
movq $0x0, 0x8(%rsp)
movb $0x0, 0x10(%rsp)
movq 0x68(%rsp), %rsi
movq %r12, %rdi
movl $0x8, %edx
callq 0x81f0
leaq 0x1a8(%rsp), %rdi
callq 0x80b0
testb %al, %al
je 0xf448
movq 0x130(%rsp), %rax
movq -0x18(%rax), %rax
testb $0x2, 0x150(%rsp,%rax)
jne 0xf440
leaq (%rsp,%rax), %rdi
addq $0x130, %rdi            # imm = 0x130
movl $0xa, %esi
callq 0x82d0
movsbl %al, %edx
movq %r14, %rdi
movq %rsp, %rsi
callq 0x8650
movq %rbp, 0x20(%rsp)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
addq %rsi, %rdx
leaq 0x20(%rsp), %r12
movq %r12, %rdi
callq 0xa1e2
movq %r12, %rdi
leaq 0x123bc(%rip), %rsi     # 0x217ab
callq 0x8670
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x80f0
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf41f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x130(%rsp), %rax
movq -0x18(%rax), %rax
leaq (%rsp,%rax), %rdi
addq $0x130, %rdi            # imm = 0x130
testb $0x2, 0x20(%rdi)
je 0xf3af
movq %r14, %rdi
callq 0x8090
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0xf45e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
movq %r14, %r12
movq %r14, %rdi
callq 0x80c0
leaq 0x140(%rsp), %rax
movq %rax, 0x130(%rsp)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0xa1e2
movq %r12, %rdi
leaq 0x12313(%rip), %rsi     # 0x217ab
callq 0x8670
leaq 0x17f1c(%rip), %rdi     # 0x273c0
movq %r12, %rsi
callq 0x11d2c
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf4d1
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xf508
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf508
leaq 0x68(%rsp), %rdi
leaq 0x113b7(%rip), %rsi     # 0x208b2
callq 0x80e0
testl %eax, %eax
je 0xf5a5
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xf524
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x8310
incq %r15
incq %rbx
cmpq 0xa8(%rsp), %r15
jne 0xec25
jmp 0xf55f
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf55f
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
leaq 0xd8(%rsp), %rdi
callq 0x9e86
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0xf591
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x8310
xorl %eax, %eax
addq $0x338, %rsp            # imm = 0x338
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
movq %rax, (%rdi)
leaq 0x121ed(%rip), %rdx     # 0x217ac
movq %rdx, %rsi
callq 0x9f1e
incl %r15d
cmpl 0x44(%rsp), %r15d
jge 0xf6ad
leaq 0x20(%rsp), %r13
leaq 0x48(%rsp), %rbp
leaq 0x1106e(%rip), %r15     # 0x20654
leaq 0x130(%rsp), %r12
movq 0xb0(%rsp), %rax
movq (%rax,%rbx,8), %rsi
movq %r13, %rdi
movq %rbp, %rdx
callq 0x9d44
movq %r13, %rdi
movq %r15, %rsi
callq 0x8670
leaq 0x10(%rsp), %rsi
movq %rsi, (%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xf636
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0xf63c
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq %r12, %rdi
callq 0x80f0
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xf680
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf69c
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
incq %rbx
cmpq %rbx, 0xa8(%rsp)
jne 0xf5ee
movq %rsp, %rdi
leaq 0x10(%rsp), %r14
movq %r14, (%rdi)
movq 0x130(%rsp), %rsi
movq 0x138(%rsp), %rdx
addq %rsi, %rdx
callq 0xa1e2
leaq 0x120d4(%rip), %rsi     # 0x217ab
movq %rsp, %rdi
callq 0x8670
leaq 0x17cda(%rip), %rdi     # 0x273c0
movq %rsp, %rsi
callq 0x11d2c
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xf704
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf729
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xf55f
movq 0x78(%rsp), %rsi
jmp 0xf557
movq %rax, %rbx
movq 0xf0(%rsp), %rdi
leaq 0x100(%rsp), %rax
cmpq %rax, %rdi
je 0xf798
movq 0x100(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf798
jmp 0xf795
jmp 0xf774
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r14, %rdi
je 0xf848
movq 0x10(%rsp), %rsi
jmp 0xf840
jmp 0xf804
jmp 0xf90a
movq %rax, %rbx
movq 0x110(%rsp), %rdi
leaq 0x120(%rsp), %rax
cmpq %rax, %rdi
je 0xf7cb
movq 0x120(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf7cb
jmp 0xf7c8
jmp 0xf7c8
jmp 0xf86e
movq %rax, %rbx
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0xf871
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf871
jmp 0xf86e
jmp 0xf86e
jmp 0xf8e1
jmp 0xf972
movq %rax, %rbx
jmp 0xf848
movq %rax, %rbx
jmp 0xf82c
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xf82c
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf848
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf9c1
movq 0x140(%rsp), %rsi
jmp 0xf9b9
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xf8e4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf8e4
jmp 0xf8e1
jmp 0xf8e1
jmp 0xf914
jmp 0xf8cc
jmp 0xf90a
jmp 0xf89b
movq %rax, %rbx
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf9a5
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf9a5
movq %rax, %rbx
jmp 0xf9a5
movq %rax, %rbx
jmp 0xfa0c
jmp 0xf97a
movq %rax, %rbx
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0xf917
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf917
jmp 0xf914
jmp 0xf914
jmp 0xf90a
jmp 0xf90a
movq %rax, %rbx
jmp 0xf9c1
jmp 0xf972
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xf9c1
movq 0x10(%rsp), %rsi
jmp 0xf9b9
jmp 0xf935
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %rbp, %rdi
je 0xf97d
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf97d
jmp 0xf97a
jmp 0xf955
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %rbp, %rdi
je 0xf9da
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
jmp 0xf9da
jmp 0xf9d7
movq %rax, %rbx
jmp 0xf9ff
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0xf998
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8310
leaq 0x130(%rsp), %rdi
callq 0x80c0
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0xf9c1
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x8310
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0xf9ff
movq 0x78(%rsp), %rsi
jmp 0xf9f7
movq %rax, %rbx
movq 0x130(%rsp), %rdi
leaq 0x140(%rsp), %rax
cmpq %rax, %rdi
je 0xf9ff
movq 0x140(%rsp), %rsi
incq %rsi
callq 0x8310
leaq 0xd8(%rsp), %rdi
callq 0x9e86
movq 0xb8(%rsp), %rdi
leaq 0xc8(%rsp), %rax
cmpq %rax, %rdi
je 0xfa31
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x8310
movq %rbx, %rdi
callq 0x85f0