Function at 0x491ce4
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbf4
push ebx
push esi
mov esi, edx
mov ebx, eax
mov eax, dword [ebp + 8]
call fcn.00405a60
xor eax, eax
push ebp
push 0x492071
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x492084
call sub.kernel32.dll_GlobalAddAtomW
push esi
nop
nop
nop
nop
add esi, 0xbd
inc esi
xchg esi, esi
inc esi
sub esi, 0x134
nop
nop
or esi, 0x95
add esi, 0x9e
xchg esi, esi
and esi, 0x193
add esi, 0x31
pop esi
mov dl, 1
mov eax, dword [0x423004]
call fcn.00403bcc
mov dword [ebp - 8], eax
call sub.kernel32.dll_GetCurrentProcessId
push edx
push ebx
add ebx, 0xeb
sub edx, 0x146
mov edx, 0x7e
mov ebx, 0x63
sub edx, 0x154
nop
nop
mov ebx, 0x31
inc edx
mov ebx, 0x77
xchg ebx, ebx
pop ebx
pop edx
mov edx, esi
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 4]
call sub.kernel32.dll_GetCurrentProcessId
push edx
push ebx
add ebx, 0xeb
sub edx, 0x146
mov edx, 0x7e
mov ebx, 0x63
sub edx, 0x154
nop
nop
mov ebx, 0x31
inc edx
mov ebx, 0x77
xchg ebx, ebx
pop ebx
pop edx
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.004281a8
push 1
call sub.user32.dll_IsMenu
push esi
push eax
nop
nop
nop
nop
and eax, 0x13a
add esi, 0x105
nop
nop
nop
nop
xchg esi, eax
dec esi
and eax, 0x12f
sub eax, 0x100
pop eax
pop esi
push 0
push 0
mov eax, dword [ebx]
call fcn.004281a8
call sub.kernel32.dll_GetCurrentProcessId
push edx
push ebx
add ebx, 0xeb
sub edx, 0x146
mov edx, 0x7e
mov ebx, 0x63
sub edx, 0x154
nop
nop
mov ebx, 0x31
inc edx
mov ebx, 0x77
xchg ebx, ebx
pop ebx
pop edx
mov ecx, dword [ebx]
mov dl, 1
mov eax, dword [0x4893e4]
call fcn.00489788
mov dword [ebp - 0xc], eax
push 1
call sub.gdi32.dll_DeleteColorSpace
push ebx
push esi
nop
nop
nop
push ebx
pop ebx
add esi, 0x15e
and ebx, 0x93
pop esi
pop ebx
xor eax, eax
push ebp
push 0x491faa
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x4920a8
call sub.kernel32.dll_GlobalAddAtomW
lea edx, [ebp - 0x40c]
mov ecx, 0x400
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, eax
push ebx
nop
nop
and ebx, 0x152
dec ebx
or ebx, 0xaf
inc ebx
xor ebx, 0x168
and ebx, 0xbe
inc ebx
pop ebx
test ebx, ebx
jle 0x491f6a
push 1
call sub.user32.dll_IsMenu
push esi
push eax
nop
nop
nop
nop
and eax, 0x13a
add esi, 0x105
nop
nop
nop
nop
xchg esi, eax
dec esi
and eax, 0x12f
sub eax, 0x100
pop eax
pop esi
lea edx, [ebp - 0x40c]
mov ecx, ebx
mov eax, dword [ebp - 8]
call fcn.00428414
push 0x4920a8
call sub.kernel32.dll_GlobalAddAtomW
lea edx, [ebp - 0x40c]
mov ecx, 0x400
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov ebx, eax
push ebx
nop
nop
and ebx, 0x152
dec ebx
or ebx, 0xaf
inc ebx
xor ebx, 0x168
and ebx, 0xbe
inc ebx
pop ebx
push 1
call sub.user32.dll_IsMenu
push esi
push eax
nop
nop
nop
nop
and eax, 0x13a
add esi, 0x105
nop
nop
nop
nop
xchg esi, eax
dec esi
and eax, 0x12f
sub eax, 0x100
pop eax
pop esi
push 1
call sub.kernel32.dll_SetErrorMode
test ebx, ebx
jg 0x491eb9
push 1
call sub.gdi32.dll_DeleteColorSpace
push ebx
push esi
nop
nop
nop
push ebx
pop ebx
add esi, 0x15e
and ebx, 0x93
pop esi
pop ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x491fb1
push 1
call sub.user32.dll_GetListBoxInfo
mov eax, dword [ebp - 0xc]
call fcn.00403bfc
push 1
call sub.kernel32.dll_SetErrorMode
ret