Function at 0x4e5a10
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.004e5930
test eax, eax
je 0x4e5a66
push 0x5e9b1c
push 0xfc03
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
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 0x4e5b20
push 0x5e9b1c
push 0xfc16
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
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 0x4e5bc3
cmp byte [esi + 8], 0
jne 0x4e5b50
dec dword [esp + 0x10]
mov dword [esp + 0x20], 0
test ecx, ecx
jle 0x4e5bb9
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 0x4e5c38
cmp eax, dword [esp + 0x10]
jg 0x4e5c38
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 0x4e5c0e
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 0x4e5b64
cmp byte [esi + 8], 0
jne 0x4e5bc3
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 0x4e5cdb
cmp eax, dword [esp + 0x1c]
jge 0x4e5c62
push 0x5e9b1c
push 0xfc49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
push 0x5e9b1c
push 0xfc37
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
push 0x5e9b1c
push 0xfc32
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
add esp, 0x14
pop edi
pop ebp
mov eax, 0xb
pop ebx
add esp, 0x1c
ret
cmp eax, dword [esp + 0x10]
jg 0x4e5c9f
jmp 0x4e5c70
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 0x4e5caf
cmp edx, dword [esp + 0x10]
mov eax, edx
jle 0x4e5c70
pop edi
pop ebp
mov eax, 0xfc4e
pop ebx
add esp, 0x1c
jmp fcn.004e1760
test edx, edx
jbe 0x4e5cc3
pop edi
pop ebp
mov eax, 0xfc58
pop ebx
add esp, 0x1c
jmp fcn.004e1760
add edi, eax
cmp edi, dword [esp + 0x14]
jbe 0x4e5cdb
pop edi
pop ebp
mov eax, 0xfc5c
pop ebx
add esp, 0x1c
jmp fcn.004e1760
cmp ecx, dword [esp + 0x14]
jle 0x4e5d0b
push 0x5e9b1c
push 0xfc68
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.004d31b0
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