Function at 0x4754e8
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.00405434
xor eax, eax
push ebp
push 0x4757c1
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.kernel32.dll_DeleteAtom
push ecx
nop
nop
nop
or ecx, 0xb9
add ecx, 0x34
add ecx, 0x132
add ecx, 7
sub ecx, 0x167
mov ecx, 0x197
pop ecx
lea eax, [ebp - 0x10]
xor edx, edx
call fcn.004054a0
push 1
call sub.kernel32.dll_DeleteAtom
push ecx
nop
nop
nop
or ecx, 0xb9
add ecx, 0x34
add ecx, 0x132
add ecx, 7
sub ecx, 0x167
mov ecx, 0x197
pop ecx
mov dl, 1
mov eax, dword [0x417430]
call fcn.0041bb34
mov dword [ebp - 0x1c], eax
call sub.kernel32.dll_GetCurrentProcessId
push ebx
push ecx
xor ebx, 0x4f
or ecx, 0x138
add ebx, 0x14c
dec ecx
inc ebx
xchg ecx, ecx
sub ecx, 0x15d
pop ecx
pop ebx
mov dx, 0x20
mov eax, dword [ebp - 0x1c]
call fcn.0041b148
push eax
push ecx
and eax, 0x88
nop
nop
nop
nop
nop
dec eax
inc eax
or eax, 0xd3
push ecx
pop ecx
and eax, 0xb1
or eax, 1
push eax
pop eax
sub eax, 0xe
and eax, 0x9b
pop ecx
pop eax
call sub.user32.dll_GetKBCodePage
push ecx
push esi
nop
nop
nop
and ecx, 0xf0
inc esi
add ecx, 0x1f
push esi
pop esi
add ecx, 0x7b
inc esi
pop esi
pop ecx
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.0041af0c
call sub.user32.dll_GetKBCodePage
push ecx
push esi
nop
nop
nop
and ecx, 0xf0
inc esi
add ecx, 0x1f
push esi
pop esi
add ecx, 0x7b
inc esi
pop esi
pop ecx
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x475749
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
push 0x4757d0
call sub.kernel32.dll_GlobalAddAtomW
push ecx
push ebx
and ebx, 0x186
inc ecx
xor ebx, 0x105
dec ecx
dec ebx
dec ecx
or ecx, 5
pop ebx
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.0040ae9c
mov dword [ebp - 0x18], eax
call sub.kernel32.dll_GetCurrentThread
push edx
push eax
add edx, 0x23
mov edx, 0xb7
push edx
pop edx
and eax, 0x27
push eax
pop eax
pop eax
pop edx
lea eax, [ebp - 0x2c]
mov dx, word [ebp - 0x18]
add dx, word [ebp - 8]
call fcn.004055b8
mov edx, dword [ebp - 0x2c]
lea eax, [ebp - 0x10]
call fcn.00405770
push edi
mov edi, 0x14d
mov edi, 0x6c
and edi, 0xac
mov edi, 0xea
and edi, 0x93
or edi, 0xe1
add edi, 0x78
and edi, 0x15
add edi, 0x1b
nop
nop
nop
nop
nop
add edi, 0x96
dec edi
sub edi, 0x13a
pop edi
push 1
call sub.user32.dll_EnumClipboardFormats
push eax
mov eax, 0xe5
add eax, 0x7b
nop
sub eax, 0xa0
push eax
pop eax
and eax, 0xae
sub eax, 0x167
sub eax, 0x6a
or eax, 4
push eax
pop eax
dec eax
sub eax, 0x10c
sub eax, 0xc1
pop eax
call sub.kernel32.dll_GetCurrentProcessId
push ebx
push ecx
xor ebx, 0x4f
or ecx, 0x138
add ebx, 0x14c
dec ecx
inc ebx
xchg ecx, ecx
sub ecx, 0x15d
pop ecx
pop ebx
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x47563a
push 1
call sub.user32.dll_GetWindowContextHelpId
push ecx
push edx
mov edx, 0x141
and edx, 0x98
xor edx, 0x11c
add edx, 0x17b
dec ecx
xchg ecx, ecx
add edx, 0x6c
add edx, 0x15f
push ecx
pop ecx
sub edx, 0x122
or ecx, 0xca
xor edx, 0x167
pop edx
pop ecx
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.0040544c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4757c8
lea eax, [ebp - 0x2c]
mov edx, 2
call fcn.00405444
lea eax, [ebp - 0x10]
call fcn.0040543c
lea eax, [ebp - 4]
call fcn.0040543c
ret