Function at 0x140223f00
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov rsi, r9
mov rdi, r8
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
lea rax, [0x14039b058]
mov qword [rcx], rax
mov byte [rcx + 0x18], 0
mov qword [rcx + 0x20], rdx
movups xmmword [rcx + 0x40], xmm0
mov rbx, qword [r8 + 0x18]
cmp qword [r8 + 0x20], 0x10
jb 0x140223f57
mov rdi, qword [rdi + 8]
jmp 0x140223f5b
add rdi, 8
lea rax, [rcx + 8]
mov qword [rbp - 0x28], rax
lea r15, [rcx + 0x30]
cmp rbx, 0xf
mov qword [rbp + 8], rcx
ja 0x140223f80
movups xmm0, xmmword [rdi]
movups xmmword [r15], xmm0
mov r14d, 0xf
jmp 0x140223fe3
mov r14, rbx
or r14, 0xf
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
cmp r14, 0xfff
jb 0x140223fc4
lea rcx, [r14 + 0x28]
call fcn.1403471ac
mov rcx, rax
xor rcx, 0x27
mov edx, eax
and edx, 0x27
lea rcx, [rcx + rdx*2]
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140223fd0
lea rcx, [r14 + 1]
call fcn.1403471ac
mov rcx, rax
mov qword [r15], rcx
lea r8, [rbx + 1]
mov rdx, rdi
call fcn.14036f110
mov rcx, qword [rbp + 8]
mov qword [rcx + 0x40], rbx
mov qword [rcx + 0x48], r14
lea rbx, [0x14038a448]
mov qword [rcx + 0x28], rbx
xorps xmm0, xmm0
movups xmmword [rcx + 0x68], xmm0
mov rdi, qword [rsi + 0x18]
cmp qword [rsi + 0x20], 0x10
jb 0x14022400e
mov rsi, qword [rsi + 8]
jmp 0x140224012
add rsi, 8
lea rax, [rcx + 0x28]
mov qword [rbp - 0x20], rax
lea r15, [rcx + 0x58]
cmp rdi, 0xf
ja 0x140224033
movups xmm0, xmmword [rsi]
movups xmmword [r15], xmm0
mov r14d, 0xf
jmp 0x14022408d
mov r14, rdi
or r14, 0xf
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
cmp r14, 0xfff
jb 0x14022406e
lea rcx, [r14 + 0x28]
call fcn.1403471ac
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x14022407a
lea rcx, [r14 + 1]
call fcn.1403471ac
mov rcx, rax
mov qword [r15], rcx
lea r8, [rdi + 1]
mov rdx, rsi
call fcn.14036f110
mov rcx, qword [rbp + 8]
mov r8, qword [rbp + 0x88]
mov rax, qword [rbp + 0x80]
lea rdx, [rcx + 0x50]
mov qword [rbp - 0x18], rdx
mov qword [rcx + 0x68], rdi
mov qword [rcx + 0x70], r14
mov qword [rcx + 0x50], rbx
lea rdx, [rcx + 0x78]
mov qword [rbp - 0x10], rdx
lea r13, [rcx + 0x80]
lea rdi, [rax + 8]
movsxd r14, dword [0x14039b074]
mov r15d, dword [0x14039b080]
xorps xmm0, xmm0
movups xmmword [rcx + 0x90], xmm0
mov rsi, qword [rax + 0x18]
cmp qword [rax + 0x20], 0x10
jb 0x1402240e9
mov rdi, qword [rax + 8]
cmp rsi, 0x10
jae 0x1402240ff
movups xmm0, xmmword [rdi]
movups xmmword [r13], xmm0
mov r12d, 0xf
jmp 0x14022415f
mov r12, rsi
or r12, 0xf
movabs rax, 0x7fffffffffffffff
cmp r12, rax
cmovae r12, rax
cmp r12, 0xfff
jb 0x14022413b
lea rcx, [r12 + 0x28]
call fcn.1403471ac
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140224148
lea rcx, [r12 + 1]
call fcn.1403471ac
mov rcx, rax
mov qword [r13], rcx
lea r8, [rsi + 1]
mov rdx, rdi
call fcn.14036f110
mov r8, qword [rbp + 0x88]
mov rax, qword [rbp + 8]
mov qword [rax + 0x90], rsi
mov qword [rax + 0x98], r12
mov qword [rax + 0x78], rbx
lea rcx, [rax + 0xa0]
mov qword [rbp], rcx
mov qword [rax + 0xb8], 0
mov qword [rax + 0xc0], 0xf
mov byte [rax + 0xa8], 0
mov qword [rax + 0xa0], rbx
xorps xmm0, xmm0
movups xmmword [rax + 0xc8], xmm0
cmp qword [r8 + 0x18], 0
je 0x1402241fd
lea rcx, [rbp - 8]
mov rdx, r8
mov r8b, 1
call fcn.1402299a0
lea rcx, [rbp - 0x50]
call fcn.14022ab10
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp]
call fcn.14021a110
mov eax, dword [0x1404bf164]
lea ecx, [rax + 1]
mov dword [0x1404bf164], ecx
test eax, ecx
je 0x14022428e
xor r8d, r8d
mov rsi, qword [rbp + 8]
jmp 0x1402242c0
lea rcx, [rbp - 0x50]
call fcn.14022ab10
lea rdx, [rbp - 0x50]
mov rcx, qword [rbp]
call fcn.14021a110
mov rax, qword [rbp - 0x30]
cmp rax, 0x10
mov rsi, qword [rbp + 8]
jb 0x140224317
mov rdx, qword [rbp - 0x48]
lea r9, [rax + 1]
cmp r9, 0x1000
jb 0x140224271
mov rcx, qword [rdx - 8]
mov r8, rdx
xor r8, 0xfffffffffffffff8
movabs r9, 0x7ffffffffffffff8
and r9, rdx
lea rdx, [r8 + r9*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140224352
mov rdx, qword [0x1404bf180]
lea r9, [rdx + rax]
add r9, 0x28
mov rdx, rcx
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.1401209a0
jmp 0x140224317
xor edx, edx
mov r8d, 0
test r15d, r15d
mov rsi, qword [rbp + 8]
jle 0x1402242c0
lea r8, [0x14039b074]
add r14, r8
xor r8d, r8d
nop dword [rax]
movsxd rdx, edx
xor r8w, word [r14 + rdx]
add edx, 2
cmp edx, r15d
jl 0x1402242b0
mov r10, qword [rbp - 0x30]
cmp r10, 0xf
jbe 0x14022430e
mov rdx, qword [rbp - 0x48]
lea r9, [r10 + 1]
cmp r9, 0x1000
jb 0x1402242f6
mov r11, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, r11
cmp rdx, 0x20
jae 0x14022432e
add r10, 0x28
mov r9, r10
mov rdx, r11
mov dword [rsp + 0x20], 0x40c0bd58
mov ecx, 1
mov r8d, 1
call fcn.1401209a0
lea rcx, [rbp - 8]
call fcn.140226990
mov rax, rsi
add rsp, 0x98
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
and eax, ecx
xor ecx, ecx
cmp eax, 1
sbb ecx, ecx
movzx eax, word [0x14039b072]
sub eax, r8d
and eax, ecx
movzx eax, ax
add qword [0x1404bf180], rax
call fcn.14032786c
call fcn.14032786c
int3