Function at 0x10005b90
Capabilities:
Enumerate pe sections
Read file on windows
Read file via mapping

Disassembly:
sub esp, 0x28
push ebx
mov ebx, dword [esp + 0x30]
push ebp
push esi
xor ebp, ebp
push edi
test ebx, ebx
je 0x10005dc7
push ebp
push 0x80
push 3
push ebp
push 1
push Ordinal_4
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x10005dd7
push ebp
push ebp
push ebp
push 0x1000002
push ebp
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov edi, eax
test edi, edi
je 0x10005dcb
push ebp
push ebp
push ebp
push 4
push edi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
test eax, eax
je 0x10005dbe
push eax
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebp
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0x3c
push esi
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_ReadFile]
push 0
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x24]
push edx
push esi
call edi
mov eax, dword [esp + 0x18]
push 0
push 0
add eax, 0x50
push eax
push esi
call ebp
push 0
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x34]
push edx
push esi
call edi
mov eax, dword [esp + 0x18]
push 0
push 0
add eax, 0x54
push eax
push esi
call ebp
push 0
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x38]
push edx
push esi
call edi
mov eax, dword [esp + 0x18]
push 0
push 0
add eax, 0x38
push eax
push esi
call ebp
push 0
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x3c]
push edx
push esi
call edi
mov eax, dword [esp + 0x18]
push 0
push 0
add eax, 0x3c
push eax
push esi
call ebp
push 0
lea ecx, [esp + 0x14]
push ecx
push 4
lea edx, [esp + 0x28]
push edx
push esi
call edi
push 4
push 0x1000
mov eax, dword [esp + 0x30]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_VirtualAlloc]
push 0
push 0
push 0
push esi
mov dword [ebx], eax
call ebp
mov edx, dword [esp + 0x2c]
mov eax, dword [ebx]
push 0
lea ecx, [esp + 0x14]
push ecx
push edx
push eax
push esi
call edi
mov ebx, dword [ebx]
add ebx, dword [esp + 0x18]
xor edx, edx
movzx ecx, word [ebx + 0x14]
lea eax, [ecx + ebx + 0x18]
mov dword [esp + 0x24], 0
cmp dx, word [ebx + 6]
jae 0x10005db7
add eax, 0x10
mov dword [esp + 0x14], eax
jmp 0x10005d07
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
cmp dword [eax + 4], ecx
jae 0x10005d14
xor eax, eax
jmp 0x10005d25
mov eax, dword [eax + 4]
mov dword [esp + 0x20], eax
xor edx, edx
div ecx
mov eax, dword [esp + 0x20]
sub eax, edx
push 0
push 0
push eax
push esi
call ebp
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [esp + 0x1c]
xor edx, edx
mov dword [esp + 0x20], eax
div ecx
test edx, edx
je 0x10005d5b
mov edx, dword [esp + 0x14]
mov eax, dword [edx]
mov dword [esp + 0x20], eax
xor edx, edx
div ecx
mov eax, dword [esp + 0x20]
sub eax, edx
add eax, ecx
jmp 0x10005d5f
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x14]
cmp dword [eax - 4], ecx
jae 0x10005d74
xor eax, eax
jmp 0x10005d85
mov eax, dword [eax - 4]
mov dword [esp + 0x34], eax
xor edx, edx
div ecx
mov eax, dword [esp + 0x34]
sub eax, edx
mov edx, dword [esp + 0x20]
push 0
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x44]
push edx
mov edx, dword [ecx]
add edx, eax
push edx
push esi
call edi
mov eax, dword [esp + 0x24]
movzx ecx, word [ebx + 6]
add dword [esp + 0x14], 0x28
inc eax
mov dword [esp + 0x24], eax
cmp eax, ecx
jb 0x10005d03
mov ebp, 1
jmp 0x10005dcb
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x10005dcb
mov esi, dword [esp + 0x3c]
cmp esi, 0xffffffff
je 0x10005dd7
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x28
ret