Function at 0x4cd248
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405a5c
xor eax, eax
push ebp
push 0x4cd571
push dword fs:[eax]
mov dword fs:[eax], esp
call sub.kernel32.dll_GetCurrentProcessId
push esi
push eax
or eax, 0x88
push eax
pop eax
sub esi, 0x1a8
dec eax
dec eax
add esi, 0x49
xchg esi, eax
push esi
pop esi
inc esi
and eax, 0x1a5
nop
nop
nop
nop
nop
push eax
pop eax
inc esi
pop eax
pop esi
lea eax, [ebp - 8]
xor edx, edx
call fcn.00405ac8
call sub.user32.dll_GetKBCodePage
push edi
push esi
inc edi
dec edi
inc edi
dec esi
inc esi
mov edi, 0x17e
inc esi
mov edi, 0x6c
nop
nop
nop
nop
nop
and edi, 0x4e
pop esi
pop edi
mov dl, 1
mov eax, dword [0x422ae0]
call fcn.00427c40
mov dword [ebp - 0x14], eax
push ebx
mov ebx, 0x14f
sub ebx, 0xf7
and ebx, 0xd8
dec ebx
xor ebx, 0x16
and ebx, 0x117
sub ebx, 0x8e
xchg ebx, ebx
xor ebx, 0x152
inc ebx
sub ebx, 0x77
pop ebx
call sub.kernel32.dll_GetCurrentProcessId
push esi
push eax
or eax, 0x88
push eax
pop eax
sub esi, 0x1a8
dec eax
dec eax
add esi, 0x49
xchg esi, eax
push esi
pop esi
inc esi
and eax, 0x1a5
nop
nop
nop
nop
nop
push eax
pop eax
inc esi
pop eax
pop esi
mov dx, 0x20
mov eax, dword [ebp - 0x14]
call fcn.00427254
call sub.user32.dll_DestroyCaret
push esi
push eax
nop
nop
nop
nop
nop
dec esi
xchg esi, eax
inc eax
add esi, 0x43
add eax, 0x8d
add eax, 0x6c
sub esi, 0xed
sub eax, 0x13c
add eax, 0x41
inc esi
pop eax
pop esi
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x14]
call fcn.00427018
call sub.user32.dll_DestroyCaret
push esi
push eax
nop
nop
nop
nop
nop
dec esi
xchg esi, eax
inc eax
add esi, 0x43
add eax, 0x8d
add eax, 0x6c
sub esi, 0xed
sub eax, 0x13c
add eax, 0x41
inc esi
pop eax
pop esi
mov eax, dword [ebp - 0x14]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4cd4d5
inc ebx
xor esi, esi
push 1
call sub.kernel32.dll_SetLastError
push esi
and esi, 0x15b
xor esi, 0xef
add esi, 0x123
push esi
pop esi
mov esi, 0x32
pop esi
lea ecx, [ebp - 0x18]
mov edx, esi
mov eax, dword [ebp - 0x14]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x18]
call fcn.0040bfc4
mov edi, eax
call sub.user32.dll_DestroyCaret
push esi
push eax
nop
nop
nop
nop
nop
dec esi
xchg esi, eax
inc eax
add esi, 0x43
add eax, 0x8d
add eax, 0x6c
sub esi, 0xed
sub eax, 0x13c
add eax, 0x41
inc esi
pop eax
pop esi
lea eax, [ebp - 0x1c]
mov edx, edi
add dx, word [ebp - 0xc]
call fcn.00405be0
mov edx, dword [ebp - 0x1c]
lea eax, [ebp - 8]
call fcn.00405dc8
push esi
xor esi, 0x66
add esi, 0x16
nop
nop
push esi
pop esi
sub esi, 0x1c
sub esi, 4
add esi, 0x122
inc esi
xchg esi, esi
add esi, 0x16e
pop esi
call sub.user32.dll_GetKBCodePage
push edi
push esi
inc edi
dec edi
inc edi
dec esi
inc esi
mov edi, 0x17e
inc esi
mov edi, 0x6c
nop
nop
nop
nop
nop
and edi, 0x4e
pop esi
pop edi
push 1
call sub.gdi32.dll_DeleteEnhMetaFile
push edx
push edi
sub edx, 0x177
sub edi, 0x7f
or edi, 0x188
push edx
pop edx
xor edi, 0x19
nop
nop
nop
nop
pop edi
pop edx
call sub.kernel32.dll_GetCurrentProcessId
push esi
push eax
or eax, 0x88
push eax
pop eax
sub esi, 0x1a8
dec eax
dec eax
add esi, 0x49
xchg esi, eax
push esi
pop esi
inc esi
and eax, 0x1a5
nop
nop
nop
nop
nop
push eax
pop eax
inc esi
pop eax
pop esi
inc esi
dec ebx
jne 0x4cd3bf
call sub.user32.dll_DestroyCaret
push esi
push eax
nop
nop
nop
nop
nop
dec esi
xchg esi, eax
inc eax
add esi, 0x43
add eax, 0x8d
add eax, 0x6c
sub esi, 0xed
sub eax, 0x13c
add eax, 0x41
inc esi
pop eax
pop esi
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
call fcn.00405a74
push edi
push esi
or esi, 0x153
nop
nop
nop
nop
add edi, 0x8f
push edi
pop edi
mov edi, 0xd3
and esi, 0x17
dec esi
xchg esi, edi
nop
nop
nop
nop
nop
and esi, 0x10
sub edi, 0xaf
or edi, 0x14f
sub esi, 0x14b
or edi, 0xf
pop esi
pop edi
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cd578
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00405a6c
lea eax, [ebp - 8]
mov edx, 2
call fcn.00405a6c
ret