Function at 0x438ee0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [eax + 0x14]
cmp byte [esi + 0x11], 0
push edi
mov edi, dword [eax + 0x18]
mov eax, dword [esi + 0x14]
fld qword [eax]
mov dword [ebp - 4], edi
fst qword [ebp - 0xc]
je 0x438f2b
push 0x6af830
fstp st(0)
push 0xaa
push str.src_backend_access_spgist_spgkdtreeproc.c
call sym.postgres.exe_elog_start
push str.allTheSame_should_not_occur_for_k_d_trees
push 0x14
call sym.postgres.exe_elog_finish
fld qword [ebp - 0xc]
add esp, 0x14
cmp dword [esi + 4], 0
mov ebx, 6
mov dword [ebp + 8], 0
jle 0x4390d1
fld qword [0x6ac740]
xor edi, edi
mov ecx, dword [esi]
lea eax, [edi + ecx]
mov ecx, dword [eax + 0x2c]
movzx eax, word [eax + 6]
dec eax
cmp eax, 0xa
ja case.0x438f5f.2
jmp dword [eax*4 + 0x439140]
mov edx, dword [esi + 0xc]
and edx, 0x80000001
jns 0x438f76
dec edx
or edx, 0xfffffffe
inc edx
je 0x4390b5
fld st(1)
fsub qword [ecx]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4390b5
and ebx, 2
jmp 0x4390b5
mov eax, dword [esi + 0xc]
and eax, 0x80000001
jns 0x438fa4
dec eax
or eax, 0xfffffffe
inc eax
je 0x4390b5
fld qword [ecx]
fsub st(2)
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4390b5
and ebx, 4
jmp 0x4390b5
mov edx, dword [esi + 0xc]
and edx, 0x80000001
jns 0x438fd3
dec edx
or edx, 0xfffffffe
inc edx
fld st(1)
je 0x438fea
fsub qword [ecx]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x438faa
and ebx, 2
jmp 0x4390b5
fsub qword [ecx + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x439033
and ebx, 2
jmp 0x4390b5
mov eax, dword [esi + 0xc]
and eax, 0x80000001
jns 0x43900d
dec eax
or eax, 0xfffffffe
inc eax
jne 0x4390b5
fld st(1)
fsub qword [ecx + 8]
jmp 0x438f80
mov edx, dword [esi + 0xc]
and edx, 0x80000001
jns 0x43902d
dec edx
or edx, 0xfffffffe
inc edx
jne 0x4390b5
fld qword [ecx + 8]
jmp 0x438fac
mov eax, dword [esi + 0xc]
and eax, 0x80000001
jns 0x43904a
dec eax
or eax, 0xfffffffe
inc eax
fld st(1)
je 0x439065
fsub qword [ecx]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x438f8d
fld qword [ecx + 0x10]
jmp 0x438fac
fsub qword [ecx + 8]
fcomp st(1)
fnstsw ax
test ah, 0x41
je 0x438f8d
fld qword [ecx + 0x18]
jmp 0x438fac
push 0x6af830
fstp st(1)
push 0xf1
fstp st(0)
push str.src_backend_access_spgist_spgkdtreeproc.c
call sym.postgres.exe_elog_start
mov ecx, dword [esi]
movzx edx, word [edi + ecx + 6]
push edx
push str.unrecognized_strategy_number:__d
push 0x14
call sym.postgres.exe_elog_finish
add esp, 0x18
fld qword [ebp - 0xc]
fld qword [0x6ac740]
test ebx, ebx
je 0x4390cc
mov eax, dword [ebp + 8]
inc eax
add edi, 0x30
mov dword [ebp + 8], eax
cmp eax, dword [esi + 4]
jl 0x438f49
mov edi, dword [ebp - 4]
fstp st(1)
mov eax, dword [sym.postgres.exe_CurrentMemoryContext]
fstp st(0)
push 8
push eax
call sym.postgres.exe_MemoryContextAlloc
add esp, 8
mov dword [edi + 4], eax
mov dword [edi], 0
test bl, 2
je 0x4390fe
mov ecx, dword [edi]
mov edx, eax
mov dword [edx + ecx*4], 0
inc dword [edi]
test bl, 4
je 0x439111
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ecx + eax*4], 1
inc dword [edi]
mov edx, dword [sym.postgres.exe_CurrentMemoryContext]
push 8
push edx
call sym.postgres.exe_MemoryContextAlloc
mov dword [edi + 8], eax
add esp, 8
mov dword [eax], 1
mov eax, dword [edi + 8]
pop edi
pop esi
mov dword [eax + 4], 1
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret