// File: ehw-fit[P]py-paretoarchive/src/paretoarchive/core.cpp
// Function: _Pyx_AddTraceback(char const*, int, int, char const*)
static void __Pyx_AddTraceback(const char *funcname, int c_line,
                               int py_line, const char *filename) {
    PyCodeObject *py_code = 0;
    PyFrameObject *py_frame = 0;
    PyThreadState *tstate = __Pyx_PyThreadState_Current;
    PyObject *ptype, *pvalue, *ptraceback;
    if (c_line) {
        c_line = __Pyx_CLineForTraceback(tstate, c_line);
    }
    py_code = __pyx_find_code_object(c_line ? -c_line : py_line);
    if (!py_code) {
        __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback);
        py_code = __Pyx_CreateCodeObjectForTraceback(
            funcname, c_line, py_line, filename);
        if (!py_code) {
            /* If the code object creation fails, then we should clear the
               fetched exception references and propagate the new exception */
            Py_XDECREF(ptype);
            Py_XDECREF(pvalue);
            Py_XDECREF(ptraceback);
            goto bad;
        }
        __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback);
        __pyx_insert_code_object(c_line ? -c_line : py_line, py_code);
    }
    py_frame = PyFrame_New(
        tstate,            /*PyThreadState *tstate,*/
        py_code,           /*PyCodeObject *code,*/
        __pyx_d,    /*PyObject *globals,*/
        0                  /*PyObject *locals*/
    );
    if (!py_frame) goto bad;
    __Pyx_PyFrame_SetLineNumber(py_frame, py_line);
    PyTraceBack_Here(py_frame);
bad:
    Py_XDECREF(py_code);
    Py_XDECREF(py_frame);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %fs:0x28, %rax
movq %rax, -0x8(%rbp)
movq %rdi, -0x28(%rbp)
movl %esi, -0x2c(%rbp)
movl %edx, -0x30(%rbp)
movq %rcx, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
callq 0x29620
movq %rax, -0x50(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x2c5f1
movq -0x50(%rbp), %rdi
movl -0x2c(%rbp), %esi
callq 0x67b60
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x2c601
xorl %eax, %eax
subl -0x2c(%rbp), %eax
movl %eax, -0x54(%rbp)
jmp 0x2c607
movl -0x30(%rbp), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %edi
callq 0x67d40
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x2c6a5
movq -0x50(%rbp), %rdi
leaq -0x10(%rbp), %rsi
leaq -0x18(%rbp), %rdx
leaq -0x20(%rbp), %rcx
callq 0x67e10
movq -0x28(%rbp), %rdi
movl -0x2c(%rbp), %esi
movl -0x30(%rbp), %edx
movq -0x38(%rbp), %rcx
callq 0x67e80
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x2c66e
movq -0x10(%rbp), %rdi
callq 0x2a8d0
movq -0x18(%rbp), %rdi
callq 0x2a8d0
movq -0x20(%rbp), %rdi
callq 0x2a8d0
jmp 0x2c6dd
movq -0x50(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x67f40
cmpl $0x0, -0x2c(%rbp)
je 0x2c693
xorl %eax, %eax
subl -0x2c(%rbp), %eax
movl %eax, -0x58(%rbp)
jmp 0x2c699
movl -0x30(%rbp), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %edi
movq -0x40(%rbp), %rsi
callq 0x67fd0
movq -0x50(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq 0x7fd1c(%rip), %rdx     # 0xac3d0
xorl %eax, %eax
movl %eax, %ecx
callq 0x29630
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x2c6ca
jmp 0x2c6dd
movl -0x30(%rbp), %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x64(%rax)
movq -0x48(%rbp), %rdi
callq 0x29190
movq -0x40(%rbp), %rdi
callq 0x2a8d0
movq -0x48(%rbp), %rdi
callq 0x2a8d0
movq %fs:0x28, %rax
movq -0x8(%rbp), %rcx
cmpq %rcx, %rax
jne 0x2c707
addq $0x60, %rsp
popq %rbp
retq
callq 0x29420
nopl (%rax)