// File: GouMinghao[P]graspnms/grasp_nms.cpp
// Function: _Pyx_ParseOptionalKeywords(_object*, _object***, _object*, _object**, long, char const*)
static int __Pyx_ParseOptionalKeywords(
    PyObject *kwds,
    PyObject **argnames[],
    PyObject *kwds2,
    PyObject *values[],
    Py_ssize_t num_pos_args,
    const char* function_name)
{
    PyObject *key = 0, *value = 0;
    Py_ssize_t pos = 0;
    PyObject*** name;
    PyObject*** first_kw_arg = argnames + num_pos_args;
    while (PyDict_Next(kwds, &pos, &key, &value)) {
        name = first_kw_arg;
        while (*name && (**name != key)) name++;
        if (*name) {
            values[name-argnames] = value;
            continue;
        }
        name = first_kw_arg;
        #if PY_MAJOR_VERSION < 3
        if (likely(PyString_Check(key))) {
            while (*name) {
                if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key))
                        && _PyString_Eq(**name, key)) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    if ((**argname == key) || (
                            (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key))
                             && _PyString_Eq(**argname, key))) {
                        goto arg_passed_twice;
                    }
                    argname++;
                }
            }
        } else
        #endif
        if (likely(PyUnicode_Check(key))) {
            while (*name) {
                int cmp = (**name == key) ? 0 :
                #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                    (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                #endif
                    PyUnicode_Compare(**name, key);
                if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                if (cmp == 0) {
                    values[name-argnames] = value;
                    break;
                }
                name++;
            }
            if (*name) continue;
            else {
                PyObject*** argname = argnames;
                while (argname != first_kw_arg) {
                    int cmp = (**argname == key) ? 0 :
                    #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3
                        (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 :
                    #endif
                        PyUnicode_Compare(**argname, key);
                    if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad;
                    if (cmp == 0) goto arg_passed_twice;
                    argname++;
                }
            }
        } else
            goto invalid_keyword_type;
        if (kwds2) {
            if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad;
        } else {
            goto invalid_keyword;
        }
    }
    return 0;
arg_passed_twice:
    __Pyx_RaiseDoubleKeywordsError(function_name, key);
    goto bad;
invalid_keyword_type:
    PyErr_Format(PyExc_TypeError,
        "%.200s() keywords must be strings", function_name);
    goto bad;
invalid_keyword:
    PyErr_Format(PyExc_TypeError,
    #if PY_MAJOR_VERSION < 3
        "%.200s() got an unexpected keyword argument '%.200s'",
        function_name, PyString_AsString(key));
    #else
        "%s() got an unexpected keyword argument '%U'",
        function_name, key);
    #endif
bad:
    return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq -0x30(%rbp), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x40(%rbp), %rdx
leaq -0x48(%rbp), %rcx
callq 0xb260
cmpl $0x0, %eax
je 0x15739
movq -0x60(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, (%rcx)
movb %al, -0x75(%rbp)
je 0x15317
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpq -0x40(%rbp), %rax
setne %al
movb %al, -0x75(%rbp)
movb -0x75(%rbp), %al
testb $0x1, %al
jne 0x15320
jmp 0x1532e
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x58(%rbp)
jmp 0x152f4
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
je 0x15358
movq -0x48(%rbp), %rdx
movq -0x28(%rbp), %rax
movq -0x58(%rbp), %rcx
movq -0x18(%rbp), %rsi
subq %rsi, %rcx
sarq $0x3, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x152ce
movq -0x60(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x10000000, %esi       # imm = 0x10000000
callq 0x11dc0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x15385
jmp 0x15704
jmp 0x15387
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
je 0x15541
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpq -0x40(%rbp), %rax
jne 0x153af
xorl %eax, %eax
movl %eax, -0x7c(%rbp)
jmp 0x154e6
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
movl $0x10000000, %esi       # imm = 0x10000000
callq 0x11dc0
cmpl $0x0, %eax
je 0x153ce
jmp 0x153ed
leaq 0x78b3(%rip), %rdi      # 0x1cc88
leaq 0x7082(%rip), %rsi      # 0x1c45e
movl $0x13bc, %edx           # imm = 0x13BC
leaq 0x78b8(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movl 0x20(%rax), %eax
shrl $0x7, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x15407
jmp 0x15426
leaq 0x78ff(%rip), %rdi      # 0x1cd0d
leaq 0x7049(%rip), %rsi      # 0x1c45e
movl $0x13bc, %edx           # imm = 0x13BC
leaq 0x787f(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x88(%rbp)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x10000000, %esi       # imm = 0x10000000
callq 0x11dc0
cmpl $0x0, %eax
je 0x15454
jmp 0x15473
leaq 0x78cd(%rip), %rdi      # 0x1cd28
leaq 0x6ffc(%rip), %rsi      # 0x1c45e
movl $0x13bc, %edx           # imm = 0x13BC
leaq 0x7832(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x40(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x7, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x15487
jmp 0x154a6
leaq 0x78af(%rip), %rdi      # 0x1cd3d
leaq 0x6fc9(%rip), %rsi      # 0x1c45e
movl $0x13bc, %edx           # imm = 0x13BC
leaq 0x77ff(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x88(%rbp), %rax
movq -0x40(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x154c4
movl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x154dd
movq -0x58(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
callq 0xb600
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, -0x64(%rbp)
cmpl $0x0, -0x64(%rbp)
jge 0x1550d
callq 0xb540
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x15508
jmp 0x1550d
jmp 0x1578f
cmpl $0x0, -0x64(%rbp)
jne 0x15530
movq -0x48(%rbp), %rdx
movq -0x28(%rbp), %rax
movq -0x58(%rbp), %rcx
movq -0x18(%rbp), %rsi
subq %rsi, %rcx
sarq $0x3, %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0x15541
movq -0x58(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x58(%rbp)
jmp 0x15387
movq -0x58(%rbp), %rax
cmpq $0x0, (%rax)
je 0x15550
jmp 0x152ce
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
cmpq -0x60(%rbp), %rax
je 0x15700
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
cmpq -0x40(%rbp), %rax
jne 0x15583
xorl %eax, %eax
movl %eax, -0x90(%rbp)
jmp 0x156bd
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rdi
movl $0x10000000, %esi       # imm = 0x10000000
callq 0x11dc0
cmpl $0x0, %eax
je 0x155a2
jmp 0x155c1
leaq 0x77ac(%rip), %rdi      # 0x1cd55
leaq 0x6eae(%rip), %rsi      # 0x1c45e
movl $0x13cc, %edx           # imm = 0x13CC
leaq 0x76e4(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movl 0x20(%rax), %eax
shrl $0x7, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x155db
jmp 0x155fa
leaq 0x778e(%rip), %rdi      # 0x1cd70
leaq 0x6e75(%rip), %rsi      # 0x1c45e
movl $0x13cc, %edx           # imm = 0x13CC
leaq 0x76ab(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
movl $0x10000000, %esi       # imm = 0x10000000
callq 0x11dc0
cmpl $0x0, %eax
je 0x15628
jmp 0x15647
leaq 0x76f9(%rip), %rdi      # 0x1cd28
leaq 0x6e28(%rip), %rsi      # 0x1c45e
movl $0x13cc, %edx           # imm = 0x13CC
leaq 0x765e(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x40(%rbp), %rax
movl 0x20(%rax), %eax
shrl $0x7, %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x1565b
jmp 0x1567a
leaq 0x76db(%rip), %rdi      # 0x1cd3d
leaq 0x6df5(%rip), %rsi      # 0x1c45e
movl $0x13cc, %edx           # imm = 0x13CC
leaq 0x762b(%rip), %rcx      # 0x1cca0
callq 0xb280
movq -0x98(%rbp), %rax
movq -0x40(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x15698
movl $0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0x156b1
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
callq 0xb600
movl %eax, -0x9c(%rbp)
movl -0x9c(%rbp), %eax
movl %eax, -0x90(%rbp)
movl -0x90(%rbp), %eax
movl %eax, -0x74(%rbp)
cmpl $0x0, -0x74(%rbp)
jge 0x156e7
callq 0xb540
cmpq $0x0, %rax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x156e2
jmp 0x156e7
jmp 0x1578f
cmpl $0x0, -0x74(%rbp)
jne 0x156ef
jmp 0x15742
movq -0x70(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x70(%rbp)
jmp 0x15558
jmp 0x15702
jmp 0x15706
jmp 0x15751
cmpq $0x0, -0x20(%rbp)
je 0x15732
movq -0x20(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0xb180
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1572e
jmp 0x15730
jmp 0x1578f
jmp 0x15734
jmp 0x1576f
jmp 0x152ce
movl $0x0, -0x4(%rbp)
jmp 0x15796
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x15a60
jmp 0x1578f
movq 0xd848(%rip), %rax      # 0x22fa0
movq (%rax), %rdi
movq -0x38(%rbp), %rdx
leaq 0x7628(%rip), %rsi      # 0x1cd8e
movb $0x0, %al
callq 0xb290
jmp 0x1578f
movq 0xd82a(%rip), %rax      # 0x22fa0
movq (%rax), %rdi
movq -0x38(%rbp), %rdx
movq -0x40(%rbp), %rcx
leaq 0x7628(%rip), %rsi      # 0x1cdb0
movb $0x0, %al
callq 0xb290
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
addq $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)