Function at 0x404d70
Capabilities:
Parse pe header

Disassembly:
push esi
push edi
mov esi, dword [esp + 0xc]
push esi
call fcn.00401060
mov eax, dword [0x416118]
push eax
push 0x58
push esi
call fcn.00401290
mov dword [0x416118], eax
mov eax, dword [0x41611c]
push eax
push 0x59
push esi
call fcn.00401290
push 0x42
mov dword [0x41611c], eax
push esi
call fcn.00401210
test al, al
je 0x404dbd
mov eax, dword [0x416158]
or eax, 0x100
mov dword [0x416158], eax
push 0x43
push esi
call fcn.00401210
test al, al
je 0x404dd8
mov eax, dword [0x416158]
or eax, 0x1000
mov dword [0x416158], eax
push 0x4f
push esi
call fcn.00401210
test al, al
je 0x404deb
mov byte [0x41613c], 1
mov eax, dword [0x416120]
push eax
push 0x4d
push esi
call fcn.00401290
mov dword [0x416120], eax
test eax, eax
mov eax, dword [0x416154]
je 0x404e0e
or eax, 0x800
jmp 0x404e13
and eax, 0xfffff7ff
mov dword [0x416154], eax
mov eax, dword [0x416124]
push eax
push 0x45
push esi
call fcn.00401290
push 0
mov dword [0x416124], eax
push 0x4c
push esi
call fcn.00401290
test eax, eax
je 0x404e40
mov dword [0x416128], eax
jmp 0x404e56
push 0x4c
push esi
call fcn.00401210
test al, al
je 0x404e56
mov dword [0x416128], 0xffffffff
push 0x50
push esi
call fcn.00401210
test al, al
je 0x404e71
mov eax, dword [0x416154]
or eax, 0x200
mov dword [0x416154], eax
push 0x4e
push esi
call fcn.00401210
test al, al
je 0x404e8c
mov eax, dword [0x416154]
or eax, 0x400
mov dword [0x416154], eax
push 0x40
push esi
call fcn.00401210
push 0x47
mov byte [0x418bf2], al
push esi
call fcn.00401210
mov edi, dword [0x416154]
test al, al
je 0x404eb1
or edi, 0x100
mov eax, edi
mov dword [0x416154], edi
and eax, 0xfe000
shr eax, 0xd
push eax
push 0x54
push esi
call fcn.00401290
shl eax, 0xd
mov ecx, dword [0x416154]
xor eax, edi
push 0xff
and eax, 0xfe000
push 0x41
xor ecx, eax
push esi
mov dword [0x416154], ecx
call fcn.00401290
cmp eax, 0xff
jae 0x404f35
mov ecx, dword [0x416154]
and ecx, 0xffcfffff
cmp eax, 1
mov dword [0x416154], ecx
je 0x404f19
cmp eax, 2
je 0x404f21
cmp eax, 3
je 0x404f29
jmp 0x404f35
or ecx, 0x100000
jmp 0x404f2f
or ecx, 0x200000
jmp 0x404f2f
or ecx, 0x300000
mov dword [0x416154], ecx
mov eax, dword [0x41612c]
push eax
push 0x46
push esi
call fcn.00401290
mov dword [0x41612c], eax
cmp eax, 0xffffffff
je 0x404f66
test eax, eax
jge 0x404f66
cmp eax, 0xfffffa24
jl 0x404f66
shl eax, 2
lea ecx, [eax + eax*4]
lea eax, [ecx + ecx*4]
mov dword [0x41612c], eax
push 0x46
push esi
call fcn.00401210
test al, al
mov eax, 0
jne 0x404f7c
mov eax, dword [0x41612c]
mov dword [0x41612c], eax
cmp eax, 0xffffffff
je 0x404f95
mov eax, dword [0x416154]
or eax, 0x80
mov dword [0x416154], eax
mov eax, dword [0x416130]
push eax
push 0x55
push esi
call fcn.00401290
push 0x53
mov dword [0x416130], eax
push esi
call fcn.00401210
test al, al
je 0x404fbb
mov byte [0x416134], 1
push 0x4b
push esi
call fcn.00401210
test al, al
je 0x404fce
mov byte [0x416144], 1
push 0x51
push esi
call fcn.00401210
test al, al
je 0x404fe1
mov byte [0x416240], 1
push 0x5a
push esi
call fcn.00401210
mov byte [0x418bf1], al
test al, al
je 0x404ffe
push 0
call fcn.00409340
mov byte [0x418bf1], al
push 0xff
push 0x49
push esi
call fcn.00401290
cmp eax, 0xff
je case.default.0x40502a
mov ecx, dword [0x416158]
dec eax
and ecx, 0xffff3dff
cmp eax, 3
mov dword [0x416158], ecx
ja case.default.0x40502a
jmp dword [eax*4 + 0x405150]
or ecx, 0xc000
jmp 0x40504f
or ecx, 0xc200
jmp 0x40504f
or ecx, 0x200
jmp 0x40504f
or ecx, 0x4200
mov dword [0x416158], ecx
push 0
push 0x52
push esi
call fcn.00401290
push 0x400
mov byte [0x418bcc], al
push 0x56
push esi
call fcn.00401290
mov edx, eax
mov ecx, dword [0x416158]
and edx, 0x180
cmp edx, 0x180
jne 0x40508a
or ecx, 0x20
cmp edx, 0x100
jne 0x405095
or ecx, 0x40
cmp edx, 0x80
jne 0x4050a3
or ecx, 0x80
and eax, 0xfffffe7f
mov dword [0x416158], ecx
je 0x4050cd
cmp eax, 5
jae 0x4050cd
and ecx, 0xffffffe0
test eax, eax
mov dword [0x416158], ecx
je 0x4050cd
add eax, 0x15
or ecx, eax
mov dword [0x416158], ecx
push 0x4a
push esi
call fcn.00401210
test al, al
je 0x4050e0
mov byte [0x418bcd], 1
mov eax, dword [0x41610c]
push eax
push 0x48
push esi
call fcn.00401290
push eax
mov eax, dword [0x416108]
push eax
push 0x57
push esi
call fcn.00401290
push eax
call fcn.004043b0
mov eax, dword [0x416248]
push eax
push 0x44
push esi
call fcn.00401290
mov dword [0x416248], eax
mov al, byte [0x41613c]
test al, al
je 0x40512f
mov eax, dword [0x416158]
and eax, 0xfffffff8
or eax, 0x18
mov dword [0x416158], eax
push 0x2f
push esi
call fcn.0040b6f0
add esp, 8
test eax, eax
je 0x405148
call fcn.00404d50
xor al, al
pop edi
pop esi
ret
mov al, 1
pop edi
pop esi
ret