// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rdx, %r15
movq %rsi, -0x30(%rbp)
movq %rdi, %rbx
movl 0x18(%rdi), %eax
cmpl $0x2, %eax
je 0x13953
cmpl $0x1, %eax
je 0x1388c
testl %eax, %eax
jne 0x13a90
movq (%rbx), %r12
movq 0x8(%rbx), %r14
movq %r15, %rdi
callq 0x70d0
movq %rax, %rcx
movq %rax, %r13
movq -0x30(%rbp), %rdx
imulq %rdx, %r13
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %r14, %r13
jae 0x13a7e
testq %rdx, %rdx
je 0x139e4
cmpq $0x7fffffff, %r13       # imm = 0x7FFFFFFF
ja 0x13a7e
testq %rcx, %rcx
je 0x139e4
leaq 0x74f8(%rip), %rdx      # 0x1ad31
movq %r12, %rdi
movq %r14, %rsi
movl %r13d, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x7110
testl %eax, %eax
js 0x13a7e
leaq 0x1(%r15), %rax
xorl %ecx, %ecx
movq -0x30(%rbp), %rdi
movb (%r15), %dl
testb %dl, %dl
je 0x13878
movq %rax, %rsi
movb %dl, (%r12)
incq %r12
movb (%rsi), %dl
incq %rsi
testb %dl, %dl
jne 0x13868
incq %rcx
cmpq %rdi, %rcx
jne 0x1385e
movq (%rbx), %r12
movq 0x8(%rbx), %r14
jmp 0x139e7
movq (%rbx), %r12
movq 0x8(%rbx), %r14
movq %r15, %rdi
callq 0x70d0
movq -0x30(%rbp), %rsi
movq %rax, %rcx
cmpq $0x2, %rax
jb 0x138c4
movb (%r15), %al
testb %al, %al
je 0x138c4
leaq 0x1(%r15), %rdx
testb %al, %al
js 0x139f1
movb (%rdx), %al
incq %rdx
testb %al, %al
jne 0x138b3
movq %rcx, %r13
imulq %rsi, %r13
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
cmpq %r14, %r13
jae 0x13a7e
testq %rsi, %rsi
je 0x139ec
cmpq $0x7fffffff, %r13       # imm = 0x7FFFFFFF
ja 0x13a7e
testq %rcx, %rcx
je 0x139ec
leaq 0x7981(%rip), %rdx      # 0x1b280
movq %r12, %rdi
movq %r14, %rsi
movl %r13d, %ecx
xorl %r8d, %r8d
xorl %eax, %eax
callq 0x7190
testl %eax, %eax
js 0x13a7e
leaq 0x1(%r15), %rax
xorl %ecx, %ecx
movq -0x30(%rbp), %rdi
movb (%r15), %sil
testb %sil, %sil
je 0x13946
movq %rax, %rdx
movsbl %sil, %esi
movl %esi, (%r12)
addq $0x4, %r12
movb (%rdx), %sil
incq %rdx
testb %sil, %sil
jne 0x1392f
incq %rcx
cmpq %rdi, %rcx
jne 0x13924
jmp 0x13a4c
movq (%rbx), %r12
movq %rbx, -0x38(%rbp)
movq 0x8(%rbx), %rbx
movq %r15, %rdi
callq 0xdaed
movq -0x30(%rbp), %rcx
movq %rax, %r14
decq %r14
movq %r14, %r13
imulq %rcx, %r13
cmpq %rbx, %r13
jae 0x13a74
testq %rcx, %rcx
je 0x139c2
cmpq $0x7fffffff, %r13       # imm = 0x7FFFFFFF
ja 0x13a74
testq %r14, %r14
je 0x139c2
movq %rcx, %rbx
movq %r12, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x71e0
addq %r14, %r12
decq %rbx
jne 0x1399a
movb $0x0, (%r12)
movq -0x38(%rbp), %rax
movq (%rax), %r12
movq 0x8(%rax), %rbx
jmp 0x139c6
movq -0x38(%rbp), %rax
addq %r13, %r12
movq %r12, (%rax)
subq %r13, %rbx
movq %rbx, 0x8(%rax)
movq %r15, %rdi
callq 0xdaff
imull -0x30(%rbp), %eax
jmp 0x13a7e
xorl %r13d, %r13d
movl %r13d, %eax
jmp 0x13a62
xorl %r13d, %r13d
jmp 0x13a58
leaq -0x48(%rbp), %rsi
movq %r15, (%rsi)
leaq -0x40(%rbp), %rcx
movq $0x0, (%rcx)
leaq -0x150(%rbp), %rdi
movl $0x40, %edx
callq 0x71d0
cmpq $0x2, %rax
jae 0x13a79
movl $0x0, -0x150(%rbp,%rax,4)
movq -0x30(%rbp), %r13
testq %r13, %r13
je 0x13a44
movl -0x150(%rbp), %eax
movq %r13, %rcx
movl %eax, (%r12)
addq $0x4, %r12
decq %rcx
jne 0x13a37
movl $0x0, (%r12,%r13,4)
testl %r13d, %r13d
js 0x13a6f
movq (%rbx), %r12
movq 0x8(%rbx), %r14
leal (,%r13,4), %eax
cltq
addq %rax, %r12
movq %r12, (%rbx)
subq %rax, %r14
movq %r14, 0x8(%rbx)
movl %r13d, %eax
jmp 0x13a7e
callq 0x72d0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x68a3(%rip), %rdi      # 0x1a33a
leaq 0x5fd8(%rip), %rsi      # 0x19a76
leaq 0x724e(%rip), %rcx      # 0x1acf3
movl $0xfef, %edx            # imm = 0xFEF
callq 0x7120