Function at 0x140032610
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rbp, rcx
mov rsi, rdx
mov rdi, r8
cmp rdx, r8
je 0x1400328e0
mov r13, qword [rdx + 0x18]
mov r12, qword [r8 + 0x18]
cmp r13, r12
jb 0x140032780
mov rax, r13
mov rsi, qword [rdx + 0x20]
shr rax, 0x3d
jne 0x140032996
xor ebx, ebx
test r13, r13
je 0x14003268e
lea r12, [r13*8]
mov rcx, r12
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov rbx, rax
test rax, rax
je 0x1400328ba
mov r8, r12
test rsi, rsi
je 0x1400328b0
mov rdx, rsi
mov rcx, rax
call sym.memcpy
mov r12, qword [rdi + 0x18]
test r12, r12
je 0x1400326b2
mov rcx, qword [rdi + 0x20]
xor eax, eax
nop dword [rax]
mov rdx, qword [rcx + rax*8]
xor qword [rbx + rax*8], rdx
add rax, 1
cmp rax, qword [rdi + 0x18]
jb 0x1400326a0
cmp byte [0x140249228], 0
je 0x140032918
movdqu xmm0, xmmword [0x1401c4360]
lea rax, fcn.1400b3bd0
mov ecx, 0x10
mov qword [rsp + 0x40], rax
movups xmmword [rsp + 0x50], xmm0
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
pxor xmm0, xmm0
lea rdx, [rsp + 0x40]
mov rcx, rbp
mov rsi, rax
movups xmmword [rax], xmm0
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rbx
call method.CryptoPP::Integer.Integer_CryptoPP::Integer_const_
test rbx, rbx
je 0x140032758
lea rax, [rbx + r13*8]
test r13, r13
je 0x140032750
mov rdx, rax
sub rdx, rbx
and edx, 8
je 0x140032738
sub rax, 8
mov qword [rax], 0
cmp rax, rbx
je 0x140032750
nop dword [rax]
mov qword [rax - 8], 0
sub rax, 0x10
mov qword [rax], 0
cmp rax, rbx
jne 0x140032738
mov rcx, rbx
call method.CryptoPP.UnalignedDeallocate_void_
mov qword [rsi + 8], 0
mov rcx, rsi
mov qword [rsi], 0
call method.CryptoPP.UnalignedDeallocate_void_
mov rax, rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, r12
mov r13, qword [r8 + 0x20]
shr rax, 0x3d
jne 0x140032a1f
lea rdi, [r12*8]
mov rcx, rdi
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov rbx, rax
test rax, rax
je 0x1400327c0
mov r8, rdi
test r13, r13
je 0x1400328c8
mov rdx, r13
mov rcx, rax
call sym.memcpy
cmp qword [rsi + 0x18], 0
je 0x1400327e2
mov rcx, qword [rsi + 0x20]
xor eax, eax
nop dword [rax]
mov rdx, qword [rcx + rax*8]
xor qword [rbx + rax*8], rdx
add rax, 1
cmp rax, qword [rsi + 0x18]
jb 0x1400327d0
cmp byte [0x140249228], 0
je 0x140032900
movdqu xmm0, xmmword [0x1401c4360]
lea rax, fcn.1400b3bd0
mov ecx, 0x10
mov qword [rsp + 0x40], rax
movups xmmword [rsp + 0x50], xmm0
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
pxor xmm0, xmm0
lea rdx, [rsp + 0x40]
mov rcx, rbp
mov rsi, rax
movups xmmword [rax], xmm0
mov dword [rsp + 0x68], 0
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], rbx
call method.CryptoPP::Integer.Integer_CryptoPP::Integer_const_
test rbx, rbx
je 0x140032880
lea rax, [rbx + rdi]
and edi, 8
je 0x140032860
sub rax, 8
mov qword [rax], 0
cmp rbx, rax
je 0x140032878
nop dword [rax]
mov qword [rax - 8], 0
sub rax, 0x10
mov qword [rax], 0
cmp rbx, rax
jne 0x140032860
mov rcx, rbx
call method.CryptoPP.UnalignedDeallocate_void_
mov qword [rsi + 8], 0
mov rcx, rsi
mov qword [rsi], 0
call method.CryptoPP.UnalignedDeallocate_void_
mov rax, rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
xor edx, edx
mov rcx, rax
call sym.memset
mov r12, qword [rdi + 0x18]
jmp 0x14003268e
xor edx, edx
mov rcx, rax
call sym.memset
jmp 0x1400327c0
lea rdx, [0x140249080]
call method.CryptoPP::Integer.Integer_CryptoPP::Integer_const_
mov rax, rbp
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
call method.CryptoPP.SetFunctionPointers__
mov byte [0x140249228], 1
jmp 0x1400327ef
call method.CryptoPP.SetFunctionPointers__
mov byte [0x140249228], 1
jmp 0x1400326bf
movabs rax, 0x1fffffffffffffff
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x38], rbx
call method.CryptoPP::SecBlock_unsigned_long_long__CryptoPP::AllocatorWithCleanup_unsigned_long_long__true___.SecBlock__
mov rcx, rdi
call sym._Unwind_Resume
lea rcx, [rsp + 0x48]
mov rdi, rax
mov rbx, rsi
mov r12d, 2
call method.CryptoPP::SecBlock_unsigned_long_long__CryptoPP::AllocatorWithCleanup_unsigned_long_long__true___.SecBlock__
movabs rax, 0x1fffffffffffffff
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rax
jmp 0x140032953
mov ecx, 0x30
lea rbx, [rsp + 0x40]
call sym.__cxa_allocate_exception
lea rdx, [0x1401c3ff0]
mov rcx, rbx
mov rdi, rax
call fcn.1401b6ab4
mov r8, rbx
mov edx, 1
mov rcx, rdi
call fcn.1400b5fd0
lea rax, method.CryptoPP::InvalidArgument.InvalidArgument__
mov rcx, rbx
mov qword [rdi], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea r8, [method.CryptoPP::InvalidArgument.InvalidArgument__]
lea rdx, [0x1401dd050]
mov rcx, rdi
call sym.__cxa_throw
mov rdi, rax
jmp 0x14003293f
mov ecx, 0x30
lea rbx, [rsp + 0x40]
call sym.__cxa_allocate_exception
lea rdx, [0x1401c3ff0]
mov rcx, rbx
mov rdi, rax
call fcn.1401b6ab4
mov r8, rbx
mov edx, 1
mov rcx, rdi
call fcn.1400b5fd0
jmp 0x1400329c7