// File: /workspace/github_c_makefile_star2_O1/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
cmpb $0x1, 0xc(%rdi)
jne 0x785d
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, (%rsi)
jne 0x7876
movq 0x10(%rdi), %rcx
addq $-0x10, %rcx
incq %rsi
movq %rcx, 0x10(%rdi)
xorl %r14d, %r14d
jmp 0x787d
movq 0x78(%r15), %r14
movq (%r14), %rcx
movl 0x8(%rcx), %eax
andl $0x1f, %eax
cmpl $0x6, %eax
movq %rdi, 0x18(%rsp)
movq %rsi, 0x10(%rsp)
movq %rcx, 0x20(%rsp)
jne 0x789c
movq (%rcx), %r12
jmp 0x789f
xorl %r12d, %r12d
leaq 0x8(%r15), %rax
movq %rax, 0x8(%rsp)
leaq 0x38(%r15), %r13
movl $0x1, 0x4(%rsp)
leaq 0x19911(%rip), %rbx     # 0x211cc
movq 0x10(%rsp), %rbp
movzbl (%rbp), %eax
cmpl $0x65, %eax
jle 0x792b
leal -0x6c(%rax), %ecx
cmpl $0x9, %ecx
ja 0x796d
movslq (%rbx,%rcx,4), %rax
addq %rbx, %rax
jmpq *%rax
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
testq %r14, %r14
je 0x7922
testb $0x2, 0x42(%r14)
je 0x7922
movq (%r14), %rcx
movq (%rcx), %rcx
movq 0x18(%rcx), %rdx
movq 0x48(%rdx), %rcx
testq %rcx, %rcx
je 0x7922
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 0x7a88
cmpl $0x4c, %eax
je 0x7a88
cmpl $0x53, %eax
jne 0x7a0a
testq %r12, %r12
je 0x794e
cmpb $0x26, 0x8(%r12)
jne 0x7a1c
leaq 0x19a09(%rip), %rax     # 0x2135e
movq %rax, 0x20(%r15)
movq $-0x1, 0x2c(%r15)
leaq 0x199fb(%rip), %rax     # 0x21363
jmp 0x7a5d
cmpl $0x66, %eax
je 0x7a88
jmp 0x7a12
testq %r14, %r14
je 0x7997
testb $0x20, 0x42(%r14)
jne 0x7997
movq 0x10(%r14), %rax
movb 0x42(%rax), %cl
testb $0x2, %cl
jne 0x7a90
xorl %eax, %eax
movq %rax, 0x10(%r15)
testq %rax, %rax
jne 0x7a88
leaq 0x1c31b(%rip), %rax     # 0x23cc8
movq %rax, 0x10(%r15)
movq $0x0, 0x8(%r15)
jmp 0x7a88
testq %r14, %r14
je 0x7a74
movb 0x42(%r14), %al
andb $0x20, %al
jmp 0x7a76
testq %r12, %r12
je 0x7a7c
movb 0xa(%r12), %al
movb %al, 0x34(%r15)
cmpb $0x26, 0x8(%r12)
je 0x7a81
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 0x7a88
testl %eax, %eax
je 0x7b93
movl $0x0, 0x4(%rsp)
jmp 0x7a88
movq 0x18(%r12), %rax
movq 0x68(%rax), %rcx
leaq 0x18(%rcx), %rdx
testq %rcx, %rcx
leaq 0x19932(%rip), %rcx     # 0x21365
cmoveq %rcx, %rdx
movq %rdx, 0x20(%r15)
movl 0x28(%rax), %ecx
movl %ecx, 0x2c(%r15)
movl 0x2c(%rax), %eax
movl %eax, 0x30(%r15)
testl %ecx, %ecx
leaq 0x19a50(%rip), %rax     # 0x214a2
leaq 0x1990f(%rip), %rcx     # 0x21368
cmoveq %rcx, %rax
movq %rax, 0x18(%r15)
movq 0x20(%r15), %rsi
movl $0x3c, %edx
movq %r13, %rdi
callq 0xbf88
jmp 0x7a88
xorl %eax, %eax
movb %al, 0x37(%r15)
jmp 0x7a88
movb $0x0, 0x34(%r15)
movw $0x100, 0x35(%r15)      # imm = 0x100
incq %rbp
jmp 0x78c0
testb $0x4, %cl
jne 0x7b06
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 0x7add
leaq 0x19727(%rip), %r9      # 0x211f4
movslq (%r9,%r8,4), %r8
addq %r9, %r8
jmpq *%r8
addl $-0x7, %edx
movq %rdx, %rax
movq 0x18(%rsp), %rcx
movq 0x18(%rcx), %rcx
movq 0xe0(%rcx,%rax,8), %rax
addq $0x18, %rax
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
leaq 0x19879(%rip), %rax     # 0x2137a
jmp 0x7999
movq 0x8(%rsp), %rax
leaq 0x19854(%rip), %rcx     # 0x21366
movq %rcx, (%rax)
leaq 0x1b221(%rip), %rax     # 0x22d3d
jmp 0x7999
decl %esi
shrl $0x6, %ecx
movzbl %cl, %edx
movq 0x8(%rsp), %rcx
callq 0x81a8
jmp 0x7999
movl $0x1, %eax
jmp 0x7add
movl $0x15, %eax
jmp 0x7add
movl $0x4, %eax
jmp 0x7add
movl $0x5, %eax
jmp 0x7add
movq 0x8(%rsp), %rax
leaq 0x1980d(%rip), %rcx     # 0x2136d
movq %rcx, (%rax)
movq %rcx, %rax
jmp 0x7999
movl $0x14, %eax
jmp 0x7add
movl $0x12, %eax
jmp 0x7add
movl $0x13, %eax
jmp 0x7add
movl $0x16, %eax
jmp 0x7add
movq 0x10(%rsp), %rbx
movq %rbx, %rdi
movl $0x66, %esi
callq 0x5170
testq %rax, %rax
movq 0x18(%rsp), %rbp
je 0x7bc3
movq 0x10(%rbp), %rax
movq 0x20(%rsp), %rcx
movups (%rcx), %xmm0
movups %xmm0, (%rax)
addq $0x10, 0x10(%rbp)
cmpb $0x1, 0xc(%rbp)
jne 0x7be5
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 0x5170
testq %rax, %rax
je 0x7c87
testq %r12, %r12
je 0x7c08
cmpb $0x26, 0x8(%r12)
jne 0x7c1d
movq 0x10(%rbp), %rax
movl $0x0, 0x8(%rax)
addq $0x10, %rax
movq %rax, 0x10(%rbp)
jmp 0x7c87
movq 0x18(%r12), %rax
movq 0x48(%rax), %rbx
movq %rbp, %rdi
callq 0xfa85
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 0x7c87
xorl %r13d, %r13d
leaq 0x28(%rsp), %r15
movslq (%rbx,%r13,4), %rdx
movq %rbp, %rdi
movq %r14, %rsi
movq %r15, %rcx
callq 0xf9cb
incq %r13
movq 0x18(%r12), %rax
movslq 0x1c(%rax), %rax
cmpq %rax, %r13
jl 0x7c64
movl 0x4(%rsp), %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq