// File: /workspace/github_c_makefile_star2_O0/neosploit[P]compiler/libfort/lib/fort.c
// Function: print_n_strings
FT_INTERNAL
int print_n_strings(f_conv_context_t *cntx, size_t n, const char *str)
{
    int cod_w;
    int raw_written;

    switch (cntx->b_type) {
        case CHAR_BUF:
            raw_written = snprint_n_strings(cntx, n, str);
            cod_w = raw_written;
            return cod_w;
#ifdef FT_HAVE_WCHAR
        case W_CHAR_BUF:
            cod_w = wsnprint_n_string(cntx->u.wbuf, cntx->raw_avail, n, str);
            if (cod_w < 0)
                return cod_w;
            raw_written = sizeof(wchar_t) * cod_w;

            cntx->u.buf += raw_written;
            cntx->raw_avail -= raw_written;
            return cod_w;
#endif /* FT_HAVE_WCHAR */
#ifdef FT_HAVE_UTF8
        case UTF8_BUF:
            /* Everying is very strange and differs with W_CHAR_BUF */
            raw_written = u8nprint_n_strings(cntx->u.buf, cntx->raw_avail, n, str);
            if (raw_written < 0) {
                fprintf(stderr, " raw_written = %d\n", raw_written);
                return raw_written;
            }

            cntx->u.buf += raw_written;
            cntx->raw_avail -= raw_written;
            return utf8len(str) * n;
#endif /* FT_HAVE_UTF8 */
        default:
            assert(0);
            return -1;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x2c(%rbp)
testl %eax, %eax
je 0x1973f
jmp 0x19724
movl -0x2c(%rbp), %eax
subl $0x1, %eax
je 0x19764
jmp 0x1972e
movl -0x2c(%rbp), %eax
subl $0x2, %eax
je 0x197d0
jmp 0x19851
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x1c000
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x19870
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x1c070
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
jge 0x19794
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x19870
movslq -0x24(%rbp), %rax
shlq $0x2, %rax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, (%rax)
movslq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x8(%rax)
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x19870
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x1c2f0
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x28(%rbp)
jge 0x19818
movq 0x107f4(%rip), %rax     # 0x29ff0
movq (%rax), %rdi
movl -0x28(%rbp), %edx
leaq 0xa895(%rip), %rsi      # 0x2409e
movb $0x0, %al
callq 0x7170
movl -0x28(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x19870
movl -0x28(%rbp), %edx
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, (%rax)
movslq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
subq %rdx, %rcx
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rdi
callq 0x111f0
imulq -0x18(%rbp), %rax
movl %eax, -0x4(%rbp)
jmp 0x19870
leaq 0x9c26(%rip), %rdi      # 0x2347e
leaq 0x9337(%rip), %rsi      # 0x22b96
movl $0xfef, %edx            # imm = 0xFEF
leaq 0xa846(%rip), %rcx      # 0x240b1
callq 0x7120
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)