// File: /workspace/github_c_makefile_star2_O0/aremmell[P]libsir/tests/tests_shared.c
// Function: print_usage_info
void print_usage_info(const sir_cl_arg* args, size_t num_args) {
    size_t longest = 0;
    for (size_t i = 0; i < num_args; i++) {
        size_t len = strnlen(args[i].flag, SIR_CL_MAXFLAG);
        if (len > longest)
            longest = len;
    }

    (void)fprintf(stderr, SIR_EOL SIR_WHITE("  Usage:") SIR_EOL SIR_EOL);

    for (size_t i = 0; i < num_args; i++) {
        (void)fprintf(stderr, "\t%s ", args[i].flag);

        size_t len = strnlen(args[i].flag, SIR_CL_MAXFLAG);
        if (len < longest)
            for (size_t n = len; n < longest; n++)
                (void)fprintf(stderr, " ");

        (void)fprintf(stderr, "%s%s%s" SIR_EOL, args[i].usage,
            strnlen(args[i].usage, SIR_CL_MAXUSAGE) > 0 ? " " : "", args[i].desc);
    }

    (void)fprintf(stderr, SIR_EOL);
}

// Assembly:
subq $0x58, %rsp
movq %rdi, 0x50(%rsp)
movq %rsi, 0x48(%rsp)
movq $0x0, 0x40(%rsp)
movq $0x0, 0x38(%rsp)
movq 0x38(%rsp), %rax
cmpq 0x48(%rsp), %rax
jae 0x4c24
movq 0x50(%rsp), %rax
imulq $0x18, 0x38(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rdi
movl $0x20, %esi
callq 0x4230
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
cmpq 0x40(%rsp), %rax
jbe 0x4c12
movq 0x30(%rsp), %rax
movq %rax, 0x40(%rsp)
jmp 0x4c14
movq 0x38(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x38(%rsp)
jmp 0x4bd0
movq 0x233cd(%rip), %rax     # 0x27ff8
movq (%rax), %rdi
leaq 0x185f6(%rip), %rsi     # 0x1d22b
movb $0x0, %al
callq 0x4300
movq $0x0, 0x28(%rsp)
movq 0x28(%rsp), %rax
cmpq 0x48(%rsp), %rax
jae 0x4d82
movq 0x2339c(%rip), %rax     # 0x27ff8
movq (%rax), %rdi
movq 0x50(%rsp), %rax
imulq $0x18, 0x28(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rdx
leaq 0x185d4(%rip), %rsi     # 0x1d24b
movb $0x0, %al
callq 0x4300
movq 0x50(%rsp), %rax
imulq $0x18, 0x28(%rsp), %rcx
addq %rcx, %rax
movq (%rax), %rdi
movl $0x20, %esi
callq 0x4230
movq %rax, 0x20(%rsp)
movq 0x20(%rsp), %rax
cmpq 0x40(%rsp), %rax
jae 0x4cea
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rsp)
movq 0x18(%rsp), %rax
cmpq 0x40(%rsp), %rax
jae 0x4ce8
movq 0x23331(%rip), %rax     # 0x27ff8
movq (%rax), %rdi
leaq 0x1d32c(%rip), %rsi     # 0x21ffd
movb $0x0, %al
callq 0x4300
movq 0x18(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x18(%rsp)
jmp 0x4cb4
jmp 0x4cea
movq 0x23307(%rip), %rax     # 0x27ff8
movq (%rax), %rax
movq %rax, 0x8(%rsp)
movq 0x50(%rsp), %rax
imulq $0x18, 0x28(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
movq 0x50(%rsp), %rax
imulq $0x18, 0x28(%rsp), %rcx
addq %rcx, %rax
movq 0x8(%rax), %rdi
movl $0x100, %esi            # imm = 0x100
callq 0x4230
movq 0x8(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq %rax, %rsi
leaq 0x18587(%rip), %rcx     # 0x1d2c7
leaq 0x1d2b6(%rip), %rax     # 0x21ffd
cmpq $0x0, %rsi
cmovaq %rax, %rcx
movq 0x50(%rsp), %rax
imulq $0x18, 0x28(%rsp), %rsi
addq %rsi, %rax
movq 0x10(%rax), %r8
leaq 0x184e8(%rip), %rsi     # 0x1d250
movb $0x0, %al
callq 0x4300
movq 0x28(%rsp), %rax
addq $0x1, %rax
movq %rax, 0x28(%rsp)
jmp 0x4c45
movq 0x2326f(%rip), %rax     # 0x27ff8
movq (%rax), %rdi
leaq 0x18533(%rip), %rsi     # 0x1d2c6
movb $0x0, %al
callq 0x4300
addq $0x58, %rsp
retq
nop