Function at 0x140381e30
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x48
lea rbp, [rsp + 0x40]
mov qword [rbp], 0xfffffffffffffffe
mov r10, rcx
mov rbx, qword [rcx]
mov rsi, qword [rcx + 8]
sub rsi, rbx
sar rsi, 5
inc rsi
mov rax, qword [rcx + 0x10]
sub rax, rbx
sar rax, 5
mov r11, rax
shr r11, 1
movabs rcx, 0x7ffffffffffffff
mov r9, rcx
sub r9, r11
add r11, rax
cmp r11, rsi
cmovbe r11, rsi
cmp rax, r9
cmova r11, rcx
mov rax, r11
shr rax, 0x3b
jne 0x140381fa3
mov r14, r8
mov rdi, rdx
mov rcx, r11
shl rcx, 5
cmp r11, 0x80
mov qword [rbp - 0x18], r10
mov qword [rbp - 0x10], r11
jb 0x140381f22
movabs rax, 0xf58d050776f6610a
add rax, qword [0x140546a00]
cmp r11, rax
jae 0x140381fa3
add rcx, 0x27
mov r9d, dword [0x140546a08]
lea edx, [r9 + 0x42e3a83f]
lea r8d, [r9 - 0x53a88218]
add r9d, 0x7ab3b5
call fcn.1400a9550
lea rcx, [rax + 0x27]
movabs rdx, 0xed8d050776f660eb
add rdx, qword [0x140546a00]
and rdx, rcx
mov rcx, rdx
mov qword [rbp - 8], rdx
mov qword [rdx - 8], rax
jmp 0x140381f88
mov eax, dword [0x14055f2c0]
lea edx, [rax - 1]
imul edx, eax
test dl, 1
je 0x140381f4b
nop word cs:[rax + rax]
mov eax, dword [0x14055f2c4]
cmp eax, 0xd
jge 0x140381f40
test r11, r11
je 0x140381f82
mov r9d, dword [0x140546a08]
lea edx, [r9 + 0x42e3a83f]
mov eax, r9d
xor eax, 0xac577de8
mov r8d, r9d
and r8d, 0x2c577de8
lea r8d, [rax + r8*2]
add r9d, 0x7ab3b5
call fcn.1400a9550
jmp 0x140381f84
xor eax, eax
mov qword [rbp - 8], rax
mov rax, rdi
sub rax, rbx
sar rax, 5
mov ecx, dword [0x14055f2c4]
cmp ecx, 0x1d
mov r9, qword [rbp - 8]
jle 0x140381fa8
jmp 0x140382008
call fcn.140083100
mov r12, rax
shl r12, 5
lea rbx, [r9 + r12]
lea rcx, [r9 + r12]
add rcx, 0x20
mov qword [rbp - 0x20], rcx
xorps xmm0, xmm0
movups xmmword [r9 + r12 + 0x10], xmm0
mov r13, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 0x10
mov r15, r14
jb 0x140381fd9
mov r15, qword [r14]
mov ecx, dword [0x140546a08]
lea edx, [rcx - 0x7b0c5abb]
lea r8, [fcn.140381e30]
add r8d, r8d
add r8d, 0xc20
and r8d, edx
add ecx, 0x84f3a544
cmp r8d, ecx
mov r9, qword [rbp - 8]
je 0x14038203f
mov rcx, rax
shl rcx, 5
xorps xmm0, xmm0
nop word cs:[rax + rax]
movups xmmword [r9 + rcx + 0x10], xmm0
mov edx, dword [0x14055f2c0]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x140382020
jmp 0x140381fa8
cmp r13, 0xf
ja 0x140382057
movups xmm0, xmmword [r15]
movups xmmword [rbx], xmm0
mov r14d, 0xf
jmp 0x140382173
cmp dword [0x140546a08], 0x7b0c5abc
nop word cs:[rax + rax]
mov rax, qword [0x140546a00]
movabs rcx, 0xed8d050776f6611a
xor rcx, rax
movabs rdx, 0x6d8d050776f6611a
and rdx, rax
lea r14, [rcx + rdx*2]
or r14, r13
movabs rax, 0x7fffffffffffffff
cmp r14, rax
cmovae r14, rax
mov eax, dword [0x14055f2c0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0x84f3a544
add eax, dword [0x140546a08]
cmp ecx, eax
jne 0x140382070
cmp r14, 0xffe
jbe 0x1403820f7
lea rcx, [r14 + 0x28]
call fcn.1403e4d2c
mov rdx, rax
add rdx, 0x27
mov ecx, edx
not ecx
xor rdx, 0xffffffffffffffe0
and ecx, 0x1f
or rcx, rdx
not rcx
mov qword [rcx - 8], rax
jmp 0x140382164
movabs rax, 0xed8d050776f6610c
nop word cs:[rax + rax]
mov ecx, dword [0x14055f2c4]
cmp ecx, 0x45
jg 0x14038214c
mov rcx, qword [0x140546a00]
add rcx, r14
mov edx, dword [0x14055f2c4]
mov r8d, dword [0x140546a08]
mov r9d, r8d
xor r9d, 0x84f3a559
and r8d, 0x4f3a559
lea r8d, [r9 + r8*2]
cmp edx, r8d
jl 0x140382159
mov ecx, dword [0x14055f2c4]
cmp ecx, 0x47
jge 0x140382110
jmp 0x14038211b
add rcx, rax
call fcn.1403e4d2c
mov rcx, rax
mov qword [rbx], rcx
lea r8, [r13 + 1]
mov rdx, r15
call fcn.14040cc90
mov qword [rbx + 0x10], r13
mov qword [rbx + 0x18], r14
mov rcx, qword [rbp - 0x18]
mov r14, qword [rcx]
mov rax, qword [rcx + 8]
cmp rax, rdi
je 0x1403822ed
movabs rax, 0xed8d050776f6610b
cmp r14, rdi
mov r9, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
mov r13, qword [rbp - 0x20]
je 0x140382214
lea r11, [rdx + 0x10]
xor r8d, r8d
xorps xmm0, xmm0
nop word cs:[rax + rax]
movups xmmword [r11 + r8], xmm0
movups xmm1, xmmword [r14 + r8]
movups xmm2, xmmword [r14 + r8 + 0x10]
movups xmmword [r11 + r8 - 0x10], xmm1
movups xmmword [r11 + r8], xmm2
mov r10, qword [0x140546a00]
add r10, rax
mov qword [r14 + r8 + 0x10], r10
mov qword [r14 + r8 + 0x18], 0xf
mov byte [r14 + r8], 0
cmp byte [0x14055c1a8], 0
jne 0x140382214
lea r10, [r14 + r8]
add r10, 0x20
cmp r10, rdi
je 0x140382214
add r8, 0x20
jmp 0x1403821c0
xor r8d, r8d
nop word [rax + rax]
test r8b, r8b
jne 0x140382220
mov r14, qword [rcx + 8]
cmp r14, rdi
je 0x1403823ae
add rdi, 0x20
add r12, rdx
add r12, 0x30
xorps xmm0, xmm0
xor r8d, r8d
nop word cs:[rax + rax]
lea r15, [rdi - 0x20]
lea r10, [r12 - 0x10]
mov r11d, dword [0x14055f2c4]
cmp r11d, 0x21
jg 0x1403822c0
nop word cs:[rax + rax]
movups xmmword [r12], xmm0
movups xmm1, xmmword [r15]
movups xmm2, xmmword [r15 + 0x10]
movups xmmword [r10 + 0x10], xmm2
movups xmmword [r10], xmm1
mov r11, qword [0x140546a00]
add r11, rax
mov qword [rdi - 0x10], r11
mov qword [rdi - 8], 0xf
mov byte [rdi - 0x20], 0
test r8b, r8b
jne 0x1403822c0
cmp rdi, r14
je 0x1403823ae
add r13, 0x20
add rdi, 0x20
add r12, 0x20
jmp 0x140382250
movups xmmword [r12], xmm0
movups xmm1, xmmword [r15]
movups xmm2, xmmword [r15 + 0x10]
movups xmmword [r10 + 0x10], xmm2
movups xmmword [r10], xmm1
mov qword [rdi - 0x10], 0
mov qword [rdi - 8], 0xf
mov byte [rdi - 0x20], 0
jmp 0x140382270
cmp r14, rax
mov r9, qword [rbp - 0x10]
mov rdx, qword [rbp - 8]
je 0x1403823ae
add r14, 0x20
lea r12, [rdx + 0x10]
xorps xmm0, xmm0
xor r8d, r8d
mov r15, rdx
nop
lea r10, [r14 - 0x20]
lea r11, [r12 - 0x10]
mov edi, dword [0x14055f2c4]
cmp edi, 0x14
jg 0x140382380
nop word cs:[rax + rax]
movups xmmword [r12], xmm0
movups xmm1, xmmword [r10]
movups xmm2, xmmword [r10 + 0x10]
movups xmmword [r11 + 0x10], xmm2
movups xmmword [r11], xmm1
mov qword [r14 - 0x10], 0
mov qword [r14 - 8], 0xf
mov byte [r14 - 0x20], 0
test r8b, r8b
jne 0x140382380
cmp r14, rax
je 0x1403823ae
add r15, 0x20
add r14, 0x20
add r12, 0x20
jmp 0x140382310
movups xmmword [r12], xmm0
movups xmm1, xmmword [r10]
movups xmm2, xmmword [r10 + 0x10]
movups xmmword [r11 + 0x10], xmm2
movups xmmword [r11], xmm1
mov qword [r14 - 0x10], 0
mov qword [r14 - 8], 0xf
mov byte [r14 - 0x20], 0
jmp 0x140382330
mov r8, rsi
call fcn.1403817e0
mov rax, rbx
add rsp, 0x48
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret