Function at 0x1401488bd
Capabilities:
Encode data using xor

Disassembly:
cmp r8d, 0x80
jg 0x140148bb2
push rbx
push rsi
push rdi
push r14
mov eax, 0x58
call fcn.1401ef830
sub rsp, rax
mov rax, qword [0x140310170]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rsi, qword [rsp + 0xa0]
mov r14d, r8d
mov rax, qword [rsp + 0xb0]
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x80], rbp
mov r8, r9
mov rdx, rsi
movups xmm0, xmmword [rsi]
mov rcx, rsi
movups xmmword [rsp + 0x20], xmm0
call rax
lea eax, [r14 + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp dword [rsp + 0xa8], 0
movsxd r8, eax
mov r9, r8
je 0x140148971
test eax, eax
jle 0x140148ac0
mov rdx, rsi
lea r8, [rsp + 0x30]
sub rdx, rbx
sub r8, rbx
sub rdi, rbx
nop dword [rax + rax]
movzx ecx, byte [rdx + rbx]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
xor ecx, eax
mov byte [r8 + rbx - 1], cl
mov byte [rdi + rbx - 1], cl
sub r9, 1
jne 0x140148950
jmp 0x140148ac0
xor r10d, r10d
mov r11d, r10d
test eax, eax
jle 0x140148a79
cmp r8d, 0x20
jb 0x140148a79
lea edx, [r8 - 1]
lea eax, [rdx + 0x10]
movsxd rcx, eax
lea rbp, [rsp + 0x20]
add rbp, rcx
movsxd rax, edx
lea rcx, [rsp + 0x30]
lea rdx, [rax + rsi]
cmp rcx, rdx
ja 0x1401489b5
cmp rbp, rsi
jae 0x140148a79
mov qword [rsp + 0x50], r15
lea rcx, [rax + rdi]
lea r15, [rsp + 0x30]
cmp r15, rcx
mov r15, qword [rsp + 0x50]
ja 0x1401489d6
cmp rbp, rdi
jae 0x140148a79
cmp rdi, rdx
ja 0x1401489e4
cmp rcx, rsi
jae 0x140148a79
add rax, rbx
cmp rdi, rax
ja 0x1401489f5
cmp rcx, rbx
jae 0x140148a79
mov eax, r8d
and eax, 0x8000001f
jge 0x140148a06
dec eax
or eax, 0xffffffe0
inc eax
sub r8d, eax
mov rcx, rbx
lea rax, [rsp + 0x30]
movsxd rbp, r8d
sub rcx, rax
mov rdx, rsi
lea rax, [rsp + 0x30]
mov r8, rdi
sub rdx, rax
lea rax, [rsp + 0x30]
sub r8, rax
nop dword [rax]
lea rax, [rsp + 0x30]
add r11d, 0x20
add rax, r10
add r10, 0x20
movdqu xmm1, xmmword [rax + rcx]
movdqu xmm0, xmmword [rax + rdx]
movdqu xmmword [rax], xmm1
pxor xmm0, xmm1
movdqu xmmword [rax + r8], xmm0
movdqu xmm1, xmmword [rax + rcx + 0x10]
movdqu xmm0, xmmword [rax + rdx + 0x10]
movdqu xmmword [rax + 0x10], xmm1
pxor xmm0, xmm1
movdqu xmmword [rax + r8 + 0x10], xmm0
cmp r10, rbp
jl 0x140148a30
movsxd r8, r11d
cmp r8, r9
jge 0x140148ac0
lea rax, [rsp + 0x30]
mov r10, rsi
sub rbx, rax
lea rax, [rsp + 0x30]
sub r10, rax
lea rax, [rsp + 0x30]
sub rdi, rax
nop dword [rax]
lea rdx, [rsp + 0x30]
add rdx, r8
inc r8
movzx ecx, byte [rdx + rbx]
movzx eax, byte [rdx + r10]
xor al, cl
mov byte [rdx], cl
mov byte [rdx + rdi], al
cmp r8, r9
jl 0x140148aa0
mov eax, r14d
cdq
and edx, 7
add eax, edx
mov ecx, eax
and eax, 7
sub eax, edx
sar ecx, 3
mov r11d, eax
test eax, eax
jne 0x140148aea
movsxd rax, ecx
movups xmm0, xmmword [rsp + rax + 0x20]
movups xmmword [rsi], xmm0
jmp 0x140148b94
movsxd rcx, ecx
lea rbp, [rsp + 0x20]
mov rax, rcx
lea r10, [rsp + 0x21]
sub rax, rsi
mov ebx, 8
add rbp, rax
sub ebx, r11d
lea rax, [rsp + 0x21]
add r10, rcx
sub rsi, rcx
mov edi, 4
sub rsi, rax
nop dword [rax + rax]
movzx r9d, byte [r10]
lea r8, [rsi + r10]
movzx edx, byte [r8 + rbp]
lea r10, [r10 + 4]
mov ecx, r11d
movzx eax, r9b
shl dl, cl
movzx ecx, bl
shr al, cl
or dl, al
mov byte [r8], dl
movzx r8d, byte [r10 - 3]
movzx edx, byte [r10 - 2]
movzx eax, r8b
shr al, cl
mov ecx, r11d
shl r9b, cl
movzx ecx, bl
or al, r9b
mov byte [rsi + r10 - 3], al
movzx eax, dl
shr al, cl
mov ecx, r11d
shl r8b, cl
movzx ecx, bl
or al, r8b
mov byte [rsi + r10 - 2], al
movzx eax, byte [r10 - 1]
shr al, cl
mov ecx, r11d
shl dl, cl
or al, dl
mov byte [rsi + r10 - 1], al
sub rdi, 1
jne 0x140148b20
mov rbp, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1401ef4e0
add rsp, 0x58
pop r14
pop rdi
pop rsi
pop rbx
ret