Function at 0x164c790b0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
sub rsp, 0x38
test rcx, rcx
je 0x164c794f0
mov qword [rsp], r15
mov r15, rdx
test rdx, rdx
je 0x164c794ec
mov qword [rax - 8], rbp
mov rbp, r8
test r8, r8
je 0x164c794e7
mov r11d, dword [r8 + 0x1000]
mov r10d, dword [r8 + 0x1008]
xor r11d, dword [rcx]
xor r10d, dword [rcx + 8]
mov qword [rax + 0x20], rbx
mov ebx, dword [r8 + 0x1020]
mov qword [rax - 0x10], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
lea r12, [r8 + 0x1028]
mov qword [rax - 0x28], r13
mov r13d, 5
mov qword [rax - 0x30], r14
mov r14d, dword [r8 + 0x1004]
xor r14d, dword [rcx + 4]
mov eax, dword [r8 + 0x100c]
xor eax, dword [rcx + 0xc]
mov ecx, r14d
rol eax, 1
shr ecx, 0x10
movzx edx, cl
mov ecx, r14d
shr ecx, 8
movzx ecx, cl
mov r9d, dword [rbp + rdx*4 + 0xc00]
mov edx, r11d
xor r9d, dword [rbp + rcx*4 + 0x800]
shr rdx, 0x18
mov ecx, r14d
shr rcx, 0x18
mov r8d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4]
movzx ecx, r14b
rol r14d, 1
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, r11d
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, r11d
shr ecx, 8
movzx edx, cl
movzx ecx, r11b
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
mov ecx, dword [r12 - 4]
add r8d, r9d
add ecx, r8d
add ecx, r9d
xor eax, ecx
lea esi, [rbx + r8]
mov ecx, eax
shr ecx, 0x10
xor esi, r10d
mov r10d, dword [r12]
movzx edx, cl
mov ecx, eax
shr ecx, 8
movzx ecx, cl
ror esi, 1
mov r9d, dword [rbp + rdx*4 + 0xc00]
mov edx, esi
xor r9d, dword [rbp + rcx*4 + 0x800]
shr rdx, 0x18
mov ecx, eax
shr rcx, 0x18
mov r8d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4]
movzx ecx, al
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, esi
shr ecx, 8
movzx edx, cl
movzx ecx, sil
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
add r8d, r9d
lea ebx, [r10 + r8]
xor ebx, r11d
mov r11d, dword [r12 + 4]
ror ebx, 1
lea ecx, [r11 + r8]
add ecx, r9d
xor r14d, ecx
mov ecx, r14d
shr ecx, 0x10
movzx edx, cl
mov ecx, r14d
shr ecx, 8
movzx ecx, cl
mov r9d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4 + 0x800]
mov ecx, r14d
shr rcx, 0x18
xor r9d, dword [rbp + rcx*4]
movzx ecx, r14b
rol eax, 1
mov edx, ebx
shr rdx, 0x18
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, ebx
shr ecx, 0x10
movzx ecx, cl
mov r8d, dword [rbp + rdx*4 + 0xc00]
rol r14d, 1
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, ebx
shr ecx, 8
movzx edx, cl
movzx ecx, bl
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
add r8d, r9d
lea ecx, [r11 + r8]
mov r11d, dword [r12 + 0xc]
add ecx, r9d
lea edi, [r10 + r8]
mov r10d, dword [r12 + 8]
xor eax, ecx
xor edi, esi
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, eax
shr ecx, 8
movzx ecx, cl
ror edi, 1
mov r9d, dword [rbp + rdx*4 + 0xc00]
mov edx, edi
xor r9d, dword [rbp + rcx*4 + 0x800]
shr rdx, 0x18
mov ecx, eax
shr rcx, 0x18
mov r8d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4]
movzx ecx, al
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, edi
shr ecx, 8
movzx edx, cl
movzx ecx, dil
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
add r8d, r9d
lea ecx, [r11 + r8]
add ecx, r9d
lea esi, [r10 + r8]
xor r14d, ecx
xor esi, ebx
ror esi, 1
mov ecx, r14d
shr ecx, 0x10
movzx edx, cl
mov ecx, r14d
shr ecx, 8
movzx ecx, cl
mov r9d, dword [rbp + rdx*4 + 0xc00]
mov edx, esi
xor r9d, dword [rbp + rcx*4 + 0x800]
shr rdx, 0x18
mov ecx, r14d
shr rcx, 0x18
mov r8d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4]
movzx ecx, r14b
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, esi
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, esi
mov ebx, dword [r12 + 0x10]
lea r12, [r12 + 0x18]
shr ecx, 8
movzx edx, cl
movzx ecx, sil
rol eax, 1
rol r14d, 1
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
add r8d, r9d
add r10d, r8d
xor r10d, edi
ror r10d, 1
lea ecx, [r11 + r8]
add ecx, r9d
xor eax, ecx
mov ecx, eax
shr ecx, 0x10
movzx edx, cl
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov r9d, dword [rbp + rdx*4 + 0xc00]
mov edx, r10d
xor r9d, dword [rbp + rcx*4 + 0x800]
shr rdx, 0x18
mov ecx, eax
shr rcx, 0x18
mov r8d, dword [rbp + rdx*4 + 0xc00]
xor r9d, dword [rbp + rcx*4]
movzx ecx, al
xor r9d, dword [rbp + rcx*4 + 0x400]
mov ecx, r10d
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [rbp + rcx*4 + 0x800]
mov ecx, r10d
shr ecx, 8
movzx edx, cl
movzx ecx, r10b
xor r8d, dword [rbp + rdx*4 + 0x400]
xor r8d, dword [rbp + rcx*4]
mov ecx, dword [r12 - 4]
add r8d, r9d
add ecx, r8d
add ecx, r9d
xor r14d, ecx
lea r11d, [rbx + r8]
xor r11d, esi
ror r11d, 1
sub r13, 1
jne 0x164c79142
xor r10d, dword [rbp + 0x1010]
xor eax, dword [rbp + 0x1014]
xor r11d, dword [rbp + 0x1018]
xor r14d, dword [rbp + 0x101c]
mov r13, qword [rsp + 0x10]
mov r12, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x58]
mov dword [r15 + 0xc], r14d
mov r14, qword [rsp + 8]
mov dword [r15], r10d
mov dword [r15 + 4], eax
mov dword [r15 + 8], r11d
mov rbp, qword [rsp + 0x30]
mov r15, qword [rsp]
add rsp, 0x38
ret