Function at 0x405fe6
Capabilities:
Enumerate pe sections
Parse pe header
Resolve function by fnv-1a hash

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0xc]
sub esp, 0x28
push ebx
push 0x40
xor ebx, ebx
call fcn.00405c21
pop ecx
test al, al
jne 0x406005
xor eax, eax
jmp 0x40626f
push esi
mov esi, dword [ebp + 8]
mov eax, 0x5a4d
cmp word [esi], ax
je 0x40602a
xor eax, eax
push 0x21ddcd8b
inc eax
call fcn.00406efb
pop ecx
push 0xc1
call eax
jmp 0x406040
mov eax, dword [esi + 0x3c]
add eax, 0xf8
push eax
mov eax, dword [ebp + 0xc]
call fcn.00405c21
pop ecx
test al, al
jne 0x406047
xor eax, eax
jmp 0x40626e
push edi
mov edi, dword [esi + 0x3c]
add edi, esi
cmp dword [edi], 0x4550
jne 0x4060cf
mov eax, 0x14c
cmp word [edi + 4], ax
je 0x406070
push 0xc1
call dword [0x40c038]
jmp 0x40625a
test byte [edi + 0x38], 1
jne 0x4060cf
movzx edx, word [edi + 6]
movzx eax, word [edi + 0x14]
lea eax, [eax + edi + 0x18]
test edx, edx
je 0x4060aa
lea ecx, [eax + 0xc]
mov dword [ebp - 4], edx
mov esi, dword [ecx + 4]
mov eax, dword [ecx]
test esi, esi
jne 0x40609a
add eax, dword [edi + 0x38]
jmp 0x40609c
add eax, esi
cmp eax, ebx
jbe 0x4060a2
mov ebx, eax
add ecx, 0x28
dec dword [ebp - 4]
jne 0x40608c
lea eax, [ebp - 0x28]
push eax
call dword [0x40c0c4]
mov eax, dword [ebp - 0x24]
mov edx, dword [edi + 0x50]
lea ecx, [eax - 1]
lea esi, [edx + eax - 1]
not ecx
lea eax, [eax + ebx - 1]
and esi, ecx
and eax, ecx
cmp esi, eax
je 0x4060e4
xor eax, eax
push 0x21ddcd8b
inc eax
call fcn.00406efb
pop ecx
push 0xc1
jmp 0x406158
mov ebx, dword [edi + 0x34]
xor eax, eax
push 0x3285501
inc eax
call fcn.00406efb
pop ecx
push 4
push 0x3000
push esi
push ebx
call eax
mov ebx, eax
test ebx, ebx
jne 0x40611b
push 4
push 0x3000
push esi
push eax
call dword [0x40c040]
mov ebx, eax
test ebx, ebx
je 0x406148
push 0x34
push 8
call dword [0x40c058]
push eax
call dword [0x40c0bc]
mov esi, eax
test esi, esi
jne 0x40615f
push 0x3a9acc72
inc eax
call fcn.00406efb
mov dword [esp], 0x8000
push esi
push ebx
call eax
xor eax, eax
push 0x21ddcd8b
inc eax
call fcn.00406efb
pop ecx
push 0xe
call eax
jmp 0x40625a
mov dword [esi + 4], ebx
movzx eax, word [edi + 0x16]
and dword [esi + 0x28], 0
shr eax, 0xd
and eax, 1
mov dword [esi + 0x14], eax
mov dword [esi + 0x1c], 0x405aa5
mov dword [esi + 0x20], 0x405a94
mov dword [esi + 0x24], 0x405a86
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x30], eax
push dword [edi + 0x54]
mov eax, dword [ebp + 0xc]
call fcn.00405c21
pop ecx
test al, al
je 0x406255
push 4
push 0x1000
push dword [edi + 0x54]
push ebx
call dword [0x40c040]
push dword [edi + 0x54]
mov dword [ebp - 4], eax
push dword [ebp + 8]
push eax
call fcn.00404b15
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x3c]
add eax, dword [ebp - 4]
push esi
push edi
push dword [ebp + 0xc]
mov dword [esi], eax
push ecx
mov dword [eax + 0x34], ebx
call fcn.00405d37
add esp, 0x1c
test al, al
je 0x406255
mov eax, dword [esi]
mov eax, dword [eax + 0x34]
sub eax, dword [edi + 0x34]
je 0x406200
push eax
mov eax, esi
call fcn.00405ab3
movzx eax, al
xor edi, edi
pop ecx
mov dword [esi + 0x18], eax
inc edi
jmp 0x406206
xor edi, edi
inc edi
mov dword [esi + 0x18], edi
call fcn.00405e89
test al, al
je 0x406255
push esi
call fcn.00405c39
pop ecx
test al, al
je 0x406255
mov eax, esi
call fcn.00405b3a
test al, al
je 0x406255
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
xor ecx, ecx
cmp eax, ecx
je 0x406268
add eax, ebx
cmp dword [esi + 0x14], ecx
je 0x406263
push ecx
push edi
push ebx
call eax
test eax, eax
jne 0x40625e
push 0x21ddcd8b
mov eax, edi
call fcn.00406efb
mov dword [esp], 0x45a
call eax
call fcn.00405e0c
xor eax, eax
jmp 0x40626d
mov dword [esi + 0x10], edi
jmp 0x40626b
mov dword [esi + 0x2c], eax
jmp 0x40626b
mov dword [esi + 0x2c], ecx
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret