// File: /workspace/github_cpp_makefile_star2_O1/kelwinfc[P]ci4721-Fernandez-Gyomrey/src/main.cpp
// Function: main_read_args(int, char**, _IO_FILE*, main_args&)
void main_read_args(int argc, char **argv, FILE *in, main_args& args)
{
    args.to_single_archive = false;
    args.to_separate_archives = false;
    args.ast = false;
    args.tac_with_comments = false;
    args.in = in;
    if (1 == argc) {
        cout << "Opciones para " << argv[0] << " [-a | -s] [-c] [-t] archivo:" << endl
             << " -a imprimir en archivo bla.output" << endl
             << " -s imprimir en archivo bla.* separados" << endl
             << " -c imprimir el tac con comentarios" << endl
             << " -t imprimir el ast" << endl;
        exit(0);
    }
    for (int i = 1; i < argc; ++i) {
        if (i + 1 == argc) {
            args.in = fopen(argv[i], "r");
            if (!args.in) {
                cout << "Archivo '" << argv[i] << "' no existe" << endl;
                exit(1);
            }
        } else if (!strcmp("-a", argv[i])) {
            args.to_separate_archives = false;
            args.to_single_archive = true;
        } else if (!strcmp("-s", argv[i])) {
            args.to_separate_archives = true;
            args.to_single_archive = false;
        } else if (!strcmp("-c", argv[i])) {
            args.tac_with_comments = true;
        } else if (!strcmp("-t", argv[i])) {
            args.ast = true;
        } else {
            cout << "Opciones para " << argv[0] << " [-a | -s] [-c] [-t] archivo:" << endl
                 << " -a imprimir en archivo bla.output" << endl
                 << " -s imprimir en archivo bla.* separados" << endl
                 << " -c imprimir el tac con comentarios" << endl
                 << " -t imprimir el ast" << endl;
            exit(1);
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movl $0x0, (%rcx)
movq %rdx, 0x8(%rcx)
cmpl $0x1, %edi
je 0x2a3db
jle 0x2a305
movq %rcx, %r14
movl %edi, %r15d
leaq -0x1(%r15), %r12
addq $-0x2, %r15
xorl %r13d, %r13d
movq 0x8(%rbx,%r13,8), %rbp
cmpq %r13, %r15
jne 0x2a291
movq %rbp, %rdi
leaq 0x3d72(%rip), %rsi      # 0x2dff0
callq 0x6390
movq %rax, 0x8(%r14)
testq %rax, %rax
jne 0x2a2f9
jmp 0x2a314
leaq 0x796b(%rip), %rdi      # 0x31c03
movq %rbp, %rsi
callq 0x6400
testl %eax, %eax
je 0x2a2e4
leaq 0x795b(%rip), %rdi      # 0x31c06
movq %rbp, %rsi
callq 0x6400
testl %eax, %eax
je 0x2a2ec
leaq 0x794b(%rip), %rdi      # 0x31c09
movq %rbp, %rsi
callq 0x6400
testl %eax, %eax
je 0x2a2f4
leaq 0x793b(%rip), %rdi      # 0x31c0c
movq %rbp, %rsi
callq 0x6400
testl %eax, %eax
jne 0x2a355
movb $0x1, 0x2(%r14)
jmp 0x2a2f9
movw $0x1, (%r14)
jmp 0x2a2f9
movw $0x100, (%r14)          # imm = 0x100
jmp 0x2a2f9
movb $0x1, 0x3(%r14)
incq %r13
cmpq %r13, %r12
jne 0x2a26a
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x13ca5(%rip), %rdi     # 0x3dfc0
leaq 0x78cb(%rip), %rsi      # 0x31bed
callq 0x62c0
movq 0x8(%rbx,%r13,8), %rsi
movq %rax, %rdi
callq 0x62c0
leaq 0x78bc(%rip), %rsi      # 0x31bf7
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
movl $0x1, %edi
callq 0x63b0
movq 0x13c64(%rip), %rdi     # 0x3dfc0
leaq 0x77da(%rip), %rsi      # 0x31b3d
callq 0x62c0
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x62c0
leaq 0x77d2(%rip), %rsi      # 0x31b4c
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x77d9(%rip), %rsi      # 0x31b6a
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x77e5(%rip), %rsi      # 0x31b8d
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x77f6(%rip), %rsi      # 0x31bb5
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x7803(%rip), %rsi      # 0x31bd9
jmp 0x2a33b
movq 0x13bde(%rip), %rdi     # 0x3dfc0
leaq 0x7754(%rip), %rsi      # 0x31b3d
callq 0x62c0
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x62c0
leaq 0x774c(%rip), %rsi      # 0x31b4c
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x7753(%rip), %rsi      # 0x31b6a
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x775f(%rip), %rsi      # 0x31b8d
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x7770(%rip), %rsi      # 0x31bb5
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
leaq 0x777d(%rip), %rsi      # 0x31bd9
movq %rax, %rdi
callq 0x62c0
movq %rax, %rdi
callq 0x6140
xorl %edi, %edi
callq 0x63b0