Function at 0x4cfcc0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test cl, 3
je 0x4cff30
mov eax, 0x9e3779b9
cmp edx, 0xb
mov esi, edx
mov ebx, eax
jbe 0x4cfe13
nop dword [rax]
movzx r9d, byte [rcx + 5]
movzx r10d, byte [rcx + 4]
mov r11d, r9d
movzx r9d, byte [rcx + 6]
shl r11d, 8
shl r9d, 0x10
add r9d, r11d
add r10d, r9d
movzx r9d, byte [rcx + 7]
shl r9d, 0x18
add r9d, r10d
movzx r10d, byte [rcx + 8]
add eax, r9d
movzx r9d, byte [rcx + 9]
mov r11d, r9d
movzx r9d, byte [rcx + 0xa]
shl r11d, 8
shl r9d, 0x10
add r9d, r11d
add r10d, r9d
movzx r9d, byte [rcx + 0xb]
shl r9d, 0x18
add r9d, r10d
movzx r10d, byte [rcx + 1]
add r8d, r9d
movzx r9d, byte [rcx]
mov r11d, r10d
movzx r10d, byte [rcx + 2]
shl r11d, 8
shl r10d, 0x10
add r10d, r11d
add r10d, r9d
movzx r9d, byte [rcx + 3]
shl r9d, 0x18
add r9d, r10d
sub r9d, eax
sub eax, r8d
sub r9d, r8d
add r9d, ebx
mov ebx, r8d
shr ebx, 0xd
xor r9d, ebx
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 8
xor eax, r10d
mov r10d, eax
sub r8d, eax
shr r10d, 0xd
xor r8d, r10d
sub r9d, eax
sub esi, 0xc
mov ebx, r9d
mov r9d, r8d
sub eax, r8d
sub ebx, r8d
shr r9d, 0xc
add rcx, 0xc
xor r9d, ebx
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 0x10
xor eax, r10d
mov r10d, r8d
mov r8d, eax
sub r10d, eax
sub r9d, eax
shr r8d, 5
xor r8d, r10d
mov ebx, r8d
sub r9d, r8d
sub eax, r8d
shr ebx, 3
xor ebx, r9d
mov r9d, ebx
sub eax, ebx
sub r8d, ebx
shl r9d, 0xa
xor eax, r9d
mov r9d, eax
sub r8d, eax
shr r9d, 0xf
xor r8d, r9d
cmp esi, 0xb
ja 0x4cfce0
add edx, r8d
cmp esi, 0xb
ja case.0x4cfe2d.0
lea r9, [0x0051fea4]
movsxd r8, dword [r9 + rsi*4]
add r8, r9
jmp r8
movzx r8d, byte [rcx + 0xa]
shl r8d, 0x18
add edx, r8d
movzx r8d, byte [rcx + 9]
shl r8d, 0x10
add edx, r8d
movzx r8d, byte [rcx + 8]
shl r8d, 8
add edx, r8d
movzx r8d, byte [rcx + 7]
shl r8d, 0x18
add eax, r8d
movzx r8d, byte [rcx + 6]
shl r8d, 0x10
add eax, r8d
movzx r8d, byte [rcx + 5]
shl r8d, 8
add eax, r8d
movzx r8d, byte [rcx + 4]
add eax, r8d
movzx r8d, byte [rcx + 3]
shl r8d, 0x18
add ebx, r8d
movzx r8d, byte [rcx + 2]
shl r8d, 0x10
add ebx, r8d
movzx r8d, byte [rcx + 1]
shl r8d, 8
add ebx, r8d
movzx ecx, byte [rcx]
add ebx, ecx
sub ebx, eax
mov ecx, edx
sub eax, edx
mov r9d, ebx
shr ecx, 0xd
sub r9d, edx
xor r9d, ecx
mov ecx, r9d
sub eax, r9d
sub edx, r9d
shl ecx, 8
xor eax, ecx
sub edx, eax
sub r9d, eax
mov r8d, edx
mov edx, eax
mov ecx, r9d
shr edx, 0xd
xor edx, r8d
mov r9d, edx
sub ecx, edx
sub eax, edx
shr r9d, 0xc
xor r9d, ecx
sub eax, r9d
sub edx, r9d
mov ecx, eax
mov eax, r9d
shl eax, 0x10
xor eax, ecx
sub edx, eax
sub r9d, eax
mov r8d, edx
mov edx, eax
shr edx, 5
xor edx, r8d
mov ecx, edx
sub r9d, edx
sub eax, edx
shr ecx, 3
xor r9d, ecx
mov ecx, r9d
sub eax, r9d
shl ecx, 0xa
xor eax, ecx
sub edx, r9d
sub edx, eax
shr eax, 0xf
xor eax, edx
pop rbx
pop rsi
ret
cmp edx, 0xb
jbe 0x4d0000
mov eax, 0x9e3779b9
mov esi, edx
mov ebx, eax
add r8d, dword [rcx + 8]
add eax, dword [rcx + 4]
add ebx, dword [rcx]
mov r9d, r8d
lea r10d, [rax + r8]
shr r9d, 0xd
sub eax, r8d
sub ebx, r10d
xor r9d, ebx
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 8
xor eax, r10d
mov r10d, r8d
mov r8d, eax
sub r10d, eax
sub r9d, eax
shr r8d, 0xd
mov ebx, r9d
xor r8d, r10d
mov r9d, r8d
sub ebx, r8d
sub eax, r8d
shr r9d, 0xc
xor r9d, ebx
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 0x10
xor eax, r10d
mov r10d, r8d
mov r8d, eax
sub r10d, eax
sub r9d, eax
shr r8d, 5
xor r8d, r10d
mov ebx, r8d
sub r9d, r8d
sub eax, r8d
shr ebx, 3
xor ebx, r9d
mov r9d, ebx
sub eax, ebx
shl r9d, 0xa
sub r8d, ebx
sub esi, 0xc
xor eax, r9d
add rcx, 0xc
mov r9d, eax
sub r8d, eax
shr r9d, 0xf
xor r8d, r9d
cmp esi, 0xb
ja 0x4cff42
jmp 0x4cfe13
mov eax, 0x9e3779b9
mov esi, edx
mov ebx, eax
jmp 0x4cfe13