Function at 0x140260320
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov rbx, qword [rcx]
mov r12, qword [rcx + 8]
sub r12, rbx
movzx ecx, byte [0x140582000]
add cl, 0xc2
sar r12, cl
mov rax, qword [rsi + 0x10]
sub rax, rbx
sar rax, cl
inc r12
mov r13, rax
shr r13, 1
movabs rcx, 0x1fffffffffffffff
mov r9, rcx
sub r9, r13
add r13, rax
cmp r13, r12
cmovbe r13, r12
cmp rax, r9
cmova r13, rcx
mov rax, r13
shr rax, 0x3d
jne 0x1402604be
mov r15, r8
mov r14, rdx
movzx ecx, byte [0x140582000]
add cl, 0xc2
mov rax, r13
shl rax, cl
cmp r13, 0x1ff
jbe 0x14026041c
movabs rcx, 0x1ffffffffffffffc
cmp r13, rcx
jae 0x1402604be
add rax, 0x27
mov rcx, rax
mov edx, 0x2ef2559e
mov r8d, 0x26fad628
call fcn.1400aaaf0
movabs rcx, 0x207885491bd79abe
add rcx, qword [0x140582000]
movabs rdx, 0x59a157eca8754b28
mov r8, rcx
xor r8, rdx
and rcx, rdx
lea rcx, [r8 + rcx*2]
add rcx, rax
mov rdi, rcx
xor rdi, 0x1f
and rdi, rcx
mov qword [rdi - 8], rax
jmp 0x140260460
lea rcx, [fcn.140260320]
add ecx, ecx
add ecx, 0x1e0
mov edx, ecx
not edx
nop
test edx, ecx
je 0x140260441
mov r8d, dword [0x1405d199c]
cmp r8d, 0x4f
jge 0x140260430
test r13, r13
je 0x14026045e
mov rcx, rax
mov edx, 0x2ef2559e
mov r8d, 0x26fad628
call fcn.1400aaaf0
mov rdi, rax
jmp 0x140260460
xor edi, edi
mov rax, r14
sub rax, rbx
sar rax, 3
lea rbx, [rdi + rax*8]
mov rcx, qword [r15]
mov qword [rdi + rax*8], rcx
mov r15, qword [rsi + 8]
cmp r15, r14
je 0x1402604b1
lea r15, [rbx + 8]
mov rdx, qword [rsi]
mov rax, qword [0x1405d19a8]
add rax, rdx
mov r8, r14
sub r8, rax
mov rcx, rdi
call fcn.14046c800
mov r8, qword [rsi + 8]
sub r8, r14
mov rcx, r15
mov rdx, r14
call fcn.14046c800
jmp 0x14026052c
mov eax, dword [0x1405d199c]
cmp eax, 0x2f
jle 0x1402604c3
jmp 0x1402604f3
call fcn.140084710
mov rdx, qword [rsi]
mov r8, r15
sub r8, rdx
mov rcx, rdi
call fcn.14046c800
mov ecx, dword [0x1405d1998]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, 0x355a1663
add ecx, dword [0x140581ffc]
xor edx, edx
div ecx
test edx, edx
je 0x14026052c
mov rdx, qword [rsi]
mov rax, r15
mov ecx, edx
shl rax, cl
mov r8, r15
mov ecx, eax
shl r8, cl
shl r8, cl
mov ecx, r8d
sub ecx, eax
imul ecx, eax
mov rax, r8
shl rax, cl
sub rax, r8
mov ecx, eax
shl r8, cl
sub r8, rax
mov rcx, rdi
call fcn.14046c800
jmp 0x1402604c3
mov eax, 0x355a1661
nop word cs:[rax + rax]
mov rcx, qword [rsi]
mov edx, dword [0x1405d1998]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x140260572
mov ecx, dword [0x1405d1998]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x140581ffc]
add ecx, eax
cmp edx, ecx
jmp 0x140260540
test rcx, rcx
je 0x140260696
mov rdx, qword [rsi + 0x10]
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14026067c
mov rax, qword [rcx - 8]
mov r8, rcx
xor r8, 0xfffffffffffffff8
mov r9, rcx
not r9
movabs r10, 0x7ffffffffffffff8
and r10, r9
and ecx, 7
or rcx, r10
and r9d, 7
or r9, rcx
not r9
lea rcx, [r8 + r9*2]
sub rcx, rax
cmp rcx, 0x20
jae 0x1402605d7
mov ecx, dword [0x1405d199c]
cmp ecx, 0x45
jle 0x140260618
jmp 0x14026062c
xor eax, eax
test al, al
jne 0x1402605f0
mov eax, dword [0x1405d199c]
cmp eax, 0x2f
jl 0x140260613
nop dword [rax + rax]
mov eax, dword [0x1405d199c]
mov ecx, dword [0x140581ffc]
mov edx, ecx
xor edx, 0x355a169d
and ecx, 0x355a169d
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x1402605f0
jmp 0x1402605dd
call fcn.140424a4c
mov rcx, qword [0x1405d19a0]
mov r8d, dword [0x1405d199c]
cmp r8d, 0x50
jl 0x140260636
mov cl, 1
nop
test cl, cl
je 0x140260630
jmp 0x140260618
mov r8d, edx
not r8d
and r8d, 0x27
mov r9, rdx
and r9, 0xffffffffffffffd8
or r9, r8
and edx, 0x27
lea rdx, [r9 + rdx*2]
mov r8, rcx
not r8
mov r9, r8
and r9, rdx
mov r10, rcx
xor rcx, rdx
not rdx
and r10, rdx
or r10, r9
and rdx, r8
or rdx, rcx
not rdx
lea rdx, [r10 + rdx*2]
mov rcx, rax
mov r9d, dword [0x140581ffc]
lea r8d, [r9 - 0x7863f0]
add r9d, 0x11a33e6
call fcn.1400a8fb0
xor eax, eax
test al, al
je 0x1402606af
mov qword [rsi], rdi
lea rax, [rdi + r12*8]
mov qword [rsi + 8], rax
lea rax, [rdi + r13*8]
mov qword [rsi + 0x10], rax
mov qword [rsi], rdi
lea rax, [rdi + r12*8]
mov qword [rsi + 8], rax
lea rax, [rdi + r13*8]
mov qword [rsi + 0x10], rax
mov rax, rbx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret