Function at 0x18002c7b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov r12, r9
mov r15, r8
mov r13, rdx
mov r14, rcx
xor esi, esi
mov edi, esi
mov dword [rbp - 0x40], esi
mov rbx, qword [rbp + 0x60]
cmp dword [rcx + 0x1c], 1
jl 0x18002c80f
mov rax, qword [rbx]
mov ecx, dword [rax + 4]
test ecx, ecx
je 0x18002c7fe
cmp ecx, dword [r14 + 0x14]
je 0x18002c80f
mov rcx, r13
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
mov rax, r13
jmp 0x18002cd71
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
nop
mov r8, r12
lea rdx, [rbp - 0x30]
mov rcx, r14
call sym.OnePiece.dll_public:_class_QByteArray___cdecl_AESCodec::expandKey_class_QByteArray_const____ptr64____ptr64
nop
mov ecx, dword [r14 + 0x1c]
test ecx, ecx
je 0x18002cce2
sub ecx, 1
je 0x18002cb51
sub ecx, 1
je 0x18002c999
cmp ecx, 1
jne 0x18002cd49
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
nop
mov r9, rbx
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x48]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::cipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rax
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r14 + 0x14]
mov ebx, ecx
mov rax, qword [r15]
cmp ecx, dword [rax + 4]
jge 0x18002c8f7
nop word [rax + rax]
mov r8d, ecx
lea rdx, [rbp - 0x50]
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::right_int____ptr64]
nop
mov r9, rax
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x48]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::cipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rax
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r14 + 0x14]
add ebx, ecx
mov rax, qword [r15]
cmp ebx, dword [rax + 4]
jl 0x18002c8a0
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov rbx, rax
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov rdi, rax
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
mov dword [rbp - 0x40], 8
mov rcx, qword [rbp + 0x40]
mov r8d, dword [rcx + 4]
mov rcx, qword [r15]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002c970
sub rdi, rbx
nop dword [rax]
movzx r8d, byte [rdi + rbx]
xor r8b, byte [rbx]
mov edx, esi
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::insert_int__char____ptr64]
inc esi
lea rbx, [rbx + 1]
mov rax, qword [rbp + 0x40]
mov edx, dword [rax + 4]
mov rax, qword [r15]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp esi, ecx
jl 0x18002c940
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
jmp 0x18002cd49
mov r9, rbx
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x20]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::cipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
mov r13, rax
mov r9d, dword [r14 + 0x14]
xor r8d, r8d
lea rdx, [rbp - 0x28]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
mov qword [rbp - 0x48], rax
mov rcx, rax
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov rbx, rax
mov rcx, r13
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov r12, rax
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
mov dword [rbp - 0x40], 4
mov edi, esi
mov rcx, qword [r13]
mov r8d, dword [rcx + 4]
mov rcx, qword [rbp - 0x48]
mov rcx, qword [rcx]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002ca54
sub r12, rbx
mov r14, qword [rbp - 0x48]
nop word [rax + rax]
movzx r8d, byte [r12 + rbx]
xor r8b, byte [rbx]
mov edx, edi
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::insert_int__char____ptr64]
inc edi
lea rbx, [rbx + 1]
mov rax, qword [r13]
mov edx, dword [rax + 4]
mov rax, qword [r14]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp edi, ecx
jl 0x18002ca20
mov r14, qword [rbp + 0x40]
lea rdx, [rbp - 0x50]
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x20]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rdx, qword [r15]
cmp dword [rdx + 4], 0
jle 0x18002cd49
mov r8d, dword [r14 + 0x14]
nop dword [rax]
nop dword [rax + rax]
lea eax, [r8 + rsi]
cmp eax, dword [rdx + 4]
jge 0x18002cb40
mov r9d, r8d
mov r8d, esi
lea rdx, [rbp - 0x48]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
nop
mov r9, rax
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x28]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::cipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
mov rbx, rax
mov r9d, dword [r14 + 0x14]
lea r8d, [r9 + rsi]
lea rdx, [rbp - 0x20]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
nop
mov r9, rbx
mov r8, rax
lea rdx, [rbp + 0x40]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::byteXor_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x20]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov r8d, dword [r14 + 0x14]
mov rdx, qword [r15]
add esi, r8d
cmp esi, dword [rdx + 4]
jl 0x18002caa0
jmp 0x18002cd49
mov rdx, rbx
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
nop
mov ebx, esi
mov dword [rbp + 0x40], ebx
mov rax, qword [r15]
cmp dword [rax + 4], ebx
jle 0x18002ccd6
mov ecx, dword [r14 + 0x14]
nop dword [rax]
nop dword [rax + rax]
mov r9d, ecx
mov r8d, ebx
lea rdx, [rbp - 0x28]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
nop
mov r9, rax
lea r8, [rbp - 0x30]
lea rdx, [rbp - 0x20]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::invCipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x20]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov r9d, dword [r14 + 0x14]
mov r8d, ebx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
mov r13, rax
mov rcx, rax
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov rbx, rax
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov r12, rax
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
or edi, 2
mov dword [rbp - 0x40], edi
mov edi, esi
mov rcx, qword [rbp - 0x50]
mov r8d, dword [rcx + 4]
mov rcx, qword [r13]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002cc61
sub r12, rbx
nop dword [rax + rax]
movzx r8d, byte [r12 + rbx]
xor r8b, byte [rbx]
mov edx, edi
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::insert_int__char____ptr64]
inc edi
lea rbx, [rbx + 1]
mov rax, qword [rbp - 0x50]
mov edx, dword [rax + 4]
mov rax, qword [r13]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp edi, ecx
jl 0x18002cc30
lea r9, [rbp - 0x48]
mov r8d, dword [r14 + 0x14]
mov ebx, dword [rbp + 0x40]
mov edx, ebx
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::replace_int__int__class_QByteArray_const____ptr64____ptr64]
mov edi, dword [rbp - 0x40]
and edi, 0xfffffffd
mov dword [rbp - 0x40], edi
lea rcx, [rbp - 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x10]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov r9d, dword [r14 + 0x14]
mov r8d, ebx
lea rdx, [rbp - 0x18]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
mov rdx, rax
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::operator_class_QByteArray____ptr64____ptr64]
lea rcx, [rbp - 0x18]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r14 + 0x14]
add ebx, ecx
mov dword [rbp + 0x40], ebx
mov rax, qword [r15]
cmp ebx, dword [rax + 4]
jl 0x18002cb80
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
jmp 0x18002cd49
mov rax, qword [r15]
cmp dword [rax + 4], 0
jle 0x18002cd49
mov ecx, dword [r14 + 0x14]
nop
mov r9d, ecx
mov r8d, esi
lea rdx, [rbp - 0x18]
mov rcx, r15
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
nop
mov r9, rax
lea r8, [rbp - 0x30]
lea rdx, [rbp + 0x40]
mov rcx, r14
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::invCipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x18]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r14 + 0x14]
add esi, ecx
mov rax, qword [r15]
cmp esi, dword [rax + 4]
jl 0x18002ccf0
lea rdx, [rbp - 0x38]
mov rcx, qword [rbp + 0x48]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray____ptr64____ptr64]
nop
lea rcx, [rbp - 0x30]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rax, qword [rbp + 0x48]
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret