Function at 0x4208d0
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 0xc]
push edi
mov dword [ebx], 0
mov dword [ebx + 4], 0
cmp esi, 0x200
jb 0x420a65
mov eax, 0x5a4d
cmp word [edx], ax
jne 0x4209a3
mov ecx, dword [edx + 0x3c]
cmp ecx, 0x1000
jae 0x4209a3
lea eax, [ecx + 0x200]
cmp eax, esi
ja 0x4209a3
test cl, 7
jne 0x4209a3
add ecx, edx
cmp dword [ecx], 0x4550
jne 0x4209a3
movzx eax, word [ecx + 4]
cmp eax, 0x1c4
ja 0x42095e
je 0x420957
sub eax, 0x14c
je 0x42096c
sub eax, 0x74
je 0x420950
sub eax, 2
jne 0x4209a3
mov eax, 0x3030501
jmp 0x420978
mov eax, 0x3030701
jmp 0x420978
cmp eax, 0x200
je 0x420973
cmp eax, 0x8664
jne 0x4209a3
mov eax, 0x3030103
jmp 0x420978
mov eax, 0x3030401
mov edi, 0x400
cmp word [ecx + 0x14], di
ja 0x4209a3
movzx ecx, word [ecx + 0x18]
mov edi, 0x10b
cmp cx, di
je 0x420af8
mov edi, 0x20b
cmp cx, di
je 0x420af8
cmp byte [edx + 6], 1
jne 0x420a5d
cmp dword [edx], 0x464c457f
jne case.0x420a0c.4
movzx eax, byte [edx + 4]
sub eax, 1
je 0x4209cb
sub eax, 1
jne case.0x420a0c.4
movzx eax, byte [edx + 5]
sub eax, 1
je 0x4209f4
sub eax, 1
jne case.0x420a0c.4
movzx ecx, byte [edx + 0x12]
lea esi, [eax + 1]
movzx eax, byte [edx + 0x13]
shl cx, 8
or cx, ax
movzx eax, cx
jmp 0x4209fa
movzx eax, word [edx + 0x12]
xor esi, esi
movzx eax, ax
add eax, 0xfffffffe
cmp eax, 0x3c
ja case.0x420a0c.4
movzx eax, byte [eax + 0x420c10]
jmp dword [eax*4 + 0x420bfc]
pop edi
mov eax, 0x3030103
mov dword [ebx], eax
mov eax, 1
pop esi
pop ebx
pop ebp
ret
pop edi
mov eax, 0x3030805
mov dword [ebx], eax
mov eax, 1
pop esi
pop ebx
pop ebp
ret
test esi, esi
je case.0x420a0c.4
pop edi
mov eax, 0x3030205
mov dword [ebx], eax
mov eax, 1
pop esi
pop ebx
pop ebp
ret
test esi, esi
jne case.0x420a0c.4
mov eax, 0x3030501
mov dword [ebx], eax
lea eax, [esi + 1]
pop edi
pop esi
pop ebx
pop ebp
ret
cmp esi, 0x200
jae case.0x420a0c.4
cmp esi, 0x2c
jae 0x420b3a
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
mov eax, dword [edx]
cmp eax, 0xfeedface
ja 0x420a9e
je 0x420aa9
cmp eax, 0xcefaedfe
je 0x420a92
cmp eax, 0xcffaedfe
jne 0x420b3a
mov eax, dword [edx + 4]
mov esi, 1
bswap eax
jmp 0x420aae
cmp eax, 0xfeedfacf
jne 0x420b3a
mov eax, dword [edx + 4]
xor esi, esi
cmp eax, 0x12
ja 0x420b04
je 0x420b10
sub eax, 7
je 0x420b25
sub eax, 5
je 0x420ad9
sub eax, 2
jne 0x420b3a
test esi, esi
je 0x420b3a
mov ecx, dword [edx + 0x10]
mov eax, 0x3030805
mov esi, dword [edx + 0x14]
bswap esi
bswap ecx
jmp 0x420ae8
test esi, esi
jne 0x420b3a
mov ecx, dword [edx + 0x10]
mov eax, 0x3030501
mov esi, dword [edx + 0x14]
cmp esi, 0x1000000
ja 0x420b3a
cmp ecx, 0x40000
ja 0x420b3a
pop edi
mov dword [ebx], eax
mov eax, 1
pop esi
pop ebx
pop ebp
ret
sub eax, 0x1000007
je 0x420b25
sub eax, 0xb
jne 0x420b3a
test esi, esi
je 0x420b3a
mov ecx, dword [edx + 0x10]
mov eax, 0x3030205
mov esi, dword [edx + 0x14]
bswap esi
bswap ecx
jmp 0x420ae8
mov ecx, dword [edx + 0x10]
mov eax, 0x3030103
test esi, esi
je 0x420ae5
mov esi, dword [edx + 0x14]
bswap esi
bswap ecx
jmp 0x420ae8
cmp dword [edx], 0x46464952
jne 0x420a6e
cmp dword [edx + 8], 0x45564157
jne 0x420a6e
cmp dword [edx + 0xc], 0x20746d66
jne 0x420a6e
mov ecx, dword [edx + 0x10]
lea eax, [ecx - 0x10]
cmp eax, 2
ja 0x420a6e
cmp word [edx + 0x14], 1
jne 0x420a6e
movzx eax, word [edx + 0x22]
test al, 7
jne 0x420a6e
movzx edi, word [edx + 0x16]
shr eax, 3
imul edi, eax
test edi, edi
je 0x420a6e
cmp edi, 0x100
ja 0x420a6e
add ecx, 0x14
xor esi, esi
lea esp, [esp]
lea eax, [ecx + 8]
cmp eax, dword [ebp + 0xc]
ja 0x420a6e
cmp dword [ecx + edx], 0x61746164
je 0x420be6
mov eax, dword [ecx + edx + 4]
cmp eax, 0x10000
ja 0x420a6e
add ecx, 8
inc esi
add ecx, eax
cmp esi, 0xa
jl 0x420bb0
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret
mov dword [ebx + 4], edi
mov eax, 1
pop edi
pop esi
mov dword [ebx], 3
pop ebx
pop ebp
ret