// File: /workspace/github_c_makefile_star2_O0/neovim[P]libvterm/src/vterm.c
// Function: vterm_push_output_sprintf_str
INTERNAL void vterm_push_output_sprintf_str(VTerm *vt, unsigned char ctrl, bool term, const char *fmt, ...)
{
  size_t cur = 0;

  if(ctrl) {
    if(ctrl >= 0x80 && !vt->mode.ctrl8bit)
      cur = snprintf(vt->tmpbuffer, vt->tmpbuffer_len,
          ESC_S "%c", ctrl - 0x40);
    else
      cur = snprintf(vt->tmpbuffer, vt->tmpbuffer_len,
          "%c", ctrl);

    if(cur >= vt->tmpbuffer_len)
      return;
  }

  va_list args;
  va_start(args, fmt);
  cur += vsnprintf(vt->tmpbuffer + cur, vt->tmpbuffer_len - cur,
      fmt, args);
  va_end(args);

  if(cur >= vt->tmpbuffer_len)
    return;

  if(term) {
    cur += snprintf(vt->tmpbuffer + cur, vt->tmpbuffer_len - cur,
        vt->mode.ctrl8bit ? "\x9C" : ESC_S "\\"); // ST

    if(cur >= vt->tmpbuffer_len)
      return;
  }

  vterm_push_output_bytes(vt, vt->tmpbuffer, cur);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
testb %al, %al
je 0x11fcb
movaps %xmm0, -0xc0(%rbp)
movaps %xmm1, -0xb0(%rbp)
movaps %xmm2, -0xa0(%rbp)
movaps %xmm3, -0x90(%rbp)
movaps %xmm4, -0x80(%rbp)
movaps %xmm5, -0x70(%rbp)
movaps %xmm6, -0x60(%rbp)
movaps %xmm7, -0x50(%rbp)
movq %r9, -0xc8(%rbp)
movq %r8, -0xd0(%rbp)
movb %dl, %al
movb %sil, %dl
movq %rdi, -0x8(%rbp)
movb %dl, -0x9(%rbp)
andb $0x1, %al
movb %al, -0xa(%rbp)
movq %rcx, -0x18(%rbp)
movq $0x0, -0x20(%rbp)
cmpb $0x0, -0x9(%rbp)
je 0x12097
movzbl -0x9(%rbp), %eax
cmpl $0x80, %eax
jl 0x12051
movq -0x8(%rbp), %rax
movb 0x18(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x12051
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rsi
movzbl -0x9(%rbp), %ecx
subl $0x40, %ecx
leaq 0x115d(%rip), %rdx      # 0x1319f
movb $0x0, %al
callq 0x20f0
cltq
movq %rax, -0x20(%rbp)
jmp 0x1207f
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rsi
movzbl -0x9(%rbp), %ecx
leaq 0x112e(%rip), %rdx      # 0x131a0
movb $0x0, %al
callq 0x20f0
cltq
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x120(%rcx), %rax
jb 0x12095
jmp 0x1218f
jmp 0x12097
leaq -0x40(%rbp), %rax
leaq -0xf0(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq 0x10(%rbp), %rcx
movq %rcx, 0x8(%rax)
movl $0x30, 0x4(%rax)
movl $0x20, (%rax)
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rdi
addq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rsi
subq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x40(%rbp), %rcx
callq 0x2090
cltq
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq -0x40(%rbp), %rax
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x120(%rcx), %rax
jb 0x1210a
jmp 0x1218f
testb $0x1, -0xa(%rbp)
je 0x12177
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rdi
addq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rsi
subq -0x20(%rbp), %rsi
movq -0x8(%rbp), %rax
movb 0x18(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %ecx
leaq 0x17de(%rip), %rdx      # 0x13921
leaq 0x17d4(%rip), %rax      # 0x1391e
cmpl $0x0, %ecx
cmovneq %rax, %rdx
movb $0x0, %al
callq 0x20f0
cltq
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x120(%rcx), %rax
jb 0x12175
jmp 0x1218f
jmp 0x12177
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x118(%rax), %rsi
movq -0x20(%rbp), %rdx
callq 0x11c50
addq $0xf0, %rsp
popq %rbp
retq
nopl (%rax,%rax)