Function at 0x140001c10
Capabilities:
Encode data using xor

Disassembly:
push rsi
push r14
sub rsp, 0x28
mov rsi, rcx
mov r14, rdx
mov rcx, qword [rdx]
mov eax, dword [rcx]
test eax, eax
jne 0x140001c2b
xor cl, cl
jmp 0x140001c3b
cmp eax, 0xffffffff
je 0x140001c39
mov eax, 1
lock xadd dword [rcx], eax
mov cl, 1
mov rax, qword [rdx]
test cl, cl
je 0x140001c50
mov qword [rsi], rax
mov rax, rsi
add rsp, 0x28
pop r14
pop rsi
ret
mov r8d, dword [rax + 8]
xor r9d, r9d
lea edx, [r9 + 8]
lea ecx, [rdx + 0x40]
test r8d, r8d
jns 0x140001c7a
btr r8d, 0x1f
call qword [sym.imp.Qt5Core.dll_public:_static_struct_QArrayData____ptr64___cdecl_QArrayData::allocate_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___class_QFlags_enum_QArrayData::AllocationOption__]
mov qword [rsi], rax
or dword [rax + 8], 0x80000000
jmp 0x140001c87
movsxd r8, dword [rax + 4]
call qword [sym.imp.Qt5Core.dll_public:_static_struct_QArrayData____ptr64___cdecl_QArrayData::allocate_unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64___class_QFlags_enum_QArrayData::AllocationOption__]
mov qword [rsi], rax
mov r8, qword [rsi]
test dword [r8 + 8], 0x7fffffff
je 0x140001d93
mov r9, qword [r14]
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x20], r15
mov rdx, qword [r9 + 0x10]
movsxd rax, dword [r9 + 4]
mov r15, qword [r8 + 0x10]
add r15, r8
lea rdi, [rdx + r9]
lea rcx, [rax + rax*8]
lea rbp, [rdx + rcx*8]
add rbp, r9
cmp rdi, rbp
je 0x140001d7c
mov qword [rsp + 0x40], rbx
nop word [rax + rax]
mov rbx, r15
mov rdx, rdi
mov rcx, rbx
add r15, 0x48
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rdi + 8]
lea rcx, [rbx + 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
mov eax, dword [rbx + 0x10]
lea rdx, [rdi + 0x20]
xor eax, dword [rdi + 0x10]
and eax, 1
xor dword [rbx + 0x10], eax
mov ecx, dword [rbx + 0x10]
xor ecx, dword [rdi + 0x10]
and ecx, 2
xor dword [rbx + 0x10], ecx
lea rcx, [rbx + 0x20]
mov eax, dword [rdi + 0x14]
mov dword [rbx + 0x14], eax
mov eax, dword [rdi + 0x18]
mov dword [rbx + 0x18], eax
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rdi + 0x28]
lea rcx, [rbx + 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rdi + 0x30]
lea rcx, [rbx + 0x30]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rdi + 0x38]
lea rcx, [rbx + 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
movzx eax, byte [rdi + 0x40]
add rdi, 0x48
mov byte [rbx + 0x40], al
cmp rdi, rbp
jne 0x140001ce0
mov r9, qword [r14]
mov r8, qword [rsi]
mov rbx, qword [rsp + 0x40]
mov eax, dword [r9 + 4]
mov r15, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
mov dword [r8 + 4], eax
mov rax, rsi
add rsp, 0x28
pop r14
pop rsi
ret