Function at 0x4013fc
Capabilities:
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov ecx, dword [0x415010]
push esi
push edi
mov edi, 0x80040111
mov esi, 0x415010
test ecx, ecx
je 0x401484
mov edx, 0x415090
call fcn.0040111d
test al, al
je 0x4039fb
mov byte [ebp - 4], 0
push dword [ebp - 4]
push 0xc
call fcn.004024bf
mov edi, eax
test edi, edi
je 0x40148e
mov dword [edi], 0x401470
mov dword [edi + 4], 1
mov dword [edi + 8], esi
test edi, edi
je 0x403a05
mov eax, dword [edi]
push dword [ebp + 8]
push 0x4011d8
mov esi, dword [eax]
mov ecx, esi
push edi
call dword [0x416268]
jmp 0x403a0f
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
xor edi, edi
jmp 0x40144d
inc esp
dec ebx
dec edi
imul edx, dword [edi + 0x2f], 0x64
imul eax, dword [esi + 0x31], 0x46
inc esi
xor dword [eax + 0x4a], ecx
xor al, byte [edi + edx*2 + 0x2b]
jp 0x403a76
aaa
bound ecx, qword [eax + 0x4b]
imul ebp, dword [eax + edx*2 + 0x68], 0x2f744743
je 0x403a7f
ja 0x403a80
dec ebp
push edx
arpl word [ecx + 0x47], cx
inc ecx
dec ebx
jb 0x403a93
dec esi
jp 0x403a86
je 0x403a93
inc esi
jp 0x403a96
dec edi
jp 0x403a66
dec ecx
cmp dword [edx + 0x52], edi
xor edx, dword [edi + 0x79]
dec edi
inc edi
outsd dx, dword [esi]
sub ebp, dword [esi + esi + 0x6c]
push edx
cmp byte [edx + esi*2 + 0x66], ch
inc esp
das
insb byte es:[edi], dx
push edi
dec edi
push 0x55
insb byte es:[edi], dx
das
inc edi
push ebx
aaa
jp 0x403ad0
cmp dword ss:[ebp + esi*2 + 0x74], ebp
jo 0x403ad7
bound ebp, qword [edi]
push ebx
push eax
inc esi
imul esp, dword [edi + 0x68], 0x45446c44
inc esp
insb byte es:[edi], dx
inc esp
inc ebp
pop edx
pop eax
cmp byte [edx + 0x50], ch
popal
xor byte [ebp + 0x68], cl
push 0x37
arpl word [ecx + 0x66], bx
insb byte es:[edi], dx
pop ecx
insb byte es:[edi], dx
inc ecx
push edi
push edi
push ebx
push 0x66305271
jb 0x403aff
push edx
xor byte [esi + 0x66], ah
jb 0x403aff
xor al, 0x39
push ebx
jb 0x403af1
cmp dword [ebx + 0x72], edx
xor byte [bx + di + 0x32], cl
xor byte [ecx + 0x32], cl
push esp
outsd dx, dword ss:[esi]
outsd dx, dword [esi]
inc esi
dec eax
jo 0x403b0c
pop ecx
xor byte fs:[ecx], dh
arpl word [esi + 0x33], bp
dec ebx
jae 0x403b15
push ebp
das
jne 0x403adb
jbe 0x403b1c
pop eax
xor al, 0x76
dec dx
outsd dx, dword [esi]
sub edi, dword [edx + 0x30]
jno 0x403af7
dec esi
xor dword [ebx + 0x6f], esi
dec edi
jp 0x403b03
insb byte es:[edi], dx
inc esp
insb byte es:[edi], dx
arpl word [edi + edx*2 + 0x72], si
imul esi, dword [ebp + 0x61], 0x47496578
pop ecx
popal
jo 0x403b30
insd dword es:[edi], dx
insd dword es:[edi], dx
je 0x403b26
outsb dx, byte [esi]
inc edx
cmp dword [edx + 0x68], ebx
inc esp
das
sub esi, dword [edi]
xor eax, 0x39663670
aaa
jae 0x403b52
imul edx, dword [eax + 0x59], 0x41
push edi
js 0x403b2c
push eax
imul esi, dword [ebx + 0x46], 0x79516f67
jne 0x403b4c
push ecx
jns 0x403b69
push edi
xor byte [esi + 0x48], cl
dec eax
imul edx, dword [ebp + 0x76], 0x56
insd dword es:[edi], dx
push 0x642b6664
push ebx
sub sp, word [ebx + edx*2 + 0x48]
dec eax
ja 0x403b69
dec ebx
dec ebp
je 0x403b35
imul ax, word [edx + edi*2 + 0x41], 0x4e5a
inc esp
jp 0x403b50
pop edx
dec esi
xor al, 0x61
jae 0x403b49
dec esi
js 0x403b5b
inc ecx
sub esp, dword [ecx + 0x55]
jno 0x403b68
xor dh, byte [ebp + 0x2f]
push ecx
cmp byte [ebx + 0x55], ch
pop edx
push esp
dec edi
imul esp, dword [edi + 0x6a], 0x52
das
inc esi
inc esp
ja 0x403b72
inc ecx
xor byte [edx + 0x37], al
imul eax, dword [esi + 0x6e], 0x32744474
inc esi
outsb dx, byte [esi]
je 0x403b7d
je 0x403b6d
jae 0x403b6d
outsb dx, byte [esi]
inc ebx
dec esi
dec esi
ja 0x403b8b
insb byte es:[edi], dx
push ecx
dec esp
pop ecx
imul edx, dword [eax + 0x6b], 0x74
push eax
imul esi, dword [esi + esi + 0x6a], 0x66
push 0x66
push esi
inc edi
insd dword es:[edi], dx
inc esp
push ecx
pop edx
jns 0x403b9b
pop eax
xor al, byte [ebp + 0x49]
dec esp
push edx
popal
sub eax, dword [ebx + 0x61]
dec esi
aaa
pop edx
imul edx, dword [ecx + 0x33], 0x556d436b
imul eax, dword [ebx + 0x6d], 0x55
inc ebx
insd dword es:[edi], dx
push ebp
inc edi
push ebp
pop ecx
pop edx
dec edx
bound ebp, qword [ecx + 0x41]
xor dword [eax], edi
jbe 0x403bcd
imul eax, dword [ecx + 0x31], 0x68557638
imul ebp, dword [eax + 0x71], 0x6d414852
push 0x52716869
dec eax
inc ecx
insd dword es:[edi], dx
dec ecx
xor cl, byte [ebx + 0x70]
outsb dx, byte [esi]
xor al, 0x5a
jbe 0x403bff
aaa
jno 0x403bdd
push ecx
arpl word [esi + 0x4a], cx
push edi
xor al, 0x56
xor al, 0x37
sub ebp, dword [edi + 0x6c]
jno 0x403bec
dec di
dec edi
push ebp
dec eax
dec ebx
dec ebp
inc ecx
inc esp
jno 0x403c15
xor al, 0x39
je 0x403c12
dec esi
dec edx
das
xor al, 0x42
outsb dx, byte [esi]
inc ebp
inc edx
xor al, 0x6f
dec ecx
xor dword [bx + si + 0x35], edx
jbe 0x403c2f
bound eax, qword [esi + 0x6d]
inc ebx
push 0x49
insd dword es:[edi], dx
imul edx, dword [esi + 0x78], 0x50
sub esi, dword [edi]
jae 0x403c2f
imul ebx, dword [ecx + 0x57], 0x38744d6d
je 0x403c07
inc esi
jbe 0x403c35
dec edi
pop eax
insd dword es:[edi], dx
insb byte es:[edi], dx
push ecx
imul edx, dword [esi + ecx*2 + 0x57], 0x6c576946
push edi
insb byte es:[edi], dx
jb 0x403c43
jo 0x403c45
jno 0x403c4c
ja 0x403c28
inc ecx
inc ecx
inc ecx
inc ecx
inc ecx
inc ecx
inc ecx
pop eax
arpl word [ebp + 0x49], cx
dec ecx
inc esi
xor al, byte [ebx + eax*2 + 0x43]
inc ecx
cmp byte [ebx + 0x67], al
inc ecx
ja 0x403c48
inc edx
inc ecx
dec ecx
push ecx
push esp
dec ebx
jb 0x403c3d
xor eax, 0x6a747479
jns 0x403c7e
je 0x403c76
bound ebp, qword [ebx]
inc ecx
cmp word [eax], si
aaa
pop ecx
push edi
ja 0x403c66
inc edi
outsb dx, byte [esi]
push esp
inc ecx
dec esi
inc edx
imul esi, dword [bx + di + 0x68], 0x6b
imul eax, dword [edi + 0x39], 0x41423077
inc ecx
push ecx
ja 0x403c72
inc ecx
inc esp
inc ebx
inc edx
push 0x4d4c4554
inc ecx
imul eax, dword [edi + 0x41], 0x31
push ebp
inc ebp
inc edx
push 0x3052434d
dec ecx
js 0x403c8c
jp 0x403c88
pop edx
inc edx
dec esi
push esi
inc edx
inc ecx
push esp
inc ebp
imul esp, dword [ecx + edi*2 + 0x5a], 0x57
inc esi
xor byte [edx + 0x58], bl
dec ecx
push esp
push edi
inc esi
jne 0x403cba
xor ch, byte [eax + 0x6c]
arpl word [ebx], si
push edx
insb byte es:[edi], dx
arpl word [edx + 0x45], bp
push ecx
dec ebp
inc ecx
xor al, 0x47
inc ecx
xor dword [ebp + 0x45], edx
push ebp
inc ebp
inc edx
js 0x403cc4
dec ebp
dec eax
push ebp
xor al, byte [esi + 0x73]
pop edx
insd dword es:[edi], dx
cmp dword [ecx + 0x5a], edi
inc esp
inc ebp
popal
dec ebp
inc edx
inc edi
inc ecx
xor dword [ebp + 0x45], edx
inc ebx
push 0x3051524d
cmp dword [esi + 0x54], ecx
xor byte [edx + 0x50], dl
dec ecx
inc ebp
dec esi
inc edx
dec ecx
inc ebp
js 0x403d10
bound edx, qword [edi + 0x6c]
xor byte [edx + 0x57], bl
push ecx
js 0x403cf4
jp 0x403cec
jo 0x403cef
dec esi
push esi
inc edx
inc ecx
dec ebp
push esp
dec ecx
imul ecx, dword [esi + 0x50], 0x54
push ebp
cmp dword [ebp + 0x54], eax
jns 0x403d01
push ebx
push ebp
xor byte [ebp + 0x67], al
push ecx
xor dl, byte [esi + 0x79]
inc edi
insb byte es:[edi], dx
insd dword es:[edi], dx
popal
push edi
dec esi
push 0x766c4764
bound ebp, qword [ecx + 0x42]
inc edx
pop eax
push edx
outsd dx, dword [esi]
bound esi, qword [ebx]
dec edx
jo 0x403d45
dec eax
imul esi, dword [edi + 0x48], 0x68
arpl word [esi + 0x4d], cx
push esp
inc ecx
ja 0x403d3a
dec ebp
push esp
inc ebp
xor eax, 0x7741444d
dec ebp
inc esp
inc ecx
ja 0x403d50
push 0x7a4d4e63
ja 0x403d4e
push esp
inc ebp
xor al, 0x4d
push 0x4d
xor dword [edi + 0x54], ecx
push ebp
xor eax, 0x42436a57
push 0x4d4c4554
inc ecx
imul eax, dword [edi + 0x41], 0x31
push ebp
inc ebp
inc edx
push 0x3052434d
dec ecx
js 0x403d6c
jp 0x403d68
pop edx
inc edx
dec esi
push esi
inc edx
inc ecx
push esp
inc ebp
imul esp, dword [ecx + edi*2 + 0x5a], 0x57
inc esi
xor byte [edx + 0x58], bl
xor edx, dword [edx + 0x6c]