Function at 0x1400399b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0xf]
sub rsp, 0xe8
mov rax, qword [0x14009f320]
xor rax, rsp
mov qword [rbp - 0x19], rax
mov rax, qword [rbp + 0x7f]
mov rsi, rcx
mov rcx, qword [rcx]
mov r14, r9
mov qword [rsp + 0x28], rax
mov rdi, r8
mov qword [rsp + 0x30], r9
mov rbx, rdx
call fcn.140022e50
mov dword [rsp + 0x20], 0
mov r8, rdi
mov rdx, rbx
movzx r15d, al
mov rcx, rsi
mov byte [rsp + 0x23], 1
call fcn.1400230c0
mov edi, eax
test eax, eax
jne 0x140039c7e
mov qword [rsp + 0xd8], r13
mov r13d, dword [rbp + 0x77]
test r13d, r13d
je 0x140039c57
mov qword [rsp + 0xe0], r12
mov r12d, dword [rbp + 0x6f]
nop
mov r8, qword [rbp + 0x67]
mov rdx, r14
mov rcx, rsi
call fcn.1400233c0
mov edi, eax
test eax, eax
jne 0x140039c4f
lea r8d, [rax + 4]
mov rcx, rsi
lea rdx, [rsp + 0x20]
call fcn.1400233c0
mov edi, eax
test eax, eax
jne 0x140039c4f
lea rdx, [rsp + 0x40]
mov rcx, rsi
call fcn.140022e70
mov edi, eax
test eax, eax
jne 0x140039c4f
mov rcx, rsi
call fcn.140023060
mov edi, eax
test eax, eax
jne 0x140039c4f
mov r8, r15
lea rdx, [rsp + 0x40]
lea rcx, [rbp - 0x59]
call sub.VCRUNTIME140.dll_memcpy
mov ebx, 1
cmp r12d, ebx
jbe 0x140039bfe
nop dword [rax]
mov r8, r15
lea rdx, [rbp - 0x59]
mov rcx, rsi
call fcn.1400233c0
mov edi, eax
test eax, eax
jne 0x140039c4f
lea rdx, [rbp - 0x59]
mov rcx, rsi
call fcn.140022e70
mov edi, eax
test eax, eax
jne 0x140039c4f
mov rcx, rsi
call fcn.140023060
mov edi, eax
test eax, eax
jne 0x140039c4f
xor eax, eax
mov rdx, r15
mov r8d, r15d
test r15d, r15d
je 0x140039bce
cmp edx, 8
jb 0x140039bce
cmp edx, 0x40
jb 0x140039b97
mov ecx, r8d
mov r9d, 0xffffffc0
and rcx, r9
nop dword [rax]
movdqu xmm0, xmmword [rsp + rax + 0x40]
movdqu xmm1, xmmword [rbp + rax - 0x59]
xorps xmm1, xmm0
movdqu xmmword [rsp + rax + 0x40], xmm1
movdqu xmm0, xmmword [rsp + rax + 0x50]
movdqu xmm1, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rsp + rax + 0x50], xmm1
movdqu xmm0, xmmword [rbp + rax - 0x79]
movdqu xmm1, xmmword [rbp + rax - 0x39]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x79], xmm1
movdqu xmm0, xmmword [rbp + rax - 0x69]
movdqu xmm1, xmmword [rbp + rax - 0x29]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x69], xmm1
add rax, 0x40
cmp rax, rcx
jl 0x140039b30
mov ecx, edx
and cl, 0x3f
cmp cl, 8
jb 0x140039bce
mov rcx, r8
mov r9d, 0xfffffff8
and rcx, r9
nop dword [rax]
nop word [rax + rax]
movq xmm0, qword [rsp + rax + 0x40]
movq xmm1, qword [rbp + rax - 0x59]
xorps xmm1, xmm0
movq qword [rsp + rax + 0x40], xmm1
add rax, 8
cmp rax, rcx
jl 0x140039bb0
cmp rax, rdx
jge 0x140039bf1
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rbp + rax - 0x59]
xor byte [rsp + rax + 0x40], cl
inc rax
cmp rax, rdx
jl 0x140039be0
inc ebx
cmp ebx, r12d
jb 0x140039ac0
jmp 0x140039c01
mov r8d, r15d
mov r14, qword [rsp + 0x28]
lea rdx, [rsp + 0x40]
cmp r13d, r8d
mov eax, r13d
mov rcx, r14
cmovae eax, r8d
mov r8d, eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
sub r13d, ebx
mov edx, 4
add r14, rbx
mov qword [rsp + 0x28], r14
lea eax, [rdx - 1]
add byte [rsp + rax + 0x20], 1
jne 0x140039c41
add edx, 0xffffffff
jne 0x140039c32
mov r14, qword [rsp + 0x30]
test r13d, r13d
jne 0x140039a40
mov r12, qword [rsp + 0xe0]
mov edx, 0x40
lea rcx, [rsp + 0x40]
call fcn.140020050
mov edx, 0x40
lea rcx, [rbp - 0x59]
call fcn.140020050
mov r13, qword [rsp + 0xd8]
mov eax, edi
mov rcx, qword [rbp - 0x19]
xor rcx, rsp
call fcn.14006ab10
add rsp, 0xe8
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret