Function at 0x140049af0
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rax, qword [rdx + 0x10]
mov rdi, rcx
mov r12, rdx
mov rcx, qword [rdx + 0x18]
mov rbp, r8
test rax, rax
jne 0x140049b2a
jmp 0x140049d90
sub rax, 1
je 0x140049d90
cmp qword [rcx + rax*8 - 8], 0
je 0x140049b20
mov edx, eax
test eax, eax
je 0x140049b7a
sub eax, 1
mov r10, qword [rcx + rax*8]
mov edx, eax
shl edx, 6
test r10, r10
je 0x140049b7a
mov eax, 0x40
xor r8d, r8d
jmp 0x140049b6e
lea ecx, [r8 + rax]
mov r9, r10
shr ecx, 1
shr r9, cl
test r9, r9
cmove eax, ecx
cmovne r8d, ecx
mov ecx, eax
sub ecx, r8d
cmp ecx, 1
ja 0x140049b58
add edx, eax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x18]
test rax, rax
jne 0x140049b96
jmp 0x140049be6
sub rax, 1
je 0x140049be6
cmp qword [rcx + rax*8 - 8], 0
je 0x140049b90
test eax, eax
je 0x140049be6
sub eax, 1
mov r11, qword [rcx + rax*8]
mov r10d, eax
shl r10d, 6
test r11, r11
je 0x140049be3
mov eax, 0x40
xor r8d, r8d
jmp 0x140049bd6
lea ecx, [r8 + rax]
mov r9, r11
shr ecx, 1
shr r9, cl
test r9, r9
cmove eax, ecx
cmovne r8d, ecx
mov ecx, eax
sub ecx, r8d
cmp ecx, 1
ja 0x140049bc0
add r10d, eax
add edx, r10d
mov rcx, rdi
call method.CryptoPP::PolynomialMod2.PolynomialMod2_unsigned_long_long__unsigned_long_long___clone_.constprop.0_
mov rax, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x18]
test rax, rax
jne 0x140049c0a
jmp 0x140049cea
sub rax, 1
je 0x140049cea
cmp qword [rdx + rax*8 - 8], 0
je 0x140049c00
test eax, eax
je 0x140049cea
sub eax, 1
mov r9, qword [rdx + rax*8]
mov r10d, eax
xor eax, eax
shl r10d, 6
test r9, r9
je 0x140049c5d
mov eax, 0x40
xor edx, edx
jmp 0x140049c54
lea ecx, [rdx + rax]
mov r8, r9
shr ecx, 1
shr r8, cl
test r8, r8
cmove eax, ecx
cmovne edx, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x140049c40
lea ebx, [r10 + rax - 1]
test ebx, ebx
js 0x140049cea
movabs r13, 0x1fffffffffffffff
mov esi, ebx
nop word cs:[rax + rax]
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x140049cc3
mov r10, qword [rdi + 0x18]
test eax, eax
je 0x140049cc3
sub eax, 1
xor r8d, r8d
lea r9, [r10 + rax*8 + 8]
mov rax, r10
nop
mov rcx, qword [rax]
add rax, 8
lea rdx, [rcx + rcx]
shr rcx, 0x3f
or rdx, r8
mov r8, rcx
mov qword [rax - 8], rdx
cmp rax, r9
jne 0x140049ca0
test rcx, rcx
jne 0x140049d00
mov rax, rsi
shr rax, 6
cmp rax, qword [rbp + 0x10]
jae 0x140049cde
mov rdx, qword [rbp + 0x18]
mov rax, qword [rdx + rax*8]
bt rax, rbx
jb 0x140049d28
sub ebx, 1
sub rsi, 1
cmp ebx, 0xffffffff
jne 0x140049c80
mov rax, rdi
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rdx, qword [rdi + 0x10]
lea r14, [rdx + 1]
cmp rdx, r14
jb 0x140049d70
mov r14, 0xffffffffffffffff
mov qword [rdi + 8], r13
mov qword [r10 + r14*8 - 8], 1
jmp 0x140049cc3
mov r9, qword [r12 + 0x10]
mov rcx, qword [r12 + 0x18]
mov rdx, qword [rdi + 0x18]
test r9, r9
je 0x140049cde
lea rax, [r9 - 1]
cmp rax, 1
jbe 0x140049de1
lea r8, [rcx + 8]
xor eax, eax
cmp rdx, r8
jne 0x140049d97
nop dword [rax]
mov r8, qword [rcx + rax*8]
xor qword [rdx + rax*8], r8
add rax, 1
cmp r9, rax
jne 0x140049d58
jmp 0x140049cde
mov r9d, 1
mov r8, r14
mov rcx, r10
call method.CryptoPP::AllocatorWithCleanup_unsigned_long_long__false_::pointer_CryptoPP::StandardReallocate_unsigned_long_long__CryptoPP.AllocatorWithCleanup_unsigned_long_long__false____CryptoPP::AllocatorWithCleanup_unsigned_long_long__false___unsigned_long
mov qword [rdi + 0x18], rax
mov r10, rax
mov qword [rdi + 0x10], r14
jmp 0x140049d14
xor edx, edx
jmp 0x140049b7a
mov r8, r9
shr r8, 1
shl r8, 4
nop dword [rax]
movdqu xmm0, xmmword [rcx + rax]
movdqu xmm1, xmmword [rdx + rax]
pxor xmm0, xmm1
movups xmmword [rdx + rax], xmm0
add rax, 0x10
cmp rax, r8
jne 0x140049da8
mov rax, r9
and rax, 0xfffffffffffffffe
and r9d, 1
je 0x140049cde
mov rcx, qword [rcx + rax*8]
xor qword [rdx + rax*8], rcx
jmp 0x140049cde
xor eax, eax
jmp 0x140049d58