// File: ehw-fit[P]py-paretoarchive/src/paretoarchive/core.cpp
// Function: _pyx_pf_13paretoarchive_4core_16PyBspTreeArchive_2filter(_object*, _object*, _object*, _object*, _object*)
static PyObject *__pyx_pf_13paretoarchive_4core_16PyBspTreeArchive_2filter(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_data, PyObject *__pyx_v_returnIds, PyObject *__pyx_v_sortKey) {
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_pts = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  PyObject *__pyx_t_1 = NULL;
  PyObject *__pyx_t_2 = NULL;
  PyObject *__pyx_t_3 = NULL;
  Py_ssize_t __pyx_t_4;
  PyObject *(*__pyx_t_5)(PyObject *);
  PyObject *__pyx_t_6 = NULL;
  PyObject *__pyx_t_7 = NULL;
  PyObject *__pyx_t_8 = NULL;
  int __pyx_t_9;
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;
  __Pyx_RefNannySetupContext("filter", 0);

  /* "paretoarchive/core.pyx":1294
 * 
 *    def filter(self, data, returnIds=False, sortKey=None):
 *      self.clear()             # <<<<<<<<<<<<<<
 *      for i, d in enumerate(data):
 *         self.process(d, customId=i)
 */
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_clear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "paretoarchive/core.pyx":1295
 *    def filter(self, data, returnIds=False, sortKey=None):
 *      self.clear()
 *      for i, d in enumerate(data):             # <<<<<<<<<<<<<<
 *         self.process(d, customId=i)
 *      pts = self.points(returnIds=returnIds)
 */
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  if (likely(PyList_CheckExact(__pyx_v_data)) || PyTuple_CheckExact(__pyx_v_data)) {
    __pyx_t_2 = __pyx_v_data; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_data); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1295, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1295, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1295, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1295, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_d, __pyx_t_3);
    __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
    __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_3;
    __pyx_t_3 = 0;

    /* "paretoarchive/core.pyx":1296
 *      self.clear()
 *      for i, d in enumerate(data):
 *         self.process(d, customId=i)             # <<<<<<<<<<<<<<
 *      pts = self.points(returnIds=returnIds)
 *      if sortKey == None:
 */
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_process); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_GIVEREF(__pyx_v_d);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_d);
    __pyx_t_7 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (PyDict_SetItem(__pyx_t_7, __pyx_n_s_customId, __pyx_v_i) < 0) __PYX_ERR(0, 1296, __pyx_L1_error)
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;

    /* "paretoarchive/core.pyx":1295
 *    def filter(self, data, returnIds=False, sortKey=None):
 *      self.clear()
 *      for i, d in enumerate(data):             # <<<<<<<<<<<<<<
 *         self.process(d, customId=i)
 *      pts = self.points(returnIds=returnIds)
 */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;

  /* "paretoarchive/core.pyx":1297
 *      for i, d in enumerate(data):
 *         self.process(d, customId=i)
 *      pts = self.points(returnIds=returnIds)             # <<<<<<<<<<<<<<
 *      if sortKey == None:
 *         return pts
 */
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_points); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_returnIds, __pyx_v_returnIds) < 0) __PYX_ERR(0, 1297, __pyx_L1_error)
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_empty_tuple, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1297, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_pts = __pyx_t_8;
  __pyx_t_8 = 0;

  /* "paretoarchive/core.pyx":1298
 *         self.process(d, customId=i)
 *      pts = self.points(returnIds=returnIds)
 *      if sortKey == None:             # <<<<<<<<<<<<<<
 *         return pts
 *      return sorted(pts, key = sortKey)
 */
  __pyx_t_8 = PyObject_RichCompare(__pyx_v_sortKey, Py_None, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1298, __pyx_L1_error)
  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1298, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_9) {

    /* "paretoarchive/core.pyx":1299
 *      pts = self.points(returnIds=returnIds)
 *      if sortKey == None:
 *         return pts             # <<<<<<<<<<<<<<
 *      return sorted(pts, key = sortKey)
 */
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_pts);
    __pyx_r = __pyx_v_pts;
    goto __pyx_L0;

    /* "paretoarchive/core.pyx":1298
 *         self.process(d, customId=i)
 *      pts = self.points(returnIds=returnIds)
 *      if sortKey == None:             # <<<<<<<<<<<<<<
 *         return pts
 *      return sorted(pts, key = sortKey)
 */
  }

  /* "paretoarchive/core.pyx":1300
 *      if sortKey == None:
 *         return pts
 *      return sorted(pts, key = sortKey)             # <<<<<<<<<<<<<<
 */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_v_pts);
  __Pyx_GIVEREF(__pyx_v_pts);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_pts);
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_key, __pyx_v_sortKey) < 0) __PYX_ERR(0, 1300, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_sorted, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1300, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* "paretoarchive/core.pyx":1293
 *       self.points = self._archive.points
 * 
 *    def filter(self, data, returnIds=False, sortKey=None):             # <<<<<<<<<<<<<<
 *      self.clear()
 *      for i, d in enumerate(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_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("paretoarchive.core.PyBspTreeArchive.filter", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_pts);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq $0x0, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movq $0x0, -0x78(%rbp)
movq $0x0, -0x80(%rbp)
movq $0x0, -0x88(%rbp)
movl $0x0, -0x90(%rbp)
movq $0x0, -0x98(%rbp)
movl $0x0, -0x9c(%rbp)
movq -0x10(%rbp), %rdi
movq 0x458a4(%rip), %rsi     # 0xac610
callq 0x2dfa0
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66d89
jmp 0x66db0
movq 0x406d0(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50e, -0x90(%rbp)     # imm = 0x50E
movl $0x59dc, -0x9c(%rbp)    # imm = 0x59DC
jmp 0x677c7
movq $0x0, -0x60(%rbp)
movq -0x58(%rbp), %rdi
movq 0x4016d(%rip), %rsi     # 0xa6f30
callq 0x2c410
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66dd8
jmp 0x66e40
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66df6
jmp 0x66e3e
movq -0x58(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xa8(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2a7c0
movq -0xa8(%rbp), %rdi
callq 0x2a7c0
movq -0x58(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xa8(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0xb0(%rbp), %rdi
callq 0x2a7e0
jmp 0x66e3e
jmp 0x66e40
cmpq $0x0, -0x60(%rbp)
je 0x66e5d
movq -0x58(%rbp), %rdi
movq -0x60(%rbp), %rsi
callq 0x656a0
movq %rax, -0xd0(%rbp)
jmp 0x66e6d
movq -0x58(%rbp), %rdi
callq 0x65f20
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2a8d0
movq $0x0, -0x60(%rbp)
cmpq $0x0, -0x50(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66e9d
jmp 0x66ec4
movq 0x405bc(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50e, -0x90(%rbp)     # imm = 0x50E
movl $0x59ea, -0x9c(%rbp)    # imm = 0x59EA
jmp 0x677c7
movq -0x58(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x58(%rbp)
movq -0x50(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x50(%rbp)
movq 0x4566b(%rip), %rdi     # 0xac558
callq 0x2a7c0
movq 0x4565f(%rip), %rax     # 0xac558
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
movq 0x3feb8(%rip), %rsi     # 0xa6dc0
callq 0x2c410
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66f30
movq -0x18(%rbp), %rdi
movq 0x3fe8a(%rip), %rsi     # 0xa6db0
callq 0x2c410
cmpl $0x0, %eax
je 0x66f56
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2a7c0
movq $0x0, -0x68(%rbp)
movq $0x0, -0x70(%rbp)
jmp 0x66ff6
movq $-0x1, -0x68(%rbp)
movq -0x18(%rbp), %rdi
callq 0x292d0
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66f7f
jmp 0x66fa6
movq 0x404da(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50f, -0x90(%rbp)     # imm = 0x50F
movl $0x59fc, -0x9c(%rbp)    # imm = 0x59FC
jmp 0x677c7
movq -0x58(%rbp), %rax
movq 0x8(%rax), %rax
movq 0xe0(%rax), %rax
movq %rax, -0x70(%rbp)
cmpq $0x0, -0x70(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x66fcd
jmp 0x66ff4
movq 0x4048c(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50f, -0x90(%rbp)     # imm = 0x50F
movl $0x59fe, -0x9c(%rbp)    # imm = 0x59FE
jmp 0x677c7
jmp 0x66ff6
jmp 0x66ff8
cmpq $0x0, -0x70(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6700f
jmp 0x670ab
movq -0x58(%rbp), %rdi
movq 0x3fda6(%rip), %rsi     # 0xa6dc0
callq 0x2c410
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6702f
jmp 0x6706d
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jl 0x67042
jmp 0x673da
movq -0x58(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x68(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2a7c0
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x670a6
movq -0x68(%rbp), %rax
movq -0x58(%rbp), %rcx
cmpq 0x10(%rcx), %rax
jl 0x67080
jmp 0x673da
movq -0x58(%rbp), %rax
movq -0x68(%rbp), %rcx
movq 0x18(%rax,%rcx,8), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2a7c0
movq -0x68(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x68(%rbp)
jmp 0x67140
movq -0x70(%rbp), %rax
movq -0x58(%rbp), %rdi
callq *%rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x670cd
jmp 0x6713e
callq 0x295f0
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0xb8(%rbp)
je 0x67139
movq -0xb8(%rbp), %rdi
movq 0x3fe27(%rip), %rax     # 0xa6f18
movq (%rax), %rsi
callq 0x65590
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67109
jmp 0x67110
callq 0x293e0
jmp 0x67137
movq 0x40349(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50f, -0x90(%rbp)     # imm = 0x50F
movl $0x5a19, -0x9c(%rbp)    # imm = 0x5A19
jmp 0x677c7
jmp 0x67139
jmp 0x673da
jmp 0x67140
jmp 0x67142
movq -0x38(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x2a8d0
movq $0x0, -0x60(%rbp)
movq -0x50(%rbp), %rdi
callq 0x2a7c0
movq -0x30(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0xc8(%rbp), %rdi
callq 0x2a8d0
movq -0x50(%rbp), %rdi
movq 0x453c4(%rip), %rsi     # 0xac560
movl $0x1, %edx
xorl %r8d, %r8d
movl %r8d, %ecx
callq 0x67850
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x671c4
jmp 0x671eb
movq 0x40295(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x50f, -0x90(%rbp)     # imm = 0x50F
movl $0x5a23, -0x9c(%rbp)    # imm = 0x5A23
jmp 0x677c7
movq -0x50(%rbp), %rdi
callq 0x2a7e0
movq -0x60(%rbp), %rax
movq %rax, -0x50(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x10(%rbp), %rdi
movq 0x454c1(%rip), %rsi     # 0xac6d0
callq 0x2dfa0
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x60(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6722c
jmp 0x67253
movq 0x4022d(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x510, -0x90(%rbp)     # imm = 0x510
movl $0x5a30, -0x9c(%rbp)    # imm = 0x5A30
jmp 0x677c7
movl $0x1, %edi
callq 0x29200
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67275
jmp 0x6729c
movq 0x401e4(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x510, -0x90(%rbp)     # imm = 0x510
movl $0x5a32, -0x9c(%rbp)    # imm = 0x5A32
jmp 0x677c7
movq -0x38(%rbp), %rdi
callq 0x2a7c0
movq -0x38(%rbp), %rcx
movq -0x78(%rbp), %rax
movq %rcx, 0x18(%rax)
callq 0x29440
movq %rax, -0x80(%rbp)
cmpq $0x0, -0x80(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x672ce
jmp 0x672f5
movq 0x4018b(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x510, -0x90(%rbp)     # imm = 0x510
movl $0x5a37, -0x9c(%rbp)    # imm = 0x5A37
jmp 0x677c7
movq -0x80(%rbp), %rdi
movq 0x45328(%rip), %rsi     # 0xac628
movq -0x30(%rbp), %rdx
callq 0x291b0
cmpl $0x0, %eax
jge 0x67335
movq 0x4014b(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x510, -0x90(%rbp)     # imm = 0x510
movl $0x5a39, -0x9c(%rbp)    # imm = 0x5A39
jmp 0x677c7
movq -0x60(%rbp), %rdi
movq -0x78(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x654a0
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67364
jmp 0x6738b
movq 0x400f5(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x510, -0x90(%rbp)     # imm = 0x510
movl $0x5a3a, -0x9c(%rbp)    # imm = 0x5A3A
jmp 0x677c7
movq -0x60(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x60(%rbp)
movq -0x78(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x78(%rbp)
movq -0x80(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x80(%rbp)
movq -0x88(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x88(%rbp)
jmp 0x66ff8
movq -0x58(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x58(%rbp)
movq -0x50(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x50(%rbp)
movq -0x10(%rbp), %rdi
movq 0x452b9(%rip), %rsi     # 0xac6c0
callq 0x2dfa0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67424
jmp 0x6744b
movq 0x40035(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x511, -0x90(%rbp)     # imm = 0x511
movl $0x5a53, -0x9c(%rbp)    # imm = 0x5A53
jmp 0x677c7
callq 0x29440
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67468
jmp 0x6748f
movq 0x3fff1(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x511, -0x90(%rbp)     # imm = 0x511
movl $0x5a55, -0x9c(%rbp)    # imm = 0x5A55
jmp 0x677c7
movq -0x58(%rbp), %rdi
movq 0x4525e(%rip), %rsi     # 0xac6f8
movq -0x20(%rbp), %rdx
callq 0x291b0
cmpl $0x0, %eax
jge 0x674cf
movq 0x3ffb1(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x511, -0x90(%rbp)     # imm = 0x511
movl $0x5a57, -0x9c(%rbp)    # imm = 0x5A57
jmp 0x677c7
movq -0x50(%rbp), %rdi
movq 0x44ede(%rip), %rsi     # 0xac3b8
movq -0x58(%rbp), %rdx
callq 0x654a0
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67501
jmp 0x67528
movq 0x3ff58(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x511, -0x90(%rbp)     # imm = 0x511
movl $0x5a58, -0x9c(%rbp)    # imm = 0x5A58
jmp 0x677c7
movq -0x50(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x50(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x58(%rbp)
movq -0x88(%rbp), %rax
movq %rax, -0x40(%rbp)
movq $0x0, -0x88(%rbp)
movq -0x28(%rbp), %rdi
movq 0x3f87d(%rip), %rsi     # 0xa6de8
movl $0x2, %edx
callq 0x29680
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67593
jmp 0x675ba
movq 0x3fec6(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x512, -0x90(%rbp)     # imm = 0x512
movl $0x5a66, -0x9c(%rbp)    # imm = 0x5A66
jmp 0x677c7
movq -0x88(%rbp), %rdi
callq 0x2f230
movl %eax, -0x8c(%rbp)
cmpl $0x0, -0x8c(%rbp)
setl %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x675e0
jmp 0x67607
movq 0x3fe79(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x512, -0x90(%rbp)     # imm = 0x512
movl $0x5a67, -0x9c(%rbp)    # imm = 0x5A67
jmp 0x677c7
movq -0x88(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x88(%rbp)
cmpl $0x0, -0x8c(%rbp)
je 0x67646
movq -0x48(%rbp), %rdi
callq 0x2a8d0
movq -0x40(%rbp), %rdi
callq 0x2a7c0
movq -0x40(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0x67827
movq -0x48(%rbp), %rdi
callq 0x2a8d0
movl $0x1, %edi
callq 0x29200
movq %rax, -0x88(%rbp)
cmpq $0x0, -0x88(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67677
jmp 0x6769e
movq 0x3fde2(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x514, -0x90(%rbp)     # imm = 0x514
movl $0x5a85, -0x9c(%rbp)    # imm = 0x5A85
jmp 0x677c7
movq -0x40(%rbp), %rdi
callq 0x2a7c0
movq -0x40(%rbp), %rcx
movq -0x88(%rbp), %rax
movq %rcx, 0x18(%rax)
callq 0x29440
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x676d3
jmp 0x676fa
movq 0x3fd86(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x514, -0x90(%rbp)     # imm = 0x514
movl $0x5a8a, -0x9c(%rbp)    # imm = 0x5A8A
jmp 0x677c7
movq -0x58(%rbp), %rdi
movq 0x44f6b(%rip), %rsi     # 0xac670
movq -0x28(%rbp), %rdx
callq 0x291b0
cmpl $0x0, %eax
jge 0x6773a
movq 0x3fd46(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x514, -0x90(%rbp)     # imm = 0x514
movl $0x5a8c, -0x9c(%rbp)    # imm = 0x5A8C
jmp 0x677c7
movq 0x44ff7(%rip), %rdi     # 0xac738
movq -0x88(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x654a0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x67769
jmp 0x6778d
movq 0x3fcf0(%rip), %rax     # 0xa7460
movq %rax, -0x98(%rbp)
movl $0x514, -0x90(%rbp)     # imm = 0x514
movl $0x5a8d, -0x9c(%rbp)    # imm = 0x5A8D
jmp 0x677c7
movq -0x88(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x88(%rbp)
movq -0x58(%rbp), %rdi
callq 0x2a7e0
movq $0x0, -0x58(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
jmp 0x67827
movq -0x50(%rbp), %rdi
callq 0x2a8d0
movq -0x58(%rbp), %rdi
callq 0x2a8d0
movq -0x60(%rbp), %rdi
callq 0x2a8d0
movq -0x78(%rbp), %rdi
callq 0x2a8d0
movq -0x80(%rbp), %rdi
callq 0x2a8d0
movq -0x88(%rbp), %rdi
callq 0x2a8d0
movl -0x9c(%rbp), %esi
movl -0x90(%rbp), %edx
movq -0x98(%rbp), %rcx
leaq 0x28aae(%rip), %rdi     # 0x902c8
callq 0x2c5a0
movq $0x0, -0x48(%rbp)
movq -0x30(%rbp), %rdi
callq 0x2a8d0
movq -0x38(%rbp), %rdi
callq 0x2a8d0
movq -0x40(%rbp), %rdi
callq 0x2a8d0
movq -0x48(%rbp), %rax
addq $0xd0, %rsp
popq %rbp
retq
nop