Function at 0x164c79500
Capabilities:
Encode data using xor

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