Function at 0x180070820
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x40]
sub rsp, 0x140
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rbx, rcx
cmp byte [rcx + 0x1c], 0
jne 0x180070aac
mov byte [rcx + 0x1c], 1
mov r8d, dword [rcx + 0x18]
mov ecx, r8d
call fcn.180070ac0
movsxd rdi, eax
mov rax, qword [rbx]
cmp dword [rax + 4], edi
jle 0x1800708ea
mov edx, r8d
lea rcx, [rbp + 0x70]
call sym.Qt5Core.dll_public:_void___cdecl_QCryptographicHash::constructor_enum_QCryptographicHash::Algorithm____ptr64
nop
mov rdx, rbx
lea rcx, [rbp + 0x70]
call sym.Qt5Core.dll_public:_void___cdecl_QCryptographicHash::addData_class_QByteArray_const____ptr64____ptr64
lea rdx, [rbp + 0x78]
lea rcx, [rbp + 0x70]
call sym.Qt5Core.dll_public:_class_QByteArray___cdecl_QCryptographicHash::result_void____ptr64
mov rdx, qword [rbx]
mov qword [rbp + 0x80], rdx
mov rcx, qword [rax]
mov qword [rbx], rcx
mov qword [rax], rdx
mov rax, qword [rbp + 0x78]
mov ecx, dword [rax]
test ecx, ecx
je 0x1800708c2
cmp ecx, 0xffffffff
je 0x1800708d4
mov ecx, 0xffffffff
mov rax, qword [rbp + 0x78]
lock xadd dword [rax], ecx
cmp ecx, 1
jne 0x1800708d4
mov edx, 1
lea r8d, [rdx + 7]
mov rcx, qword [rbp + 0x78]
call sym.Qt5Core.dll_public:_static_void___cdecl_QArrayData::deallocate_struct_QArrayData____ptr64__unsigned_long_long_unsigned___int64___unsigned_long_long_unsigned___int64__
lea rcx, [rbp + 0x70]
call sym.Qt5Core.dll_public:_void___cdecl_QCryptographicHash::reset_void____ptr64
nop
lea rcx, [rbp + 0x70]
call sym.Qt5Core.dll_public:_void___cdecl_QCryptographicHash::destructor_void____ptr64
mov rax, qword [rbx]
movsxd rsi, dword [rax + 4]
cmp esi, edi
jge 0x180070940
mov edx, edi
mov rcx, rbx
call sym.Qt5Core.dll_public:_void___cdecl_QByteArray::resize_int____ptr64
mov rax, qword [rbx]
mov ecx, dword [rax]
mov rdx, qword [rbx]
cmp ecx, 1
ja 0x180070910
cmp qword [rdx + 0x10], 0x18
je 0x180070928
mov r8d, dword [rdx + 8]
shr r8d, 0x1f
mov edx, dword [rdx + 4]
inc edx
mov rcx, rbx
call sym.Qt5Core.dll_private:_void___cdecl_QByteArray::reallocData_unsigned_int__class_QFlags_enum_QArrayData::AllocationOption_____ptr64
mov rdx, qword [rbx]
mov eax, edi
sub eax, esi
movsxd r8, eax
mov rcx, qword [rdx + 0x10]
add rcx, rsi
add rcx, rdx
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov dword [rsp + 0x34], edi
cmp edi, 0x100
jle 0x180070976
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, rax
mov qword [rsp + 0x38], rax
test rax, rax
jne 0x18007096c
call sym.Qt5Core.dll_void___cdecl_qBadAlloc_void_
mov rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x30], eax
jmp 0x180070988
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x38], rdx
mov dword [rsp + 0x30], 0x100
mov rcx, qword [rbx]
mov r8, qword [rcx + 0x10]
add r8, rcx
xor r9d, r9d
test edi, edi
jle 0x180070a5f
cmp edi, 0x40
jb 0x180070a5f
lea eax, [rdi - 1]
movsxd rcx, eax
lea r10, [rcx + rdx]
lea rax, [rcx + r8]
cmp rdx, rax
ja 0x1800709c2
cmp r10, r8
jae 0x180070a5f
mov ecx, edi
and ecx, 0x8000003f
jge 0x1800709d3
dec ecx
or ecx, 0xffffffc0
inc ecx
mov eax, edi
sub eax, ecx
movsxd rsi, eax
movdqa xmm2, xmmword [str.6666666666666666_]
lea rdx, [r8 + 0x30]
lea r11, [r8 + 0x10]
mov rcx, qword [rsp + 0x38]
mov r14, rcx
mov r10, r8
sub r10, rcx
nop dword [rax + rax]
movdqu xmm0, xmmword [r10 + rcx]
pxor xmm0, xmm2
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [r11]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm0, xmmword [rdx - 0x10]
pxor xmm0, xmm2
movdqu xmmword [rcx + 0x20], xmm0
movdqu xmm0, xmmword [rdx]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add r9d, 0x40
add rcx, 0x40
lea r11, [r11 + 0x40]
lea rdx, [rdx + 0x40]
mov rax, rcx
sub rax, r14
cmp rax, rsi
jl 0x180070a00
mov rdx, qword [rsp + 0x38]
movsxd rax, r9d
cmp rax, rdi
jge 0x180070a88
nop word [rax + rax]
movzx ecx, byte [rax + r8]
xor cl, 0x36
mov byte [rdx + rax], cl
inc rax
mov rdx, qword [rsp + 0x38]
cmp rax, rdi
jl 0x180070a70
lea rcx, [rbx + 0x10]
mov r8d, dword [rsp + 0x34]
call sym.Qt5Core.dll_public:_void___cdecl_QCryptographicHash::addData_char_const____ptr64__int____ptr64
nop
lea rax, [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
cmp rcx, rax
je 0x180070aac
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add rsp, 0x140
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret