Function at 0x1400316c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov byte [rsp + 0x20], r9b
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
movzx ebp, r9b
mov r15, r8
mov r14, rdx
mov rbx, rcx
mov rax, rdx
sub rax, rcx
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jle 0x140031791
test r15, r15
jle 0x140031811
movzx r9d, bpl
mov r8, r14
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.1400320d0
mov rcx, r15
sar rcx, 2
sar r15, 1
add r15, rcx
mov rcx, r14
mov rdi, qword [rsp + 0x38]
sub rcx, rdi
and rcx, 0xfffffffffffffff8
mov rsi, qword [rsp + 0x30]
mov rax, rsi
sub rax, rbx
and rax, 0xfffffffffffffff8
movzx r9d, bpl
mov r8, r15
cmp rax, rcx
jge 0x140031765
mov rdx, rsi
mov rcx, rbx
call fcn.1400316c0
mov rbx, rdi
jmp 0x14003177b
mov rdx, r14
mov rcx, rdi
call fcn.1400316c0
mov r14, rsi
mov qword [rsp + 0x88], rsi
mov rax, r14
sub rax, rbx
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x140031701
cmp rbx, r14
je 0x140031a3c
lea rbp, [rbx + 8]
cmp rbp, r14
je 0x140031a3c
mov r15, rbx
nop word [rax + rax]
mov rsi, rbp
mov rdx, rbp
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::constructor_class_QPersistentModelIndex____ptr64____ptr64]
nop
mov rdx, rbx
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
test al, al
je 0x1400319c2
cmp rbx, rbp
je 0x140031809
mov rdi, rbp
lea rsi, [r15 + 0x10]
nop word [rax + rax]
add rdi, 0xfffffffffffffff8
add rsi, 0xfffffffffffffff8
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
cmp rdi, rbx
jne 0x1400317f0
mov rcx, rbx
jmp 0x140031a0e
mov r12, r14
sub r12, rbx
sar r12, 3
mov qword [rsp + 0x30], r12
mov r15, r12
sar r15, 1
test r15, r15
jle 0x140031944
lea r13, [r12 - 1]
sar r13, 1
lea rbp, [rbx + r15*8]
lea r14, [r12 - 1]
dec r15
sub rbp, 8
mov rdx, rbp
lea rcx, [rsp + 0x80]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::constructor_class_QPersistentModelIndex____ptr64____ptr64]
nop
mov rsi, r15
mov rdi, r15
cmp r15, r13
jge 0x1400318a8
nop dword [rax]
nop dword [rax + rax]
add rdi, rdi
lea rcx, [rdi + 2]
lea rcx, [rbx + rcx*8]
lea rdx, [rcx - 8]
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
movzx eax, al
xor rax, 1
inc rax
add rdi, rax
lea rcx, [rbx + rsi*8]
lea rdx, [rbx + rdi*8]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rsi, rdi
cmp rdi, r13
jl 0x140031870
cmp rsi, r13
jne 0x1400318c9
test r12b, 1
jne 0x1400318c9
lea rcx, [rbx + rsi*8]
lea rdx, [r12 - 1]
lea rdx, [rbx + rdx*8]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rsi, r14
cmp r15, rsi
jge 0x14003190a
nop
lea rdi, [rsi - 1]
sar rdi, 1
lea r12, [rbx + rdi*8]
lea rdx, [rsp + 0x80]
mov rcx, r12
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
test al, al
je 0x140031905
lea rcx, [rbx + rsi*8]
mov rdx, r12
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rsi, rdi
cmp r15, rdi
jl 0x1400318d0
mov r12, qword [rsp + 0x30]
lea rcx, [rbx + rsi*8]
lea rdx, [rsp + 0x80]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
nop
lea rcx, [rsp + 0x80]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::destructor_void____ptr64]
test r15, r15
jg 0x140031840
mov r14, qword [rsp + 0x88]
movzx ebp, byte [rsp + 0x98]
cmp r12, 2
jl 0x140031a3c
add r14, 0xfffffffffffffff8
mov edi, 8
sub rdi, rbx
nop word [rax + rax]
mov rdx, r14
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::constructor_class_QPersistentModelIndex____ptr64____ptr64]
nop
mov rdx, rbx
mov rcx, r14
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov r8, r14
sub r8, rbx
sar r8, 3
mov byte [rsp + 0x20], bpl
lea r9, [rsp + 0x88]
xor edx, edx
mov rcx, rbx
call fcn.140032970
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::destructor_void____ptr64]
sub r14, 8
lea rax, [rdi + r14]
and rax, 0xfffffffffffffff8
cmp rax, 0x10
jge 0x140031960
jmp 0x140031a3c
mov rdi, r15
mov rdx, r15
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
test al, al
je 0x140031a0b
mov r13, r15
nop dword [rax]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
mov rsi, rdi
lea rdi, [r13 - 8]
mov r13, rdi
mov rdx, rdi
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_bool___cdecl_QPersistentModelIndex::operator__class_QPersistentModelIndex_const____ptr64_const___ptr64]
test al, al
jne 0x1400319e0
mov rcx, rsi
lea rdx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_class_QPersistentModelIndex____ptr64___cdecl_QPersistentModelIndex::operator_class_QPersistentModelIndex____ptr64____ptr64]
nop
lea rcx, [rsp + 0x88]
call qword [sym.imp.Qt6Core.dll_public:_void___cdecl_QPersistentModelIndex::destructor_void____ptr64]
add rbp, 8
add r15, 8
cmp rbp, r14
jne 0x1400317b0
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret