Function at 0x1400316f0
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 0x1400317c1
test r15, r15
jle 0x140031841
movzx r9d, bpl
mov r8, r14
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140032100
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 0x140031795
mov rdx, rsi
mov rcx, rbx
call fcn.1400316f0
mov rbx, rdi
jmp 0x1400317ab
mov rdx, r14
mov rcx, rdi
call fcn.1400316f0
mov r14, rsi
mov qword [rsp + 0x88], rsi
mov rax, r14
sub rax, rbx
and rax, 0xfffffffffffffff8
cmp rax, 0x100
jg 0x140031731
cmp rbx, r14
je 0x140031a6c
lea rbp, [rbx + 8]
cmp rbp, r14
je 0x140031a6c
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 0x1400319f2
cmp rbx, rbp
je 0x140031839
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 0x140031820
mov rcx, rbx
jmp 0x140031a3e
mov r12, r14
sub r12, rbx
sar r12, 3
mov qword [rsp + 0x30], r12
mov r15, r12
sar r15, 1
test r15, r15
jle 0x140031974
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 0x1400318d8
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 0x1400318a0
cmp rsi, r13
jne 0x1400318f9
test r12b, 1
jne 0x1400318f9
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 0x14003193a
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 0x140031935
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 0x140031900
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 0x140031870
mov r14, qword [rsp + 0x88]
movzx ebp, byte [rsp + 0x98]
cmp r12, 2
jl 0x140031a6c
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.1400329a0
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 0x140031990
jmp 0x140031a6c
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 0x140031a3b
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 0x140031a10
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 0x1400317e0
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret