Function at 0x614f80
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x20
push ebx
push ebp
mov ebp, dword [esp + 0x2c]
push esi
push edi
mov dword [esp + 0x20], 0
movzx edi, word [ebp + 0x12]
movzx eax, word [ebp + 0x16]
mov ebx, dword [ebp + 0x38]
mov edx, ebx
movzx esi, byte [ebp + 9]
mov dword [esp + 0x2c], eax
add esi, ebx
lea eax, [edi + eax*2]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x24], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], esi
mov eax, dword [eax + 0x24]
mov dword [esp + 0x28], eax
movzx eax, byte [esi + 7]
cmp eax, dword [esp + 0x38]
jg 0x615146
movzx edi, byte [esi + 1]
movzx eax, byte [esi + 2]
shl edi, 8
or edi, eax
je 0x615142
movzx eax, byte [edi + ebx]
movzx ebp, byte [edi + ebx + 1]
shl eax, 8
or ebp, eax
je 0x615011
cmp byte [ebx + ebp], 0
jne 0x61513e
cmp byte [ebx + ebp + 1], 0
jne 0x61513e
mov eax, dword [esp + 0x1c]
movzx ecx, byte [edi + ebx + 2]
add eax, ebx
movzx edx, byte [esi + 5]
mov dword [esp + 0x20], eax
movzx eax, byte [edi + ebx + 3]
shl ecx, 8
or ecx, eax
shl edx, 8
movzx eax, byte [esi + 6]
or edx, eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x2c], edx
cmp edx, edi
jl 0x615076
push 0x6c9afc
push 0xeeae
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00605420
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
test ebp, ebp
je 0x6150ba
movzx edx, byte [ebx + ebp + 2]
movzx eax, byte [ebx + ebp + 3]
shl edx, 8
or edx, eax
mov eax, ebp
sub eax, ecx
mov dword [esp + 0x38], edx
sub eax, edi
push eax
lea eax, [ecx + edi]
add eax, ebx
lea esi, [ecx + edx]
push eax
lea eax, [esi + edi]
add eax, ebx
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edx, dword [esp + 0x38]
mov ecx, esi
mov esi, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x24], ecx
lea ebx, [edx + ecx]
mov eax, edi
mov ecx, dword [esp + 0x10]
sub eax, edx
push eax
mov dword [esp + 0x30], ebx
lea eax, [edx + ecx]
push eax
lea eax, [ebx + ecx]
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov edx, dword [esp + 0x20]
add esp, 0xc
add edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x20]
jae 0x615255
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
movzx ecx, byte [edx]
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
cmp ecx, edi
jge 0x615112
lea eax, [ecx + ebx]
sar eax, 8
mov byte [edx], al
lea eax, [ecx + ebx]
jmp 0x615127
cmp ecx, ebp
jge 0x61512a
mov eax, dword [esp + 0x38]
add eax, ecx
sar eax, 8
mov byte [edx], al
mov al, byte [esp + 0x38]
add al, cl
mov byte [edx + 1], al
add edx, 2
cmp edx, esi
jb 0x6150f5
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
jmp 0x615255
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
cmp dword [esp + 0x2c], 0
mov eax, dword [esp + 0x28]
mov ebx, eax
mov dword [esp + 0x38], 0
lea ecx, [eax - 4]
mov dword [esp + 0x14], ecx
jle 0x615251
add edi, edx
jmp 0x615174
mov ebp, dword [esp + 0x34]
movzx esi, byte [edi]
movzx eax, byte [edi + 1]
shl esi, 8
or esi, eax
cmp esi, dword [esp + 0x1c]
jl 0x6152c7
cmp esi, ecx
jg 0x6152c7
lea eax, [esi + edx]
push eax
mov eax, dword [ebp + 0x4c]
push ebp
call eax
movzx ebp, ax
add esp, 8
sub ebx, ebp
cmp ebx, dword [esp + 0x1c]
jl 0x61529c
lea eax, [esi + ebp]
cmp eax, dword [esp + 0x28]
jg 0x61529c
mov eax, ebx
mov byte [edi + 1], bl
sar eax, 8
cmp dword [esp + 0x20], 0
mov byte [edi], al
jne 0x615218
cmp ebx, esi
je 0x61522f
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x34]
mov eax, dword [eax]
mov edx, dword [eax + 0xcc]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], edx
movzx ecx, byte [eax + 5]
movzx eax, byte [eax + 6]
shl ecx, 8
or ecx, eax
mov eax, ebp
sub eax, ecx
add eax, ebx
push eax
mov eax, dword [esp + 0x14]
add eax, ecx
push eax
lea eax, [ecx + edx]
push eax
call sub.MSVCRT.dll_memcpy
mov eax, dword [esp + 0x2c]
add esp, 0xc
mov dword [esp + 0x24], eax
jmp 0x61521c
mov eax, dword [esp + 0x24]
add eax, esi
push ebp
push eax
mov eax, dword [esp + 0x18]
add eax, ebx
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
mov ecx, dword [esp + 0x38]
add edi, 2
mov edx, dword [esp + 0x24]
inc ecx
cmp ecx, dword [esp + 0x2c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x14]
jl 0x615170
mov esi, dword [esp + 0x18]
mov byte [esi + 7], 0
mov eax, dword [esp + 0x34]
movzx ecx, byte [esi + 7]
mov edx, dword [esp + 0x1c]
sub ecx, edx
add ecx, ebx
movzx eax, word [eax + 0x14]
cmp ecx, eax
je 0x6152f2
push 0x6c9afc
push 0xeeea
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00605420
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push 0x6c9afc
push 0xeed6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00605420
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
push 0x6c9afc
push 0xeed0
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.00605420
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret
mov eax, ebx
mov byte [esi + 6], bl
sar eax, 8
sub ebx, edx
mov byte [esi + 5], al
mov eax, dword [esp + 0x10]
push ebx
add eax, edx
mov word [esi + 1], 0
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret