Function at 0x4974a0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
test cl, 3
je 0x497710
mov eax, 0x9e3779b9
cmp edx, 0xb
mov esi, edx
mov r9d, eax
jbe 0x4977e3
nop
movzx r10d, byte [rcx + 5]
movzx r11d, byte [rcx + 4]
mov ebx, r10d
movzx r10d, byte [rcx + 6]
shl ebx, 8
shl r10d, 0x10
add r10d, ebx
add r11d, r10d
movzx r10d, byte [rcx + 7]
shl r10d, 0x18
add r10d, r11d
movzx r11d, byte [rcx + 8]
add eax, r10d
movzx r10d, byte [rcx + 9]
mov ebx, r10d
movzx r10d, byte [rcx + 0xa]
shl ebx, 8
shl r10d, 0x10
add r10d, ebx
add r11d, r10d
movzx r10d, byte [rcx + 0xb]
shl r10d, 0x18
add r10d, r11d
movzx r11d, byte [rcx]
add r8d, r10d
movzx r10d, byte [rcx + 1]
mov ebx, r10d
movzx r10d, byte [rcx + 2]
shl ebx, 8
shl r10d, 0x10
add r10d, ebx
add r11d, r10d
movzx r10d, byte [rcx + 3]
shl r10d, 0x18
add r10d, r11d
sub r10d, eax
sub eax, r8d
sub r10d, r8d
add r9d, r10d
mov r10d, r8d
shr r10d, 0xd
xor r9d, r10d
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
sub r9d, r8d
sub eax, r8d
add rcx, 0xc
mov r10d, r9d
mov r9d, r8d
shr r9d, 0xc
xor r9d, r10d
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 0x10
xor eax, r10d
sub r8d, eax
sub r9d, eax
mov r10d, r8d
mov r8d, eax
shr r8d, 5
xor r8d, r10d
mov r10d, r8d
sub r9d, r8d
sub eax, r8d
shr r10d, 3
xor r9d, r10d
mov r10d, r9d
sub eax, r9d
sub r8d, r9d
shl r10d, 0xa
xor eax, r10d
mov r10d, eax
sub r8d, eax
shr r10d, 0xf
xor r8d, r10d
cmp esi, 0xb
ja 0x4974c0
add edx, r8d
cmp esi, 0xb
ja case.0x49760d.0
lea r10, [0x00509f44]
movsxd r8, dword [r10 + rsi*4]
add r8, r10
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 r9d, r8d
movzx r8d, byte [rcx + 2]
shl r8d, 0x10
add r9d, r8d
movzx r8d, byte [rcx + 1]
shl r8d, 8
add r9d, r8d
movzx ecx, byte [rcx]
add r9d, ecx
sub r9d, eax
mov ecx, edx
sub eax, edx
sub r9d, edx
shr ecx, 0xd
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 ecx, edx
mov edx, eax
shr edx, 5
xor edx, ecx
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 0x4977e3
mov eax, 0x9e3779b9
mov esi, edx
mov r9d, eax
add r8d, dword [rcx + 8]
add eax, dword [rcx + 4]
add r9d, dword [rcx]
lea r10d, [rax + r8]
sub eax, r8d
sub r9d, r10d
mov r10d, r9d
mov r9d, r8d
shr r9d, 0xd
xor r9d, r10d
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 8
xor eax, r10d
sub r8d, eax
sub r9d, eax
mov r10d, r8d
mov r8d, eax
shr r8d, 0xd
xor r8d, r10d
sub r9d, r8d
sub eax, r8d
mov r10d, r9d
mov r9d, r8d
shr r9d, 0xc
xor r9d, r10d
sub eax, r9d
sub r8d, r9d
mov r10d, eax
mov eax, r9d
shl eax, 0x10
xor eax, r10d
sub r8d, eax
sub r9d, eax
mov r10d, r8d
mov r8d, eax
shr r8d, 5
xor r8d, r10d
mov r10d, r8d
sub r9d, r8d
sub eax, r8d
shr r10d, 3
xor r9d, r10d
mov r10d, r9d
sub eax, r9d
shl r10d, 0xa
sub r8d, r9d
sub esi, 0xc
xor eax, r10d
add rcx, 0xc
mov r10d, eax
sub r8d, eax
shr r10d, 0xf
xor r8d, r10d
cmp esi, 0xb
ja 0x497723
jmp 0x4975f3
mov eax, 0x9e3779b9
mov esi, edx
mov r9d, eax
jmp 0x4975f3