Function at 0x22dc3f9b0
Capabilities:
Link many functions at runtime

Disassembly:
push r14
push r13
push r12
push rdi
push rbx
sub rsp, 0x40
mov r13, rcx
test rcx, rcx
je 0x22dc40568
mov r14, qword [0x22ddb2720]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rcx, qword [0x22ddb2d70]
mov edx, 0x308
call fcn.22dc1b220
mov rcx, r14
mov rbx, rax
lea r12, [rax + 0x10]
mov qword [rax + 8], 1
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdi, [rbx + 0x18]
mov rcx, r12
xor eax, eax
and rdi, 0xfffffffffffffff8
mov rdx, r13
mov qword [rbx + 0x300], 0
sub rcx, rdi
add ecx, 0x2f8
shr ecx, 3
rep stosq qword [rdi], rax
mov qword [rbx + 0x10], r13
lea rcx, [rsp + 0x20]
call fcn.22dc3f3e0
movdqu xmm0, xmmword [rsp + 0x20]
mov rbx, qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, r13
lea rdx, [0x22dd9911d]
movups xmmword [r12 + 0x250], xmm0
mov rax, qword [rsp + 0x30]
mov qword [r12 + 0x260], rax
call rbx
test rax, rax
je 0x22dc3fa9a
lea rdx, [0x22dd9912e]
mov rcx, r13
call rbx
test rax, rax
je 0x22dc3fa9a
lea rdx, [0x22dd99140]
mov rcx, r13
call rbx
test rax, rax
je 0x22dc3fa9a
mov qword [0x22ddfad60], 0x10
lea r14, str._Py_BuildValue_SizeT
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 8], rax
test rax, rax
je 0x22dc40c00
lea r14, str.PyTuple_New
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x10], rax
test rax, rax
je 0x22dc40bf0
lea r14, str.PyTuple_Size
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x18], rax
test rax, rax
je 0x22dc40be0
lea r14, str.PyTuple_GetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x20], rax
test rax, rax
je 0x22dc40bd0
lea r14, str.PyTuple_SetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x28], rax
test rax, rax
je 0x22dc40bc0
lea r14, str._Py_NoneStruct
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x30], rax
test rax, rax
je 0x22dc40bb0
lea r14, str.PyType_Ready
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x38], rax
test rax, rax
je 0x22dc40ba0
lea r14, str.PyType_GenericNew
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x40], rax
test rax, rax
je 0x22dc40b90
lea r14, [0x22dd991cb]
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x48], rax
test rax, rax
je 0x22dc40b80
lea r14, str.PyList_New
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x50], rax
test rax, rax
je 0x22dc40b70
lea r14, str.PyList_Size
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x58], rax
test rax, rax
je 0x22dc40b60
lea r14, str.PyList_GetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x60], rax
test rax, rax
je 0x22dc40b50
lea r14, str.PyList_SetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x68], rax
test rax, rax
je 0x22dc40b40
lea r14, str.PyObject_Call
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x70], rax
test rax, rax
je 0x22dc40b30
lea r14, str.PyObject_IsTrue
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x78], rax
test rax, rax
je 0x22dc40b20
lea r14, str.PyObject_GetAttrString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x80], rax
test rax, rax
je 0x22dc40b10
lea r14, str.PyObject_SetAttrString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x88], rax
test rax, rax
je 0x22dc40b00
lea r14, str.PyObject_Dir
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x90], rax
test rax, rax
je 0x22dc40af0
lea r14, str.PyObject_Str
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x98], rax
test rax, rax
je 0x22dc40ae0
lea r14, str.PyObject_GetIter
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xa0], rax
test rax, rax
je 0x22dc40ad0
lea r14, str.PyObject_GetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xa8], rax
test rax, rax
je 0x22dc40ac0
lea r14, str.PyObject_SetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xb0], rax
test rax, rax
je 0x22dc40ab0
lea r14, str.PyObject_RichCompareBool
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xb8], rax
test rax, rax
je 0x22dc40aa0
lea rdx, str.PyObject_GetBuffer
mov rcx, r13
lea r14, str.PyIter_Next
call rbx
lea rdx, str.PyBuffer_Release
mov rcx, r13
mov qword [r12 + 0xc0], rax
call rbx
mov rdx, r14
mov rcx, r13
mov qword [r12 + 0xc8], rax
call rbx
mov qword [r12 + 0xd8], rax
test rax, rax
je 0x22dc40a90
lea r14, str.PyNumber_Long
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xe0], rax
test rax, rax
je 0x22dc40a80
lea r14, str.PyLong_AsLongLong
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xe8], rax
test rax, rax
je 0x22dc40a70
lea r14, str.PyLong_AsUnsignedLongLong
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xf0], rax
test rax, rax
je 0x22dc40a60
lea r14, str.PyFloat_AsDouble
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0xf8], rax
test rax, rax
je 0x22dc40a50
lea r14, str.PyBool_FromLong
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x100], rax
test rax, rax
je 0x22dc40a40
lea r14, str.PyBool_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x108], rax
test rax, rax
je 0x22dc40a30
lea r14, str.PyFloat_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x110], rax
test rax, rax
je 0x22dc40a20
lea r14, str.PyComplex_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x118], rax
test rax, rax
je 0x22dc40a10
lea r14, str.PyCapsule_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x120], rax
test rax, rax
je 0x22dc40a00
lea r14, str.PyTuple_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x128], rax
test rax, rax
je 0x22dc409f0
lea r14, str.PyList_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x130], rax
test rax, rax
je 0x22dc409e0
lea r14, str.PyUnicode_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x140], rax
test rax, rax
je 0x22dc409d0
lea r14, str.PySuper_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x148], rax
test rax, rax
je 0x22dc409c0
lea rdx, str.PyBytes_Type
mov rcx, r13
call rbx
mov qword [r12 + 0x138], rax
test rax, rax
je 0x22dc40990
lea rdx, str.PyUnicode_FromString
mov rcx, r13
call rbx
mov qword [r12 + 0x188], rax
test rax, rax
je 0x22dc40960
lea r14, str.PyType_IsSubtype
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x150], rax
test rax, rax
je 0x22dc40950
lea rdx, str.PyComplex_AsCComplex
mov rcx, r13
call rbx
mov qword [r12 + 0x158], rax
test rax, rax
je 0x22dc40900
lea rdx, str.PyUnicode_CompareWithASCIIString
mov rcx, r13
call rbx
mov qword [r12 + 0x190], rax
test rax, rax
je 0x22dc408d0
lea rdx, str.PyUnicode_AsUTF8String
mov rcx, r13
call rbx
mov qword [r12 + 0x170], rax
test rax, rax
je 0x22dc40880
lea rdx, str.PyBytes_AsStringAndSize
mov rcx, r13
call rbx
lea rdx, str.PyBytes_FromStringAndSize
mov rcx, r13
mov qword [r12 + 0x180], rax
call rbx
cmp qword [r12 + 0x180], 0
mov qword [r12 + 0x178], rax
je 0x22dc40830
lea r14, str.PyDict_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1a0], rax
test rax, rax
je 0x22dc40820
lea r14, str.PyDict_New
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1a8], rax
test rax, rax
je 0x22dc40810
lea r14, str.PyDict_Size
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1b0], rax
test rax, rax
je 0x22dc40800
lea r14, str.PyDict_GetItemString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1b8], rax
test rax, rax
je 0x22dc407f0
lea r14, str.PyDict_SetItemString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1c0], rax
test rax, rax
je 0x22dc407e0
lea r14, str.PyDict_GetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1c8], rax
test rax, rax
je 0x22dc407d0
lea r14, str.PyDict_SetItem
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1d0], rax
test rax, rax
je 0x22dc407c0
lea r14, str.PyDict_Keys
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1d8], rax
test rax, rax
je 0x22dc407b0
lea r14, str.PyDict_Values
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1e0], rax
test rax, rax
je 0x22dc407a0
lea r14, str.PyDict_Contains
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1e8], rax
test rax, rax
je 0x22dc40790
lea r14, str.PyErr_Clear
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x1f8], rax
test rax, rax
je 0x22dc40780
lea r14, str.PyErr_SetString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x200], rax
test rax, rax
je 0x22dc40770
lea r14, str.PyErr_Occurred
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x208], rax
test rax, rax
je 0x22dc40760
lea r14, str.PyExc_TypeError
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x210], rax
test rax, rax
je 0x22dc40748
mov rax, qword [rax]
lea r14, str.PyCapsule_New
mov rcx, r13
mov rdx, r14
mov qword [r12 + 0x210], rax
call rbx
mov qword [r12 + 0x218], rax
test rax, rax
je 0x22dc40738
lea r14, str.PyCapsule_GetPointer
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x220], rax
test rax, rax
je 0x22dc40728
lea r14, str.PyImport_ImportModule
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x228], rax
test rax, rax
je 0x22dc40718
lea r14, str.PyEval_GetBuiltins
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x230], rax
test rax, rax
je 0x22dc40708
mov rax, qword [rax]
mov qword [r12 + 0x2e8], rax
lea rax, [0x22dc3aaf0]
mov qword [r12 + 0x1f0], rax
mov rax, r12
add rsp, 0x40
pop rbx
pop rdi
pop r12
pop r13
pop r14
ret
lea rcx, [0x22dd9a0e0]
call fcn.22dc17330
nop dword [rax]
mov rcx, r14
call fcn.22dc3f780
mov rax, qword [r12 + 0x2e8]
jmp 0x22dc40539
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc40248
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc40228
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc40208
mov rcx, r14
call fcn.22dc3f780
mov rax, qword [r12 + 0x210]
jmp 0x22dc401dd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc401bd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4019d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4017d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4015d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4013d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4011d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc400fd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc400dd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc400bd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4009d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4007d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4005d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4003d
lea r14, str.PyString_AsStringAndSize
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x180], rax
test rax, rax
je 0x22dc40c20
lea r14, str.PyString_FromStringAndSize
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x178], rax
test rax, rax
jne 0x22dc4001d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc4001d
lea rdx, str.PyUnicodeUCS4_AsUTF8String
mov rcx, r13
call rbx
mov qword [r12 + 0x170], rax
test rax, rax
jne 0x22dc3ffe6
lea r14, str.PyUnicodeUCS2_AsUTF8String
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x170], rax
test rax, rax
jne 0x22dc3ffe6
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ffe6
lea r14, str.PyString_AsString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x198], rax
test rax, rax
jne 0x22dc3ffc9
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ffc9
lea r14, str.PyComplex_RealAsDouble
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x160], rax
test rax, rax
je 0x22dc40c10
lea r14, str.PyComplex_ImagAsDouble
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x168], rax
test rax, rax
jne 0x22dc3ffac
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ffac
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ff8f
lea r14, str.PyString_FromString
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x188], rax
test rax, rax
jne 0x22dc3ff6f
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ff6f
lea r14, str.PyString_Type
mov rcx, r13
mov rdx, r14
call rbx
mov qword [r12 + 0x138], rax
test rax, rax
jne 0x22dc3ff52
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ff52
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ff35
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3ff15
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fef5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fed5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3feb5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fe95
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fe75
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fe55
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fe35
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fe15
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fdf5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fdd5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fdb5
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fd95
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fd4d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fd2d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fd0d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fced
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fccd
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fcad
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fc8d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fc6d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fc4d
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fc30
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fc13
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fbf6
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fbd9
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fbbc
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb9f
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb82
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb65
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb48
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb2b
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fb0e
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3faf1
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fad4
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc3fab7
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc40920
mov rcx, r14
call fcn.22dc3f780
jmp 0x22dc40850