Function at 0x433140
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0xc]
mov edx, dword [eax + 0x78]
mov esi, dword [edi + 0x20]
xor ebx, ebx
xor eax, eax
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x30], edx
test ecx, ecx
jle 0x43318a
mov edx, dword [edi + 0x14]
lea esp, [esp]
mov ecx, dword [edx]
test cl, 0x20
je 0x43317d
inc ebx
test cl, 1
jne 0x433199
inc eax
add edx, 0x30
cmp eax, dword [ebp - 0x20]
jl 0x433170
test ebx, ebx
jne 0x4331ae
xor eax, eax
pop edi
mov dword [esi + 0x10], eax
mov dword [esi + 0xc], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov dword [esi + 0x10], 0xffffffff
mov dword [esi + 0xc], 0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x18]
test eax, eax
jne 0x4331d8
push 0x2000
push 0x400
push eax
mov eax, dword [sym.postgres.exe_CurrentMemoryContext]
push str.BTree_Array_Context
push eax
call sym.postgres.exe_AllocSetContextCreate
add esp, 0x14
mov dword [esi + 0x18], eax
jmp 0x4331e1
push eax
call sym.postgres.exe_MemoryContextReset
add esp, 4
mov ecx, dword [sym.postgres.exe_CurrentMemoryContext]
mov dword [ebp - 0x34], ecx
mov ecx, dword [esi + 0x18]
mov dword [sym.postgres.exe_CurrentMemoryContext], ecx
mov eax, dword [edi + 0xc]
lea edx, [eax + eax*2]
shl edx, 4
push edx
push ecx
call sym.postgres.exe_MemoryContextAlloc
mov dword [esi + 0xc], eax
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 0x14]
lea ecx, [ecx + ecx*2]
shl ecx, 4
push ecx
push edx
push eax
call sub.MSVCR100.dll_memcpy
mov ecx, dword [sym.postgres.exe_CurrentMemoryContext]
lea eax, [ebx + ebx*4]
add eax, eax
add eax, eax
push eax
push ecx
call sym.postgres.exe_MemoryContextAllocZero
add esp, 0x1c
mov dword [esi + 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov ebx, dword [esi + 0xc]
add ebx, dword [ebp - 0x18]
test byte [ebx], 0x20
je 0x43337e
mov edx, dword [ebx + 0x2c]
push edx
call sym.postgres.exe_pg_detoast_datum
mov edi, eax
lea eax, [ebp - 0x24]
push eax
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0x28]
push ecx
lea edx, [ebp - 4]
push edx
push eax
call sym.postgres.exe_get_typlenbyvalalign
lea ecx, [ebp - 0xc]
push ecx
mov ecx, dword [ebp - 0x24]
lea edx, [ebp - 0x2c]
push edx
mov edx, dword [ebp - 0x28]
lea eax, [ebp - 8]
push eax
movsx eax, word [ebp - 4]
push ecx
mov ecx, dword [edi + 0xc]
push edx
push eax
push ecx
push edi
call sym.postgres.exe_deconstruct_array
xor eax, eax
add esp, 0x34
xor edi, edi
cmp dword [ebp - 0xc], eax
jle 0x433394
mov edx, dword [ebp - 0x2c]
cmp byte [eax + edx], 0
jne 0x4332b7
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + eax*4]
mov dword [ecx + edi*4], edx
inc edi
inc eax
cmp eax, dword [ebp - 0xc]
jl 0x4332a4
test edi, edi
je 0x433394
movzx eax, word [ebx + 6]
dec eax
cmp eax, 4
ja case.default.0x4332cf
jmp dword [eax*4 + 0x4333b4]
mov eax, dword [ebp - 8]
push edi
push eax
mov eax, dword [ebp + 8]
push 5
call fcn.00431ed0
add esp, 0xc
mov dword [ebx + 0x2c], eax
jmp 0x43337e
mov ecx, dword [ebp - 8]
mov eax, dword [ebp + 8]
push edi
push ecx
push 1
call fcn.00431ed0
add esp, 0xc
mov dword [ebx + 0x2c], eax
jmp 0x43337e
push 0x6aef54
push 0x14a
push str.src_backend_access_nbtree_nbtutils.c
call sym.postgres.exe_elog_start
movzx edx, word [ebx + 6]
push edx
push str.unrecognized_StrategyNumber:__d
push 0x14
call sym.postgres.exe_elog_finish
add esp, 0x18
movsx eax, word [ebx + 4]
mov ecx, dword [ebp - 0x30]
mov dl, byte [ecx + eax*2 - 2]
and dl, 1
movzx eax, dl
push edi
mov edi, dword [ebp - 8]
push eax
mov eax, dword [ebp + 8]
mov ecx, ebx
call fcn.00432a60
mov ecx, dword [esi + 0x14]
mov edx, dword [ebp - 0x14]
inc dword [ebp - 0x10]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + ecx], edx
mov ecx, dword [esi + 0x14]
mov edx, dword [ebp - 0xc]
mov dword [ecx + eax + 0xc], edx
mov ecx, dword [esi + 0x14]
mov edx, dword [ebp - 8]
add esp, 8
mov dword [ecx + eax + 0x10], edx
add eax, 0x14
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
add dword [ebp - 0x18], 0x30
inc eax
mov dword [ebp - 0x14], eax
cmp eax, dword [ebp - 0x20]
jl 0x433242
jmp 0x43339b
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x34]
pop edi
mov dword [esi + 0x10], eax
pop esi
mov dword [sym.postgres.exe_CurrentMemoryContext], ecx
pop ebx
mov esp, ebp
pop ebp
ret