// File: /workspace/github_cpp_makefile_star2_O2/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
andl $0x0, (%rcx)
movq %rsi, %rbx
movq %rdx, 0x8(%rcx)
cmpl $0x1, %edi
je 0x208fe
movq %rcx, %r14
movslq %edi, %r13
movl %edi, %eax
pushq $0x2
popq %rbp
subq %rax, %rbp
pushq $0x1
popq %r12
leaq 0x4886(%rip), %r15      # 0x24ff0
cmpq %r13, %r12
jge 0x2082b
leaq (%r12,%rbp), %rax
movq (%rbx,%r12,8), %rdi
cmpq $0x1, %rax
jne 0x2079b
movq %r15, %rsi
callq 0x6360
movq %rax, 0x8(%r14)
testq %rax, %rax
jne 0x20823
jmp 0x2083a
movzbl (%rdi), %ecx
leal -0x2d(%rcx), %eax
negl %eax
movl %eax, %edx
cmpl $0x2d, %ecx
jne 0x207d3
movzbl 0x1(%rdi), %edx
subl $0x61, %edx
jne 0x207b7
movzbl 0x2(%rdi), %edx
negl %edx
testl %edx, %edx
je 0x20816
movl %eax, %edx
cmpb $0x2d, %cl
jne 0x207d3
movzbl 0x1(%rdi), %edx
subl $0x73, %edx
jne 0x207d1
movzbl 0x2(%rdi), %edx
negl %edx
testl %edx, %edx
je 0x2080e
cmpb $0x2d, %cl
jne 0x20803
movzbl 0x1(%rdi), %edx
subl $0x63, %edx
jne 0x207e9
movzbl 0x2(%rdi), %edx
negl %edx
testl %edx, %edx
je 0x2081e
cmpb $0x2d, %cl
jne 0x20803
movzbl 0x1(%rdi), %eax
subl $0x74, %eax
jne 0x20801
movzbl 0x2(%rdi), %eax
negl %eax
testl %eax, %eax
jne 0x20865
movb $0x1, 0x2(%r14)
jmp 0x20823
movw $0x100, (%r14)          # imm = 0x100
jmp 0x20823
movw $0x1, (%r14)
jmp 0x20823
movb $0x1, 0x3(%r14)
incq %r12
jmp 0x2076a
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x1777f(%rip), %rdi     # 0x37fc0
leaq 0x83a5(%rip), %rsi      # 0x28bed
callq 0x62b0
movq (%rbx,%r12,8), %rsi
movq %rax, %rdi
callq 0x62b0
leaq 0x8397(%rip), %rsi      # 0x28bf7
jmp 0x208e6
movq 0x17754(%rip), %rdi     # 0x37fc0
leaq 0x82ca(%rip), %rsi      # 0x28b3d
callq 0x62b0
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x62b0
leaq 0x82c2(%rip), %rsi      # 0x28b4c
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x82c9(%rip), %rsi      # 0x28b6a
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x82d5(%rip), %rsi      # 0x28b8d
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x82e6(%rip), %rsi      # 0x28bb5
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x82f3(%rip), %rsi      # 0x28bd9
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
pushq $0x1
popq %rdi
callq 0x6380
movq 0x176bb(%rip), %rdi     # 0x37fc0
leaq 0x8231(%rip), %rsi      # 0x28b3d
callq 0x62b0
movq (%rbx), %rsi
movq %rax, %rdi
callq 0x62b0
leaq 0x8229(%rip), %rsi      # 0x28b4c
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x8230(%rip), %rsi      # 0x28b6a
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x823c(%rip), %rsi      # 0x28b8d
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x824d(%rip), %rsi      # 0x28bb5
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
leaq 0x825a(%rip), %rsi      # 0x28bd9
movq %rax, %rdi
callq 0x62b0
movq %rax, %rdi
callq 0x6130
xorl %edi, %edi
callq 0x6380