Function at 0x140095fd0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rdi
push r12
push r13
push r15
sub rsp, 0x20
xor r12d, r12d
mov rdi, rdx
mov rbx, rcx
test rcx, rcx
je 0x140096288
lea rax, [rdx - 8]
cmp rax, 0x3ff8
ja 0x140096288
mov r13, qword [rcx + 8]
mov r15, qword [rcx + 0x10]
test r13, r13
je 0x140096288
mov qword [rsp + 0x58], rsi
mov rsi, rdx
shl rsi, 5
mov rcx, rsi
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov qword [rbx + 8], rax
test rax, rax
jne 0x140096049
mov rsi, qword [rsp + 0x58]
lea eax, [r12 - 1]
mov qword [rbx + 8], r13
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rbx
ret
mov r8, rsi
xor edx, edx
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov qword [rbx + 0x10], rdi
test r15, r15
je 0x14009626a
mov qword [rsp + 0x50], rbp
lea rdi, [r13 + 8]
mov qword [rsp + 0x60], r14
mov r14, r15
cmp dword [rdi + 0xc], 0
je 0x140096135
mov r10, qword [rbx + 0x10]
cmp r15, 0x80
je 0x140096090
mov ebp, dword [rdi + 0x10]
jmp 0x1400960b1
mov r8d, dword [rbx + 0x30]
mov edx, dword [rdi + 8]
mov rcx, qword [rdi]
cmp r10, 0x80
jne 0x1400960aa
call fcn.140095da0
jmp 0x1400960af
call fcn.140095cb0
mov ebp, eax
xor edx, edx
mov eax, ebp
div r10
mov rax, qword [rbx + 8]
mov esi, edx
shl rsi, 5
cmp dword [rsi + rax + 0x14], 0
jne 0x1400960f0
movups xmm0, xmmword [rdi - 8]
movups xmmword [rsi + rax], xmm0
movups xmm1, xmmword [rdi + 8]
movups xmmword [rsi + rax + 0x10], xmm1
mov rax, qword [rbx + 8]
mov qword [rsi + rax], 0
mov rax, qword [rbx + 8]
mov dword [rsi + rax + 0x18], ebp
jmp 0x140096135
mov ecx, 0x20
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, rax
test rax, rax
je 0x14009612f
mov rax, qword [rdi]
mov qword [rdx + 8], rax
mov eax, dword [rdi + 8]
mov dword [rdx + 0x10], eax
mov dword [rdx + 0x18], ebp
mov rax, qword [rbx + 8]
mov rcx, qword [rsi + rax]
mov qword [rdx], rcx
mov dword [rdx + 0x14], 1
mov rax, qword [rbx + 8]
mov qword [rsi + rax], rdx
jmp 0x140096135
mov r12d, 0xffffffff
add rdi, 0x20
sub r14, 1
jne 0x140096074
mov r14, qword [rsp + 0x60]
mov rsi, r13
mov rbp, r15
nop
mov r10, qword [rsi]
test r10, r10
je 0x140096257
nop dword [rax]
mov rdi, qword [r10]
cmp r15, 0x80
je 0x140096172
mov ecx, dword [r10 + 0x18]
jmp 0x1400961e0
cmp qword [rbx + 0x10], 0x80
jne 0x140096191
mov r8d, dword [rbx + 0x30]
mov edx, dword [r10 + 0x10]
mov rcx, qword [r10 + 8]
call fcn.140095da0
mov ecx, eax
jmp 0x1400961e0
movsxd rcx, dword [r10 + 0x10]
test ecx, ecx
jle 0x1400961de
mov r8, qword [r10 + 8]
test r8, r8
je 0x1400961de
mov eax, dword [rbx + 0x30]
xor edx, edx
mov r9, rcx
test ecx, ecx
jle 0x1400961cc
nop
movzx ecx, byte [rdx + r8]
inc rdx
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor eax, ecx
cmp rdx, r9
jl 0x1400961b0
lea ecx, [rax + rax*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul ecx, eax, 0x8001
jmp 0x1400961e0
xor ecx, ecx
xor edx, edx
mov eax, ecx
div qword [rbx + 0x10]
mov rax, qword [rbx + 8]
mov r8d, edx
shl r8, 5
add rax, r8
cmp dword [rax + 0x14], 0
jne 0x140096239
movups xmm0, xmmword [r10]
movups xmmword [rax], xmm0
movups xmm1, xmmword [r10 + 0x10]
movups xmmword [rax + 0x10], xmm1
mov rax, qword [rbx + 8]
mov qword [r8 + rax], 0
mov rax, qword [rbx + 8]
mov dword [r8 + rax + 0x14], 1
mov rax, qword [rbx + 8]
mov dword [r8 + rax + 0x18], ecx
mov rcx, r10
call qword [fcn.14013e100]
jmp 0x14009624b
mov rax, qword [rax]
mov qword [r10], rax
mov dword [r10 + 0x18], ecx
mov rax, qword [rbx + 8]
mov qword [r8 + rax], r10
mov r10, rdi
test rdi, rdi
jne 0x140096160
add rsi, 0x20
sub rbp, 1
jne 0x140096150
mov rbp, qword [rsp + 0x50]
mov rcx, r13
call qword [fcn.14013e100]
mov rsi, qword [rsp + 0x58]
mov eax, r12d
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rbx
ret
mov eax, 0xffffffff
add rsp, 0x20
pop r15
pop r13
pop r12
pop rdi
pop rbx
ret