Function at 0x14004a470
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x60
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x58], rax
xor eax, eax
cmp qword [rcx + 0x38], 0
jne 0x14004a722
mov r9, qword [rcx + 0x30]
add r9, r8
setb r10b
movabs r11, 0x2000000000000000
cmp r9, r11
seta r11b
or r11b, r10b
jne 0x14004a722
mov qword [rcx + 0x30], r9
mov eax, dword [rcx + 0x174]
test eax, eax
je 0x14004a632
test r8, r8
je 0x14004a717
nop dword [rax + rax]
movzx r9d, byte [rdx]
mov r10d, eax
xor byte [rcx + r10 + 0x40], r9b
inc rdx
lea r15, [r8 - 1]
inc eax
and eax, 0xf
je 0x14004a503
cmp r8, 1
mov r8, r15
jne 0x14004a4e0
test eax, eax
jne 0x14004a717
mov rsi, qword [rcx + 0x40]
mov rdi, qword [rcx + 0x48]
bswap rdi
bswap rsi
mov rbx, qword [rcx + 0x50]
mov r14, qword [rcx + 0x58]
lea rax, [rsp + 0x50]
lea r8, [rsp + 0x48]
mov r12, rcx
mov rcx, rax
mov r13, rdx
mov rdx, r8
mov r8, rdi
mov r9, r14
call fcn.14005fee0
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x38]
mov r8, rsi
mov r9, rbx
call fcn.14005fee0
xor r14, rbx
xor rsi, rdi
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x28]
mov r8, rsi
mov r9, r14
call fcn.14005fee0
mov rdx, r13
mov rcx, r12
mov r8, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov r10, qword [rsp + 0x48]
mov rax, qword [rsp + 0x38]
mov r11, r8
shl r11, 0x3f
mov rsi, r8
shl rsi, 0x3e
xor rsi, r11
mov rdi, r8
shl rdi, 0x39
xor rdi, rsi
xor rdi, qword [rsp + 0x30]
mov r11, r8
xor r11, r9
xor r11, r10
xor r11, rdi
mov rsi, r11
shr rsi, 1
mov rdi, r11
mov rbx, r11
shr rbx, 2
xor rbx, rsi
mov rsi, r11
mov r14, r11
shr r14, 7
xor r14, rax
xor r14, rbx
xor r14, r11
shld r11, r8, 0x3f
shld rdi, r8, 0x3e
shld rsi, r8, 0x39
xor r11, qword [rsp + 0x28]
xor rsi, rdi
xor rsi, r8
xor rsi, r9
xor rsi, r10
xor rsi, r11
xor rsi, rax
bswap r14
mov qword [r12 + 0x40], r14
bswap rsi
mov qword [r12 + 0x48], rsi
mov rsi, r15
and rsi, 0xfffffffffffffff0
jne 0x14004a63e
mov rbx, rcx
mov rax, rdx
test r15, r15
jne 0x14004a66a
xor eax, eax
mov rcx, rbx
jmp 0x14004a717
mov r15, r8
mov rsi, r15
and rsi, 0xfffffffffffffff0
je 0x14004a61d
lea rax, [rcx + 0x50]
mov rbx, rcx
add rcx, 0x40
mov rdi, rdx
mov rdx, rax
mov r8, rdi
mov r9, rsi
call fcn.140049e40
mov rdx, rdi
lea rax, [rdi + rsi]
and r15d, 0xf
test r15, r15
je 0x14004a628
mov rcx, rbx
lea r8, [rbx + 0x40]
cmp r15, 8
jb 0x14004a69d
lea r9, [rcx + r15]
add r9, 0x40
lea r10, [r15 + rsi]
add r10, rdx
cmp r8, r10
setb r10b
cmp rax, r9
setb r9b
test r10b, r9b
je 0x14004a749
xor r9d, r9d
mov r11, r15
mov r10, r9
and r11, 3
je 0x14004a6c1
mov r10, r9
nop
movzx ebx, byte [rax + r10]
xor byte [r8 + r10], bl
inc r10
dec r11
jne 0x14004a6b0
sub r9, r15
cmp r9, 0xfffffffffffffffc
ja 0x14004a714
lea rax, [rsi + rdx]
add rax, 3
nop word cs:[rax + rax]
movzx edx, byte [rax + r10 - 3]
xor byte [rcx + r10 + 0x40], dl
movzx edx, byte [rax + r10 - 2]
xor byte [rcx + r10 + 0x41], dl
movzx edx, byte [rax + r10 - 1]
xor byte [rcx + r10 + 0x42], dl
movzx edx, byte [rax + r10]
xor byte [rcx + r10 + 0x43], dl
add r10, 4
cmp r15, r10
jne 0x14004a6e0
mov eax, r15d
mov dword [rcx + 0x174], eax
mov eax, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14004a743
add rsp, 0x60
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14029fd30
int3
cmp r15, 0x20
jae 0x14004a754
xor r9d, r9d
jmp 0x14004a7b5
mov r9, r15
and r9, 0xffffffffffffffe0
lea r10, [rsi + rdx]
add r10, 0x10
xor r11d, r11d
nop word cs:[rax + rax]
movups xmm0, xmmword [r10 + r11 - 0x10]
movups xmm1, xmmword [r10 + r11]
movups xmm2, xmmword [rcx + r11 + 0x40]
xorps xmm2, xmm0
movups xmm0, xmmword [rcx + r11 + 0x50]
xorps xmm0, xmm1
movups xmmword [rcx + r11 + 0x40], xmm2
movups xmmword [rcx + r11 + 0x50], xmm0
add r11, 0x20
cmp r9, r11
jne 0x14004a770
cmp r15, r9
je 0x14004a714
test r15b, 0x18
je 0x14004a6a0
mov r10, r9
mov r9, r15
and r9, 0xfffffffffffffff8
nop
mov r11, qword [rax + r10]
xor qword [r8 + r10], r11
add r10, 8
cmp r9, r10
jne 0x14004a7c0
cmp r15, r9
je 0x14004a714
jmp 0x14004a6a0