Function at 0x4e5bd0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c
mov al, byte [esi + 9]
push ebx
mov byte [esp + 7], al
movzx eax, al
push ebp
mov ebp, dword [esi + 0x38]
movzx ecx, byte [eax + ebp]
lea ebx, [eax + ebp]
push edi
mov edi, dword [esi + 0x34]
mov eax, esi
mov dword [esp + 0x18], edi
call fcn.004e5af0
test eax, eax
je 0x4e5c26
push 0x5e9a5c
push 0xfc03
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
movzx ecx, word [edi + 0x20]
mov al, byte [esi + 0xa]
dec cx
mov word [esi + 0x18], cx
movzx ecx, byte [esp + 0xf]
movzx dx, al
add dx, cx
add dx, 8
movzx edx, dx
movzx ecx, dx
mov byte [esi + 0xc], 0
mov edi, dword [edi + 0x24]
mov word [esi + 0x12], dx
movzx edx, al
mov dword [esp + 0x14], edi
add edi, ebp
mov dword [esi + 0x3c], edi
add edx, ebp
mov dword [esi + 0x44], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
add ecx, ebp
mov dword [esi + 0x40], ecx
movzx edi, byte [ebx + 5]
movzx eax, byte [ebx + 6]
shl edi, 8
or edi, eax
movzx ax, byte [ebx + 3]
mov dword [esp + 0x24], ecx
movzx ecx, byte [ebx + 4]
shl ax, 8
or ax, cx
mov word [esi + 0x16], ax
mov edx, dword [edx + 0x20]
movzx ecx, ax
sub edx, 8
mov eax, 0xaaaaaaab
mul edx
dec edi
and edi, 0xffff
shr edx, 2
inc edi
cmp ecx, edx
jbe 0x4e5ce0
push 0x5e9a5c
push 0xfc16
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
mov eax, dword [esp + 0x20]
lea edx, [eax + ecx*2]
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
mov eax, dword [edx + 4]
test dword [eax + 0x1c], 0x200000
je 0x4e5d83
cmp byte [esi + 8], 0
jne 0x4e5d10
dec dword [esp + 0x10]
mov dword [esp + 0x20], 0
test ecx, ecx
jle 0x4e5d79
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x18]
mov ax, word [edx]
mov ch, al
mov cl, ah
movzx eax, cx
cmp eax, dword [esp + 0x1c]
mov dword [esp + 0x24], eax
jl 0x4e5df8
cmp eax, dword [esp + 0x10]
jg 0x4e5df8
mov edx, dword [esi + 0x4c]
add eax, ebp
push eax
push esi
call edx
movzx eax, ax
add eax, dword [esp + 0x2c]
add esp, 8
cmp eax, dword [esp + 0x14]
jg 0x4e5dce
mov eax, dword [esp + 0x20]
movzx ecx, word [esi + 0x16]
add dword [esp + 0x18], 2
inc eax
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4e5d24
cmp byte [esi + 8], 0
jne 0x4e5d83
inc dword [esp + 0x10]
movzx eax, byte [ebx + 1]
movzx edx, byte [ebx + 2]
movzx ecx, byte [ebx + 7]
shl eax, 8
or eax, edx
add ecx, edi
test eax, eax
jle 0x4e5e9b
cmp eax, dword [esp + 0x1c]
jge 0x4e5e22
push 0x5e9a5c
push 0xfc49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
push 0x5e9a5c
push 0xfc37
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
push 0x5e9a5c
push 0xfc32
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
cmp eax, dword [esp + 0x10]
jg 0x4e5e5f
jmp 0x4e5e30
movzx edx, byte [eax + ebp]
movzx edi, byte [eax + ebp + 1]
movzx ebx, byte [eax + ebp + 3]
shl edx, 8
or edx, edi
movzx edi, byte [eax + ebp + 2]
shl edi, 8
or edi, ebx
lea ebx, [edi + eax + 3]
add ecx, edi
cmp edx, ebx
jbe 0x4e5e6f
cmp edx, dword [esp + 0x10]
mov eax, edx
jle 0x4e5e30
pop edi
pop ebp
mov eax, 0xfc4e
pop ebx
add esp, 0x1c
jmp fcn.004e1920
test edx, edx
jbe 0x4e5e83
pop edi
pop ebp
mov eax, 0xfc58
pop ebx
add esp, 0x1c
jmp fcn.004e1920
add edi, eax
cmp edi, dword [esp + 0x14]
jbe 0x4e5e9b
pop edi
pop ebp
mov eax, 0xfc5c
pop ebx
add esp, 0x1c
jmp fcn.004e1920
cmp ecx, dword [esp + 0x14]
jle 0x4e5ecb
push 0x5e9a5c
push 0xfc68
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d3370
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
sub ecx, dword [esp + 0x1c]
pop edi
pop ebp
mov word [esi + 0x14], cx
mov byte [esi], 1
xor eax, eax
pop ebx
add esp, 0x1c
ret