// File: /workspace/github_c_makefile_star2_O3/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 $0x38, %rsp
movq %rdx, %r15
movq %rsi, %rbx
cmpb $0x1, 0xc(%rdi)
jne 0x798c
movq 0x20(%rdi), %rax
movq 0x38(%rdi), %rcx
movq (%rax), %rdx
movq 0x38(%rax), %r8
addq %rcx, %r8
movq %r8, (%rax)
subq %rcx, %rdx
movq %rdx, 0x38(%rax)
cmpb $0x3e, (%rbx)
jne 0x79a5
movq 0x10(%rdi), %rcx
addq $-0x10, %rcx
incq %rbx
movq %rcx, 0x10(%rdi)
xorl %r14d, %r14d
jmp 0x79ac
movq 0x78(%r15), %r14
movq (%r14), %rcx
movl 0x8(%rcx), %eax
andl $0x1f, %eax
cmpl $0x6, %eax
movq %rdi, 0x8(%rsp)
movq %rcx, 0x18(%rsp)
jne 0x79c6
movq (%rcx), %r12
jmp 0x79c9
xorl %r12d, %r12d
leaq 0x8(%r15), %rax
movq %rax, 0x10(%rsp)
leaq 0x38(%r15), %r13
movl $0x1, 0x4(%rsp)
leaq 0x1a817(%rip), %rbp     # 0x221fc
movq %rbx, 0x20(%rsp)
movzbl (%rbx), %eax
cmpl $0x65, %eax
jle 0x7a55
leal -0x6c(%rax), %ecx
cmpl $0x9, %ecx
ja 0x7a97
movslq (%rbp,%rcx,4), %rax
addq %rbp, %rax
jmpq *%rax
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0x7a4c
testb $0x2, 0x42(%r14)
je 0x7a4c
movq (%r14), %rcx
movq (%rcx), %rcx
movq 0x18(%rcx), %rdx
movq 0x48(%rdx), %rcx
testq %rcx, %rcx
je 0x7a4c
movq 0x28(%r14), %rax
subq 0x38(%rdx), %rax
shlq $0x1e, %rax
movabsq $-0x100000000, %rdx     # imm = 0xFFFFFFFF00000000
addq %rdx, %rax
sarq $0x20, %rax
movl (%rcx,%rax,4), %eax
movl %eax, 0x28(%r15)
jmp 0x7b99
cmpl $0x4c, %eax
je 0x7b99
cmpl $0x53, %eax
jne 0x7b25
testq %r12, %r12
je 0x7a78
cmpb $0x26, 0x8(%r12)
jne 0x7b37
leaq 0x1a90b(%rip), %rsi     # 0x2238a
movq %rsi, 0x20(%r15)
movq $-0x1, 0x2c(%r15)
leaq 0x1a8fd(%rip), %rax     # 0x2238f
jmp 0x7b72
cmpl $0x66, %eax
je 0x7b99
jmp 0x7b2d
testq %r14, %r14
je 0x7ac1
testb $0x20, 0x42(%r14)
jne 0x7ac1
movq 0x10(%r14), %rax
movb 0x42(%rax), %cl
testb $0x2, %cl
jne 0x7ba1
leaq 0x1d2c0(%rip), %rax     # 0x24d88
movq %rax, 0x10(%r15)
movq $0x0, 0x8(%r15)
jmp 0x7b99
testq %r14, %r14
je 0x7b85
movb 0x42(%r14), %al
andb $0x20, %al
jmp 0x7b87
testq %r12, %r12
je 0x7b8d
movb 0xa(%r12), %al
movb %al, 0x34(%r15)
cmpb $0x26, 0x8(%r12)
je 0x7b92
movq 0x18(%r12), %rax
movb 0xb(%rax), %al
movb %al, 0x36(%r15)
movq 0x18(%r12), %rax
movb 0xa(%rax), %al
movb %al, 0x35(%r15)
jmp 0x7b99
testl %eax, %eax
je 0x7c8e
movl $0x0, 0x4(%rsp)
jmp 0x7b99
movq 0x18(%r12), %rax
movq 0x68(%rax), %rcx
leaq 0x18(%rcx), %rsi
testq %rcx, %rcx
leaq 0x1a843(%rip), %rcx     # 0x22391
cmoveq %rcx, %rsi
movq %rsi, 0x20(%r15)
movq 0x28(%rax), %rax
movq %rax, 0x2c(%r15)
testl %eax, %eax
leaq 0x1a967(%rip), %rax     # 0x224ce
leaq 0x1a826(%rip), %rcx     # 0x22394
cmoveq %rcx, %rax
movq %rax, 0x18(%r15)
movl $0x3c, %edx
movq %r13, %rdi
callq 0xc415
jmp 0x7b99
xorl %eax, %eax
movb %al, 0x37(%r15)
jmp 0x7b99
movb $0x0, 0x34(%r15)
movw $0x100, 0x35(%r15)      # imm = 0x100
incq %rbx
jmp 0x79ea
leaq 0x1a7ea(%rip), %r8      # 0x22392
leaq 0x1c21e(%rip), %r9      # 0x23dcd
testb $0x4, %cl
jne 0x7c22
movq (%rax), %rcx
movq 0x28(%rax), %rsi
movq (%rcx), %rax
movq 0x18(%rax), %rdi
movq 0x38(%rdi), %rax
subq %rax, %rsi
shrq $0x2, %rsi
movslq %esi, %rcx
movl -0x4(%rax,%rcx,4), %ecx
movl %ecx, %edx
andl $0x3f, %edx
xorl %eax, %eax
leal -0x8(%rdx), %r8d
cmpl $0x21, %r8d
ja 0x7c06
leaq 0x1a638(%rip), %r9      # 0x22224
movslq (%r9,%r8,4), %r10
addq %r9, %r10
leaq 0x1a79f(%rip), %r9      # 0x22399
movq %r9, %r8
jmpq *%r10
addl $-0x7, %edx
movq %rdx, %rax
movq 0x8(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0xe0(%rcx,%rax,8), %r8
addq $0x18, %r8
leaq 0x1a784(%rip), %r9      # 0x223a6
movq %r8, 0x8(%r15)
movq %r9, 0x10(%r15)
jmp 0x7b99
decl %esi
shrl $0x6, %ecx
movzbl %cl, %edx
movq 0x10(%rsp), %rcx
callq 0x829d
movq %rax, 0x10(%r15)
testq %rax, %rax
jne 0x7b99
jmp 0x7ac1
movl $0x1, %eax
jmp 0x7c06
movl $0x14, %eax
jmp 0x7c06
movl $0x13, %eax
jmp 0x7c06
movl $0x16, %eax
jmp 0x7c06
movl $0x15, %eax
jmp 0x7c06
movl $0x5, %eax
jmp 0x7c06
movl $0x12, %eax
jmp 0x7c06
movl $0x4, %eax
jmp 0x7c06
movq 0x20(%rsp), %rbx
movq %rbx, %rdi
movl $0x66, %esi
callq 0x5160
testq %rax, %rax
movq 0x8(%rsp), %rbp
je 0x7cbe
movq 0x10(%rbp), %rax
movq 0x18(%rsp), %rcx
movups (%rcx), %xmm0
movups %xmm0, (%rax)
addq $0x10, 0x10(%rbp)
cmpb $0x1, 0xc(%rbp)
jne 0x7ce0
movq 0x20(%rbp), %rax
movq 0x38(%rbp), %rcx
movq (%rax), %rdx
movq 0x38(%rax), %rsi
addq %rcx, %rsi
movq %rsi, (%rax)
subq %rcx, %rdx
movq %rdx, 0x38(%rax)
movq %rbx, %rdi
movl $0x4c, %esi
callq 0x5160
testq %rax, %rax
je 0x7d82
testq %r12, %r12
je 0x7d03
cmpb $0x26, 0x8(%r12)
jne 0x7d18
movq 0x10(%rbp), %rax
movl $0x0, 0x8(%rax)
addq $0x10, %rax
movq %rax, 0x10(%rbp)
jmp 0x7d82
movq 0x18(%r12), %rax
movq 0x48(%rax), %rbx
movq %rbp, %rdi
callq 0x100ba
movq %rax, %r14
movq 0x10(%rbp), %rax
movq %r14, (%rax)
movl $0x45, 0x8(%rax)
addq $0x10, 0x10(%rbp)
movl $0x1, %eax
movl %eax, 0x28(%rsp)
movl %eax, 0x30(%rsp)
movq 0x18(%r12), %rax
cmpl $0x0, 0x1c(%rax)
jle 0x7d82
xorl %r13d, %r13d
leaq 0x28(%rsp), %r15
movslq (%rbx,%r13,4), %rdx
movq %rbp, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0x10000
incq %r13
movq 0x18(%r12), %rax
movslq 0x1c(%rax), %rax
cmpq %rax, %r13
jl 0x7d5f
movl 0x4(%rsp), %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq