Function at 0x4f8270
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405af0
xor eax, eax
push ebp
push 0x4f84fc
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.user32.dll_GetMenuContextHelpId
push eax
xor eax, 0xc
push eax
pop eax
or eax, 6
nop
inc eax
add eax, 0x145
pop eax
lea eax, [ebp - 8]
xor edx, edx
call fcn.00405b5c
call sub.kernel32.dll_GetCurrentProcessId
push ecx
push esi
add ecx, 0xaa
sub esi, 0x159
add ecx, 0x18e
or esi, 0xe2
nop
nop
or esi, 4
add ecx, 0xe0
xchg esi, esi
pop esi
pop ecx
mov dl, 1
mov eax, dword [0x422f04]
call fcn.00428418
mov dword [ebp - 0x14], eax
push 0x4f850c
call sub.kernel32.dll_GlobalAddAtomW
mov dx, 0x20
mov eax, dword [ebp - 0x14]
call fcn.00427a2c
call sub.kernel32.dll_GetLastError
push ecx
mov ecx, 0x18b
or ecx, 0x38
dec ecx
inc ecx
mov ecx, 0x186
dec ecx
dec ecx
and ecx, 0x156
mov ecx, 0x124
and ecx, 0xf5
push ecx
pop ecx
xchg ecx, ecx
xchg ecx, ecx
inc ecx
pop ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
call fcn.004277f0
call sub.kernel32.dll_GetLastError
push ecx
mov ecx, 0x18b
or ecx, 0x38
dec ecx
inc ecx
mov ecx, 0x186
dec ecx
dec ecx
and ecx, 0x156
mov ecx, 0x124
and ecx, 0xf5
push ecx
pop ecx
xchg ecx, ecx
xchg ecx, ecx
inc ecx
pop ecx
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4f84b1
inc ebx
xor esi, esi
push 1
call sub.kernel32.dll_GetPriorityClass
push edi
push edx
dec edx
inc edx
nop
nop
nop
add edi, 0x64
xor edx, 0x1c
sub edi, 0x14e
pop edx
pop edi
lea ecx, [ebp - 0x18]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.0040c0e8
mov edi, eax
push ecx
push edx
or edx, 0x28
mov edx, 0xb5
mov ecx, 0x84
add ecx, 0x13b
pop edx
pop ecx
call sub.kernel32.dll_GetCurrentProcessId
push ecx
push esi
add ecx, 0xaa
sub esi, 0x159
add ecx, 0x18e
or esi, 0xe2
nop
nop
or esi, 4
add ecx, 0xe0
xchg esi, esi
pop esi
pop ecx
lea eax, [ebp - 0x1c]
mov edx, edi
add dx, word [ebp - 0xc]
call fcn.00405c74
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 8]
call fcn.00405e2c
call sub.kernel32.dll_GetCurrentProcessId
push ecx
push esi
add ecx, 0xaa
sub esi, 0x159
add ecx, 0x18e
or esi, 0xe2
nop
nop
or esi, 4
add ecx, 0xe0
xchg esi, esi
pop esi
pop ecx
push 1
call sub.gdi32.dll_CloseMetaFile
push ecx
add ecx, 0x128
dec ecx
sub ecx, 0x14
sub ecx, 7
add ecx, 0x11d
nop
nop
nop
nop
nop
pop ecx
push 1
call sub.kernel32.dll_InitAtomTable
push edx
push eax
mov edx, 0xa4
add edx, 0x12b
push eax
pop eax
add eax, 0x168
or eax, 0x13e
and eax, 0x101
xchg edx, edx
add eax, 0x53
push edx
pop edx
nop
inc eax
pop eax
pop edx
inc esi
dec ebx
jne 0x4f8399
push 1
call sub.user32.dll_GetMenuContextHelpId
push eax
xor eax, 0xc
push eax
pop eax
or eax, 6
nop
inc eax
add eax, 0x145
pop eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00405b08
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f8503
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00405b00
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405b00
ret