Function at 0x66925c
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbd4
push ebx
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
call fcn.00604c30
xor eax, eax
push ebp
push 0x6695a7
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.user32.dll_GetActiveWindow
push esi
and esi, 0x99
sub esi, 0xd4
and esi, 0x1a8
add esi, 0x14c
nop
nop
nop
nop
xchg esi, esi
or esi, 0x18f
pop esi
mov dl, 1
mov eax, dword [0x612ac4]
call fcn.00603938
mov dword [ebp - 0x10], eax
call sub.kernel32.dll_GetUserDefaultLCID
push edx
or edx, 0x10a
sub edx, 0x48
push edx
pop edx
xor edx, 0x6f
nop
nop
nop
xchg edx, edx
push edx
pop edx
inc edx
inc edx
or edx, 0x81
xchg edx, edx
push edx
pop edx
nop
nop
nop
nop
xchg edx, edx
pop edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 4]
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push ebx
xor eax, 0x82
push eax
pop eax
inc eax
dec eax
add eax, 0x4a
nop
add eax, 0xac
dec ebx
pop ebx
pop eax
push 0
push 0
mov eax, dword [ebp - 0x10]
call fcn.00616730
call sub.kernel32.dll_GetTickCount
push 0
push 0
mov eax, dword [ebp - 4]
mov eax, dword [eax]
call fcn.00616730
push 1
call sub.kernel32.dll_SetLastError
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x6608d0]
call fcn.00660c5c
mov dword [ebp - 0x18], eax
call sub.kernel32.dll_GetLastError_1
xor eax, eax
push ebp
push 0x6694cd
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x42c]
mov ecx, 0x400
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jle 0x669434
call sub.kernel32.dll_GetUserDefaultLCID
push edx
or edx, 0x10a
sub edx, 0x48
push edx
pop edx
xor edx, 0x6f
nop
nop
nop
xchg edx, edx
push edx
pop edx
inc edx
inc edx
or edx, 0x81
xchg edx, edx
push edx
pop edx
nop
nop
nop
nop
xchg edx, edx
pop edx
lea edx, [ebp - 0x42c]
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
call fcn.00616974
push ebx
and ebx, 0x65
inc ebx
xor ebx, 0x17e
dec ebx
mov ebx, 0xfc
or ebx, 0x17d
push ebx
pop ebx
push ebx
pop ebx
or ebx, 0x3c
pop ebx
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x42c]
mov ecx, 0x400
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov dword [ebp - 0x1c], eax
push 0x6695b8
call sub.kernel32.dll_AddAtomA
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push ebx
xor eax, 0x82
push eax
pop eax
inc eax
dec eax
add eax, 0x4a
nop
add eax, 0xac
dec ebx
pop ebx
pop eax
cmp dword [ebp - 0x1c], 0
jg 0x66938b
push 1
call sub.kernel32.dll_SetErrorMode
push edx
add edx, 0x1a4
xchg edx, edx
push edx
pop edx
sub edx, 0x167
add edx, 0xe
nop
nop
nop
nop
and edx, 0x55
pop edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x6694d4
push 1
call sub.kernel32.dll_SetLastError
mov eax, dword [ebp - 0x18]
call fcn.00603968
push ebx
xor ebx, 0x10f
nop
nop
and ebx, 0x52
or ebx, 0x10c
or ebx, 0x137
or ebx, 0x12d
mov ebx, 0x8c
mov ebx, 0x9d
xchg ebx, ebx
and ebx, 0x19c
xchg ebx, ebx
inc ebx
sub ebx, 0x1e
xor ebx, 0xf8
pop ebx
call sub.kernel32.dll_GetCurrentThreadId_1
push eax
push ebx
xor eax, 0x82
push eax
pop eax
inc eax
dec eax
add eax, 0x4a
nop
add eax, 0xac
dec ebx
pop ebx
pop eax
ret