Function at 0x164c60990
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
mov qword [r11 + 0x20], r9
mov qword [r11 + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [r11 + 8], rcx
push rbp
push rbx
push rsi
push r13
push r15
lea rbp, [r11 - 0x248]
sub rsp, 0x320
mov rax, qword [0x164cb3008]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov r15, qword [rbp + 0x268]
mov rbx, qword [rbp + 0x260]
mov rcx, qword [rbp + 0x250]
mov edx, dword [rbp + 0x258]
mov rsi, qword [rbp + 0x270]
mov r13, qword [rbp + 0x278]
mov qword [rbp - 0x80], rbx
test r15, r15
je 0x164c60e7f
test rsi, rsi
je 0x164c60e7f
test rbx, rbx
je 0x164c60e7f
mov qword [r11 - 0x40], r14
lea r9, [rbp - 0x40]
xor r14d, r14d
mov qword [r11 - 0x30], rdi
xor r8d, r8d
mov dword [rsp + 0x20], r14d
call fcn.164c5ebb0
movups xmm0, xmmword [rbx]
movzx eax, byte [rbp + 0x1a8]
movaps xmmword [rbp + 0x1c0], xmm0
test al, al
je 0x164c60ce4
mov rbx, qword [rbp + 0x1b0]
test rbx, rbx
je 0x164c60cd3
mov eax, dword [rbx + 0x8c]
lea r11, [r13 + 0xfff]
sub eax, 0x10
mov qword [rsp + 0x310], r12
mov r9d, eax
add r11, r15
add rax, r15
movaps xmmword [rsp + 0x2f0], xmm6
and r11, 0xfffffffffffff000
mov qword [rsp + 0x38], r14
mov r12, r13
mov qword [rsp + 0x68], r9
and r12, 0xfffffffffffffff0
mov qword [rsp + 0x78], r11
mov rdx, r15
mov rcx, rsi
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x30], rcx
lea r10, [r12 + 0xfff]
add r10, rax
mov eax, dword [rbx + 0x30]
or eax, 0x280
and r10, 0xfffffffffffff000
mov dword [rsp + 0x40], eax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + 0x20]
mov qword [rsp + 0x70], r10
movups xmmword [rax], xmm0
test r12, r12
je 0x164c60c9e
mov rax, rdx
mov qword [rsp + 0x58], rdx
and eax, 0xf
mov qword [rsp + 0x48], rcx
mov r14d, 0x80000000
mov rdi, r12
mov r8, rcx
cmp r10, r11
jbe 0x164c60b18
cmp r12, r9
jbe 0x164c60b18
test rax, rax
jne 0x164c60b22
sub rdi, r9
jmp 0x164c60b86
test rax, rax
jne 0x164c60b22
cmp r10, r11
jbe 0x164c60b86
mov rcx, qword [rbx]
test rcx, rcx
jne 0x164c60b62
mov rax, qword [0x164cb3660]
lea rcx, [r9 + 0x400f]
call qword [0x164c92120]
mov qword [rbx + 0x68], rax
test rax, rax
je 0x164c60c94
mov rdx, qword [rsp + 0x50]
lea rcx, [rax + 0xf]
and rcx, 0xfffffffffffffff0
mov dword [rbx + 0x28], 0x4000
mov qword [rbx], rcx
mov edi, dword [rbx + 0x28]
cmp r12, rdi
cmovbe rdi, r12
mov r8, rdi
call fcn.164c8fe50
mov rax, qword [rbx]
mov rcx, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
mov qword [rsp + 0x58], rax
test cl, 0xf
je 0x164c60be9
mov rcx, qword [rbx + 8]
test rcx, rcx
jne 0x164c60bc6
mov rax, qword [0x164cb3660]
mov ecx, 0x400f
call qword [0x164c92120]
mov qword [rbx + 0x70], rax
test rax, rax
je 0x164c60c94
lea rcx, [rax + 0xf]
mov dword [rbx + 0x2c], 0x4000
and rcx, 0xfffffffffffffff0
mov qword [rbx + 8], rcx
mov eax, dword [rbx + 0x2c]
mov rdx, qword [rsp + 0x30]
cmp rdi, rax
cmovbe rax, rdi
mov r8, rax
mov rdi, rax
call fcn.164c8fe50
mov r8, qword [rbx + 8]
mov qword [rsp + 0x48], r8
mov rax, qword [rbx + 0x20]
mov ecx, dword [rsp + 0x40]
shr rdi, 4
mov dword [rax + 0x10], ecx
cmp rdi, r14
jb 0x164c60c02
mov rdi, r14
jmp 0x164c60c0b
test rdi, rdi
je 0x164c60c99
mov rcx, qword [rsp + 0x58]
mov r9, r8
mov rax, qword [rbx + 0x20]
mov r8, rcx
mov qword [rsp + 0x28], rax
mov r14, rdi
shl r14, 4
mov dword [rsp + 0x20], edi
lea rdx, [rax + 0x10]
movups xmm6, xmmword [r14 + rcx - 0x10]
mov rcx, qword [rsp + 0x60]
call fcn.164c49ca0
mov rax, qword [rbx + 0x20]
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x48]
movups xmmword [rax], xmm6
cmp rcx, rdx
je 0x164c60c61
mov r8, r14
call fcn.164c8fe50
mov rcx, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x50]
add rcx, r14
add qword [rsp + 0x38], r14
add rdx, r14
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x30], rcx
sub r12, r14
je 0x164c60c99
mov r9, qword [rsp + 0x68]
mov r10, qword [rsp + 0x70]
mov r11, qword [rsp + 0x78]
jmp 0x164c60ae8
xor r14d, r14d
jmp 0x164c60cac
mov r14, qword [rsp + 0x38]
mov rax, qword [rbx + 0x20]
movups xmm0, xmmword [rax]
movaps xmmword [rbp + 0x1c0], xmm0
movaps xmm6, xmmword [rsp + 0x2f0]
mov r12, qword [rsp + 0x310]
cmp r14, r13
je 0x164c60dea
add r15, r14
add rsi, r14
sub r13, r14
jmp 0x164c60d5c
test al, 1
je 0x164c60d5c
lea rax, [0x164c47560]
jmp 0x164c60d03
test qword [0x164cb3630], 0x100
je 0x164c60d5c
movsxd rax, dword [rbp + 0x1a4]
lea rcx, [0x164c98c10]
mov rax, qword [rcx + rax*8]
test rax, rax
je 0x164c60d5c
lea rcx, [rbp + 0xb0]
mov qword [rbp - 0x78], r15
mov qword [rbp - 0x68], rcx
lea rcx, [rbp + 0x1c0]
mov qword [rbp - 0x60], rcx
mov rcx, r13
shr rcx, 4
mov qword [rbp - 0x58], rcx
mov ecx, dword [rbp + 0x1a0]
mov dword [rbp - 0x50], ecx
lea rcx, [rbp - 0x78]
mov qword [rbp - 0x70], rsi
call qword [0x164c92120]
mov eax, r13d
and eax, 0xf
je 0x164c60dea
sub r13, rax
add r15, r13
add rsi, r13
mov r13d, eax
lea rbx, [rbp + 0x1c0]
lea r14, [rbp + 0x1d0]
cmp r13, 0x10
jb 0x164c60dbc
mov rdi, r13
shr rdi, 4
imul rax, rdi, 0xfffffffffffffff0
add r13, rax
nop
movups xmm0, xmmword [r15]
lea r8, [rbp - 0x40]
mov rdx, rsi
mov rcx, r15
movaps xmmword [r14], xmm0
call fcn.164c603b0
mov rax, qword [rbx]
add r15, 0x10
xor qword [rsi], rax
mov rax, qword [rbx + 8]
xor qword [rsi + 8], rax
mov rax, rbx
add rsi, 0x10
mov rbx, r14
mov r14, rax
sub rdi, 1
jne 0x164c60d80
test r13, r13
je 0x164c60dcf
mov r8, r13
mov rdx, r15
mov rcx, rsi
call fcn.164c8fe50
lea rax, [rbp + 0x1d0]
cmp rbx, rax
jne 0x164c60dea
movaps xmm0, xmmword [rbp + 0x1d0]
movdqa xmmword [rbp + 0x1c0], xmm0
mov rax, qword [rbp - 0x80]
mov rbx, qword [rbp + 0x1b0]
movaps xmm0, xmmword [rbp + 0x1c0]
mov r14, qword [rsp + 0x308]
mov rdi, qword [rsp + 0x318]
movups xmmword [rax], xmm0
test rbx, rbx
je 0x164c60e7f
mov rcx, qword [rbx + 0x68]
test rcx, rcx
je 0x164c60e2a
mov rax, qword [0x164cb3650]
call qword [0x164c92120]
mov rcx, qword [rbx + 0x70]
test rcx, rcx
je 0x164c60e40
mov rax, qword [0x164cb3650]
call qword [0x164c92120]
mov rcx, qword [rbx + 0x78]
test rcx, rcx
je 0x164c60e56
mov rax, qword [0x164cb3650]
call qword [0x164c92120]
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x164c60e6f
mov rax, qword [0x164cb3650]
call qword [0x164c92120]
mov rax, qword [0x164cb3650]
mov rcx, rbx
call qword [0x164c92120]
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.164c8ef00
add rsp, 0x320
pop r15
pop r13
pop rsi
pop rbx
pop rbp
ret