// File: ehw-fit[P]py-paretoarchive/src/paretoarchive/core.cpp
// Function: _Pyx_Raise(_object*, _object*, _object*, _object*)
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) {
    PyObject* owned_instance = NULL;
    if (tb == Py_None) {
        tb = 0;
    } else if (tb && !PyTraceBack_Check(tb)) {
        PyErr_SetString(PyExc_TypeError,
            "raise: arg 3 must be a traceback or None");
        goto bad;
    }
    if (value == Py_None)
        value = 0;
    if (PyExceptionInstance_Check(type)) {
        if (value) {
            PyErr_SetString(PyExc_TypeError,
                "instance exception may not have a separate value");
            goto bad;
        }
        value = type;
        type = (PyObject*) Py_TYPE(value);
    } else if (PyExceptionClass_Check(type)) {
        PyObject *instance_class = NULL;
        if (value && PyExceptionInstance_Check(value)) {
            instance_class = (PyObject*) Py_TYPE(value);
            if (instance_class != type) {
                int is_subclass = PyObject_IsSubclass(instance_class, type);
                if (!is_subclass) {
                    instance_class = NULL;
                } else if (unlikely(is_subclass == -1)) {
                    goto bad;
                } else {
                    type = instance_class;
                }
            }
        }
        if (!instance_class) {
            PyObject *args;
            if (!value)
                args = PyTuple_New(0);
            else if (PyTuple_Check(value)) {
                Py_INCREF(value);
                args = value;
            } else
                args = PyTuple_Pack(1, value);
            if (!args)
                goto bad;
            owned_instance = PyObject_Call(type, args, NULL);
            Py_DECREF(args);
            if (!owned_instance)
                goto bad;
            value = owned_instance;
            if (!PyExceptionInstance_Check(value)) {
                PyErr_Format(PyExc_TypeError,
                             "calling %R should have returned an instance of "
                             "BaseException, not %R",
                             type, Py_TYPE(value));
                goto bad;
            }
        }
    } else {
        PyErr_SetString(PyExc_TypeError,
            "raise: exception class must be a subclass of BaseException");
        goto bad;
    }
    if (cause) {
        PyObject *fixed_cause;
        if (cause == Py_None) {
            fixed_cause = NULL;
        } else if (PyExceptionClass_Check(cause)) {
            fixed_cause = PyObject_CallObject(cause, NULL);
            if (fixed_cause == NULL)
                goto bad;
        } else if (PyExceptionInstance_Check(cause)) {
            fixed_cause = cause;
            Py_INCREF(fixed_cause);
        } else {
            PyErr_SetString(PyExc_TypeError,
                            "exception causes must derive from "
                            "BaseException");
            goto bad;
        }
        PyException_SetCause(value, fixed_cause);
    }
    PyErr_SetObject(type, value);
    if (tb) {
#if CYTHON_FAST_THREAD_STATE
        PyThreadState *tstate = __Pyx_PyThreadState_Current;
        PyObject* tmp_tb = tstate->curexc_traceback;
        if (tb != tmp_tb) {
            Py_INCREF(tb);
            tstate->curexc_traceback = tb;
            Py_XDECREF(tmp_tb);
        }
#else
        PyObject *tmp_type, *tmp_value, *tmp_tb;
        PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb);
        Py_INCREF(tb);
        PyErr_Restore(tmp_type, tmp_value, tb);
        Py_XDECREF(tmp_tb);
#endif
    }
bad:
    Py_XDECREF(owned_instance);
    return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq 0x412c1(%rip), %rax     # 0xa6de8
cmpq %rax, -0x18(%rbp)
jne 0x65b37
movq $0x0, -0x18(%rbp)
jmp 0x65b70
cmpq $0x0, -0x18(%rbp)
je 0x65b6e
movq -0x18(%rbp), %rdi
movq 0x41327(%rip), %rsi     # 0xa6e70
callq 0x2c410
cmpl $0x0, %eax
jne 0x65b6e
movq 0x413c6(%rip), %rax     # 0xa6f20
movq (%rax), %rdi
leaq 0x2a605(%rip), %rsi     # 0x90169
callq 0x29450
jmp 0x65e8d
jmp 0x65b70
movq 0x41271(%rip), %rax     # 0xa6de8
cmpq %rax, -0x10(%rbp)
jne 0x65b85
movq $0x0, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65bd7
cmpq $0x0, -0x10(%rbp)
je 0x65bbe
movq 0x41376(%rip), %rax     # 0xa6f20
movq (%rax), %rdi
leaq 0x2a5de(%rip), %rsi     # 0x90192
callq 0x29450
jmp 0x65e8d
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x65d80
movq -0x8(%rbp), %rdi
callq 0x2c860
cmpl $0x0, %eax
je 0x65d63
movq -0x8(%rbp), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65d63
movq $0x0, -0x30(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x65c80
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65c80
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpq -0x8(%rbp), %rax
je 0x65c7e
movq -0x30(%rbp), %rdi
movq -0x8(%rbp), %rsi
callq 0x292c0
movl %eax, -0x34(%rbp)
cmpl $0x0, -0x34(%rbp)
jne 0x65c5c
movq $0x0, -0x30(%rbp)
jmp 0x65c7c
cmpl $-0x1, -0x34(%rbp)
sete %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x65c6d
jmp 0x65c72
jmp 0x65e8d
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x65c7c
jmp 0x65c7e
jmp 0x65c80
cmpq $0x0, -0x30(%rbp)
jne 0x65d61
cmpq $0x0, -0x10(%rbp)
jne 0x65ca1
xorl %eax, %eax
movl %eax, %edi
callq 0x29200
movq %rax, -0x40(%rbp)
jmp 0x65ce1
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x4000000, %esi        # imm = 0x4000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65ccb
movq -0x10(%rbp), %rdi
callq 0x2a7c0
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
jmp 0x65cdf
movq -0x10(%rbp), %rsi
movl $0x1, %edi
movb $0x0, %al
callq 0x290d0
movq %rax, -0x40(%rbp)
jmp 0x65ce1
cmpq $0x0, -0x40(%rbp)
jne 0x65ced
jmp 0x65e8d
movq -0x8(%rbp), %rdi
movq -0x40(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x290c0
movq %rax, -0x28(%rbp)
movq -0x40(%rbp), %rdi
callq 0x2a7e0
cmpq $0x0, -0x28(%rbp)
jne 0x65d17
jmp 0x65e8d
movq -0x28(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
jne 0x65d5f
movq 0x411e3(%rip), %rax     # 0xa6f20
movq (%rax), %rdi
movq -0x8(%rbp), %rdx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rcx
leaq 0x2a470(%rip), %rsi     # 0x901c3
movb $0x0, %al
callq 0x292e0
jmp 0x65e8d
jmp 0x65d61
jmp 0x65d7e
movq 0x411b6(%rip), %rax     # 0xa6f20
movq (%rax), %rdi
leaq 0x2a494(%rip), %rsi     # 0x90208
callq 0x29450
jmp 0x65e8d
jmp 0x65d80
cmpq $0x0, -0x20(%rbp)
je 0x65e38
movq 0x41056(%rip), %rax     # 0xa6de8
cmpq %rax, -0x20(%rbp)
jne 0x65da5
movq $0x0, -0x48(%rbp)
jmp 0x65e2b
movq -0x20(%rbp), %rdi
callq 0x2c860
cmpl $0x0, %eax
je 0x65de5
movq -0x20(%rbp), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65de5
movq -0x20(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x292f0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x65de3
jmp 0x65e8d
jmp 0x65e29
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x40000000, %esi       # imm = 0x40000000
callq 0x2c890
cmpl $0x0, %eax
je 0x65e0f
movq -0x20(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
callq 0x2a7c0
jmp 0x65e27
movq 0x4110a(%rip), %rax     # 0xa6f20
movq (%rax), %rdi
leaq 0x2a423(%rip), %rsi     # 0x90243
callq 0x29450
jmp 0x65e8d
jmp 0x65e29
jmp 0x65e2b
movq -0x10(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x296d0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x292b0
cmpq $0x0, -0x18(%rbp)
je 0x65e8b
callq 0x29620
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x58(%rbp), %rax
je 0x65e89
movq -0x18(%rbp), %rdi
callq 0x2a7c0
movq -0x18(%rbp), %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x68(%rax)
movq -0x58(%rbp), %rdi
callq 0x2a8d0
jmp 0x65e8b
jmp 0x65e8d
movq -0x28(%rbp), %rdi
callq 0x2a8d0
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)