Function at 0x421d8e
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [ebp + 0x1c]
xor eax, eax
push edi
push 0x38
push eax
push esi
mov ebx, edx
mov dword [ebp - 0xc], eax
mov edi, ecx
call sub.msvcrt.dll_memset
mov ecx, dword [ebp + 8]
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov dword [esi], edi
mov dword [esi + 0x14], ebx
mov dword [esi + 0x20], ecx
mov dword [esi + 0x30], 0x40e1a0
mov dword [esi + 0x34], eax
test edi, edi
je 0x4220d4
cmp ecx, ebx
jbe 0x421dd7
mov ecx, ebx
lea ebx, [edi + ecx]
mov dword [ebp - 0x10], ebx
cmp ebx, edi
jb 0x4220d4
cmp ecx, 0x40
jae 0x421df4
mov eax, 0xc000007b
jmp 0x4220d9
movzx eax, word [edi]
mov edx, 0x5a4d
mov dword [ebp - 8], 0x4550
cmp ax, dx
je 0x421e15
mov ebx, dword [ebp - 8]
cmp ax, bx
jne 0x421dea
mov dword [esi + 4], edi
jmp 0x421e44
mov edx, dword [edi + 0x3c]
test edx, edx
je 0x421dea
cmp edx, ecx
ja 0x421dea
mov eax, ecx
sub eax, edx
cmp eax, 0xf8
jbe 0x421dea
add edx, edi
mov dword [esi + 4], edx
lea eax, [edx + 0xf8]
cmp eax, ebx
ja 0x421dea
lea eax, [edi + 0x40]
cmp edx, eax
jb 0x421dea
mov ebx, dword [ebp - 8]
mov edx, dword [esi + 4]
mov eax, edx
sub eax, edi
add eax, 0xf8
cmp eax, ecx
ja 0x4220d4
cmp dword [edx], ebx
jne 0x421dea
xor eax, eax
cmp word [edx + 0x14], ax
je 0x421dea
movzx eax, word [edx + 4]
mov ecx, 0x14c
sub eax, ecx
je 0x421e9d
sub eax, 0x74
je 0x421e9d
dec eax
sub eax, 1
je 0x421e9d
dec eax
sub eax, 1
je 0x421e9d
sub eax, 0x3c
je 0x421f13
sub eax, 0x8464
je 0x421e9d
sub eax, 0x2400
jne 0x421dea
mov dword [esi + 0x1c], 0x1000
mov ebx, edx
mov edx, 0x10b
movzx eax, word [ebx + 0x18]
cmp ax, dx
je 0x421eca
mov ecx, 0x20b
cmp ax, cx
jne 0x421dea
lea ecx, [edx + 0x41]
cmp ax, dx
jne 0x421f1c
movzx eax, word [ebx + 4]
cmp ax, cx
je 0x421ef3
mov ecx, 0x1c0
cmp ax, cx
je 0x421ef3
add ecx, 4
cmp ax, cx
je 0x421ef3
mov ecx, 0x1c2
cmp ax, cx
jne 0x421dea
mov edx, dword [ebp + 0x24]
mov eax, ebx
mov ecx, dword [ebp + 0x20]
sub eax, edi
push 4
add eax, 0x58
push eax
call fcn.00421d3f
lea edx, [ebx + 0x98]
mov dword [ebp - 4], edx
jmp 0x421f60
mov dword [esi + 0x1c], 0x2000
jmp 0x421ea4
movzx eax, word [ebx + 4]
mov ecx, 0x200
cmp ax, cx
je 0x421f42
mov ecx, 0x8664
cmp ax, cx
je 0x421f42
mov ecx, 0xaa64
cmp ax, cx
jne 0x421dea
mov edx, dword [ebp + 0x24]
mov eax, ebx
mov ecx, dword [ebp + 0x20]
sub eax, edi
push 4
add eax, 0x58
push eax
call fcn.00421d3f
lea eax, [ebx + 0xa8]
mov dword [ebp - 4], eax
mov eax, dword [ebx + 0x54]
mov dword [esi + 0x18], eax
cmp dword [esi + 0x18], 0
mov eax, dword [ebx + 0x38]
mov dword [esi + 8], eax
mov ecx, dword [ebx + 0x3c]
je 0x421dea
mov eax, dword [esi + 0x14]
cmp dword [esi + 0x18], eax
jae 0x421dea
test ecx, ecx
je 0x421dea
lea eax, [ecx - 1]
test ecx, eax
jne 0x421dea
mov edi, dword [esi + 8]
lea eax, [edi - 1]
test edi, eax
jne 0x421dea
cmp edi, ecx
jb 0x421dea
test ecx, 0x1ff
je 0x421fbe
cmp ecx, edi
jne 0x421dea
mov eax, dword [esi + 4]
mov ecx, dword [esi + 4]
push 0x28
movzx eax, word [eax + 6]
mov dword [esi + 0xc], eax
lea ebx, [ecx + 0x18]
movzx eax, word [ecx + 0x14]
add ebx, eax
mov eax, dword [esi + 0xc]
pop ecx
mul ecx
mov dword [esi + 0x10], ebx
test edx, edx
jne 0x421dea
cmp eax, 0xffffffff
ja 0x421dea
lea ecx, [ebx + eax]
cmp ecx, ebx
jb 0x421dea
cmp ecx, dword [ebp - 0x10]
ja 0x421dea
sub ecx, dword [esi]
mov dword [ebp - 8], ecx
cmp dword [esi + 0xc], edx
jbe 0x422067
lea edx, [ebx + 0x10]
mov dword [ebp - 0x10], edx
mov eax, dword [edx + 4]
mov ebx, dword [edx]
test eax, eax
je 0x422025
cmp eax, ecx
jb 0x421dea
lea edx, [ebx + eax]
cmp edx, eax
jb 0x421dea
cmp edx, dword [esi + 0x14]
ja 0x421dea
test ebx, ebx
je 0x422045
cmp edx, dword [ebp - 8]
jbe 0x422045
mov dword [ebp - 8], edx
lea eax, [edi - 1]
add eax, ebx
cmp eax, ebx
jb 0x421dea
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
inc eax
add edx, 0x28
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], edx
cmp eax, dword [esi + 0xc]
jb 0x422014
mov eax, dword [ebp - 4]
sub eax, dword [esi]
mov ebx, dword [ebp + 0x24]
mov edx, ebx
mov edi, dword [ebp + 0x20]
mov ecx, edi
push 8
push eax
call fcn.00421d3f
mov ecx, dword [ebp - 4]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
test eax, eax
je 0x4220d0
test ecx, ecx
je 0x4220d0
cmp eax, dword [ebp - 8]
jb 0x421dea
cmp eax, dword [esi + 0x14]
ja 0x421dea
lea edx, [ecx + eax]
cmp edx, dword [esi + 0x14]
jne 0x421dea
cmp edx, eax
jb 0x421dea
cmp eax, dword [esi + 0x18]
jb 0x421dea
test al, 3
jne 0x421dea
push ecx
push eax
mov edx, ebx
mov ecx, edi
call fcn.00421d3f
xor eax, eax
jmp 0x4220d9
mov eax, 0xc000000d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20