Function at 0x1400382f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
push rdi
push r14
sub rsp, 0x48
mov r11d, dword [rsp + 0x90]
mov r10, rcx
mov ecx, r9d
mov edi, edx
call fcn.140027f10
mov r14d, eax
test eax, eax
js 0x140038623
mov qword [rsp + 0x60], rbx
mov edx, 0xff
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x30], r15
lea r15d, [r11 - 1]
and r15d, 7
mov ecx, r15d
shl edx, cl
test byte [r10], dl
jne 0x140038600
test r15d, r15d
lea ecx, [rdi - 1]
lea rbx, [r10 + 1]
cmovne ecx, edi
cmovne rbx, r10
mov esi, ecx
sub esi, eax
sub esi, 1
jns 0x140038379
mov eax, 0xffffff16
jmp 0x140038605
mov ebp, dword [rsp + 0x88]
cmp ebp, 0xffffffff
jne 0x14003839d
mov ebp, r14d
cmp r11d, 0x400
jne 0x1400383af
cmp r14d, 0x40
jne 0x1400383af
lea ebp, [r14 - 2]
jmp 0x1400383af
cmp ebp, r14d
jg 0x140038499
cmp ebp, 0xffffffff
jl 0x140038499
lea eax, [rbp + 1]
cmp esi, eax
jl 0x140038499
lea eax, [rcx - 1]
cmp byte [rax + rbx], 0xbc
jne 0x140038600
mov rax, qword [0x140397868]
movsxd r12, esi
mov rcx, r12
test rax, rax
je 0x1400383dd
call rax
jmp 0x1400383e2
call fcn.1400b85d8
mov rdi, rax
test rax, rax
jne 0x1400383f2
lea eax, [rdi - 0x7d]
jmp 0x140038605
mov ecx, dword [rsp + 0x80]
lea rdx, [rbx + r12]
mov r9, rdi
mov dword [rsp + 0x20], esi
mov r8d, r14d
call fcn.140037a80
mov r13d, eax
test eax, eax
je 0x140038439
mov rdx, qword [0x140398920]
mov rcx, rdi
test rdx, rdx
je 0x14003842c
call rdx
mov eax, r13d
jmp 0x140038605
call fcn.1400b8268
mov eax, r13d
jmp 0x140038605
mov eax, 1
xor edx, edx
mov ecx, r15d
shl al, cl
dec al
and byte [rdi], al
and byte [rbx], al
mov eax, esi
sub eax, ebp
dec eax
movsxd r9, eax
test eax, eax
jle 0x14003847a
mov r8, rdi
mov rcx, rbx
sub r8, rbx
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1400384a3
inc rcx
inc edx
mov rax, rcx
sub rax, rbx
cmp rax, r9
jl 0x140038461
movsxd rcx, edx
movzx eax, byte [rbx + rcx]
xor al, 1
cmp byte [rcx + rdi], al
je 0x1400384c1
mov rax, qword [0x140398920]
mov rcx, rdi
test rax, rax
je 0x1400384b2
call rax
mov eax, 0xffffff06
jmp 0x140038605
mov rax, qword [0x140398920]
mov rcx, rdi
test rax, rax
jne 0x140038497
call fcn.1400b8268
mov eax, 0xffffff06
jmp 0x140038605
inc edx
mov r8d, esi
sub r8d, edx
mov r9d, edx
cmp edx, esi
jge 0x1400385a0
cmp r8d, 0x40
jb 0x1400385a0
movsxd r10, edx
lea eax, [rsi - 1]
movsxd rdx, eax
lea rcx, [rbx + r10]
lea rax, [rdx + rdi]
lea r11, [rbx + rdx]
lea r15, [r10 + rdi]
cmp rcx, rax
ja 0x140038505
cmp r11, r15
jae 0x1400385a0
and r8d, 0x8000003f
jge 0x140038518
dec r8d
or r8d, 0xffffffc0
inc r8d
sub esi, r8d
lea rcx, [rbx + 0x10]
mov rdx, rdi
movsxd r11, esi
add rcx, r10
sub rdx, rbx
mov r8, 0xfffffffffffffff0
sub r8, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rcx - 0x10]
add r9d, 0x40
movdqu xmm1, xmmword [rcx + rdx - 0x10]
movdqu xmm2, xmmword [rcx + rdx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rcx + r8]
movdqu xmmword [rcx - 0x50], xmm1
movdqu xmm0, xmmword [rcx - 0x40]
movdqu xmm1, xmmword [rcx + rdx - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rcx - 0x40], xmm2
movdqu xmm0, xmmword [rcx - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x30], xmm1
movdqu xmm0, xmmword [rcx - 0x20]
movdqu xmm1, xmmword [rcx + rdx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx - 0x20], xmm1
cmp rax, r11
jl 0x140038540
movsxd rax, r9d
cmp rax, r12
jge 0x1400385d1
mov r8, rdi
lea rcx, [rbx + rax]
sub r8, rbx
mov rdx, r12
sub rdx, rax
nop dword [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1400385c0
mov rax, qword [0x140398920]
mov rcx, rdi
test rax, rax
je 0x1400385e4
call rax
jmp 0x1400385e9
call fcn.1400b8268
movsxd rax, ebp
sub rbx, rax
mov rax, qword [rsp + 0x70]
add rbx, r12
mov qword [rax], rbx
lea eax, [r14 + rbp]
jmp 0x140038605
mov eax, 0xffffff3f
mov r13, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x30]
add rsp, 0x48
pop r14
pop rdi
ret