// File: GouMinghao[P]graspnms/grasp_nms.cpp
// Function: _pyx_f_9grasp_nms_np2array(tagPyArrayObject_fields*)
static double_array __pyx_f_9grasp_nms_np2array(PyArrayObject *__pyx_v_ary) {
  PyArrayObject *__pyx_v_np_buff = 0;
  double *__pyx_v_im_buff;
  int __pyx_v_r;
  int __pyx_v_c;
  double_array __pyx_v_da;
  double_array __pyx_r;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  PyObject *__pyx_t_4 = NULL;
  PyObject *__pyx_t_5 = NULL;
  double_array __pyx_t_6;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("np2array", 0);

  /* "grasp_nms.pyx":10
 * 
 * cdef double_array np2array(np.ndarray ary):
 *     cdef np.ndarray np_buff = np.ascontiguousarray(ary.copy(), dtype=np.float64)             # <<<<<<<<<<<<<<
 *     cdef double* im_buff = <double*> np_buff.data
 *     cdef int r = ary.shape[0]
 */
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_ascontiguousarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_ary), __pyx_n_s_copy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_float64); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 10, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 10, __pyx_L1_error)
  __pyx_v_np_buff = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;

  /* "grasp_nms.pyx":11
 * cdef double_array np2array(np.ndarray ary):
 *     cdef np.ndarray np_buff = np.ascontiguousarray(ary.copy(), dtype=np.float64)
 *     cdef double* im_buff = <double*> np_buff.data             # <<<<<<<<<<<<<<
 *     cdef int r = ary.shape[0]
 *     cdef int c = ary.shape[1]
 */
  __pyx_v_im_buff = ((double *)__pyx_v_np_buff->data);

  /* "grasp_nms.pyx":12
 *     cdef np.ndarray np_buff = np.ascontiguousarray(ary.copy(), dtype=np.float64)
 *     cdef double* im_buff = <double*> np_buff.data
 *     cdef int r = ary.shape[0]             # <<<<<<<<<<<<<<
 *     cdef int c = ary.shape[1]
 *     cdef double_array da = double_array(r,c)
 */
  __pyx_v_r = (__pyx_v_ary->dimensions[0]);

  /* "grasp_nms.pyx":13
 *     cdef double* im_buff = <double*> np_buff.data
 *     cdef int r = ary.shape[0]
 *     cdef int c = ary.shape[1]             # <<<<<<<<<<<<<<
 *     cdef double_array da = double_array(r,c)
 *     memcpy(da.data,im_buff,r * c * 8)
 */
  __pyx_v_c = (__pyx_v_ary->dimensions[1]);

  /* "grasp_nms.pyx":14
 *     cdef int r = ary.shape[0]
 *     cdef int c = ary.shape[1]
 *     cdef double_array da = double_array(r,c)             # <<<<<<<<<<<<<<
 *     memcpy(da.data,im_buff,r * c * 8)
 *     return da
 */
  try {
    __pyx_t_6 = double_array(__pyx_v_r, __pyx_v_c);
  } catch(...) {
    __Pyx_CppExn2PyErr();
    __PYX_ERR(0, 14, __pyx_L1_error)
  }
  __pyx_v_da = __pyx_t_6;

  /* "grasp_nms.pyx":15
 *     cdef int c = ary.shape[1]
 *     cdef double_array da = double_array(r,c)
 *     memcpy(da.data,im_buff,r * c * 8)             # <<<<<<<<<<<<<<
 *     return da
 * 
 */
  (void)(memcpy(__pyx_v_da.data, __pyx_v_im_buff, ((__pyx_v_r * __pyx_v_c) * 8)));

  /* "grasp_nms.pyx":16
 *     cdef double_array da = double_array(r,c)
 *     memcpy(da.data,im_buff,r * c * 8)
 *     return da             # <<<<<<<<<<<<<<
 * 
 * def arg_sort_grasp(np.ndarray grasps):
 */
  __pyx_r = __pyx_v_da;
  goto __pyx_L0;

  /* "grasp_nms.pyx":9
 * import math
 * 
 * cdef double_array np2array(np.ndarray ary):             # <<<<<<<<<<<<<<
 *     cdef np.ndarray np_buff = np.ascontiguousarray(ary.copy(), dtype=np.float64)
 *     cdef double* im_buff = <double*> np_buff.data
 */

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_WriteUnraisable("grasp_nms.np2array", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
  __Pyx_pretend_to_initialize(&__pyx_r);
  __pyx_L0:;
  __Pyx_XDECREF((PyObject *)__pyx_v_np_buff);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0xd0(%rbp)
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xc870
movq -0xd0(%rbp), %rdi
movb $0x0, -0x39(%rbp)
callq 0xc870
jmp 0xf467
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x68(%rbp)
movq $0x0, -0x70(%rbp)
movq $0x0, -0x78(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc870
jmp 0xf49d
movl $0x0, -0x8c(%rbp)
movq $0x0, -0x98(%rbp)
movl $0x0, -0x9c(%rbp)
movq 0x148a5(%rip), %rax     # 0x23d68
movq 0x146ae(%rip), %rcx     # 0x23b78
cmpq 0x18(%rcx), %rax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf4db
jmp 0xf541
cmpq $0x0, 0x1488d(%rip)     # 0x23d70
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf4f0
jmp 0xf50c
movq 0x14879(%rip), %rdi     # 0x23d70
callq 0xdcc0
movq 0x1486d(%rip), %rax     # 0x23d70
movq %rax, -0xe0(%rbp)
jmp 0xf531
movq 0x14695(%rip), %rdi     # 0x23ba8
callq 0xf250
movq %rax, -0xe8(%rbp)
jmp 0xf521
movq -0xe8(%rbp), %rax
movq %rax, -0xe0(%rbp)
jmp 0xf531
movq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
jmp 0xf574
movq 0x14660(%rip), %rdi     # 0x23ba8
leaq 0x14819(%rip), %rsi     # 0x23d68
leaq 0x1481a(%rip), %rdx     # 0x23d70
callq 0x11b30
movq %rax, -0xf8(%rbp)
jmp 0xf564
movq -0xf8(%rbp), %rax
movq %rax, -0xf0(%rbp)
jmp 0xf574
movq -0xf0(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf593
jmp 0xf5ed
movq 0x13e76(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x740, -0x9c(%rbp)     # imm = 0x740
jmp 0xfd42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xfe1f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xfe13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xfde0
movq -0x58(%rbp), %rdi
movq 0x14648(%rip), %rsi     # 0x23c40
callq 0xf2b0
movq %rax, -0x100(%rbp)
jmp 0xf606
movq -0x100(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf625
jmp 0xf64c
movq 0x13de4(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x742, -0x9c(%rbp)     # imm = 0x742
jmp 0xfd42
movq -0x58(%rbp), %rdi
callq 0xdce0
jmp 0xf657
movq $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rdi
movq 0x145f6(%rip), %rsi     # 0x23c60
callq 0xf2b0
movq %rax, -0x108(%rbp)
jmp 0xf678
movq -0x108(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf697
jmp 0xf6be
movq 0x13d72(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x745, -0x9c(%rbp)     # imm = 0x745
jmp 0xfd42
movq $0x0, -0x70(%rbp)
movq -0x68(%rbp), %rdi
movq 0x138d7(%rip), %rsi     # 0x22fa8
callq 0x11be0
movl %eax, -0x10c(%rbp)
jmp 0xf6de
movl -0x10c(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf6f4
jmp 0xf762
movq -0x68(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf712
jmp 0xf760
movq -0x68(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x70(%rbp), %rdi
callq 0xdcc0
movq -0xa8(%rbp), %rdi
callq 0xdcc0
movq -0x68(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0xb0(%rbp), %rdi
callq 0xdce0
jmp 0xf75a
jmp 0xf75c
jmp 0xf75e
jmp 0xf760
jmp 0xf762
cmpq $0x0, -0x70(%rbp)
je 0xf78f
movq -0x68(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x11c10
movq %rax, -0x118(%rbp)
jmp 0xf77f
movq -0x118(%rbp), %rax
movq %rax, -0x120(%rbp)
jmp 0xf7b1
movq -0x68(%rbp), %rdi
callq 0x11d10
movq %rax, -0x128(%rbp)
jmp 0xf7a1
movq -0x128(%rbp), %rax
movq %rax, -0x120(%rbp)
jmp 0xf7b1
movq -0x120(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x70(%rbp), %rdi
callq 0xddd0
jmp 0xf7c7
movq $0x0, -0x70(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf7e3
jmp 0xf80a
movq 0x13c26(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x753, -0x9c(%rbp)     # imm = 0x753
jmp 0xfd42
movq -0x68(%rbp), %rdi
callq 0xdce0
jmp 0xf815
movq $0x0, -0x68(%rbp)
movl $0x1, %edi
callq 0xb1d0
movq %rax, -0x130(%rbp)
jmp 0xf830
movq -0x130(%rbp), %rax
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf84f
jmp 0xf876
movq 0x13bba(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x756, -0x9c(%rbp)     # imm = 0x756
jmp 0xfd42
movq -0x58(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x4000000, %esi        # imm = 0x4000000
callq 0x11dc0
movl %eax, -0x134(%rbp)
jmp 0xf89b
movl -0x134(%rbp), %eax
cmpl $0x0, %eax
je 0xf8a8
jmp 0xf8c7
leaq 0xcb96(%rip), %rdi      # 0x1c445
leaq 0xcba8(%rip), %rsi      # 0x1c45e
movl $0x759, %edx            # imm = 0x759
leaq 0xcbaa(%rip), %rcx      # 0x1c46c
callq 0xb280
movq -0x140(%rbp), %rcx
movq -0x68(%rbp), %rax
movq %rcx, 0x18(%rax)
movq $0x0, -0x58(%rbp)
callq 0xb420
movq %rax, -0x148(%rbp)
jmp 0xf8ec
movq -0x148(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf90b
jmp 0xf932
movq 0x13afe(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x75b, -0x9c(%rbp)     # imm = 0x75B
jmp 0xfd42
movq 0x1443f(%rip), %rax     # 0x23d78
movq 0x14238(%rip), %rcx     # 0x23b78
cmpq 0x18(%rcx), %rax
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf951
jmp 0xf9b7
cmpq $0x0, 0x14427(%rip)     # 0x23d80
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xf966
jmp 0xf982
movq 0x14413(%rip), %rdi     # 0x23d80
callq 0xdcc0
movq 0x14407(%rip), %rax     # 0x23d80
movq %rax, -0x150(%rbp)
jmp 0xf9a7
movq 0x1421f(%rip), %rdi     # 0x23ba8
callq 0xf250
movq %rax, -0x158(%rbp)
jmp 0xf997
movq -0x158(%rbp), %rax
movq %rax, -0x150(%rbp)
jmp 0xf9a7
movq -0x150(%rbp), %rax
movq %rax, -0x160(%rbp)
jmp 0xf9ea
movq 0x141ea(%rip), %rdi     # 0x23ba8
leaq 0x143b3(%rip), %rsi     # 0x23d78
leaq 0x143b4(%rip), %rdx     # 0x23d80
callq 0x11b30
movq %rax, -0x168(%rbp)
jmp 0xf9da
movq -0x168(%rbp), %rax
movq %rax, -0x160(%rbp)
jmp 0xf9ea
movq -0x160(%rbp), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xfa09
jmp 0xfa30
movq 0x13a00(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x75d, -0x9c(%rbp)     # imm = 0x75D
jmp 0xfd42
movq -0x70(%rbp), %rdi
movq 0x1423d(%rip), %rsi     # 0x23c78
callq 0xf2b0
movq %rax, -0x170(%rbp)
jmp 0xfa49
movq -0x170(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xfa68
jmp 0xfa8f
movq 0x139a1(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x75f, -0x9c(%rbp)     # imm = 0x75F
jmp 0xfd42
movq -0x70(%rbp), %rdi
callq 0xdce0
jmp 0xfa9a
movq $0x0, -0x70(%rbp)
movq -0x58(%rbp), %rdi
movq 0x141c3(%rip), %rsi     # 0x23c70
movq -0x78(%rbp), %rdx
callq 0xb180
movl %eax, -0x174(%rbp)
jmp 0xfabe
movl -0x174(%rbp), %eax
cmpl $0x0, %eax
jge 0xfaf0
movq 0x13940(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x762, -0x9c(%rbp)     # imm = 0x762
jmp 0xfd42
movq -0x78(%rbp), %rdi
callq 0xdce0
jmp 0xfafb
movq $0x0, -0x78(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x11e00
movq %rax, -0x180(%rbp)
jmp 0xfb1d
movq -0x180(%rbp), %rax
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xfb3c
jmp 0xfb63
movq 0x138cd(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x764, -0x9c(%rbp)     # imm = 0x764
jmp 0xfd42
movq -0x60(%rbp), %rdi
callq 0xdce0
jmp 0xfb6e
movq $0x0, -0x60(%rbp)
movq -0x68(%rbp), %rdi
callq 0xdce0
jmp 0xfb81
movq $0x0, -0x68(%rbp)
movq -0x58(%rbp), %rdi
callq 0xdce0
jmp 0xfb94
movq $0x0, -0x58(%rbp)
movb $0x1, %al
movq 0x1339b(%rip), %rcx     # 0x22f40
cmpq %rcx, -0x78(%rbp)
movb %al, -0x181(%rbp)
je 0xfbdf
movq -0x78(%rbp), %rdi
movq 0x141cc(%rip), %rsi     # 0x23d88
callq 0x11ef0
movl %eax, -0x188(%rbp)
jmp 0xfbc9
movl -0x188(%rbp), %eax
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
movb %al, -0x181(%rbp)
movb -0x181(%rbp), %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0xfc14
movq 0x1381c(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xa, -0x8c(%rbp)
movl $0x769, -0x9c(%rbp)     # imm = 0x769
jmp 0xfd42
movq -0x78(%rbp), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x78(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl (%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl 0x8(%rax), %eax
movl %eax, -0x28(%rbp)
movl -0x24(%rbp), %esi
movl -0x28(%rbp), %edx
leaq -0xc0(%rbp), %rdi
callq 0xc8a0
jmp 0xfc5f
movq -0xc0(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0x80(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0xc900
jmp 0xfcfd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movq -0x48(%rbp), %rdi
callq 0xb140
callq 0x11fa0
jmp 0xfca2
movq 0x13767(%rip), %rax     # 0x23410
movq %rax, -0x98(%rbp)
movl $0xe, -0x8c(%rbp)
movl $0x793, -0x9c(%rbp)     # imm = 0x793
movl $0x2, -0xc4(%rbp)
callq 0xb570
jmp 0xfce8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0xb570
jmp 0xfcf8
movl -0xc4(%rbp), %eax
subl $0x2, %eax
je 0xfd42
jmp 0xfdcc
jmp 0xfde0
movq -0x88(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movq -0x20(%rbp), %rsi
movl -0x24(%rbp), %eax
imull -0x28(%rbp), %eax
shll $0x3, %eax
movslq %eax, %rdx
callq 0xb320
movq -0xd0(%rbp), %rax
movq -0x38(%rbp), %rcx
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
jmp 0xfdb3
movq -0x58(%rbp), %rdi
callq 0xddd0
jmp 0xfd4d
movq -0x60(%rbp), %rdi
callq 0xddd0
jmp 0xfd58
movq -0x68(%rbp), %rdi
callq 0xddd0
jmp 0xfd63
movq -0x70(%rbp), %rdi
callq 0xddd0
jmp 0xfd6e
movq -0x78(%rbp), %rdi
callq 0xddd0
jmp 0xfd79
movl -0x9c(%rbp), %esi
movl -0x8c(%rbp), %edx
movq -0x98(%rbp), %rcx
leaq 0xc713(%rip), %rdi      # 0x1c4a6
movl $0x1, %r8d
xorl %r9d, %r9d
callq 0x124b0
jmp 0xfda3
movq -0xd0(%rbp), %rdi
callq 0x125a0
jmp 0xfdb1
jmp 0xfdb3
movq -0x18(%rbp), %rdi
callq 0xddd0
jmp 0xfdbe
movb $0x1, -0x39(%rbp)
movl $0x1, -0xc4(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc900
testb $0x1, -0x39(%rbp)
jne 0xfdfa
jmp 0xfdee
leaq -0x88(%rbp), %rdi
callq 0xc900
jmp 0xfe13
movq -0xd0(%rbp), %rdi
callq 0xc900
leaq -0x38(%rbp), %rdi
callq 0xc900
movq -0xd8(%rbp), %rax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq -0xd0(%rbp), %rdi
callq 0xc900
leaq -0x38(%rbp), %rdi
callq 0xc900
movq -0x48(%rbp), %rdi
callq 0xb5d0
movq %rax, %rdi
callq 0x16bb0
nopl (%rax)