Function at 0x10021180
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
mov esi, edx
mov dword [esp + 0xc], ecx
push edi
mov dword [esp + 0x14], esi
test byte [esi + 0x10], 0x80
jne 0x100211ae
push esi
call sym.python310.dll__PyUnicode_Ready
add esp, 4
cmp eax, 0xffffffff
je 0x10021237
mov edx, dword [esi + 0x10]
test dl, 0x20
je 0x100211ca
test dl, 0x40
mov ecx, 0x18
mov eax, 0x24
cmove ecx, eax
add ecx, esi
jmp 0x100211cd
mov ecx, dword [esi + 0x24]
mov edi, dword [esi + 8]
mov esi, dword [ebp + 8]
shr edx, 2
and edx, 7
test esi, esi
jns 0x1002122c
mov esi, dword [sym.python310.dll_PyExc_ValueError]
mov edx, 0x16
mov edi, dword [0x103fb118]
mov ecx, str.idx_cannot_be_negative
push 0
push 0
push 0
call fcn.101599e0
add esp, 0xc
mov ebx, eax
push ebx
push esi
push edi
call sym.python310.dll__PyErr_SetObject
add esp, 0xc
test ebx, ebx
je 0x10021237
add dword [ebx], 0xffffffff
jne 0x10021237
mov eax, dword [ebx + 4]
push ebx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp esi, edi
jl 0x10021240
mov ecx, esi
call fcn.1001f680
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edx, 1
jne 0x1002124b
movzx eax, byte [ecx + esi]
jmp 0x10021259
cmp edx, 2
jne 0x10021256
movzx eax, word [ecx + esi*2]
jmp 0x10021259
mov eax, dword [ecx + esi*4]
sub eax, 0x22
cmp eax, 0x59
ja case.0x1002126c.35
movzx eax, byte [eax + 0x100217fc]
jmp dword [eax*4 + 0x100217d4]
mov ecx, dword [esp + 0x10]
lea edx, [esi + 1]
push dword [ebp + 0xc]
movsx eax, byte [ecx + 8]
mov ecx, dword [esp + 0x18]
push eax
call fcn.1001f7f0
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str._while_decoding_a_JSON_object_from_a_unicode_string
call sym.python310.dll_Py_EnterRecursiveCall
add esp, 4
test eax, eax
jne 0x10021237
push dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
mov ecx, dword [esp + 0x14]
push eax
call fcn.10020160
add esp, 8
mov esi, eax
call sym.python310.dll_Py_LeaveRecursiveCall
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str._while_decoding_a_JSON_array_from_a_unicode_string
call sym.python310.dll_Py_EnterRecursiveCall
add esp, 4
test eax, eax
jne 0x10021237
push dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
lea eax, [esi + 1]
mov ecx, dword [esp + 0x14]
push eax
call fcn.100207c0
add esp, 8
mov esi, eax
call sym.python310.dll_Py_LeaveRecursiveCall
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 3]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x10021320
movzx eax, byte [ecx + esi + 1]
jmp 0x10021330
cmp edx, 2
jne 0x1002132c
movzx eax, word [ecx + esi*2 + 2]
jmp 0x10021330
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x75
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021345
movzx eax, byte [ecx + esi + 2]
jmp 0x10021355
cmp edx, 2
jne 0x10021351
movzx eax, word [ecx + esi*2 + 4]
jmp 0x10021355
mov eax, dword [ecx + esi*4 + 8]
cmp eax, 0x6c
jne case.0x1002126c.35
cmp edx, 1
jne 0x1002136a
movzx eax, byte [ecx + esi + 3]
jmp 0x10021378
cmp edx, 2
jne 0x10021375
movzx eax, word [ecx + ebx*2]
jmp 0x10021378
mov eax, dword [ecx + ebx*4]
cmp eax, 0x6c
jne case.0x1002126c.35
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 4]
inc dword [sym.python310.dll__Py_NoneStruct]
mov dword [eax], ecx
mov eax, sym.python310.dll__Py_NoneStruct
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 3]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x100213b2
movzx eax, byte [ecx + esi + 1]
jmp 0x100213c2
cmp edx, 2
jne 0x100213be
movzx eax, word [ecx + esi*2 + 2]
jmp 0x100213c2
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x72
jne case.0x1002126c.35
cmp edx, 1
jne 0x100213d7
movzx eax, byte [ecx + esi + 2]
jmp 0x100213e7
cmp edx, 2
jne 0x100213e3
movzx eax, word [ecx + esi*2 + 4]
jmp 0x100213e7
mov eax, dword [ecx + esi*4 + 8]
cmp eax, 0x75
jne case.0x1002126c.35
cmp edx, 1
jne 0x100213fc
movzx eax, byte [ecx + esi + 3]
jmp 0x1002140a
cmp edx, 2
jne 0x10021407
movzx eax, word [ecx + ebx*2]
jmp 0x1002140a
mov eax, dword [ecx + ebx*4]
cmp eax, 0x65
jne case.0x1002126c.35
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 4]
inc dword [sym.python310.dll__Py_TrueStruct]
mov dword [eax], ecx
mov eax, sym.python310.dll__Py_TrueStruct
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 4]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x10021444
movzx eax, byte [ecx + esi + 1]
jmp 0x10021454
cmp edx, 2
jne 0x10021450
movzx eax, word [ecx + esi*2 + 2]
jmp 0x10021454
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x61
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021469
movzx eax, byte [ecx + esi + 2]
jmp 0x10021479
cmp edx, 2
jne 0x10021475
movzx eax, word [ecx + esi*2 + 4]
jmp 0x10021479
mov eax, dword [ecx + esi*4 + 8]
cmp eax, 0x6c
jne case.0x1002126c.35
cmp edx, 1
jne 0x1002148e
movzx eax, byte [ecx + esi + 3]
jmp 0x1002149e
cmp edx, 2
jne 0x1002149a
movzx eax, word [ecx + esi*2 + 6]
jmp 0x1002149e
mov eax, dword [ecx + esi*4 + 0xc]
cmp eax, 0x73
jne case.0x1002126c.35
cmp edx, 1
jne 0x100214b3
movzx eax, byte [ecx + esi + 4]
jmp 0x100214c1
cmp edx, 2
jne 0x100214be
movzx eax, word [ecx + ebx*2]
jmp 0x100214c1
mov eax, dword [ecx + ebx*4]
cmp eax, 0x65
jne case.0x1002126c.35
mov eax, dword [ebp + 0xc]
lea ecx, [esi + 5]
inc dword [sym.python310.dll__Py_FalseStruct]
mov dword [eax], ecx
mov eax, sym.python310.dll__Py_FalseStruct
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 2]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x100214fb
movzx eax, byte [ecx + esi + 1]
jmp 0x1002150b
cmp edx, 2
jne 0x10021507
movzx eax, word [ecx + esi*2 + 2]
jmp 0x1002150b
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x61
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021520
movzx eax, byte [ecx + esi + 2]
jmp 0x1002152e
cmp edx, 2
jne 0x1002152b
movzx eax, word [ecx + ebx*2]
jmp 0x1002152e
mov eax, dword [ecx + ebx*4]
cmp eax, 0x4e
jne case.0x1002126c.35
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, 0x103668c8
push esi
call fcn.10020c20
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 7]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x1002156a
movzx eax, byte [ecx + esi + 1]
jmp 0x1002157a
cmp edx, 2
jne 0x10021576
movzx eax, word [ecx + esi*2 + 2]
jmp 0x1002157a
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x6e
jne case.0x1002126c.35
cmp edx, 1
jne 0x1002158f
movzx eax, byte [ecx + esi + 2]
jmp 0x1002159f
cmp edx, 2
jne 0x1002159b
movzx eax, word [ecx + esi*2 + 4]
jmp 0x1002159f
mov eax, dword [ecx + esi*4 + 8]
cmp eax, 0x66
jne case.0x1002126c.35
cmp edx, 1
jne 0x100215b4
movzx eax, byte [ecx + esi + 3]
jmp 0x100215c4
cmp edx, 2
jne 0x100215c0
movzx eax, word [ecx + esi*2 + 6]
jmp 0x100215c4
mov eax, dword [ecx + esi*4 + 0xc]
cmp eax, 0x69
jne case.0x1002126c.35
cmp edx, 1
jne 0x100215d9
movzx eax, byte [ecx + esi + 4]
jmp 0x100215e9
cmp edx, 2
jne 0x100215e5
movzx eax, word [ecx + esi*2 + 8]
jmp 0x100215e9
mov eax, dword [ecx + esi*4 + 0x10]
cmp eax, 0x6e
jne case.0x1002126c.35
cmp edx, 1
jne 0x100215fe
movzx eax, byte [ecx + esi + 5]
jmp 0x1002160e
cmp edx, 2
jne 0x1002160a
movzx eax, word [ecx + esi*2 + 0xa]
jmp 0x1002160e
mov eax, dword [ecx + esi*4 + 0x14]
cmp eax, 0x69
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021623
movzx eax, byte [ecx + esi + 6]
jmp 0x10021633
cmp edx, 2
jne 0x1002162f
movzx eax, word [ecx + esi*2 + 0xc]
jmp 0x10021633
mov eax, dword [ecx + esi*4 + 0x18]
cmp eax, 0x74
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021648
movzx eax, byte [ecx + esi + 7]
jmp 0x10021656
cmp edx, 2
jne 0x10021653
movzx eax, word [ecx + ebx*2]
jmp 0x10021656
mov eax, dword [ecx + ebx*4]
cmp eax, 0x79
jne case.0x1002126c.35
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, str.Infinity
push esi
call fcn.10020c20
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ebx, [esi + 8]
cmp ebx, edi
jge case.0x1002126c.35
cmp edx, 1
jne 0x10021692
movzx eax, byte [ecx + esi + 1]
jmp 0x100216a2
cmp edx, 2
jne 0x1002169e
movzx eax, word [ecx + esi*2 + 2]
jmp 0x100216a2
mov eax, dword [ecx + esi*4 + 4]
cmp eax, 0x49
jne case.0x1002126c.35
cmp edx, 1
jne 0x100216b7
movzx eax, byte [ecx + esi + 2]
jmp 0x100216c7
cmp edx, 2
jne 0x100216c3
movzx eax, word [ecx + esi*2 + 4]
jmp 0x100216c7
mov eax, dword [ecx + esi*4 + 8]
cmp eax, 0x6e
jne case.0x1002126c.35
cmp edx, 1
jne 0x100216dc
movzx eax, byte [ecx + esi + 3]
jmp 0x100216ec
cmp edx, 2
jne 0x100216e8
movzx eax, word [ecx + esi*2 + 6]
jmp 0x100216ec
mov eax, dword [ecx + esi*4 + 0xc]
cmp eax, 0x66
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021701
movzx eax, byte [ecx + esi + 4]
jmp 0x10021711
cmp edx, 2
jne 0x1002170d
movzx eax, word [ecx + esi*2 + 8]
jmp 0x10021711
mov eax, dword [ecx + esi*4 + 0x10]
cmp eax, 0x69
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021726
movzx eax, byte [ecx + esi + 5]
jmp 0x10021736
cmp edx, 2
jne 0x10021732
movzx eax, word [ecx + esi*2 + 0xa]
jmp 0x10021736
mov eax, dword [ecx + esi*4 + 0x14]
cmp eax, 0x6e
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021747
movzx eax, byte [ecx + esi + 6]
jmp 0x10021757
cmp edx, 2
jne 0x10021753
movzx eax, word [ecx + esi*2 + 0xc]
jmp 0x10021757
mov eax, dword [ecx + esi*4 + 0x18]
cmp eax, 0x69
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021768
movzx eax, byte [ecx + esi + 7]
jmp 0x10021778
cmp edx, 2
jne 0x10021774
movzx eax, word [ecx + esi*2 + 0xe]
jmp 0x10021778
mov eax, dword [ecx + esi*4 + 0x1c]
cmp eax, 0x74
jne case.0x1002126c.35
cmp edx, 1
jne 0x10021789
movzx eax, byte [ecx + esi + 8]
jmp 0x10021797
cmp edx, 2
jne 0x10021794
movzx eax, word [ecx + ebx*2]
jmp 0x10021797
mov eax, dword [ecx + ebx*4]
cmp eax, 0x79
jne case.0x1002126c.35
push dword [ebp + 0xc]
mov ecx, dword [esp + 0x14]
mov edx, str._Infinity
push esi
call fcn.10020c20
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [ebp + 0xc]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push esi
call fcn.10020c90
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret