Function at 0x645420
Capabilities:
Encrypt data using rc6

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x108
xor eax, eax
mov r10, rcx
cmp edx, 0xff
jg 0x64572f
lea eax, [r9 - 0xc]
and eax, 0xfffffffb
jne 0x645740
lea esi, [r9 + r9 + 2]
mov dword [r10], r9d
lea rbp, [r10 + 4]
cmp edx, 7
jle 0x6457c8
lea eax, [rdx - 8]
mov ebx, eax
shr ebx, 3
add ebx, 1
cmp eax, 7
jbe 0x6457e8
movdqu xmm2, xmmword [r8]
mov eax, ebx
shr eax, 1
movaps xmmword [rsp], xmm2
cmp eax, 1
je 0x6455b8
movdqu xmm3, xmmword [r8 + 0x10]
movaps xmmword [rsp + 0x10], xmm3
cmp eax, 2
je 0x6455b8
movdqu xmm4, xmmword [r8 + 0x20]
movaps xmmword [rsp + 0x20], xmm4
cmp eax, 3
je 0x6455b8
movdqu xmm5, xmmword [r8 + 0x30]
movaps xmmword [rsp + 0x30], xmm5
cmp eax, 4
je 0x6455b8
movdqu xmm5, xmmword [r8 + 0x40]
movaps xmmword [rsp + 0x40], xmm5
cmp eax, 5
je 0x6455b8
movdqu xmm4, xmmword [r8 + 0x50]
movaps xmmword [rsp + 0x50], xmm4
cmp eax, 6
je 0x6455b8
movdqu xmm1, xmmword [r8 + 0x60]
movaps xmmword [rsp + 0x60], xmm1
cmp eax, 7
je 0x6455b8
movdqu xmm3, xmmword [r8 + 0x70]
movaps xmmword [rsp + 0x70], xmm3
cmp eax, 8
je 0x6455b8
movdqu xmm2, xmmword [r8 + 0x80]
movaps xmmword [rsp + 0x80], xmm2
cmp eax, 9
je 0x6455b8
movdqu xmm5, xmmword [r8 + 0x90]
movaps xmmword [rsp + 0x90], xmm5
cmp eax, 0xa
je 0x6455b8
movdqu xmm4, xmmword [r8 + 0xa0]
movaps xmmword [rsp + 0xa0], xmm4
cmp eax, 0xb
je 0x6455b8
movdqu xmm3, xmmword [r8 + 0xb0]
movaps xmmword [rsp + 0xb0], xmm3
cmp eax, 0xc
je 0x6455b8
movdqu xmm1, xmmword [r8 + 0xc0]
movaps xmmword [rsp + 0xc0], xmm1
cmp eax, 0xd
je 0x6455b8
movdqu xmm1, xmmword [r8 + 0xd0]
movaps xmmword [rsp + 0xd0], xmm1
cmp eax, 0xe
je 0x6455b8
movdqu xmm2, xmmword [r8 + 0xe0]
movaps xmmword [rsp + 0xe0], xmm2
nop dword [rax]
mov r9d, ebx
and r9d, 0xfffffffe
mov eax, r9d
lea rcx, [r8 + rax*8]
lea eax, [r9 + r9]
cmp ebx, r9d
je 0x6455e4
mov r11d, dword [rcx]
movsxd r9, eax
add eax, 1
cdqe
mov dword [rsp + r9*4], r11d
mov ecx, dword [rcx + 4]
mov dword [rsp + rax*4], ecx
mov eax, ebx
lea r9d, [rbx + rbx]
shl ebx, 3
lea r8, [r8 + rax*8]
cmp edx, ebx
je case.default.0x64560b
mov eax, edx
lea rcx, [0x007c75e0]
and eax, 7
add r8, rax
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor eax, eax
movzx ecx, byte [r8 - 1]
sub r8, 1
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 - 1]
lea r11, [r8 - 1]
or eax, ecx
movd xmm1, eax
movzx eax, byte [r11 - 1]
lea r8, [r11 - 1]
shl eax, 0x18
movzx ecx, byte [r8 - 1]
lea r11, [r8 - 1]
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [r11 - 1]
lea r8, [r11 - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [r8 - 1]
or eax, ecx
movd xmm0, eax
movsxd r9, r9d
punpckldq xmm0, xmm1
movq qword [rsp + r9*4], xmm0
lea ebx, [rdx + 6]
add edx, 3
mov eax, esi
mov dword [r10 + 4], 0xb7e15163
cmovns ebx, edx
sar ebx, 2
cmp ebx, esi
cmovge eax, ebx
lea edi, [rax + rax*2]
cmp esi, 1
jle 0x6457d8
lea edx, [rsi - 2]
lea rax, [r10 + 8]
lea rcx, [r10 + rdx*4 + 0xc]
mov edx, 0xb7e15163
nop word [rax + rax]
sub edx, 0x61c88647
add rax, 4
mov dword [rax - 4], edx
cmp rcx, rax
jne 0x6456b0
xor r9d, r9d
xor r8d, r8d
xor r10d, r10d
xor eax, eax
xor edx, edx
mov r12d, 3
xor r11d, r11d
nop dword [rax + rax]
movsxd rcx, r8d
add r8d, 1
lea r13, [rbp + rcx*4]
mov ecx, dword [r13]
add ecx, eax
add edx, ecx
mov ecx, r12d
rol edx, cl
mov dword [r13], edx
movsxd r13, r9d
lea ecx, [rdx + rax]
mov eax, dword [rsp + r13*4]
add eax, ecx
rol eax, cl
cmp r8d, esi
mov dword [rsp + r13*4], eax
cmovge r8d, r11d
add r9d, 1
cmp ebx, r9d
cmovle r9d, r11d
add r10d, 1
cmp r10d, edi
jl 0x6456e0
mov eax, 1
add rsp, 0x108
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov esi, 0x12
cmp r9d, 8
je 0x645452
mov esi, 0x22
mov r9d, 0x10
jmp 0x645452
xor ecx, ecx
jmp 0x645620
mov r11, r8
pxor xmm1, xmm1
jmp 0x64562f
pxor xmm1, xmm1
xor eax, eax
jmp 0x64563b
mov r11, r8
pxor xmm1, xmm1
xor eax, eax
jmp 0x645649
pxor xmm1, xmm1
xor ecx, ecx
jmp 0x645657
movzx ecx, byte [r8 - 1]
sub r8, 1
mov eax, ecx
shl eax, 0x10
jmp 0x645612
xor r9d, r9d
xor ebx, ebx
jmp 0x6455f1
test edi, edi
jle 0x64572a
jmp 0x6456c2
mov rcx, r8
xor eax, eax
jmp 0x6455cf
pxor xmm1, xmm1
pxor xmm0, xmm0
jmp 0x645662