Function at 0x18002cd90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rdi, r8
mov r12, rdx
mov r15, rcx
xor esi, esi
mov dword [rbp - 0x48], esi
mov rbx, qword [rbp + 0x60]
cmp dword [rcx + 0x1c], 1
jl 0x18002cde2
mov rax, qword [rbx]
mov ecx, dword [rax + 4]
test ecx, ecx
je 0x18002cdd4
cmp ecx, dword [r15 + 0x14]
je 0x18002cde2
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
jmp 0x18002d489
mov r8, r9
lea rdx, [rbp - 0x30]
mov rcx, r15
call sym.OnePiece.dll_public:_class_QByteArray___cdecl_AESCodec::expandKey_class_QByteArray_const____ptr64____ptr64
nop
mov rdx, rdi
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
nop
mov r9d, dword [r15 + 0x14]
mov rax, qword [rdi]
mov eax, dword [rax + 4]
cdq
idiv r9d
mov eax, r9d
sub eax, edx
cdq
idiv r9d
mov ecx, dword [r15 + 0x30]
test ecx, ecx
je 0x18002ce87
sub ecx, 1
je 0x18002ce78
cmp ecx, 1
jne 0x18002ce87
mov r14d, esi
or r14d, 2
test edx, edx
jle 0x18002ce6c
dec edx
xor r8d, r8d
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_int__char____ptr64]
nop
mov dl, pe_nt_image_headers64
mov rcx, rax
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::prepend_char____ptr64]
mov rdx, rax
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray_const____ptr64____ptr64]
mov dword [rbp - 0x48], r14d
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
jmp 0x18002ce9e
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
jmp 0x18002ce9a
test edx, edx
cmovne r9d, edx
movzx r8d, r9b
mov edx, r9d
jmp 0x18002ce8a
xor r8d, r8d
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_int__char____ptr64]
mov r14d, 2
mov dword [rbp - 0x48], r14d
lea rdx, [rbp + 0x40]
lea rcx, [rbp - 0x50]
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]
mov ecx, dword [r15 + 0x1c]
test ecx, ecx
je 0x18002d3db
sub ecx, 1
je 0x18002d224
sub ecx, 1
je 0x18002d04d
cmp ecx, 1
je 0x18002cee8
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
jmp 0x18002d474
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
nop
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 - 0x38]
mov rcx, r15
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 - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r15 + 0x14]
mov ebx, ecx
mov rax, qword [rbp - 0x50]
cmp ecx, dword [rax + 4]
jge 0x18002cf98
nop dword [rax]
mov r8d, ecx
lea rdx, [rbp - 0x40]
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 - 0x38]
mov rcx, r15
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 - 0x38]
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]
mov ecx, dword [r15 + 0x14]
add ebx, ecx
mov rax, qword [rbp - 0x50]
cmp ebx, dword [rax + 4]
jl 0x18002cf40
lea rcx, [rbp - 0x50]
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 - 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
or r14d, 0x10
mov dword [rbp - 0x48], r14d
mov rcx, qword [rbp + 0x40]
mov r8d, dword [rcx + 4]
mov rcx, qword [rbp - 0x50]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002d012
sub rdi, rbx
movzx r8d, byte [rdi + rbx]
xor r8b, byte [rbx]
mov edx, esi
lea rcx, [rbp - 0x40]
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 [rbp - 0x50]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp esi, ecx
jl 0x18002cfe1
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x28]
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]
lea rdx, [rbp - 0x28]
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray____ptr64____ptr64]
nop
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x28]
jmp 0x18002d46d
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 - 0x18]
mov rcx, r15
call sym.OnePiece.dll_private:_class_QByteArray___cdecl_AESCodec::cipher_class_QByteArray_const____ptr64__class_QByteArray_const____ptr64____ptr64
mov rdi, rax
mov qword [rbp - 0x28], rax
mov r8d, dword [r15 + 0x14]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::left_int____ptr64]
mov qword [rbp - 0x38], 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, rdi
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov r13, rax
lea rcx, [rbp - 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
or r14d, 8
mov dword [rbp - 0x48], r14d
mov edi, esi
mov r14, qword [rbp - 0x28]
mov rcx, qword [r14]
mov r8d, dword [rcx + 4]
mov rcx, qword [rbp - 0x38]
mov rcx, qword [rcx]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002d114
sub r13, rbx
mov r12, qword [rbp - 0x38]
nop dword [rax + rax]
movzx r8d, byte [rbx + r13]
xor r8b, byte [rbx]
mov edx, edi
lea rcx, [rbp - 0x40]
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 [r14]
mov edx, dword [rax + 4]
mov rax, qword [r12]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp edi, ecx
jl 0x18002d0e0
mov r12, qword [rbp + 0x48]
lea rdx, [rbp - 0x40]
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 - 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 - 0x18]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rax, qword [rbp - 0x50]
mov r8d, dword [rax + 4]
test r8d, r8d
jle 0x18002d211
mov edx, dword [r15 + 0x14]
nop dword [rax + rax]
lea ecx, [rdx + rsi]
cmp ecx, r8d
jge 0x18002d202
mov r9d, edx
mov r8d, esi
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x40]
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 - 0x38]
mov rcx, r15
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 [r15 + 0x14]
lea r8d, [r9 + rsi]
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x50]
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 - 0x18]
mov rcx, r15
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 + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::append_class_QByteArray_const____ptr64____ptr64]
nop
lea rcx, [rbp - 0x18]
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 - 0x38]
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]
mov edx, dword [r15 + 0x14]
mov rax, qword [rbp - 0x50]
add esi, edx
mov r8d, dword [rax + 4]
cmp esi, r8d
jl 0x18002d160
lea rdx, [rbp + 0x40]
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray____ptr64____ptr64]
nop
jmp 0x18002d469
lea rcx, [rbp - 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
nop
mov rdx, rbx
lea rcx, [rbp - 0x28]
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 [rbp - 0x50]
cmp dword [rax + 4], ebx
jle 0x18002d3b9
mov ecx, dword [r15 + 0x14]
nop dword [rax]
nop word [rax + rax]
mov r9d, ecx
mov r8d, ebx
lea rdx, [rbp - 0x18]
lea rcx, [rbp - 0x50]
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 - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_char_const____ptr64___cdecl_QByteArray::begin_void_const___ptr64]
mov r12, rax
lea rcx, [rbp - 0x38]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
or r14d, 4
mov dword [rbp - 0x48], r14d
mov edi, esi
mov rcx, qword [rbp - 0x28]
mov r8d, dword [rcx + 4]
mov rcx, qword [r13]
mov edx, dword [rcx + 4]
cmp r8d, edx
cmovl edx, r8d
test edx, edx
jle 0x18002d2f2
sub r12, rbx
movzx r8d, byte [r12 + rbx]
xor r8b, byte [rbx]
mov edx, edi
lea rcx, [rbp - 0x38]
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 - 0x28]
mov edx, dword [rax + 4]
mov rax, qword [r13]
mov ecx, dword [rax + 4]
cmp edx, ecx
cmovl ecx, edx
cmp edi, ecx
jl 0x18002d2c1
lea r9, [rbp - 0x38]
mov r8d, dword [r15 + 0x14]
mov ebx, dword [rbp + 0x40]
mov edx, ebx
lea rcx, [rbp - 0x50]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::replace_int__int__class_QByteArray_const____ptr64____ptr64]
and r14d, 0xfffffffb
mov dword [rbp - 0x48], r14d
lea rcx, [rbp - 0x38]
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 r9d, dword [r15 + 0x14]
mov r8d, ebx
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
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, r15
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 - 0x20]
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 [r15 + 0x14]
mov r8d, ebx
lea rdx, [rbp - 8]
lea rcx, [rbp - 0x40]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray___cdecl_QByteArray::mid_int__int____ptr64]
mov rdx, rax
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_class_QByteArray____ptr64___cdecl_QByteArray::operator_class_QByteArray____ptr64____ptr64]
lea rcx, [rbp - 8]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov ecx, dword [r15 + 0x14]
add ebx, ecx
mov dword [rbp + 0x40], ebx
mov rax, qword [rbp - 0x50]
cmp ebx, dword [rax + 4]
jl 0x18002d260
mov r12, qword [rbp + 0x48]
lea rdx, [rbp - 0x40]
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray____ptr64____ptr64]
nop
lea rcx, [rbp - 0x28]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
nop
lea rcx, [rbp - 0x40]
jmp 0x18002d46d
lea rcx, [rbp + 0x40]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_void____ptr64]
nop
mov rax, qword [rbp - 0x50]
cmp dword [rax + 4], 0
jle 0x18002d45b
mov ecx, dword [r15 + 0x14]
nop dword [rax]
nop dword [rax + rax]
mov r9d, ecx
mov r8d, esi
lea rdx, [rbp - 0x10]
lea rcx, [rbp - 0x50]
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 - 8]
mov rcx, r15
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 - 8]
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 ecx, dword [r15 + 0x14]
add esi, ecx
mov rax, qword [rbp - 0x50]
cmp esi, dword [rax + 4]
jl 0x18002d400
lea rdx, [rbp + 0x40]
mov rcx, r12
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::constructor_class_QByteArray____ptr64____ptr64]
nop
lea rcx, [rbp + 0x40]
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]
nop
lea rcx, [rbp - 0x30]
call qword [sym.imp.Qt5Core.dll_public:_void___cdecl_QByteArray::destructor_void____ptr64]
mov rax, r12
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret