Function at 0x41c1f0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
push ebx
push edi
push esi
push eax
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x41c240
cmp dword [edi + 0x1c], 0
je 0x41c282
mov eax, dword [sym.imp.python311.dll__PyRuntime]
mov eax, dword [eax + 0x118]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xaac]
test ecx, ecx
je 0x41c378
lea edx, [ecx - 1]
mov dword [eax + 0xaac], edx
mov eax, dword [eax + ecx*4 + 0x968]
mov dword [esp], eax
mov dword [eax], 1
jmp 0x41c386
mov edi, dword [0x469a14]
mov eax, dword [edi + 0x18]
inc dword [eax]
mov eax, dword [sym.imp.python311.dll__PyRuntime]
mov eax, dword [eax + 0x118]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xaac]
test ecx, ecx
je 0x41c414
lea edx, [ecx - 1]
mov dword [eax + 0xaac], edx
mov esi, dword [eax + ecx*4 + 0x968]
mov dword [esi], 1
jmp 0x41c421
mov eax, dword [edi + 0x18]
mov eax, dword [eax + 0x10]
add eax, eax
mov edx, 0x55555556
imul edx
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jge 0x41c439
xor ebx, ebx
push ecx
call dword [sym.imp.python311.dll__PyDict_NewPresized]
add esp, 4
mov esi, eax
mov edx, dword [edi + 0x1c]
test edx, edx
je 0x41c300
cmp ebx, dword [edi + 8]
jge 0x41c554
mov eax, edx
sub eax, ebx
mov ebp, dword [edi + 0x18]
movzx ecx, byte [ebp + 5]
mov edi, 1
shl edi, cl
movzx ecx, byte [eax - 3]
add edi, ebp
lea eax, [edi + ecx*8]
add eax, 0x14
mov edi, dword [esp + 0x18]
mov ecx, dword [edx + ecx*4]
inc ebx
push ecx
push dword [eax]
push esi
call dword [sym.imp.python311.dll_PyDict_SetItem]
add esp, 0xc
jmp 0x41c2ae
mov eax, dword [edi + 0x18]
mov edx, dword [eax + 0x10]
cmp ebx, edx
jge 0x41c554
movzx ecx, byte [eax + 5]
mov ebp, 1
shl ebp, cl
cmp byte [eax + 6], 0
je 0x41c344
add eax, ebp
add eax, 0x14
lea eax, [eax + ebx*8]
nop word [eax + eax]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x41c2e3
add eax, 8
inc ebx
cmp edx, ebx
jne 0x41c330
jmp 0x41c554
lea ecx, [ebx + ebx*2]
lea ecx, [ecx*4]
add ecx, ebp
add eax, ecx
add eax, 0x18
nop word cs:[eax + eax]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x41c2e3
inc ebx
add eax, 0xc
cmp edx, ebx
jne 0x41c360
jmp 0x41c554
mov ecx, dword [sym.imp.python311.dll_PyDict_Type]
call fcn.00416f90
mov dword [esp], eax
mov eax, dword [edi + 0x18]
mov ebp, dword [eax + 0x10]
lea ebx, [ebp + 5]
mov esi, ebx
and esi, 0xfffffffc
lea eax, [esi + ebp*4]
push eax
call dword [sym.imp.python311.dll_PyMem_Malloc]
add esp, 4
mov ecx, esi
mov byte [eax + esi - 1], cl
add ecx, eax
and ebx, 0xfc
mov eax, ecx
mov esi, ecx
sub eax, ebx
mov ecx, dword [edi + 0x1c]
sub ecx, ebx
dec ebx
push ebx
push ecx
push eax
call fcn.00438ed0
add esp, 0xc
mov ecx, dword [esp]
mov dword [ecx + 0x1c], esi
mov eax, dword [edi + 0x18]
mov dword [ecx + 0x18], eax
mov eax, dword [edi + 8]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0x18]
inc dword [eax]
test ebp, ebp
mov esi, ecx
jle 0x41c526
xor eax, eax
jmp 0x41c400
mov dword [edx + eax*4], 0
inc eax
cmp ebp, eax
je 0x41c526
mov ecx, dword [edi + 0x1c]
mov ecx, dword [ecx + eax*4]
mov edx, dword [esi + 0x1c]
test ecx, ecx
je 0x41c3f0
mov dword [edx + eax*4], ecx
inc dword [ecx]
jmp 0x41c3f7
mov ecx, dword [sym.imp.python311.dll_PyDict_Type]
call fcn.00416f90
mov esi, eax
mov eax, dword [edi + 0x18]
mov dword [esi + 0x18], eax
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
mov dword [esi + 8], 0
jmp 0x41c554
mov eax, dword [sym.imp.python311.dll__PyRuntime]
mov eax, dword [eax + 0x118]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 0xaac]
test ecx, ecx
je 0x41c469
lea edx, [ecx - 1]
mov dword [eax + 0xaac], edx
mov esi, dword [eax + ecx*4 + 0x968]
mov dword [esi], 1
jmp 0x41c476
mov ecx, dword [sym.imp.python311.dll_PyDict_Type]
call fcn.00416f90
mov esi, eax
mov dword [esi + 0x1c], 0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [edi + 0x18]
xor ebx, ebx
cmp byte [eax + 6], 0
sete bl
movzx ecx, byte [eax + 5]
mov ebp, 1
shl ebp, cl
movzx ecx, byte [eax + 4]
mov eax, 2
shl eax, cl
mov ecx, 0x55555556
imul ecx
lea eax, [ebx*4 + 8]
mov ebx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
imul ecx, eax
add ebp, ecx
add ebp, 0x14
push ebp
call dword [sym.imp.python311.dll_PyObject_Malloc]
add esp, 4
mov dword [esi + 0x18], eax
push ebp
push dword [edi + 0x18]
push eax
call fcn.00438ed0
add esp, 0xc
mov edi, dword [esi + 0x18]
mov ch, byte [edi + 6]
xor edx, edx
test ch, ch
sete cl
mov eax, dword [edi + 0x10]
test eax, eax
jle 0x41c526
mov byte [esp], cl
mov cl, byte [edi + 5]
shl ebx, cl
test ch, ch
lea ecx, [edi + ebx + 0x14]
lea ebp, [edi + ebx + 0x18]
cmove ecx, ebp
lea edi, [edi + ebx + 0x1c]
cmovne edi, ebp
cmp eax, 1
jne 0x41c55e
test al, 1
je 0x41c526
mov eax, dword [edi]
test eax, eax
je 0x41c526
inc dword [eax]
mov eax, dword [ecx]
inc dword [eax]
lea eax, [esi - 8]
mov ecx, dword [sym.imp.python311.dll__PyRuntime]
mov ecx, dword [ecx + 0x118]
mov ecx, dword [ecx + 8]
mov ecx, dword [ecx + 0x1ac]
mov edx, dword [ecx + 4]
mov dword [edx], eax
mov edi, dword [esi - 4]
and edi, 3
or edi, edx
mov dword [esi - 4], edi
mov dword [esi - 8], ecx
mov dword [ecx + 4], eax
mov eax, esi
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
movzx ebx, byte [esp]
mov dl, bl
or edx, 2
mov ebp, eax
and ebp, 0xfffffffe
jmp 0x41c581
lea edi, [edi + edx*4]
lea ecx, [ecx + edx*4]
lea edi, [edi + edx*4]
lea ecx, [ecx + edx*4]
add ebp, 0xfffffffe
je 0x41c516
mov ebx, dword [edi]
test ebx, ebx
je 0x41c58d
inc dword [ebx]
mov ebx, dword [ecx]
inc dword [ebx]
mov ebx, dword [edi + edx*4]
test ebx, ebx
je 0x41c570
inc dword [ebx]
mov ebx, dword [ecx + edx*4]
inc dword [ebx]
jmp 0x41c570