Function at 0x14001ff40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x498
movaps xmmword [rsp + 0x480], xmm7
movaps xmmword [rsp + 0x470], xmm6
mov ebp, r9d
mov r14, r8
mov qword [rsp + 0x58], rdx
mov rsi, rcx
mov qword [rsp + 0x50], rcx
mov rax, qword [0x142230118]
mov rcx, qword [rax]
call fcn.140020810
xor eax, eax
xchg byte [0x142230108], al
xor edi, edi
mov rax, qword [0x142230118]
mov rcx, qword [rax]
mov byte [rcx + 0xfee70c], 0
mov cl, 1
xchg byte [0x142230109], cl
mov rax, qword [rax]
xchg byte [rax + 0xfee70d], bpl
mov rcx, r14
call fcn.140020950
xorps xmm6, xmm6
movaps xmmword [rsp + 0x30], xmm6
mov qword [rsp + 0x40], 0
lea r15, [rsp + 0x68]
mov rcx, rsi
mov rdx, r15
call fcn.1400209d0
mov qword [r15 + 0x400], rax
movabs r12, 0xaaaaaaaaaaaaaaab
mov qword [rsp + 0x60], rax
cmp r15, rax
je 0x14002051a
movaps xmm7, xmmword [0x1400cf350]
xor edi, edi
xor r13d, r13d
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x28], rax
xor esi, esi
jmp 0x14002006b
mov ebp, dword [r15]
movups xmmword [rdi], xmm7
mov word [rdi + 0x10], 0
movups xmmword [rdi + 0x14], xmm6
movups xmmword [rdi + 0x20], xmm6
mov ecx, 4
call fcn.140020730
mov qword [rdi + 0x18], rax
lea rcx, [rax + 4]
mov qword [rdi + 0x28], rcx
mov dword [rax], ebp
mov qword [rdi + 0x20], rcx
add rdi, 0x30
mov qword [rsp + 0x38], rdi
mov r13, rdi
add r15, 8
cmp r15, qword [rsp + 0x60]
je 0x14002051a
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
cmp rax, rcx
jne 0x140020660
cmp rdi, rsi
jb 0x140020020
mov rdx, qword [rsp + 0x28]
sub rdi, rdx
sar rdi, 4
imul rdi, r12
mov rax, r12
lea r12, [rdi + 1]
movabs rcx, 0x555555555555555
cmp r12, rcx
ja 0x140020672
sub rbx, rdx
sar rbx, 4
imul rbx, rax
lea rax, [rbx + rbx]
cmp rax, r12
cmova r12, rax
movabs rax, 0x2aaaaaaaaaaaaaa
cmp rbx, rax
jae 0x140020677
test r12, r12
je 0x14002066b
cmp r12, rcx
ja 0x14002067f
mov rax, r12
shl rax, 4
lea rcx, [rax + rax*2]
call fcn.140020730
mov rbp, rax
lea rdi, [rdi + rdi*2]
shl rdi, 4
lea rsi, [rdi + rbp]
lea rbx, [r12 + r12*2]
shl rbx, 4
add rbx, rbp
mov r12d, dword [r15]
movups xmmword [rbp + rdi], xmm7
mov word [rbp + rdi + 0x10], 0
movups xmmword [rbp + rdi + 0x14], xmm6
movups xmmword [rbp + rdi + 0x20], xmm6
mov ecx, 4
call fcn.140020730
mov qword [rbp + rdi + 0x18], rax
lea rcx, [rax + 4]
mov qword [rbp + rdi + 0x28], rcx
mov dword [rax], r12d
mov qword [rbp + rdi + 0x20], rcx
add rdi, rbp
add rdi, 0x30
mov rcx, r13
sub rcx, qword [rsp + 0x28]
je 0x140020400
add rcx, 0xffffffffffffffd0
mov rax, rcx
movabs r12, 0xaaaaaaaaaaaaaaab
mul r12
bt edx, 5
jb 0x140020218
lea rbp, [rsi - 0x30]
mov rax, qword [r13 - 0x20]
mov qword [rsi - 0x20], rax
movups xmm0, xmmword [r13 - 0x30]
movups xmmword [rsi - 0x30], xmm0
movups xmmword [rsi - 0x10], xmm6
movups xmm0, xmmword [r13 - 0x18]
movups xmmword [rsi - 0x18], xmm0
mov rax, qword [r13 - 8]
mov qword [rsi - 8], rax
movups xmmword [r13 - 0x18], xmm6
mov qword [r13 - 8], 0
add r13, 0xffffffffffffffd0
mov rsi, rbp
cmp rcx, 0x30
jae 0x14002021a
mov r13, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rbx
nop dword [rax + rax]
cmp rsi, r13
je 0x1400201f8
mov rcx, qword [rsi - 0x18]
test rcx, rcx
jne 0x1400203f2
add rsi, 0xffffffffffffffd0
jmp 0x1400201e0
mov rsi, rbp
test r13, r13
je 0x140020208
mov rcx, r13
call fcn.14001c620
mov r13, rdi
mov qword [rsp + 0x28], rsi
mov rsi, rbx
jmp 0x14002005c
jmp 0x1400201b9
mov rax, qword [r13 - 0x20]
mov qword [rsi - 0x20], rax
movups xmm0, xmmword [r13 - 0x30]
movups xmmword [rsi - 0x30], xmm0
movups xmmword [rsi - 0x10], xmm6
movups xmm0, xmmword [r13 - 0x18]
movups xmmword [rsi - 0x18], xmm0
mov rax, qword [r13 - 8]
mov qword [rsi - 8], rax
movups xmmword [r13 - 0x18], xmm6
mov qword [r13 - 8], 0
lea rax, [r13 - 0x60]
mov rcx, qword [r13 - 0x50]
mov qword [rsi - 0x50], rcx
movups xmm0, xmmword [r13 - 0x60]
movups xmmword [rsi - 0x60], xmm0
movups xmmword [rsi - 0x40], xmm6
movups xmm0, xmmword [r13 - 0x48]
movups xmmword [rsi - 0x48], xmm0
mov rcx, qword [r13 - 0x38]
mov qword [rsi - 0x38], rcx
movups xmmword [r13 - 0x48], xmm6
mov qword [r13 - 0x38], 0
mov r8, qword [rsp + 0x28]
cmp rax, r8
je 0x14002041e
mov rax, qword [r13 - 0x80]
mov qword [rsi - 0x80], rax
movups xmm0, xmmword [r13 - 0x90]
movups xmmword [rsi - 0x90], xmm0
movups xmmword [rsi - 0x70], xmm6
movups xmm0, xmmword [r13 - 0x78]
movups xmmword [rsi - 0x78], xmm0
mov rax, qword [r13 - 0x68]
mov qword [rsi - 0x68], rax
movups xmmword [r13 - 0x78], xmm6
mov qword [r13 - 0x68], 0
lea rax, [r13 - 0xc0]
mov rcx, qword [r13 - 0xb0]
mov qword [rsi - 0xb0], rcx
movups xmm0, xmmword [r13 - 0xc0]
movups xmmword [rsi - 0xc0], xmm0
movups xmmword [rsi - 0xa0], xmm6
movups xmm0, xmmword [r13 - 0xa8]
movups xmmword [rsi - 0xa8], xmm0
mov rcx, qword [r13 - 0x98]
mov qword [rsi - 0x98], rcx
movups xmmword [r13 - 0xa8], xmm6
mov qword [r13 - 0x98], 0
cmp rax, r8
je 0x14002042a
mov rax, qword [r13 - 0xe0]
mov qword [rsi - 0xe0], rax
movups xmm0, xmmword [r13 - 0xf0]
movups xmmword [rsi - 0xf0], xmm0
movups xmmword [rsi - 0xd0], xmm6
movups xmm0, xmmword [r13 - 0xd8]
movups xmmword [rsi - 0xd8], xmm0
mov rax, qword [r13 - 0xc8]
mov qword [rsi - 0xc8], rax
movups xmmword [r13 - 0xd8], xmm6
mov qword [r13 - 0xc8], 0
lea rax, [r13 - 0x120]
mov rcx, qword [r13 - 0x110]
mov qword [rsi - 0x110], rcx
movups xmm0, xmmword [r13 - 0x120]
movups xmmword [rsi - 0x120], xmm0
movups xmmword [rsi - 0x100], xmm6
movups xmm0, xmmword [r13 - 0x108]
movups xmmword [rsi - 0x108], xmm0
mov rcx, qword [r13 - 0xf8]
mov qword [rsi - 0xf8], rcx
movups xmmword [r13 - 0x108], xmm6
mov qword [r13 - 0xf8], 0
cmp rax, r8
jne 0x140020439
add rsi, 0xfffffffffffffee0
mov rbp, rsi
jmp 0x1400201bf
mov qword [rsi - 0x10], rcx
call fcn.14001c620
jmp 0x1400201f2
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rbx
movabs r12, 0xaaaaaaaaaaaaaaab
jmp 0x1400201fb
add rsi, 0xffffffffffffffa0
mov rbp, rsi
jmp 0x1400201bf
add rsi, 0xffffffffffffff40
mov rbp, rsi
jmp 0x1400201bf
mov rax, qword [r13 - 0x140]
mov qword [rsi - 0x140], rax
movups xmm0, xmmword [r13 - 0x150]
movups xmmword [rsi - 0x150], xmm0
movups xmmword [rsi - 0x130], xmm6
movups xmm0, xmmword [r13 - 0x138]
movups xmmword [rsi - 0x138], xmm0
mov rax, qword [r13 - 0x128]
mov qword [rsi - 0x128], rax
xor edx, edx
mov qword [r13 - 0x128], rdx
movups xmmword [r13 - 0x138], xmm6
mov rax, 0xfffffffffffffe80
lea rbp, [rsi + rax]
add rax, r13
mov rcx, qword [r13 - 0x170]
mov qword [rsi - 0x170], rcx
movups xmm0, xmmword [r13 - 0x180]
movups xmmword [rsi - 0x180], xmm0
movups xmmword [rsi - 0x160], xmm6
movups xmm0, xmmword [r13 - 0x168]
movups xmmword [rsi - 0x168], xmm0
mov rcx, qword [r13 - 0x158]
mov qword [rsi - 0x158], rcx
mov qword [r13 - 0x158], rdx
movups xmmword [r13 - 0x168], xmm6
cmp rax, r8
je 0x1400201bf
jmp 0x140020684
xor r9d, r9d
cmp dword [rax], edx
sete r9b
add r8, r9
add rax, 4
cmp rax, rcx
jne 0x1400204f7
test r8, r8
jne 0x14002007b
jmp 0x14002005c
mov rdx, qword [rsp + 0x58]
cmp qword [rdx], 0
je 0x140020531
lea rcx, [0x142230110]
call fcn.14001eaf0
mov rsi, qword [0x142230118]
mov r13, qword [0x142230120]
cmp rsi, r13
je 0x14002062a
mov rbx, qword [rsp + 0x30]
mov r14, rdi
sub r14, rbx
sar r14, 4
imul r14, r12
mov r15, qword [rsi]
xor eax, eax
xchg qword [r15 + 0x50], rax
mov dword [r15 + 0x5c], 0
xor eax, eax
xchg qword [r15 + 0x48], rax
xor eax, eax
xchg qword [r15 + 0x40], rax
mov qword [r15 + 0x5658], 0
lea rcx, [r15 + 0x5640]
mov rdx, rbx
mov r8, rdi
mov r9, r14
call fcn.140020a50
lea rcx, [r15 + 0x70]
lea r12, [r15 + 0x4440]
mov rdx, qword [rsp + 0x50]
mov r8, r12
mov r9, r15
call fcn.1400208e0
mov rax, qword [0x142230110]
mov rcx, qword [rax + 0x28]
mov r8, qword [rax + 8]
mov rax, qword [rax + 0x20]
add rax, rcx
dec rax
mov rcx, rax
shr rcx, 4
and eax, 0xf
lea rdx, [rax + rax*8]
shl rdx, 9
add rdx, qword [r8 + rcx*8]
mov r8d, 0x1200
mov rcx, r12
mov r12, qword [rsp + 0x50]
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov eax, dword [r12 + 0x264]
mov rcx, qword [r12 + 0x258]
mov edx, dword [rcx + rax*4]
xor rax, 1
sub edx, dword [rcx + rax*4]
mov dword [r15 + 0x5664], edx
add rsi, 8
cmp rsi, r13
jne 0x14002055b
mov rsi, qword [0x142230118]
mov rcx, qword [rsi]
call fcn.1400207d0
lea rcx, [rsp + 0x30]
call fcn.1400207a0
movaps xmm6, xmmword [rsp + 0x470]
movaps xmm7, xmmword [rsp + 0x480]
add rsp, 0x498
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov edx, dword [r15]
xor r8d, r8d
jmp 0x1400204f7
xor ebp, ebp
jmp 0x1400200f8
call fcn.140020e30
mov r12, rcx
jmp 0x1400200d3
call fcn.140023a10
mov rcx, 0xfffffffffffffe78
add rsi, rcx
add r13, rcx
xor ecx, ecx
mov rdx, qword [r13 + rcx - 0x18]
mov qword [rsi + rcx - 0x18], rdx
movups xmm0, xmmword [r13 + rcx - 0x28]
movups xmmword [rsi + rcx - 0x28], xmm0
xorps xmm0, xmm0
movups xmmword [rsi + rcx - 8], xmm0
movups xmm1, xmmword [r13 + rcx - 0x10]
movups xmmword [rsi + rcx - 0x10], xmm1
mov rdx, qword [r13 + rcx]
mov qword [rsi + rcx], rdx
xor edx, edx
mov qword [r13 + rcx], rdx
movups xmmword [r13 + rcx - 0x10], xmm0
mov r8, qword [r13 + rcx - 0x48]
mov qword [rsi + rcx - 0x48], r8
movups xmm1, xmmword [r13 + rcx - 0x58]
movups xmmword [rsi + rcx - 0x58], xmm1
movups xmmword [rsi + rcx - 0x38], xmm0
movups xmm1, xmmword [r13 + rcx - 0x40]
movups xmmword [rsi + rcx - 0x40], xmm1
mov r8, qword [r13 + rcx - 0x30]
mov qword [rsi + rcx - 0x30], r8
mov qword [r13 + rcx - 0x30], rdx
movups xmmword [r13 + rcx - 0x40], xmm0
lea rdx, [rax + rcx]
add rdx, 0xffffffffffffffa0
add rcx, 0xffffffffffffffa0
cmp rdx, qword [rsp + 0x28]
jne 0x140020693
add rbp, rcx
jmp 0x1400201bf