Function at 0x10012000
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x11c
mov eax, dword [0x10029004]
xor eax, esp
mov dword [esp + 0x118], eax
push ebx
push esi
push edi
push 0x60
mov edi, ecx
mov dword [esp + 0x18], edx
xor ebx, ebx
mov dword [esp + 0x38], edi
xor ecx, ecx
mov dword [esp + 0x2c], 0xffffffff
lea eax, [esp + 0x5c]
mov dword [esp + 0x24], ecx
push ebx
xor esi, esi
mov dword [esp + 0x18], ecx
push eax
mov dword [esp + 0x30], esi
call sub.VCRUNTIME140.dll_memset
mov eax, dword [sym.imp.python39.dll_Py_OptimizeFlag]
add esp, 0xc
cmp dword [eax], ebx
jne 0x10012084
cmp dword [edi + 0x3c], ebx
jg 0x10012084
mov eax, dword [sym.imp.python39.dll_PyExc_AssertionError]
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_SetNone]
mov esi, dword [0x10025f60]
add esp, 4
mov edi, 0x2d2
mov edx, 0x6076
jmp 0x10012a31
mov edi, dword [edi + 4]
mov ecx, edi
mov edx, dword [0x1002bfc4]
call fcn.1001d900
test eax, eax
je 0x10012109
mov eax, dword [esp + 0x34]
cmp eax, dword [sym.imp.python39.dll__Py_NoneStruct]
je 0x100120fe
test edx, edx
jne 0x100120bf
mov eax, dword [sym.imp.python39.dll_PyExc_SystemError]
push str.Missing_type_object
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_SetString]
add esp, 8
jmp 0x100120e5
mov ecx, edi
call fcn.1001d900
test eax, eax
jne 0x100120fa
push dword [edx + 0xc]
mov eax, dword [sym.imp.python39.dll_PyExc_TypeError]
push dword [edi + 0xc]
push str.Cannot_convert__.200s_to__.200s
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_Format]
add esp, 0x10
mov esi, dword [0x10025f60]
mov edi, 0x2d5
mov edx, 0x608d
jmp 0x10012a31
mov eax, dword [esp + 0x34]
inc dword [eax]
lea ecx, [eax + 0x60]
mov dword [esp + 0x20], eax
jmp 0x10012120
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xb8]
call fcn.10013690
lea ecx, [esp + 0xb8]
mov dword [esp + 0x38], ecx
mov eax, dword [ecx]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x50], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0x54], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x3c], ebx
cmp eax, dword [sym.imp.python39.dll_PyList_Type]
je 0x1001219c
cmp eax, dword [sym.imp.python39.dll_PyTuple_Type]
je 0x1001219c
or eax, 0xffffffff
push edi
mov dword [esp + 0x30], eax
call dword [sym.imp.python39.dll_PyObject_GetIter]
mov edi, eax
add esp, 4
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1001217c
mov esi, dword [0x10025f60]
mov edi, 0x2ea
mov edx, 0x60ed
jmp 0x10012a31
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0x70]
mov dword [esp + 0x1c], ecx
test ecx, ecx
jne 0x100121f2
mov edi, 0x2ea
mov dword [esp + 0x10], 0x60ef
jmp 0x10012a01
inc dword [edi]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
nop word [eax + eax]
test ecx, ecx
jne 0x100121f2
mov eax, dword [edi + 4]
cmp eax, dword [sym.imp.python39.dll_PyList_Type]
mov ecx, dword [edi + 8]
mov eax, dword [esp + 0x2c]
jne 0x100121dd
cmp eax, ecx
jge 0x10012685
mov ebx, dword [edi + 0xc]
mov ebx, dword [ebx + eax*4]
inc dword [ebx]
inc eax
mov dword [esp + 0x2c], eax
jmp 0x10012202
cmp eax, ecx
jge 0x10012685
mov ebx, dword [edi + eax*4 + 0xc]
inc dword [ebx]
inc eax
mov dword [esp + 0x2c], eax
jmp 0x10012202
push edi
call ecx
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x10012846
mov eax, esi
mov esi, ebx
mov dword [esp + 0x24], esi
test eax, eax
je 0x1001221d
add dword [eax], 0xffffffff
jne 0x1001221d
push eax
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov eax, dword [esp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x30], eax
inc eax
push esi
mov dword [esp + 0x40], eax
call dword [sym.imp.python39.dll_PyIndex_Check]
add esp, 4
test eax, eax
je 0x10012326
mov ecx, esi
call fcn.100205a0
mov esi, eax
cmp esi, 0xffffffff
jne 0x1001225a
call dword [sym.imp.python39.dll_PyErr_Occurred]
test eax, eax
jne 0x100126eb
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + eax*4 + 0x48]
mov edi, dword [ecx + eax*4 + 0x28]
mov ecx, dword [ecx + eax*4 + 8]
mov dword [esp + 0x18], edx
test esi, esi
jns 0x10012278
add esi, ecx
xor eax, eax
test esi, esi
setns al
test esi, esi
js 0x1001228a
xor eax, eax
cmp esi, ecx
setl al
test eax, eax
jne 0x100122b2
push dword [esp + 0x30]
mov ecx, dword [0x1002bb4c]
mov edx, str.Index_out_of_bounds__axis__d_
call fcn.10013d30
add esp, 4
cmp eax, 0xffffffff
je 0x100126fd
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
imul edi, esi
test eax, eax
jns 0x100122c3
add dword [esp + 0x54], edi
jmp 0x100122ca
add dword [esp + eax*4 + 0x98], edi
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
test edx, edx
js 0x100121b0
cmp dword [esp + 0x10], ebx
jne 0x100122f5
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
add eax, edx
mov dword [esp + 0x54], eax
jmp 0x100121b0
push dword [esp + 0x30]
mov ecx, dword [0x1002bb4c]
mov edx, str.All_dimensions_preceding_dimension__d_must_be_indexed_and_not_sliced
call fcn.10013d30
add esp, 4
cmp eax, 0xffffffff
je 0x1001270f
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x100121b0
cmp esi, dword [sym.imp.python39.dll__Py_NoneStruct]
jne 0x10012357
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
mov dword [esp + eax*4 + 0x58], 1
mov dword [esp + eax*4 + 0x78], ebx
mov dword [esp + eax*4 + 0x98], 0xffffffff
inc eax
mov dword [esp + 0x10], eax
jmp 0x100121b0
mov eax, dword [esi + 4]
push dword [0x1002b864]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x1001236c
call eax
jmp 0x10012372
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10012834
xor edx, edx
cmp ebx, dword [sym.imp.python39.dll__Py_TrueStruct]
sete dl
xor ecx, ecx
cmp ebx, dword [sym.imp.python39.dll__Py_FalseStruct]
sete cl
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
sete al
or ecx, eax
or ecx, edx
jne 0x100123b2
push ebx
call dword [sym.imp.python39.dll_PyObject_IsTrue]
add esp, 4
mov edx, eax
test edx, edx
js 0x10012822
jne 0x100123ee
add dword [ebx], 0xffffffff
jne 0x100123cb
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov dword [esp + 0x18], 0
mov edi, dword [sym.imp.python39.dll__Py_Dealloc]
mov eax, dword [esi + 4]
push dword [0x1002b8d0]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x10012421
call eax
jmp 0x10012427
mov ecx, ebx
call fcn.100205a0
mov ecx, eax
mov dword [esp + 0x18], ecx
cmp ecx, 0xffffffff
jne 0x1001240e
call dword [sym.imp.python39.dll_PyErr_Occurred]
test eax, eax
jne 0x1001275c
add dword [ebx], 0xffffffff
jne 0x100123d3
mov edi, dword [sym.imp.python39.dll__Py_Dealloc]
push ebx
call edi
add esp, 4
jmp 0x100123d9
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x10012810
xor edx, edx
cmp ebx, dword [sym.imp.python39.dll__Py_TrueStruct]
sete dl
xor ecx, ecx
cmp ebx, dword [sym.imp.python39.dll__Py_FalseStruct]
sete cl
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
sete al
or ecx, eax
or ecx, edx
jne 0x10012467
push ebx
call dword [sym.imp.python39.dll_PyObject_IsTrue]
add esp, 4
mov edx, eax
test edx, edx
js 0x100127fe
jne 0x10012486
add dword [ebx], 0xffffffff
jne 0x1001247c
push ebx
call edi
add esp, 4
mov dword [esp + 0x40], 0
jmp 0x100124b1
mov ecx, ebx
call fcn.100205a0
mov ecx, eax
mov dword [esp + 0x40], ecx
cmp ecx, 0xffffffff
jne 0x100124a6
call dword [sym.imp.python39.dll_PyErr_Occurred]
test eax, eax
jne 0x1001276e
add dword [ebx], 0xffffffff
jne 0x100124b1
push ebx
call edi
add esp, 4
mov eax, dword [esi + 4]
push dword [0x1002b9cc]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x100124c6
call eax
jmp 0x100124cc
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100127ec
xor edx, edx
cmp ebx, dword [sym.imp.python39.dll__Py_TrueStruct]
sete dl
xor ecx, ecx
cmp ebx, dword [sym.imp.python39.dll__Py_FalseStruct]
sete cl
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
sete al
or ecx, eax
or ecx, edx
jne 0x1001250c
push ebx
call dword [sym.imp.python39.dll_PyObject_IsTrue]
add esp, 4
mov edx, eax
test edx, edx
js 0x100127da
jne 0x10012525
add dword [ebx], 0xffffffff
jne 0x10012521
push ebx
call edi
add esp, 4
xor edi, edi
jmp 0x10012550
mov ecx, ebx
call fcn.100205a0
mov edi, eax
cmp edi, 0xffffffff
jne 0x10012541
call dword [sym.imp.python39.dll_PyErr_Occurred]
test eax, eax
jne 0x10012780
add dword [ebx], 0xffffffff
jne 0x10012550
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov eax, dword [esi + 4]
push dword [0x1002b864]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x10012565
call eax
jmp 0x1001256b
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100127c8
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
setne al
add dword [ebx], 0xffffffff
mov dword [esp + 0x4c], eax
jne 0x10012596
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov eax, dword [esi + 4]
push dword [0x1002b8d0]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x100125ab
call eax
jmp 0x100125b1
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100127b6
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
setne al
add dword [ebx], 0xffffffff
mov dword [esp + 0x48], eax
jne 0x100125dc
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov eax, dword [esi + 4]
push dword [0x1002b9cc]
push esi
mov eax, dword [eax + 0x48]
test eax, eax
je 0x100125f1
call eax
jmp 0x100125f7
call dword [sym.imp.python39.dll_PyObject_GetAttr]
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x100127a4
xor eax, eax
cmp ebx, dword [sym.imp.python39.dll__Py_NoneStruct]
setne al
add dword [ebx], 0xffffffff
mov dword [esp + 0x44], eax
jne 0x10012626
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
mov eax, dword [esp + 0x48]
add esp, 4
mov ecx, dword [esp + 0x38]
xor ebx, ebx
push 1
push eax
push dword [esp + 0x50]
lea eax, [esp + 0x34]
push dword [esp + 0x58]
push edi
push dword [esp + 0x54]
mov edi, dword [esp + 0x28]
push dword [esp + 0x30]
push eax
mov eax, dword [esp + 0x50]
push edi
push eax
push dword [ecx + eax*4 + 0x48]
mov edx, dword [ecx + eax*4 + 8]
push dword [ecx + eax*4 + 0x28]
lea ecx, [esp + 0x80]
call fcn.10012a90
add esp, 0x30
cmp eax, 0xffffffff
je 0x10012792
inc edi
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
jmp 0x100121b0
xor ebx, ebx
add dword [edi], 0xffffffff
jne 0x10012696
push edi
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov esi, dword [esp + 0x34]
mov edx, dword [0x1002bfc4]
mov ecx, dword [esi + 4]
call fcn.1001d900
test eax, eax
je 0x10012959
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x10012884
mov eax, dword [sym.imp.python39.dll_PyExc_UnboundLocalError]
push str.memviewsliceobj
push str.local_variable__s_referenced_before_assignment
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_Format]
mov esi, dword [0x10025f60]
add esp, 0xc
mov edi, 0x30a
mov edx, 0x6217
jmp 0x10012a31
mov edi, 0x2ef
mov dword [esp + 0x10], 0x6126
jmp 0x10012a01
mov dword [esp + 0x28], 0x340
mov dword [esp + 0x18], 0x62be
jmp 0x1001271f
mov dword [esp + 0x28], 0x383
mov dword [esp + 0x18], 0x653b
mov edi, dword [0x10025f60]
call dword [sym.imp.python39.dll_PyGILState_Ensure]
mov edx, dword [esp + 0x18]
mov ecx, str.View.MemoryView.slice_memviewslice
push edi
push dword [esp + 0x2c]
mov esi, eax
call fcn.1001e390
push esi
call dword [sym.imp.python39.dll_PyGILState_Release]
add esp, 0xc
mov dword [esp + 0x10], 0x612f
mov edi, 0x2ec
jmp 0x10012a01
mov edi, 0x2f8
mov dword [esp + 0x10], 0x6182
jmp 0x10012a01
mov edi, 0x2f9
mov dword [esp + 0x10], 0x6198
jmp 0x10012a01
mov edi, 0x2fa
mov dword [esp + 0x10], 0x61ae
jmp 0x10012a01
mov edi, 0x300
mov dword [esp + 0x10], 0x61e5
jmp 0x10012a01
mov edi, 0x2fe
mov dword [esp + 0x10], 0x61d8
jmp 0x10012a01
mov edi, 0x2fd
mov dword [esp + 0x10], 0x61cb
jmp 0x10012a01
mov edi, 0x2fc
mov dword [esp + 0x10], 0x61be
jmp 0x10012a01
mov edi, 0x2fa
mov dword [esp + 0x10], 0x61aa
jmp 0x10012a01
mov edi, 0x2fa
mov dword [esp + 0x10], 0x61a8
jmp 0x10012a01
mov edi, 0x2f9
mov dword [esp + 0x10], 0x6194
jmp 0x10012a01
mov edi, 0x2f9
mov dword [esp + 0x10], 0x6192
jmp 0x10012a01
mov edi, 0x2f8
mov dword [esp + 0x10], 0x617e
jmp 0x10012a01
mov edi, 0x2f8
mov dword [esp + 0x10], 0x617c
jmp 0x10012a01
call dword [sym.imp.python39.dll_PyErr_Occurred]
test eax, eax
je 0x10012687
mov edx, dword [sym.imp.python39.dll_PyExc_StopIteration]
mov ecx, eax
mov edx, dword [edx]
call fcn.1001d960
test eax, eax
je 0x10012872
call dword [sym.imp.python39.dll_PyErr_Clear]
jmp 0x10012687
mov edi, 0x2ea
mov dword [esp + 0x10], 0x610a
jmp 0x10012a01
push dword [esi + 0x58]
mov ecx, 0x1a
lea esi, [esp + 0x54]
push dword [eax + 0xd0]
sub esp, 0x68
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x90]
mov ecx, dword [esp + 0x80]
mov edx, dword [esi + 0xcc]
call fcn.100131e0
mov edi, eax
add esp, 0x70
mov dword [esp + 0x14], edi
test edi, edi
jne 0x100128d8
mov esi, dword [0x10025f60]
mov edi, 0x309
mov edx, 0x6229
jmp 0x10012a31
cmp edi, dword [sym.imp.python39.dll__Py_NoneStruct]
je 0x10012a4a
mov edx, dword [0x1002bd30]
test edx, edx
jne 0x10012915
mov eax, dword [sym.imp.python39.dll_PyExc_SystemError]
push str.Missing_type_object
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_SetString]
add esp, 8
mov dword [esp + 0x10], 0x622b
mov edi, 0x309
jmp 0x10012a01
mov esi, dword [edi + 4]
mov ecx, esi
call fcn.1001d900
test eax, eax
jne 0x10012950
push dword [edx + 0xc]
mov eax, dword [sym.imp.python39.dll_PyExc_TypeError]
push dword [esi + 0xc]
push str.Cannot_convert__.200s_to__.200s
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_Format]
add esp, 0x10
mov dword [esp + 0x10], 0x622b
mov edi, 0x309
jmp 0x10012a01
mov esi, dword [esp + 0x20]
jmp 0x10012a4a
push dword [esi + 0x58]
mov ecx, 0x1a
lea esi, [esp + 0x54]
push 0
sub esp, 0x68
xor edx, edx
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x80]
call fcn.100131e0
mov edi, eax
add esp, 0x70
mov dword [esp + 0x14], edi
test edi, edi
jne 0x1001299e
mov esi, dword [0x10025f60]
mov edi, 0x30e
mov edx, 0x624a
jmp 0x10012a31
cmp edi, dword [sym.imp.python39.dll__Py_NoneStruct]
je 0x10012a42
mov edx, dword [0x1002bd30]
test edx, edx
jne 0x100129cb
mov eax, dword [sym.imp.python39.dll_PyExc_SystemError]
push str.Missing_type_object
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_SetString]
add esp, 8
jmp 0x100129f4
mov esi, dword [edi + 4]
mov ecx, esi
call fcn.1001d900
test eax, eax
jne 0x10012a42
push dword [edx + 0xc]
mov eax, dword [sym.imp.python39.dll_PyExc_TypeError]
push dword [esi + 0xc]
push str.Cannot_convert__.200s_to__.200s
push dword [eax]
call dword [sym.imp.python39.dll_PyErr_Format]
add esp, 0x10
mov edi, 0x30e
mov dword [esp + 0x10], 0x6254
mov esi, dword [0x10025f60]
mov edx, dword [esp + 0x14]
add dword [edx], 0xffffffff
jne 0x10012a1a
push edx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
test ebx, ebx
je 0x10012a2d
add dword [ebx], 0xffffffff
jne 0x10012a2d
push ebx
call dword [sym.imp.python39.dll__Py_Dealloc]
add esp, 4
mov edx, dword [esp + 0x10]
push esi
push edi
mov ecx, str.View.MemoryView.memview_slice
call fcn.1001e390
add esp, 8
xor edi, edi
mov esi, dword [esp + 0x20]
test esi, esi
je 0x10012a5d
add dword [esi], 0xffffffff
mov ebx, dword [sym.imp.python39.dll__Py_Dealloc]
jne 0x10012a63
push esi
call ebx
add esp, 4
jmp 0x10012a63
mov ebx, dword [sym.imp.python39.dll__Py_Dealloc]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x10012a76
add dword [ecx], 0xffffffff
jne 0x10012a76
push ecx
call ebx
add esp, 4
mov ecx, dword [esp + 0x124]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10020671
mov esp, ebp
pop ebp
ret