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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x278
mov eax, dword [0x103b1004]
xor eax, esp
mov dword [esp + 0x274], eax
mov edx, dword [ebp + 8]
push esi
xor esi, esi
mov dword [esp + 0xc], 0
push edi
mov eax, dword [edx + 4]
mov dword [esp + 0x14], esi
test dword [eax + 0x54], 0x10000000
je 0x101610f4
mov ecx, dword [edx + 8]
test ecx, ecx
je 0x101610f4
mov eax, dword [edx + 0x10]
mov dword [esp + 0x20], eax
test al, 0x20
je 0x10160d06
test al, 0x40
mov edi, 0x18
mov eax, 0x24
cmove edi, eax
add edi, edx
jmp 0x10160d09
mov edi, dword [edx + 0x24]
movaps xmm0, xmmword [0x1039b100]
mov eax, pe_nt_image_headers32
cmp ecx, eax
movaps xmmword [esp + 0x30], xmm0
push 0x200
cmovg ecx, eax
movaps xmmword [esp + 0x54], xmm0
lea eax, [esp + 0x7c]
mov dword [esp + 0x20], ecx
push 0xff
push eax
movaps xmmword [esp + 0x4c], xmm0
movaps xmmword [esp + 0x6c], xmm0
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [esp + 0x2c]
add esp, 0xc
mov eax, ecx
and al, 0x1c
cmp al, 4
jne 0x10160d5a
movzx eax, byte [edi]
jmp 0x10160d69
mov eax, ecx
and al, 0x1c
cmp al, 8
jne 0x10160d67
movzx eax, word [edi]
jmp 0x10160d69
mov eax, dword [edi]
xor edx, edx
test eax, eax
setne dl
mov dword [esp + 0x18], edx
mov edx, 1
cmp dword [esp + 0x1c], edx
jle 0x10160e2b
mov eax, ecx
and al, 0x1c
cmp al, 4
jne 0x10160d91
movzx ecx, byte [edx + edi]
jmp 0x10160da2
mov eax, ecx
and al, 0x1c
cmp al, 8
jne 0x10160d9f
movzx ecx, word [edi + edx*2]
jmp 0x10160da2
mov ecx, dword [edi + edx*4]
test ecx, ecx
je 0x10160df9
cmp ecx, 0xffff
ja 0x10160df9
cmp ecx, 0xfffe
je 0x10160de8
mov eax, ecx
lea esi, [esp + 0x50]
shr eax, 0xb
add esi, eax
shr ecx, 7
cmp byte [esi], 0xff
jne 0x10160dd4
mov eax, dword [esp + 0x10]
mov byte [esi], al
inc eax
mov dword [esp + 0x10], eax
cmp byte [esp + ecx + 0x78], 0xff
jne 0x10160de8
mov eax, dword [esp + 0x14]
mov byte [esp + ecx + 0x78], al
inc eax
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x20]
inc edx
cmp edx, dword [esp + 0x1c]
jl 0x10160d83
mov ecx, dword [esp + 0x18]
jmp 0x10160dfe
mov ecx, 1
mov eax, dword [esp + 0x10]
cmp eax, 0xff
jge 0x10160e39
mov esi, dword [esp + 0x14]
cmp esi, 0xff
jge 0x10160e39
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [esp + 0x50]
movaps xmmword [esp + 0x30], xmm0
jmp 0x10160e31
mov ecx, dword [esp + 0x18]
xor eax, eax
test ecx, ecx
je 0x10160f6d
inc dword [0x103cc0c4]
mov edx, 0x103d1960
mov ecx, 0x103cc0c4
call fcn.100f25a0
mov dword [esp + 0x10], eax
test eax, eax
je 0x1016110d
xor esi, esi
mov dword [esp + 0x18], esi
cmp dword [esp + 0x1c], esi
jle 0x1016110f
nop word [eax + eax]
mov ecx, dword [esp + 0x20]
mov eax, ecx
and al, 0x1c
cmp al, 4
jne 0x10160e82
movzx eax, byte [esi + edi]
jmp 0x10160e93
mov eax, ecx
and al, 0x1c
cmp al, 8
jne 0x10160e90
movzx eax, word [edi + esi*2]
jmp 0x10160e93
mov eax, dword [edi + esi*4]
push eax
call sym.python310.dll_PyLong_FromLong
push esi
mov dword [esp + 0x1c], eax
call sym.python310.dll_PyLong_FromLong
mov ecx, dword [esp + 0x1c]
add esp, 8
mov esi, eax
test ecx, ecx
je 0x10160f29
test esi, esi
je 0x10160f18
push esi
push ecx
push dword [esp + 0x18]
call sym.python310.dll_PyDict_SetItem
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, 0xffffffff
je 0x10160f18
add dword [ecx], 0xffffffff
jne 0x10160edc
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
add dword [esi], 0xffffffff
jne 0x10160eed
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov esi, dword [esp + 0x18]
inc esi
mov dword [esp + 0x18], esi
cmp esi, dword [esp + 0x1c]
jl 0x10160e70
mov eax, dword [esp + 0x10]
pop edi
pop esi
mov ecx, dword [esp + 0x274]
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
add dword [ecx], 0xffffffff
jne 0x10160f29
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
test esi, esi
je 0x10160f3e
add dword [esi], 0xffffffff
jne 0x10160f3e
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov ecx, dword [esp + 0x10]
add dword [ecx], 0xffffffff
jne 0x1016110d
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x274]
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
lea eax, [eax + esi*8]
shl eax, 4
add eax, 0x33
cmp eax, 0x7fffffff
ja 0x101610d8
push eax
push dword [0x103cc524]
call dword [0x103cc528]
add esp, 8
mov dword [esp + 0x2c], eax
test eax, eax
je 0x101610d8
mov dword [eax + 4], 0x103cd690
test dword [0x103cd6e4], 0x200
je 0x10160fb6
inc dword [0x103cd690]
push eax
call sym.python310.dll__Py_NewReference
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x14]
movaps xmm0, xmmword [esp + 0x34]
lea edx, [ecx + 8]
mov dword [ecx + 0x28], eax
mov dword [esp + 0x1c], edx
lea edx, [ecx + 0x30]
mov dword [esp + 0x18], edx
lea edx, [eax + 3]
mov dword [ecx + 0x2c], esi
shl edx, 4
add edx, ecx
shl eax, 4
mov ecx, dword [esp + 0x1c]
push eax
push 0xff
push dword [esp + 0x20]
movups xmmword [ecx], xmm0
mov dword [esp + 0x34], edx
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [ecx + 0x10], xmm0
call sub.VCRUNTIME140.dll_memset
shl esi, 7
push esi
push 0
push dword [esp + 0x3c]
call sub.VCRUNTIME140.dll_memset
mov esi, dword [esp + 0x38]
mov ecx, 1
add esp, 0x1c
mov dword [esp + 0x10], 0
mov dword [esp + 0x28], ecx
cmp esi, ecx
jle 0x101610c0
nop word [eax + eax]
mov edx, dword [esp + 0x20]
mov eax, edx
and al, 0x1c
cmp al, 4
jne 0x10161052
movzx edx, byte [ecx + edi]
jmp 0x10161063
mov eax, edx
and al, 0x1c
cmp al, 8
jne 0x10161060
movzx edx, word [edi + ecx*2]
jmp 0x10161063
mov edx, dword [edi + ecx*4]
cmp edx, 0xfffe
je 0x101610b7
mov ecx, dword [esp + 0x18]
mov eax, edx
shr eax, 0xb
movzx ecx, byte [eax + ecx]
mov eax, edx
shr eax, 7
and eax, 0xf
shl ecx, 4
add ecx, eax
mov eax, dword [esp + 0x14]
mov al, byte [ecx + eax]
cmp al, 0xff
jne 0x101610a3
mov esi, dword [esp + 0x14]
mov al, byte [esp + 0x10]
inc dword [esp + 0x10]
mov byte [ecx + esi], al
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x28]
and edx, 0x7f
movzx eax, al
shl eax, 7
add eax, dword [esp + 0x24]
mov byte [edx + eax], cl
inc ecx
mov dword [esp + 0x28], ecx
cmp ecx, esi
jl 0x10161040
mov eax, dword [esp + 0x2c]
pop edi
pop esi
mov ecx, dword [esp + 0x274]
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103fb118]
mov eax, dword [sym.python310.dll_PyExc_MemoryError]
cmp dword [eax + 4], 0
je 0x10161123
push 0
push eax
push ecx
call sym.python310.dll__PyErr_SetObject
jmp 0x1016110a
mov eax, dword [0x103fb118]
push str.bad_argument_type_for_built_in_operation
push dword [sym.python310.dll_PyExc_TypeError]
push eax
call sym.python310.dll__PyErr_SetString
add esp, 0xc
xor eax, eax
mov ecx, dword [esp + 0x27c]
pop edi
pop esi
xor ecx, esp
call fcn.1024a596
mov esp, ebp
pop ebp
ret
push str.Out_of_memory_and_PyExc_MemoryError_is_not_initialized_yet
push 0x1038c108
call sym.python310.dll__Py_FatalErrorFunc
int3