// File: /workspace/github_c_makefile_star2_O0/juliuswwj[P]emch55x/ch55x.c
// Function: cffi_f_load_obj
static PyObject *
_cffi_f_load_obj(PyObject *self, PyObject *args)
{
  struct em8051 * x0;
  char * x1;
  Py_ssize_t datasize;
  struct _cffi_freeme_s *large_args_free = NULL;
  int result;
  PyObject *pyresult;
  PyObject *arg0;
  PyObject *arg1;

  if (!PyArg_UnpackTuple(args, "load_obj", 2, 2, &arg0, &arg1))
    return NULL;

  datasize = _cffi_prepare_pointer_call_argument(
      _cffi_type(1), arg0, (char **)&x0);
  if (datasize != 0) {
    x0 = ((size_t)datasize) <= 640 ? (struct em8051 *)alloca((size_t)datasize) : NULL;
    if (_cffi_convert_array_argument(_cffi_type(1), arg0, (char **)&x0,
            datasize, &large_args_free) < 0)
      return NULL;
  }

  datasize = _cffi_prepare_pointer_call_argument(
      _cffi_type(5), arg1, (char **)&x1);
  if (datasize != 0) {
    x1 = ((size_t)datasize) <= 640 ? (char *)alloca((size_t)datasize) : NULL;
    if (_cffi_convert_array_argument(_cffi_type(5), arg1, (char **)&x1,
            datasize, &large_args_free) < 0)
      return NULL;
  }

  Py_BEGIN_ALLOW_THREADS
  _cffi_restore_errno();
  { result = load_obj(x0, x1); }
  _cffi_save_errno();
  Py_END_ALLOW_THREADS

  (void)self; /* unused */
  pyresult = _cffi_from_c_int(result, int);
  if (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);
  return pyresult;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %fs:0x28, %rax
movq %rax, -0x8(%rbp)
movq %rdi, -0x40(%rbp)
movq %rsi, -0x48(%rbp)
movq $0x0, -0x20(%rbp)
movq -0x48(%rbp), %rdi
leaq 0xc9b3(%rip), %rsi      # 0x12766
movl $0x2, %ecx
leaq -0x28(%rbp), %r8
leaq -0x30(%rbp), %r9
movq %rcx, %rdx
movb $0x0, %al
callq 0x4110
cmpl $0x0, %eax
jne 0x5ddc
movq $0x0, -0x38(%rbp)
jmp 0x5f3c
movq 0x155e5(%rip), %rax     # 0x1b3c8
movq 0x152ee(%rip), %rdi     # 0x1b0d8
movq -0x28(%rbp), %rsi
leaq -0x10(%rbp), %rdx
callq *%rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x5e64
cmpq $0x280, -0x50(%rbp)     # imm = 0x280
ja 0x5e24
movq -0x50(%rbp), %rcx
addq $0xf, %rcx
andq $-0x10, %rcx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x70(%rbp)
jmp 0x5e2c
xorl %eax, %eax
movq %rax, -0x70(%rbp)
jmp 0x5e2c
movq -0x70(%rbp), %rax
movq %rax, -0x10(%rbp)
movq 0x1529d(%rip), %rdi     # 0x1b0d8
movq -0x28(%rbp), %rsi
movq -0x50(%rbp), %rcx
leaq -0x10(%rbp), %rdx
leaq -0x20(%rbp), %r8
callq 0x6470
cmpl $0x0, %eax
jge 0x5e62
movq $0x0, -0x38(%rbp)
jmp 0x5f3c
jmp 0x5e64
movq 0x1555d(%rip), %rax     # 0x1b3c8
movq 0x15286(%rip), %rdi     # 0x1b0f8
movq -0x30(%rbp), %rsi
leaq -0x18(%rbp), %rdx
callq *%rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x5ee9
cmpq $0x280, -0x50(%rbp)     # imm = 0x280
ja 0x5eac
movq -0x50(%rbp), %rcx
addq $0xf, %rcx
andq $-0x10, %rcx
movq %rsp, %rax
subq %rcx, %rax
movq %rax, %rsp
movq %rax, -0x78(%rbp)
jmp 0x5eb4
xorl %eax, %eax
movq %rax, -0x78(%rbp)
jmp 0x5eb4
movq -0x78(%rbp), %rax
movq %rax, -0x18(%rbp)
movq 0x15235(%rip), %rdi     # 0x1b0f8
movq -0x30(%rbp), %rsi
movq -0x50(%rbp), %rcx
leaq -0x18(%rbp), %rdx
leaq -0x20(%rbp), %r8
callq 0x6470
cmpl $0x0, %eax
jge 0x5ee7
movq $0x0, -0x38(%rbp)
jmp 0x5f3c
jmp 0x5ee9
callq 0x4150
movq %rax, -0x68(%rbp)
callq *0x15480(%rip)          # 0x1b378
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x71d0
movl %eax, -0x54(%rbp)
callq *0x15472(%rip)          # 0x1b380
movq -0x68(%rbp), %rdi
callq 0x4050
movslq -0x54(%rbp), %rdi
callq 0x40d0
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x5f34
movq -0x20(%rbp), %rdi
callq 0x6530
movq -0x60(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x80(%rbp)
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x5f5f
movq -0x80(%rbp), %rax
movq %rbp, %rsp
popq %rbp
retq
callq 0x4080
nopw %cs:(%rax,%rax)