// File: /workspace/github_c_makefile_star2_O0/gplessis[P]dotdeb-redis/deps/lua/src/lobject.c
// Function: luaO_pushvfstring
const char *luaO_pushvfstring (lua_State *L, const char *fmt, va_list argp) {
  int n = 1;
  pushstr(L, "");
  for (;;) {
    const char *e = strchr(fmt, '%');
    if (e == NULL) break;
    setsvalue2s(L, L->top, luaS_newlstr(L, fmt, e-fmt));
    incr_top(L);
    switch (*(e+1)) {
      case 's': {
        const char *s = va_arg(argp, char *);
        if (s == NULL) s = "(null)";
        pushstr(L, s);
        break;
      }
      case 'c': {
        char buff[2];
        buff[0] = cast(char, va_arg(argp, int));
        buff[1] = '\0';
        pushstr(L, buff);
        break;
      }
      case 'd': {
        setnvalue(L->top, cast_num(va_arg(argp, int)));
        incr_top(L);
        break;
      }
      case 'f': {
        setnvalue(L->top, cast_num(va_arg(argp, l_uacNumber)));
        incr_top(L);
        break;
      }
      case 'p': {
        char buff[4*sizeof(void *) + 8]; /* should be enough space for a `%p' */
        sprintf(buff, "%p", va_arg(argp, void *));
        pushstr(L, buff);
        break;
      }
      case '%': {
        pushstr(L, "%");
        break;
      }
      default: {
        char buff[3];
        buff[0] = '%';
        buff[1] = *(e+1);
        buff[2] = '\0';
        pushstr(L, buff);
        break;
      }
    }
    n += 2;
    fmt = e+2;
  }
  pushstr(L, fmt);
  luaV_concat(L, n+1, cast_int(L->top - L->base) - 1);
  L->top -= n;
  return svalue(L->top - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x1dafd(%rip), %rsi     # 0x2d316
callq 0xfd10
movq -0x10(%rbp), %rdi
movl $0x25, %esi
callq 0x5170
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0xf83c
jmp 0xfca1
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x10(%rbp), %rax
subq %rax, %rdx
callq 0x140d0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
movl $0x4, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq %rcx, %rax
cmpq $0x10, %rax
jg 0xf89e
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0xb380
jmp 0xf8a0
jmp 0xf8a0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x10, %rcx
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
movsbl 0x1(%rax), %eax
movl %eax, -0x88(%rbp)
subl $0x25, %eax
je 0xfc4a
jmp 0xf8c9
movl -0x88(%rbp), %eax
subl $0x63, %eax
je 0xf9a7
jmp 0xf8da
movl -0x88(%rbp), %eax
subl $0x64, %eax
je 0xfa20
jmp 0xf8eb
movl -0x88(%rbp), %eax
subl $0x66, %eax
je 0xfae1
jmp 0xf8fc
movl -0x88(%rbp), %eax
subl $0x70, %eax
je 0xfbba
jmp 0xf90d
movl -0x88(%rbp), %eax
subl $0x73, %eax
jne 0xfc5c
jmp 0xf91e
movq -0x18(%rbp), %rax
movq %rax, -0x98(%rbp)
movl (%rax), %eax
movl %eax, -0x8c(%rbp)
cmpl $0x28, %eax
ja 0xf958
movq -0x98(%rbp), %rcx
movl -0x8c(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0xa0(%rbp)
jmp 0xf975
movq -0x98(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0xf995
leaq 0x1be9f(%rip), %rax     # 0x2b830
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xfd10
jmp 0xfc87
movq -0x18(%rbp), %rax
movq %rax, -0xb0(%rbp)
movl (%rax), %eax
movl %eax, -0xa4(%rbp)
cmpl $0x28, %eax
ja 0xf9e1
movq -0xb0(%rbp), %rcx
movl -0xa4(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0xb8(%rbp)
jmp 0xf9fe
movq -0xb0(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movl (%rax), %eax
movb %al, -0x3a(%rbp)
movb $0x0, -0x39(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x3a(%rbp), %rsi
callq 0xfd10
jmp 0xfc87
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl (%rax), %eax
movl %eax, -0xbc(%rbp)
cmpl $0x28, %eax
ja 0xfa66
movq -0xc8(%rbp), %rcx
movl -0xbc(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0xd0(%rbp)
jmp 0xfa83
movq -0xc8(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
cvtsi2sdl (%rax), %xmm0
movq -0x48(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x48(%rbp), %rax
movl $0x3, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq %rcx, %rax
cmpq $0x10, %rax
jg 0xfaca
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0xb380
jmp 0xfacc
jmp 0xfacc
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x10, %rcx
movq %rcx, 0x10(%rax)
jmp 0xfc87
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq %rax, %rcx
addq $0x4, %rcx
movq %rcx, -0xe0(%rbp)
movl 0x4(%rax), %eax
movl %eax, -0xd4(%rbp)
cmpl $0xa0, %eax
ja 0xfb3f
movq -0xe0(%rbp), %rcx
movl -0xd4(%rbp), %edx
movq -0xe8(%rbp), %rsi
movslq %edx, %rax
addq 0x10(%rsi), %rax
addl $0x10, %edx
movl %edx, (%rcx)
movq %rax, -0xf0(%rbp)
jmp 0xfb5c
movq -0xe8(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movsd (%rax), %xmm0
movq -0x50(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x50(%rbp), %rax
movl $0x3, 0x8(%rax)
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
subq %rcx, %rax
cmpq $0x10, %rax
jg 0xfba3
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0xb380
jmp 0xfba5
jmp 0xfba5
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
addq $0x10, %rcx
movq %rcx, 0x10(%rax)
jmp 0xfc87
leaq -0x80(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x100(%rbp)
movl (%rax), %eax
movl %eax, -0xf4(%rbp)
cmpl $0x28, %eax
ja 0xfbff
movq -0x100(%rbp), %rcx
movl -0xf4(%rbp), %edx
movslq %edx, %rax
addq 0x10(%rcx), %rax
addl $0x8, %edx
movl %edx, (%rcx)
movq %rax, -0x110(%rbp)
jmp 0xfc1c
movq -0x100(%rbp), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x8, %rdx
movq %rdx, 0x8(%rcx)
movq %rax, -0x110(%rbp)
movq -0x108(%rbp), %rdi
movq -0x110(%rbp), %rax
movq (%rax), %rdx
leaq 0x1c9d5(%rip), %rsi     # 0x2c609
movb $0x0, %al
callq 0x54c0
movq -0x8(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0xfd10
jmp 0xfc87
movq -0x8(%rbp), %rdi
leaq 0x1bbe2(%rip), %rsi     # 0x2b837
callq 0xfd10
jmp 0xfc87
movb $0x25, -0x83(%rbp)
movq -0x28(%rbp), %rax
movb 0x1(%rax), %al
movb %al, -0x82(%rbp)
movb $0x0, -0x81(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x83(%rbp), %rsi
callq 0xfd10
movl -0x1c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x1c(%rbp)
movq -0x28(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0xf81e
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfd10
movq -0x8(%rbp), %rdi
movl -0x1c(%rbp), %esi
addl $0x1, %esi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x18(%rcx), %rcx
subq %rcx, %rax
sarq $0x4, %rax
movl %eax, %edx
subl $0x1, %edx
callq 0x17480
movl -0x1c(%rbp), %edx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movslq %edx, %rsi
xorl %edx, %edx
subq %rsi, %rdx
shlq $0x4, %rdx
addq %rdx, %rcx
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x10(%rax), %rax
addq $0x18, %rax
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq