Function at 0x140392220
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov rbx, qword [rcx]
mov r15, qword [rcx + 8]
sub r15, rbx
sar r15, 5
inc r15
mov rcx, qword [rcx + 0x10]
sub rcx, rbx
sar rcx, 5
mov r10, rcx
shr r10, 1
movabs rax, 0x7ffffffffffffff
mov r9, rax
sub r9, r10
add r10, rcx
cmp r10, r15
cmovbe r10, r15
cmp rcx, r9
cmova r10, rax
mov rcx, r10
shr rcx, 0x3b
jne 0x140392479
mov r14, r8
mov rdi, rdx
mov rcx, r10
shl rcx, 5
add rcx, qword [0x140575e48]
cmp r10, 0x80
mov qword [rbp - 0x20], r10
jb 0x140392345
cmp r10, rax
jae 0x140392479
add rcx, 0x27
mov r9d, dword [0x14055f650]
lea edx, [r9 - 0x64eab41e]
lea r8d, [r9 - 0x3b90a0c9]
add r9d, 0x762d46f0
call fcn.1400aaae0
mov rcx, rax
not rcx
movabs rdx, 0x7fffffffffffffd8
and rdx, rcx
and ecx, 0x27
mov r8, rax
and r8, 0xffffffffffffffd8
or r8, rcx
mov rcx, rax
xor rcx, 0x27
or rdx, rcx
not rdx
lea rcx, [r8 + rdx*2]
mov rdx, rcx
xor rdx, 0xffffffffffffffe0
mov r10, rcx
or r10, 0xffffffffffffffe0
mov r8d, r10d
not r8d
mov r9d, ecx
and r9d, r8d
not ecx
and ecx, r8d
and r10, rdx
or r10, rcx
or r10, r9
not r10
mov qword [r10 - 8], rax
jmp 0x140392368
test r10, r10
je 0x140392365
mov edx, 0x236129ad
mov r8d, 0x4cbb3d02
mov r9d, 0xfe7924bb
call fcn.1400aaae0
mov r10, rax
jmp 0x140392368
xor r10d, r10d
mov rax, rdi
sub rax, rbx
sar rax, 5
shl rax, 5
xorps xmm0, xmm0
movups xmmword [r10 + rax + 0x10], xmm0
mov r12, qword [r14 + 0x10]
cmp qword [r14 + 0x18], 0x10
jb 0x14039238d
mov r14, qword [r14]
lea rbx, [r10 + rax]
cmp r12, 0xf
mov qword [rbp - 0x18], rsi
mov qword [rbp - 8], r10
mov qword [rbp - 0x38], rax
ja 0x1403923b2
movups xmm0, xmmword [r14]
movups xmmword [rbx], xmm0
mov r13d, 0xf
jmp 0x140392425
add rax, r10
add rax, 0x20
mov qword [rbp - 0x10], rax
mov rax, r12
xor rax, 0xfffffffffffffff0
and rax, r12
mov r13, r12
xor r13, 0xf
or r13, rax
movabs rax, 0x7fffffffffffffff
cmp r13, rax
cmovae r13, rax
cmp r13, 0xfff
jb 0x140392405
lea rcx, [r13 + 0x28]
call fcn.1403f542c
mov rcx, rax
add rcx, 0x27
and rcx, 0xffffffffffffffe0
mov qword [rcx - 8], rax
jmp 0x140392411
lea rcx, [r13 + 1]
call fcn.1403f542c
mov rcx, rax
mov qword [rbx], rcx
lea r8, [r12 + 1]
mov rdx, r14
call fcn.14041d3c0
mov rsi, qword [rbp - 0x18]
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r13
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
cmp rcx, rdi
sete dl
or dl, byte [0x1405766c4]
mov r8d, dword [0x140578ea8]
lea r9d, [r8 - 1]
imul r9d, r8d
and r9d, 1
mov r8d, dword [0x14055f650]
mov r10d, r8d
xor r10d, 0x84bddca
and r10d, r8d
xor r8d, 0x77b42235
lea r8d, [r8 + r10*2]
cmp r9d, r8d
jne 0x1403924a0
jmp 0x14039247e
call fcn.140085ac0
movsxd r11, dword [0x14045fa34]
mov r8d, dword [0x140578ea8]
lea r9d, [r8 - 1]
imul r9d, r8d
test r9b, 1
je 0x1403924b6
nop word [rax + rax]
mov r8d, dword [0x14045fa34]
mov r8d, dword [0x140578eac]
cmp r8d, 0x1c
jge 0x1403924a0
jmp 0x14039247e
mov r10d, dword [0x14045fa10]
test dl, 1
je 0x140392534
cmp rax, rcx
mov r9, qword [rbp - 0x20]
mov rdx, qword [rbp - 8]
je 0x1403927eb
lea r11, [rdx + 0x10]
xor r8d, r8d
xorps xmm0, xmm0
nop dword [rax]
movups xmmword [r11 + r8], xmm0
movups xmm1, xmmword [rax + r8]
movups xmm2, xmmword [rax + r8 + 0x10]
movups xmmword [r11 + r8 - 0x10], xmm1
movups xmmword [r11 + r8], xmm2
mov qword [rax + r8 + 0x10], 0
mov qword [rax + r8 + 0x18], 0xf
movzx r10d, byte [0x14055f654]
add r10b, 0x89
mov byte [rax + r8], r10b
lea r10, [rax + r8]
add r10, 0x20
cmp r10, rcx
je 0x1403927eb
add r8, 0x20
jmp 0x1403924e0
mov qword [rbp - 0x30], rbx
mov ecx, dword [0x14055e850]
lea edx, [rcx + 1]
mov dword [0x14055e850], edx
xor ecx, edx
not ecx
mov r9d, 0x77b42235
add r9d, dword [0x14055f650]
and ecx, edx
xor edx, edx
mov r8d, 0
mov dword [rbp - 0x24], r9d
cmp ecx, r9d
jne 0x140392634
xor r14d, r14d
mov edx, 0
mov r8d, 0
test r10d, r10d
jle 0x140392634
movabs rdx, 0xe0b5e877f50726ab
add r11, rdx
lea rdx, [0x14045fa34]
mov r8, r11
xor r8, rdx
and r11, rdx
lea rdx, [r8 + r11*2]
movabs r11, 0x1f4a17880af8d955
add r11, rdx
xor ebx, ebx
xor r9d, r9d
nop dword [rax]
movsxd r14, r14d
mov rdx, qword [r11 + r14]
mov r8, qword [r11 + r14 + 8]
mov r13, r9
not r13
mov r12, rbx
not r12
and r12, rdx
not rdx
and r13, r8
not r8
and rdx, rbx
and r8, r9
mov r9, r13
not r9
mov rbx, r12
not rbx
or r13, r8
not r8
and r8, r9
or r12, rdx
not rdx
and rdx, rbx
or r8, r13
or rdx, r12
not rdx
not r8
or r8, r13
or rdx, r12
mov r9d, r14d
xor r9d, 0x10
and r14d, 0x10
lea r14d, [r9 + r14*2]
mov rbx, rdx
mov r9, r8
cmp r14d, r10d
jl 0x1403925c0
cmp rax, rdi
je 0x1403926a0
mov r9, qword [rbp - 8]
add r9, 0x10
xor r10d, r10d
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [r9 + r10], xmm0
movups xmm1, xmmword [rax + r10]
movups xmm2, xmmword [rax + r10 + 0x10]
movups xmmword [r9 + r10 - 0x10], xmm1
movups xmmword [r9 + r10], xmm2
mov qword [rax + r10 + 0x10], 0
mov qword [rax + r10 + 0x18], 0xf
movzx r11d, byte [0x14055f654]
add r11b, 0x89
mov byte [rax + r10], r11b
lea r11, [rax + r10]
add r11, 0x20
cmp r11, rdi
je 0x1403926a0
add r10, 0x20
jmp 0x140392650
mov qword [rbp - 0x10], r15
mov rax, qword [rsi + 8]
xor r10d, r10d
cmp ecx, dword [rbp - 0x24]
setne r10b
mov r9, qword [0x14045fa20]
mov r11, qword [0x14045fa18]
xor ecx, ecx
add r10, 0xffffffffffffffff
adc rcx, 0xffffffffffffffff
mov r12, rcx
not r12
mov r14, r10
not r14
nop word cs:[rax + rax]
mov r13, r11
sub r13, rdx
mov rbx, r9
sbb rbx, r8
mov esi, dword [0x140578ea8]
mov r15d, 1
sub r15d, esi
imul r15d, esi
test r15b, 1
je 0x140392710
mov esi, dword [0x140578eac]
cmp esi, 0x1d
jmp 0x1403926e0
mov rdx, rbx
not rdx
and rdx, r12
mov r8, r13
not r8
and r8, r14
xor r10, r13
xor r10, r8
xor rcx, rbx
xor rcx, rdx
not r10
not rcx
or rcx, r10
add rcx, qword [0x140575e48]
movabs rdx, 0xb45e9482cc4b324c
add rdx, rcx
movabs rcx, 0x4ba16b7d33b4cdb4
mov r8, rdx
xor r8, rcx
and rdx, rcx
lea rcx, [r8 + rdx*2]
mov qword [0x140575e48], rcx
cmp rax, rdi
mov rsi, qword [rbp - 0x18]
mov r15, qword [rbp - 0x10]
mov r9, qword [rbp - 0x20]
mov rdx, qword [rbp - 8]
mov rbx, qword [rbp - 0x30]
je 0x1403927eb
mov rcx, qword [rbp - 0x38]
add rcx, rdx
add rcx, 0x30
xor r11d, r11d
xorps xmm0, xmm0
movabs r8, 0x94560660fb01e54e
nop dword [rax]
movups xmmword [rcx + r11], xmm0
movups xmm1, xmmword [rdi + r11]
movups xmm2, xmmword [rdi + r11 + 0x10]
movups xmmword [rcx + r11 - 0x10], xmm1
movups xmmword [rcx + r11], xmm2
mov r10, qword [0x14055f648]
add r10, r8
mov qword [rdi + r11 + 0x10], r10
mov qword [rdi + r11 + 0x18], 0xf
mov byte [rdi + r11], 0
lea r10, [rdi + r11]
add r10, 0x20
cmp r10, rax
je 0x1403927eb
add r11, 0x20
jmp 0x1403927a0
mov rcx, rsi
mov r8, r15
call fcn.140391ff0
mov rax, rbx
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret