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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
push edi
lea eax, [esp + 0x1c]
mov dword [esp + 0x10], ecx
push eax
push dword [ecx + 0x10]
mov esi, edx
call sym.python310.dll_PyUnicode_AsUTF8AndSize
mov edx, eax
add esp, 8
mov dword [esi + 0xc], edx
test edx, edx
je 0x10138ca9
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x10138b62
sub edx, ecx
cmp edx, dword [esp + 0x1c]
je 0x10138bc6
mov esi, dword [sym.python310.dll_PyExc_ValueError]
mov edx, 0x2a
mov edi, dword [0x103fb118]
mov ecx, str.type_name_must_not_contain_null_characters
push 0
push 0
push 0
call fcn.101599e0
mov ebx, eax
push ebx
push esi
push edi
call sym.python310.dll__PyErr_SetObject
add esp, 0x18
test ebx, ebx
je 0x10138ca9
add dword [ebx], 0xffffffff
jne 0x10138ca9
mov eax, dword [ebx + 4]
push ebx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x84]
push 0x103cd4d8
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138ca9
push eax
push edi
call sym.python310.dll_PyDict_Contains
add esp, 8
test eax, eax
js 0x10138ca9
jg 0x10138c5f
mov eax, dword [0x103fb118]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x10138c5f
mov edi, dword [eax + 0x18]
test edi, edi
je 0x10138c5f
push 0x103cd550
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138c54
push dword [eax + 0xc]
push eax
push edi
call sym.python310.dll__PyDict_GetItem_KnownHash
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10138c54
mov ebx, dword [esi + 0x84]
push 0x103cd4d8
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138ca9
push edi
push eax
push ebx
call sym.python310.dll_PyDict_SetItem
add esp, 0xc
test eax, eax
js 0x10138ca9
jmp 0x10138c5f
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
jne 0x10138ca9
mov edi, dword [esi + 0x84]
push 0x103cd4f0
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138cd4
push dword [eax + 0xc]
push eax
push edi
call sym.python310.dll__PyDict_GetItem_KnownHash
add esp, 0xc
test eax, eax
je 0x10138cd4
mov ecx, dword [eax + 4]
test dword [ecx + 0x54], 0x10000000
jne 0x10138cb3
push dword [ecx + 0xc]
push str.type___qualname___must_be_a_str__not__s
push dword [sym.python310.dll_PyExc_TypeError]
call sym.python310.dll_PyErr_Format
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc dword [eax]
push 0x103cd4f0
push dword [esi + 0x84]
mov dword [esi + 0x1b0], eax
call sym.python310.dll__PyDict_DelItemId
add esp, 8
test eax, eax
js 0x10138ca9
jmp 0x10138ced
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
jne 0x10138ca9
mov eax, dword [esi + 0x1a8]
inc dword [eax]
mov dword [esi + 0x1b0], eax
mov edi, dword [esi + 0x84]
push 0x103cc878
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138d8d
push dword [eax + 0xc]
push eax
push edi
call sym.python310.dll__PyDict_GetItem_KnownHash
add esp, 0xc
test eax, eax
je 0x10138d8d
mov ecx, dword [eax + 4]
test dword [ecx + 0x54], 0x10000000
je 0x10138d9c
push 0
push eax
call sym.python310.dll_PyUnicode_AsUTF8AndSize
add esp, 8
mov dword [esp + 0x1c], eax
test eax, eax
je 0x10138ca9
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10138d41
sub ecx, edx
lea ebx, [ecx + 1]
cmp ebx, 0x7fffffff
ja 0x10138d7e
push ebx
push dword [0x103cc524]
call dword [0x103cc528]
mov edi, eax
add esp, 8
test edi, edi
je 0x10138d7e
push ebx
push dword [esp + 0x20]
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov dword [esi + 0x58], edi
jmp 0x10138d9c
call sym.python310.dll_PyErr_NoMemory
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
jne 0x10138ca9
mov edi, dword [esi + 0x84]
push 0x103cc848
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x10138e5b
push dword [eax + 0xc]
push eax
push edi
call sym.python310.dll__PyDict_GetItem_KnownHash
mov ebx, eax
add esp, 0xc
test ebx, ebx
je 0x10138e5b
cmp dword [ebx + 4], sym.python310.dll_PyFunction_Type
jne 0x10138e6a
push 0
push sym.python310.dll_PyStaticMethod_Type
call sym.python310.dll_PyType_GenericAlloc
mov edi, eax
add esp, 8
test edi, edi
je 0x10138ca9
inc dword [ebx]
mov dword [edi + 8], ebx
mov ebx, dword [esi + 0x84]
push 0x103cc848
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
jne 0x10138e17
mov ecx, dword [edi]
dec ecx
mov dword [edi], ecx
jmp 0x10138e2b
push edi
push eax
push ebx
call sym.python310.dll_PyDict_SetItem
mov ecx, dword [edi]
add esp, 0xc
dec ecx
mov dword [edi], ecx
test eax, eax
jns 0x10138e49
test ecx, ecx
jne 0x10138ca9
mov eax, dword [edi + 4]
push edi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
jne 0x10138e6a
mov eax, dword [edi + 4]
push edi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
jmp 0x10138e6a
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
jne 0x10138ca9
mov edx, 0x103cd4a0
mov ecx, esi
call fcn.10138a50
test eax, eax
js 0x10138ca9
mov edx, 0x103cc818
mov ecx, esi
call fcn.10138a50
test eax, eax
js 0x10138ca9
mov ebx, dword [esp + 0x10]
mov edi, dword [esi + 0x1ac]
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x14], ecx
test edi, edi
je 0x10138ff2
mov eax, dword [esi + 4]
mov dword [esp + 0x18], 0
mov ebx, dword [eax + 0x10]
mov eax, dword [edi + 8]
add ebx, esi
mov dword [esp + 0x24], eax
test eax, eax
jle 0x10138fee
mov edx, 0xc
mov dword [esp + 0x1c], edx
nop word [eax + eax]
mov eax, dword [esi + 0x1ac]
mov edi, dword [edx + eax]
mov eax, dword [edi + 4]
test dword [eax + 0x54], 0x10000000
je 0x10138f95
test byte [edi + 0x10], 0x80
jne 0x10138f11
push edi
call sym.python310.dll__PyUnicode_Ready
add esp, 4
cmp eax, 0xffffffff
je 0x10138fde
mov eax, dword [edi + 0x10]
lea ecx, [edi + 0x18]
and eax, 0x60
mov dword [esp + 0x20], ecx
cmp al, 0x60
mov eax, ecx
je 0x10138f27
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x10138f3f
mov ecx, edi
call fcn.1015a6c0
cmp eax, 0xffffffff
je 0x10138fde
mov ecx, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
and eax, 0x60
cmp al, 0x60
je 0x10138f4c
mov ecx, dword [edi + 0x1c]
mov dword [ebx], ecx
test ecx, ecx
je 0x10138ca9
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [ebx + 8], ecx
add edx, 4
mov dword [ebx + 4], 0x10
add ecx, 4
add ebx, 0x14
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edx
cmp eax, dword [esp + 0x24]
jl 0x10138ee0
mov ebx, dword [esp + 0x10]
mov edx, dword [ebx + 0x18]
jmp 0x10138ff2
mov edi, dword [0x103fb118]
mov edx, 0x28
mov esi, dword [sym.python310.dll_PyExc_TypeError]
mov ecx, str.bad_argument_type_for_built_in_operation
push 0
push 0
push 0
call fcn.101599e0
push eax
push esi
push edi
mov dword [esp + 0x3c], eax
call sym.python310.dll__PyErr_SetObject
mov ecx, dword [esp + 0x3c]
add esp, 0x18
test ecx, ecx
je 0x10138fde
add dword [ecx], 0xffffffff
jne 0x10138fde
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov dword [ebx], 0
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x10]
cmp dword [ebx + 0x24], 0
je 0x10139012
cmp dword [edx + 0x14], 0
mov eax, ecx
mov edi, 0xfffffffc
cmovne eax, edi
add ecx, 4
mov dword [esi + 0x90], eax
mov edx, dword [ebx + 0x18]
cmp dword [ebx + 0x28], 0
mov edi, ecx
je 0x10139022
mov dword [esi + 0x68], ecx
add ecx, 4
jmp 0x10139025
mov edi, dword [esi + 0x68]
mov dword [esi + 0x10], ecx
mov eax, dword [edx + 0x14]
mov dword [esi + 0x14], eax
mov eax, dword [esi + 4]
mov eax, dword [eax + 0x10]
add eax, esi
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0x90]
test edi, edi
je 0x10139059
test eax, eax
je 0x10139050
mov dword [esi + 0x7c], str.__dict__
jmp 0x10139073
mov dword [esi + 0x7c], str.__weakref__
jmp 0x1013906d
test eax, eax
je 0x10139066
mov dword [esi + 0x7c], str.__dict__
jmp 0x10139073
mov dword [esi + 0x7c], 0
cmp dword [ebx + 0x20], 0
jle 0x1013909c
mov eax, dword [ebx + 0x18]
cmp dword [eax + 0x20], 0
jne 0x10139089
cmp dword [eax + 0x48], 0
jne 0x10139089
mov dword [esi + 0x48], sym.python310.dll_PyObject_GenericGetAttr
cmp dword [eax + 0x24], 0
jne 0x1013909c
cmp dword [eax + 0x4c], 0
jne 0x1013909c
mov dword [esi + 0x4c], sym.python310.dll_PyObject_GenericSetAttr
mov edi, dword [esi + 0x84]
push 0x103cc7b8
call sym.python310.dll__PyUnicode_FromId
add esp, 4
test eax, eax
je 0x1013911b
push dword [eax + 0xc]
push eax
push edi
call sym.python310.dll__PyDict_GetItem_KnownHash
add esp, 0xc
test eax, eax
je 0x1013911b
mov ecx, dword [eax + 4]
cmp ecx, sym.python310.dll_PyCell_Type
je 0x101390da
push ecx
push str.__classcell___must_be_a_nonlocal_cell__not__.200R
jmp 0x10138c9b
mov ecx, dword [eax + 8]
inc dword [esi]
mov dword [eax + 8], esi
test ecx, ecx
je 0x101390f7
add dword [ecx], 0xffffffff
jne 0x101390f7
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
push 0x103cc7b8
push dword [esi + 0x84]
call sym.python310.dll__PyDict_DelItemId
add esp, 8
test eax, eax
js 0x10138ca9
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x103fb118]
cmp dword [eax + 0x34], 0
jne 0x10138ca9
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret