// File: /workspace/github_c_makefile_star2_O0/ikbenlike[P]nngutils/src/cat.c
// Function: parse_arg
struct cat_args *parse_arg(struct cat_args *args, int argc, char **argv){
    args->fcount = 0;
    args->files = calloc(1, argc * sizeof(char*));
    for(int i = 1; i < argc; i++){
        if(argv[i][0] == '-' && strlen(argv[i]) != 1){
            if(!strcmp(argv[i], "-A") || !strcmp(argv[i], "--show-all")){
                args->show_all = true;
            }
            else if(!strcmp(argv[i], "-e")){
                args->show_nonprinting = true;
                args->show_ends = true;
            }
            else if(!strcmp(argv[i], "-n") || !strcmp(argv[i], "--number")){
                args->number = true;
            }
            else if(!strcmp(argv[i], "-b") || !strcmp(argv[i], "--number-nonblank")){
                args->number_nonblank = true;
                args->number = false;
            }
            else if(!strcmp(argv[i], "-s") || !strcmp(argv[i], "--squeeze-blank")){
                args->squeeze_blank = true;
            }
            else if(!strcmp(argv[i], "-t")){
                args->show_nonprinting = true;
                args->show_tabs = true;
            }
            else if(!strcmp(argv[i], "-T") || !strcmp(argv[i], "--show-tabs")){
                args->show_tabs = true;
            }
            else if(!strcmp(argv[i], "-u")){
                continue;
            }
            else if(!strcmp(argv[i], "-v") || !strcmp(argv[i], "--show-nonprinting")){
                args->show_nonprinting = true;
            }
            else if(!strcmp(argv[i], "-E") || !strcmp(argv[i], "--show-ends")){
                args->show_ends = true;
            }
            else {
                fprintf(stderr, "%s: incorrect argument %s\n", argv[0], argv[i]);
                exit(1);
            }
        }
        else {
            args->files[args->fcount++] = argv[i];
        }
    }
    return args;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl $0x0, 0x10(%rax)
movslq -0xc(%rbp), %rsi
shlq $0x3, %rsi
movl $0x1, %edi
callq 0x10c0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x8(%rax)
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x159c
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x1562
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x1060
cmpq $0x1, %rax
je 0x1562
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd50(%rip), %rsi       # 0x2004
callq 0x10d0
cmpl $0x0, %eax
je 0x12db
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd36(%rip), %rsi       # 0x2007
callq 0x10d0
cmpl $0x0, %eax
jne 0x12e7
movq -0x8(%rbp), %rax
movb $0x1, (%rax)
jmp 0x1560
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xd18(%rip), %rsi       # 0x2012
callq 0x10d0
cmpl $0x0, %eax
jne 0x1319
movq -0x8(%rbp), %rax
movb $0x1, 0x6(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x2(%rax)
jmp 0x155e
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xce9(%rip), %rsi       # 0x2015
callq 0x10d0
cmpl $0x0, %eax
je 0x1353
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xccf(%rip), %rsi       # 0x2018
callq 0x10d0
cmpl $0x0, %eax
jne 0x1360
movq -0x8(%rbp), %rax
movb $0x1, 0x3(%rax)
jmp 0x155c
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xcae(%rip), %rsi       # 0x2021
callq 0x10d0
cmpl $0x0, %eax
je 0x139a
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xc94(%rip), %rsi       # 0x2024
callq 0x10d0
cmpl $0x0, %eax
jne 0x13af
movq -0x8(%rbp), %rax
movb $0x1, 0x1(%rax)
movq -0x8(%rbp), %rax
movb $0x0, 0x3(%rax)
jmp 0x155a
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xc74(%rip), %rsi       # 0x2036
callq 0x10d0
cmpl $0x0, %eax
je 0x13e9
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xc5a(%rip), %rsi       # 0x2039
callq 0x10d0
cmpl $0x0, %eax
jne 0x13f6
movq -0x8(%rbp), %rax
movb $0x1, 0x4(%rax)
jmp 0x1558
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xc40(%rip), %rsi       # 0x2049
callq 0x10d0
cmpl $0x0, %eax
jne 0x1428
movq -0x8(%rbp), %rax
movb $0x1, 0x6(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x5(%rax)
jmp 0x1556
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xc11(%rip), %rsi       # 0x204c
callq 0x10d0
cmpl $0x0, %eax
je 0x1462
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbf7(%rip), %rsi       # 0x204f
callq 0x10d0
cmpl $0x0, %eax
jne 0x146f
movq -0x8(%rbp), %rax
movb $0x1, 0x5(%rax)
jmp 0x1554
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbd9(%rip), %rsi       # 0x205b
callq 0x10d0
cmpl $0x0, %eax
jne 0x1491
jmp 0x158e
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xbba(%rip), %rsi       # 0x205e
callq 0x10d0
cmpl $0x0, %eax
je 0x14cb
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xba0(%rip), %rsi       # 0x2061
callq 0x10d0
cmpl $0x0, %eax
jne 0x14d5
movq -0x8(%rbp), %rax
movb $0x1, 0x6(%rax)
jmp 0x1550
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xb8c(%rip), %rsi       # 0x2074
callq 0x10d0
cmpl $0x0, %eax
je 0x150f
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0xb72(%rip), %rsi       # 0x2077
callq 0x10d0
cmpl $0x0, %eax
jne 0x1519
movq -0x8(%rbp), %rax
movb $0x1, 0x2(%rax)
jmp 0x154e
movq 0x2ad8(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq (%rax), %rdx
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
leaq 0xb46(%rip), %rsi       # 0x2083
movb $0x0, %al
callq 0x10e0
movl $0x1, %edi
callq 0x1100
jmp 0x1550
jmp 0x1552
jmp 0x1554
jmp 0x1556
jmp 0x1558
jmp 0x155a
jmp 0x155c
jmp 0x155e
jmp 0x1560
jmp 0x158c
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rsi
movl 0x10(%rsi), %ecx
movl %ecx, %edi
addl $0x1, %edi
movl %edi, 0x10(%rsi)
movslq %ecx, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x158e
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1262
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)