Function at 0x469adc
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
xor ebx, ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404d08
xor eax, eax
push ebp
push 0x469e1f
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.user32.dll_GetKBCodePage
push edi
mov edi, 0x2e
xchg edi, edi
add edi, 0x166
xor edi, 0xe8
and edi, 0x102
push edi
pop edi
nop
nop
nop
nop
xchg edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
and edi, 0x112
dec edi
xchg edi, edi
pop edi
lea eax, [ebp - 0x10]
call fcn.00404854
push ecx
push ebx
xor ebx, 0xa3
dec ecx
xchg ebx, ebx
xchg ebx, ecx
inc ebx
sub ebx, 0xb4
inc ebx
pop ebx
pop ecx
call sub.user32.dll_GetKBCodePage
push edi
mov edi, 0x2e
xchg edi, edi
add edi, 0x166
xor edi, 0xe8
and edi, 0x102
push edi
pop edi
nop
nop
nop
nop
xchg edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
and edi, 0x112
dec edi
xchg edi, edi
pop edi
mov dl, 1
mov eax, dword [0x4162f0]
call fcn.004039f8
mov dword [ebp - 0x1c], eax
call sub.user32.dll_GetKBCodePage
push edi
mov edi, 0x2e
xchg edi, edi
add edi, 0x166
xor edi, 0xe8
and edi, 0x102
push edi
pop edi
nop
nop
nop
nop
xchg edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
and edi, 0x112
dec edi
xchg edi, edi
pop edi
mov dl, 0x20
mov eax, dword [ebp - 0x1c]
call fcn.00419b58
call sub.kernel32.dll_GetCurrentThreadId_1
push esi
push eax
inc eax
and eax, 0x142
inc esi
xchg esi, esi
nop
nop
nop
push eax
pop eax
dec esi
pop eax
pop esi
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.00419940
call sub.kernel32.dll_GetTickCount
push eax
or eax, 0x10c
nop
nop
nop
and eax, 0x56
mov eax, 0x187
add eax, 0x167
sub eax, 0x171
inc eax
pop eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x469db9
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
push 1
call sub.user32.dll_GetMenu
push ecx
push edi
mov ecx, 0x10c
dec edi
and ecx, 0x48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ecx
pop ecx
mov edi, 0x113
or edi, 0x1a7
sub edi, 0x1a4
xchg edi, ecx
sub edi, 0x162
push ecx
pop ecx
add ecx, 0xa8
pop edi
pop ecx
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov eax, dword [ebp - 0x28]
call fcn.004091e8
mov dword [ebp - 0x18], eax
push ebx
push edx
nop
nop
nop
nop
and ebx, 0xc6
add edx, 0x89
mov ebx, 0xbc
nop
nop
nop
nop
nop
sub edx, 0x114
nop
nop
nop
and edx, 0x162
pop edx
pop ebx
call sub.user32.dll_GetActiveWindow
push ebx
push ebx
pop ebx
or ebx, 0x19e
xor ebx, 0x1a2
add ebx, 0x1ac
or ebx, 0x62
push ebx
pop ebx
xchg ebx, ebx
mov ebx, 0xd6
or ebx, 0x8c
and ebx, 0x47
or ebx, 0x86
nop
nop
nop
nop
sub ebx, 0x89
pop ebx
lea eax, [ebp - 0x2c]
mov dl, byte [ebp - 0x18]
add dl, byte [ebp - 8]
call fcn.00404a3c
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00404b20
push 1
call sub.user32.dll_GetMenu
push ecx
push edi
mov ecx, 0x10c
dec edi
and ecx, 0x48
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
push ecx
pop ecx
mov edi, 0x113
or edi, 0x1a7
sub edi, 0x1a4
xchg edi, ecx
sub edi, 0x162
push ecx
pop ecx
add ecx, 0xa8
pop edi
pop ecx
call sub.kernel32.dll_GetLastError
push edx
push ebx
xor ebx, 0x146
push edx
pop edx
nop
nop
nop
nop
nop
nop
sub edx, 0x74
xor ebx, 0x10b
or edx, 0x11a
inc edx
xchg edx, edx
xor ebx, 0x100
xor edx, 0x12f
sub edx, 0x19a
pop ebx
pop edx
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x469c51
push 1
call sub.gdi32.dll_GetStretchBltMode
push edx
inc edx
sub edx, 0x184
add edx, 0x166
dec edx
dec edx
xor edx, 0x1a9
mov edx, 0xa2
inc edx
add edx, 0x111
add edx, 0x103
pop edx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.004048a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x469e26
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00404878
lea eax, [ebp - 0x10]
call fcn.00404854
lea eax, [ebp - 4]
call fcn.00404854
ret