Function at 0x1800dfa10
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
lea rbp, [rsp - 0x1f]
sub rsp, 0x88
mov r14, rcx
mov rsi, r8
mov ecx, edx
mov edi, edx
call qword [sym.imp.Qt5Core.dll_public:_static_int___cdecl_QCryptographicHash::hashLength_enum_QCryptographicHash::Algorithm_]
mov r12, qword [rbp + 0x7f]
movsxd rbx, eax
mov eax, 0xfffffffe
imul rbx, rax
cmp r12, rbx
jbe 0x1800dfb30
xor r9d, r9d
lea rcx, [rbp - 9]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageLogger::constructor_char_const____ptr64__int__char_const____ptr64____ptr64]
mov rcx, rax
lea rdx, [rbp - 0x31]
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug___cdecl_QMessageLogger::warning_void____ptr64]
lea rdx, str.Derived_key_too_long:_n
mov rcx, qword [rax]
mov byte [rcx + 0x20], 0
mov rcx, rax
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___char_const____ptr64____ptr64]
mov r8d, edi
lea rdx, [rbp + 0x7f]
lea rcx, [rbp - 0x29]
mov rax, qword [rax]
mov qword [rbp + 0x7f], rax
inc dword [rax + 0x18]
lea rax, str.Algorithm
mov r9, qword [sym.imp.Qt5Core.dll_struct_QMetaObject_const_QCryptographicHash::staticMetaObject]
mov qword [rsp + 0x20], rax
call qword [sym.imp.Qt5Core.dll_class_QDebug___cdecl_qt_QMetaEnum_debugOperator_class_QDebug____ptr64__int__struct_QMetaObject_const____ptr64__char_const____ptr64_]
lea rcx, [rbp + 0x7f]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QDebug::destructor_void____ptr64]
lea rdx, str._was_chosen_which_produces_output_of_length
lea rcx, [rbp - 0x29]
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___char_const____ptr64____ptr64]
mov rcx, rax
mov rdx, rbx
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov rcx, rax
lea rdx, str._but
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___char_const____ptr64____ptr64]
mov rcx, rax
mov rdx, r12
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___unsigned_long_long_unsigned___int64_____ptr64]
mov rcx, rax
lea rdx, str._was_requested.
call qword [sym.imp.Qt5Core.dll_public:_class_QDebug____ptr64___cdecl_QDebug::operator___char_const____ptr64____ptr64]
lea rcx, [rbp - 0x29]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QDebug::destructor_void____ptr64]
lea rcx, [rbp - 0x31]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QDebug::destructor_void____ptr64]
mov rcx, r14
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
jmp 0x1800dfdfb
mov qword [rsp + 0xc8], r13
mov r13d, dword [rbp + 0x77]
cmp r13d, 1
jl 0x1800dfdea
cmp r12, 1
jb 0x1800dfdea
lea rcx, [rbp - 0x21]
mov qword [rsp + 0x80], r15
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
mov r8, rsi
lea rcx, [rbp - 0x39]
mov edx, edi
mov r15d, 1
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::constructor_enum_QCryptographicHash::Algorithm__class_QByteArray_const____ptr64____ptr64]
xor r8d, r8d
lea edx, [r15 + 3]
lea rcx, [rbp - 0x19]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_int__enum_Qt::Initialization____ptr64]
lea rcx, [rbp - 0x21]
call qword [sym.imp.Qt5Core.dll_public:_int___cdecl_QByteArray::length_void_const___ptr64]
movsxd rcx, eax
cmp rcx, r12
jae 0x1800dfdb2
nop
mov rdx, qword [rbp + 0x6f]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::addData_class_QByteArray_const____ptr64____ptr64]
lea rcx, [rbp - 0x19]
call qword [sym.imp.Qt5Core.dll_public:_char____ptr64___cdecl_QByteArray::data_void____ptr64]
mov ecx, r15d
lea rdx, [rbp - 0x19]
bswap ecx
mov dword [rax], ecx
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::addData_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QMessageAuthenticationCode::result_void____ptr64]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::reset_void____ptr64]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x31]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
cmp r13d, 1
jle 0x1800dfd73
lea r14d, [r13 - 1]
xor r12d, r12d
nop dword [rax]
nop dword [rax + rax]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::addData_class_QByteArray_const____ptr64____ptr64]
lea rdx, [rbp - 0x11]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QMessageAuthenticationCode::result_void____ptr64]
mov rdx, rax
lea rcx, [rbp - 0x29]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::operator_class_QByteArray____ptr64____ptr64]
lea rcx, [rbp - 0x11]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::reset_void____ptr64]
lea rcx, [rbp - 0x31]
call qword [sym.imp.Qt5Core.dll_public:_char____ptr64___cdecl_QByteArray::begin_void____ptr64]
lea rcx, [rbp - 0x29]
mov rbx, rax
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::cbegin_void_const___ptr64]
lea rcx, [rbp - 0x31]
mov rsi, rax
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::cend_void_const___ptr64]
lea rcx, [rbp - 0x31]
mov rdi, rax
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::cbegin_void_const___ptr64]
mov r8, rdi
mov rdx, r12
sub r8, rax
mov rcx, rax
cmp rax, rdi
cmova r8, r12
test r8, r8
je 0x1800dfd65
cmp r8, 0x40
jb 0x1800dfd3e
lea r9, [rbx - 1]
lea rax, [rsi - 1]
add r9, r8
add rax, r8
cmp rbx, rax
ja 0x1800dfcc0
cmp r9, rsi
jae 0x1800dfd3e
lea rax, [rcx - 1]
add rax, r8
cmp rbx, rax
ja 0x1800dfcd1
cmp r9, rcx
jae 0x1800dfd3e
mov rax, r8
and rax, 0xffffffffffffffc0
nop dword [rax + rax]
movdqu xmm0, xmmword [rsi]
add rdx, 0x40
movdqu xmm1, xmmword [rcx]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x10]
movdqu xmmword [rbx], xmm1
movdqu xmm1, xmmword [rcx + 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x20]
movdqu xmmword [rbx + 0x10], xmm1
movdqu xmm1, xmmword [rcx + 0x20]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rsi + 0x30]
add rsi, 0x40
movdqu xmmword [rbx + 0x20], xmm1
movdqu xmm1, xmmword [rcx + 0x30]
add rcx, 0x40
pxor xmm1, xmm0
movdqu xmmword [rbx + 0x30], xmm1
add rbx, 0x40
cmp rdx, rax
jne 0x1800dfce0
cmp rdx, r8
je 0x1800dfd65
sub rcx, rbx
sub rsi, rbx
nop dword [rax]
movzx eax, byte [rcx + rbx]
inc rdx
xor al, byte [rsi + rbx]
mov byte [rbx], al
lea rbx, [rbx + 1]
cmp rdx, r8
jne 0x1800dfd50
sub r14, 1
jne 0x1800dfc10
mov r12, qword [rbp + 0x7f]
lea rdx, [rbp - 0x31]
lea rcx, [rbp - 0x21]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::operator_class_QByteArray_const____ptr64____ptr64]
lea rcx, [rbp - 0x31]
inc r15d
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
lea rcx, [rbp - 0x29]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
lea rcx, [rbp - 0x21]
call qword [sym.imp.Qt5Core.dll_public:_int___cdecl_QByteArray::length_void_const___ptr64]
movsxd rcx, eax
cmp rcx, r12
jb 0x1800dfba0
mov r14, qword [rbp + 0x57]
mov r8d, r12d
lea rcx, [rbp - 0x21]
mov rdx, r14
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::left_int____ptr64]
lea rcx, [rbp - 0x19]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
lea rcx, [rbp - 0x39]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QMessageAuthenticationCode::destructor_void____ptr64]
lea rcx, [rbp - 0x21]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov r15, qword [rsp + 0x80]
jmp 0x1800dfdf3
mov rcx, r14
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
mov r13, qword [rsp + 0xc8]
mov rax, r14
add rsp, 0x88
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret