// File: /workspace/github_c_makefile_star2_O2/tylerneylon[P]APIsWithLua/lua/ldebug.c
// Function: lua_getinfo
LUA_API int lua_getinfo (lua_State *L, const char *what, lua_Debug *ar) {
  int status;
  Closure *cl;
  CallInfo *ci;
  StkId func;
  lua_lock(L);
  swapextra(L);
  if (*what == '>') {
    ci = NULL;
    func = L->top - 1;
    api_check(L, ttisfunction(func), "function expected");
    what++;  /* skip the '>' */
    L->top--;  /* pop function */
  }
  else {
    ci = ar->i_ci;
    func = ci->func;
    lua_assert(ttisfunction(ci->func));
  }
  cl = ttisclosure(func) ? clvalue(func) : NULL;
  status = auxgetinfo(L, what, ar, cl, ci);
  if (strchr(what, 'f')) {
    setobjs2s(L, L->top, func);
    api_incr_top(L);
  }
  swapextra(L);  /* correct before option 'L', which can raise a mem. error */
  if (strchr(what, 'L'))
    collectvalidlines(L, cl);
  lua_unlock(L);
  return status;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdx, %r15
movq %rsi, %rbp
movq %rdi, %rbx
callq 0x7402
cmpb $0x3e, (%rbp)
jne 0x7598
movq 0x10(%rbx), %rcx
addq $-0x10, %rcx
incq %rbp
movq %rcx, 0x10(%rbx)
xorl %r12d, %r12d
jmp 0x75a0
movq 0x78(%r15), %r12
movq (%r12), %rcx
movl 0x8(%rcx), %eax
andl $0x1f, %eax
cmpl $0x6, %eax
movq %rbx, 0x10(%rsp)
jne 0x75b5
movq (%rcx), %r14
jmp 0x75b8
xorl %r14d, %r14d
movq %rcx, 0x20(%rsp)
leaq 0x8(%r15), %rax
movq %rax, 0x18(%rsp)
leaq 0x38(%r15), %rax
movq %rax, 0x30(%rsp)
pushq $0x1
popq %rax
movl %eax, 0x4(%rsp)
leaq 0x17bff(%rip), %r13     # 0x1f1dc
movq %rbp, 0x8(%rsp)
movzbl (%rbp), %eax
leal -0x6c(%rax), %ecx
cmpl $0x9, %ecx
ja 0x7619
movslq (%r13,%rcx,4), %rax
addq %r13, %rax
jmpq *%rax
pushq $-0x1
popq %rax
testq %r12, %r12
je 0x7610
testb $0x2, 0x42(%r12)
je 0x7610
movq %r12, %rdi
callq 0x7c86
movl %eax, 0x28(%r15)
jmp 0x773f
cmpl $0x4c, %eax
je 0x773f
cmpl $0x53, %eax
je 0x76b9
cmpl $0x66, %eax
je 0x773f
testl %eax, %eax
je 0x7822
movl $0x0, 0x4(%rsp)
jmp 0x773f
testq %r12, %r12
je 0x7667
testb $0x20, 0x42(%r12)
jne 0x7667
movq 0x10(%r12), %rdi
movb 0x42(%rdi), %bl
testb $0x2, %bl
jne 0x7747
leaq 0x1a77a(%rip), %rax     # 0x21de8
movq %rax, 0x10(%r15)
andq $0x0, 0x8(%r15)
jmp 0x773f
testq %r14, %r14
je 0x76de
movb 0xa(%r14), %al
movb %al, 0x34(%r15)
cmpb $0x26, 0x8(%r14)
je 0x76e3
movq 0x18(%r14), %rax
movb 0xb(%rax), %al
movb %al, 0x36(%r15)
movq 0x18(%r14), %rax
movb 0xa(%rax), %al
movb %al, 0x35(%r15)
jmp 0x773f
testq %r12, %r12
je 0x76ec
movb 0x42(%r12), %al
andb $0x20, %al
jmp 0x76ee
testq %r14, %r14
je 0x76c5
cmpb $0x26, 0x8(%r14)
jne 0x76f4
leaq 0x17ca2(%rip), %rsi     # 0x1f36e
movq %rsi, 0x20(%r15)
orq $-0x1, 0x2c(%r15)
leaq 0x17c97(%rip), %rax     # 0x1f373
jmp 0x772e
movb $0x0, 0x34(%r15)
movw $0x100, 0x35(%r15)      # imm = 0x100
jmp 0x773f
xorl %eax, %eax
movb %al, 0x37(%r15)
jmp 0x773f
movq 0x18(%r14), %rax
movq 0x68(%rax), %rcx
leaq 0x18(%rcx), %rsi
testq %rcx, %rcx
leaq 0x17c6b(%rip), %rcx     # 0x1f375
cmoveq %rcx, %rsi
movq %rsi, 0x20(%r15)
movq 0x28(%rax), %rax
movq %rax, 0x2c(%r15)
testl %eax, %eax
leaq 0x17d9e(%rip), %rax     # 0x1f4c1
leaq 0x17c4e(%rip), %rcx     # 0x1f378
cmoveq %rcx, %rax
movq %rax, 0x18(%r15)
movq 0x30(%rsp), %rdi
pushq $0x3c
popq %rdx
callq 0xb617
incq %rbp
jmp 0x75e2
movq (%rdi), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq %rax, 0x28(%rsp)
callq 0x7de3
movq 0x28(%rsp), %r10
leaq 0x17c0f(%rip), %rdi     # 0x1f376
leaq 0x196ef(%rip), %r8      # 0x20e5d
testb $0x4, %bl
jne 0x7815
movq 0x38(%r10), %rcx
movslq %eax, %rdx
movl (%rcx,%rdx,4), %edx
movl %edx, %esi
andl $0x3f, %esi
xorl %ecx, %ecx
leal -0x8(%rsi), %edi
cmpl $0x21, %edi
ja 0x77f9
leaq 0x17a6d(%rip), %r8      # 0x1f204
movslq (%r8,%rdi,4), %r9
addq %r8, %r9
leaq 0x17bd8(%rip), %r8      # 0x1f37d
movq %r8, %rdi
jmpq *%r9
addl $-0x7, %esi
movq %rsi, %rcx
jmp 0x77f9
shrl $0x6, %edx
movzbl %dl, %edx
movq %r10, %rdi
movl %eax, %esi
movq 0x18(%rsp), %rcx
callq 0x7dfc
movq %rax, 0x10(%r15)
testq %rax, %rax
jne 0x773f
jmp 0x7667
pushq $0x1
jmp 0x77f8
pushq $0x14
jmp 0x77f8
pushq $0x13
jmp 0x77f8
pushq $0x16
jmp 0x77f8
pushq $0x15
jmp 0x77f8
pushq $0x5
jmp 0x77f8
pushq $0x12
jmp 0x77f8
pushq $0x4
popq %rcx
movq 0x10(%rsp), %rax
movq 0x18(%rax), %rax
movq 0xe0(%rax,%rcx,8), %rdi
addq $0x18, %rdi
leaq 0x17b75(%rip), %r8      # 0x1f38a
movq %rdi, 0x8(%r15)
movq %r8, 0x10(%r15)
jmp 0x773f
pushq $0x66
popq %rsi
movq 0x8(%rsp), %rdi
callq 0x5160
testq %rax, %rax
movq 0x10(%rsp), %rbp
je 0x784d
movq 0x10(%rbp), %rax
movq 0x20(%rsp), %rcx
movups (%rcx), %xmm0
movups %xmm0, (%rax)
addq $0x10, 0x10(%rbp)
movq %rbp, %rdi
callq 0x7402
pushq $0x4c
popq %rsi
movq 0x8(%rsp), %rdi
callq 0x5160
testq %rax, %rax
je 0x7883
testq %r14, %r14
je 0x7873
cmpb $0x26, 0x8(%r14)
jne 0x7896
movq 0x10(%rbp), %rax
andl $0x0, 0x8(%rax)
addq $0x10, %rax
movq %rax, 0x10(%rbp)
movl 0x4(%rsp), %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0x18(%r14), %rax
movq 0x48(%rax), %r12
movq %rbp, %rdi
callq 0xed08
movq %rax, %rbx
movq 0x10(%rbp), %rax
movq %rbx, (%rax)
movl $0x45, 0x8(%rax)
addq $0x10, 0x10(%rbp)
pushq $0x1
popq %rax
leaq 0x38(%rsp), %r15
movl %eax, (%r15)
movl %eax, 0x8(%r15)
xorl %r13d, %r13d
movq 0x18(%r14), %rax
movslq 0x1c(%rax), %rax
cmpq %rax, %r13
jge 0x7883
movslq (%r12,%r13,4), %rdx
movq %rbp, %rdi
movq %rbx, %rsi
movq %r15, %rcx
callq 0xec50
incq %r13
jmp 0x78ce