Function at 0x401070
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push 0
call dword [0x404488]
add esp, 4
mov dword [0x40448c], eax
mov eax, 1
imul ecx, eax, 0
mov edx, dword [0x40448c]
movsx eax, byte [edx + ecx]
cmp eax, 0x4d
jne 0x401266
mov ecx, 1
shl ecx, 0
mov edx, dword [0x40448c]
movsx eax, byte [edx + ecx]
cmp eax, 0x5a
jne 0x401266
mov ecx, dword [0x40448c]
mov edx, dword [0x40448c]
add edx, dword [ecx + 0x3c]
mov dword [ebp - 0x24], edx
mov eax, 1
imul ecx, eax, 0
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + ecx]
cmp eax, 0x50
jne 0x401266
mov ecx, 1
shl ecx, 0
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx + ecx]
cmp eax, 0x45
jne 0x401266
mov ecx, dword [ebp - 0x24]
add ecx, 0xf8
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x20], 0x403148
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax]
mov byte [ebp - 1], cl
mov edx, dword [ebp - 0x20]
cmp cl, byte [edx]
jne 0x401154
cmp byte [ebp - 1], 0
je 0x40114b
mov eax, dword [ebp - 0x1c]
mov cl, byte [eax + 1]
mov byte [ebp - 2], cl
mov edx, dword [ebp - 0x20]
cmp cl, byte [edx + 1]
jne 0x401154
add dword [ebp - 0x1c], 2
add dword [ebp - 0x20], 2
cmp byte [ebp - 2], 0
jne 0x401117
mov dword [ebp - 0x28], 0
jmp 0x40115c
sbb eax, eax
or eax, 1
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x28]
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0
je 0x401173
mov edx, dword [ebp - 0x14]
add edx, 0x28
mov dword [ebp - 0x14], edx
jmp 0x40110a
mov eax, dword [ebp - 0x14]
mov ecx, dword [0x40448c]
add ecx, dword [eax + 0xc]
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], 0
jmp 0x401194
mov edx, dword [ebp - 8]
add edx, 1
mov dword [ebp - 8], edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 8]
cmp ecx, dword [eax + 8]
jge 0x4011f4
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 8]
movsx eax, byte [edx]
cmp eax, 0xf
jne 0x4011f2
mov dword [ebp - 0x10], 0
jmp 0x4011bf
mov ecx, dword [ebp - 0x10]
add ecx, 1
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], 0x20
jge 0x4011f0
mov edx, dword [ebp - 0xc]
add edx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
movsx eax, byte [eax + ecx + 0x20]
mov ecx, dword [ebp - 0x10]
movsx edx, byte [edx + ecx]
add edx, eax
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x10]
mov byte [eax + ecx], dl
jmp 0x4011b6
jmp 0x4011f4
jmp 0x40118b
mov edx, dword [ebp - 8]
add edx, 0x21
mov dword [ebp - 8], edx
jmp 0x401208
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 0x14]
mov edx, dword [ebp - 8]
cmp edx, dword [ecx + 8]
jge 0x401266
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
movsx ecx, byte [eax]
cmp ecx, 0x45
jne 0x401264
mov dword [ebp - 0x18], 0
jmp 0x401233
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
movsx edx, byte [eax + ecx]
test edx, edx
je 0x401262
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
movsx edx, byte [eax + ecx]
add edx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
add eax, dword [ebp - 8]
mov ecx, dword [ebp - 0x18]
mov byte [eax + ecx], dl
jmp 0x40122a
jmp 0x401266
jmp 0x4011ff
mov esp, ebp
pop ebp
ret