Function at 0x140046920
Capabilities:
Encode data using base64
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
mov eax, dword [rcx + 0x94]
sub eax, dword [rcx + 0x98]
mov rbp, rcx
mov rsi, rdx
cmp eax, 0x3f
ja 0x140046962
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp method.CryptoPP::QuotientRing_CryptoPP::EuclideanDomainOf_CryptoPP::PolynomialMod2___.MultiplicativeInverse_CryptoPP::PolynomialMod2_const__const
mov r12, qword [rcx + 0x80]
lea rax, [r12*4]
mov qword [rsp + 0x68], rax
shr rax, 0x3d
jne 0x140047173
mov qword [rsp + 0x50], 0
cmp qword [rsp + 0x68], 0
je 0x1400469a9
mov rcx, r12
shl rcx, 5
call method.CryptoPP.UnalignedAllocate_unsigned_long_long_
mov r12, qword [rbp + 0x80]
mov qword [rsp + 0x50], rax
mov rdi, qword [rsp + 0x50]
lea rax, [r12*8]
lea r8, [r12 + r12*2]
mov qword [rsp + 0x48], rax
shl r8, 3
lea rbx, [rdi + rax]
lea rdi, [rbx + rax]
lea r9, [rdi + rax]
test r12, r12
je 0x1400469ea
mov rcx, qword [rsp + 0x50]
xor edx, edx
mov qword [rsp + 0x28], r9
call sym.memset
mov r9, qword [rsp + 0x28]
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsi + 0x18]
mov qword [rax], 1
cmp rdi, rdx
je 0x140046a19
mov r8, qword [rsi + 0x10]
mov rcx, rdi
mov qword [rsp + 0x28], r9
shl r8, 3
call sym.memcpy
mov r9, qword [rsp + 0x28]
mov rdx, qword [rbp + 0x88]
cmp r9, rdx
je 0x140046a3b
mov r8, qword [rbp + 0x80]
mov rcx, r9
shl r8, 3
call sym.memcpy
mov r9, rax
mov r11, qword [rsp + 0x50]
xor r13d, r13d
mov esi, 1
mov r15, r11
mov r11, rbp
nop
mov rax, qword [rdi]
test rax, rax
jne 0x140046afb
lea rax, [rdi + 8]
mov qword [rsp + 0x30], r9
lea rbp, [rbx + 8]
lea rdx, [r12*8 - 8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x40], r11
lea r14, [rdi + rdx]
mov qword [rsp + 0x38], r15
mov r15, r14
mov r14, rbp
mov rbp, rdx
nop dword [rax]
test r12, r12
je 0x140046ab2
cmp r12, 1
je 0x140046aab
mov rdx, qword [rsp + 0x28]
mov r8, rbp
mov rcx, rdi
call sym.memmove
mov qword [r15], 0
cmp qword [rbx + rsi*8 - 8], 1
sbb rsi, 0xffffffffffffffff
test rsi, rsi
je 0x140046ae0
mov r8, rsi
sub r8, 1
je 0x140046ad9
shl r8, 3
mov rdx, rbx
mov rcx, r14
call sym.memmove
mov qword [rbx], 0
mov rax, qword [rdi]
add r13d, 0x40
test rax, rax
je 0x140046a90
mov r9, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov r11, qword [rsp + 0x40]
test al, 1
jne 0x140046e36
xor r14d, r14d
nop word cs:[rax + rax]
shr rax, 1
add r14d, 1
test al, 1
je 0x140046b10
add r13d, r14d
cmp rax, 1
je 0x140046d79
cmp r14d, 1
je 0x140046dc0
test r12, r12
je 0x140046b85
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x28], r9
mov r10d, 0x40
sub r10d, r14d
lea rdx, [rdi + rax - 8]
xor eax, eax
nop dword [rax]
mov r8, qword [rdx]
mov ecx, r14d
mov rbp, rdx
sub rdx, 8
mov r9, r8
shr r9, cl
mov ecx, r10d
or rax, r9
mov qword [rdx + 8], rax
mov rax, r8
shl rax, cl
cmp rbp, rdi
jne 0x140046b58
mov r9, qword [rsp + 0x28]
test rsi, rsi
je 0x140046bdf
mov qword [rsp + 0x28], r9
mov r10d, 0x40
mov r8, rbx
xor eax, eax
sub r10d, r14d
lea rbp, [rbx + rsi*8]
nop dword [rax]
mov rdx, qword [r8]
mov ecx, r14d
add r8, 8
mov r9, rdx
shl r9, cl
mov ecx, r10d
or rax, r9
mov qword [r8 - 8], rax
mov rax, rdx
shr rax, cl
cmp r8, rbp
jne 0x140046ba8
mov r9, qword [rsp + 0x28]
test rax, rax
je 0x140046bdf
mov qword [rbx + rsi*8], rax
add rsi, 1
mov rcx, qword [rsp + 0x48]
mov rax, qword [rdi + rcx - 8]
lea rdx, [rcx - 8]
mov rcx, qword [r9 + rcx - 8]
test rax, rax
jne 0x140046c1a
test rcx, rcx
jne 0x140046cb0
sub r12, 1
lea rax, [r12*8]
mov qword [rsp + 0x48], rax
lea rdx, [rax - 8]
mov rax, qword [rdi + rax - 8]
cmp rax, qword [r9 + rdx]
jb 0x140046cb0
test r12, r12
je 0x140046c68
lea rax, [r12 - 1]
cmp rax, 1
jbe 0x140046d72
lea rdx, [r9 + 8]
xor eax, eax
cmp rdi, rdx
jne 0x140046cd0
nop word [rax + rax]
mov rdx, qword [r9 + rax*8]
xor qword [rdi + rax*8], rdx
add rax, 1
cmp r12, rax
jne 0x140046c50
nop dword [rax]
test rsi, rsi
je 0x140046a50
lea rax, [rsi - 1]
cmp rax, 1
jbe 0x140046d6b
lea rdx, [rbx + 8]
xor eax, eax
cmp r15, rdx
jne 0x140046d20
nop
mov rdx, qword [rbx + rax*8]
xor qword [r15 + rax*8], rdx
add rax, 1
cmp rsi, rax
jne 0x140046c90
jmp 0x140046a50
mov rax, rdi
mov rdi, r9
mov r9, rax
mov rax, r15
mov r15, rbx
mov rbx, rax
jmp 0x140046c24
mov rdx, r12
shr rdx, 1
shl rdx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [r9 + rax]
movdqu xmm1, xmmword [rdi + rax]
pxor xmm0, xmm1
movups xmmword [rdi + rax], xmm0
add rax, 0x10
cmp rax, rdx
jne 0x140046ce0
mov rax, r12
and rax, 0xfffffffffffffffe
test r12b, 1
je 0x140046c68
mov rdx, qword [r9 + rax*8]
xor qword [rdi + rax*8], rdx
jmp 0x140046c68
mov rdx, rsi
shr rdx, 1
shl rdx, 4
nop word [rax + rax]
movdqu xmm0, xmmword [rbx + rax]
movdqu xmm2, xmmword [r15 + rax]
pxor xmm0, xmm2
movups xmmword [r15 + rax], xmm0
add rax, 0x10
cmp rdx, rax
jne 0x140046d30
mov rax, rsi
and rax, 0xfffffffffffffffe
test sil, 1
je 0x140046a50
mov rdx, qword [rbx + rax*8]
xor qword [r15 + rax*8], rdx
jmp 0x140046a50
xor eax, eax
jmp 0x140046c90
xor eax, eax
jmp 0x140046c50
test r12, r12
je 0x140047049
mov rax, r12
jmp 0x140046d96
sub rax, 1
je 0x140046da8
cmp qword [rdi + rax*8 - 8], 0
je 0x140046d90
cmp rax, 1
je 0x140046e58
cmp r14d, 1
je 0x140046dc5
test r14d, r14d
je 0x140046bdf
jmp 0x140046b37
test r12, r12
je 0x140046dfb
mov rax, qword [rsp + 0x48]
xor r8d, r8d
lea rcx, [rdi + rax - 8]
nop word [rax + rax]
mov rdx, qword [rcx]
mov r10, rcx
sub rcx, 8
mov rax, rdx
shl rdx, 0x3f
shr rax, 1
or rax, r8
mov r8, rdx
mov qword [rcx + 8], rax
cmp r10, rdi
jne 0x140046dd8
test rsi, rsi
je 0x140046bdf
mov rdx, rbx
lea rbp, [rbx + rsi*8]
xor r8d, r8d
nop
mov rcx, qword [rdx]
add rdx, 8
lea rax, [rcx + rcx]
shr rcx, 0x3f
or rax, r8
mov r8, rcx
mov qword [rdx - 8], rax
cmp rdx, rbp
jne 0x140046e10
mov rax, rcx
jmp 0x140046bd2
cmp rax, 1
jne 0x140046bdf
xor r14d, r14d
test r12, r12
jne 0x140046d82
jmp 0x140046bdf
mov rbp, r11
mov r11, r15
cmp r13d, 0x3f
jbe 0x140046fb8
mov ecx, dword [rbp + 0x90]
mov r10d, dword [rbp + 0x98]
mov dword [rsp + 0x74], r13d
mov r14d, r13d
mov qword [rsp + 0x78], rbp
add rcx, 0x3f
mov edx, r10d
mov esi, r10d
shr rcx, 6
shr edx, 6
and esi, 0x3f
lea rax, [r15 + rcx*8 - 8]
lea rdi, [r11 + rdx*8]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
lea eax, [rdx - 1]
mov edx, dword [rbp + 0x94]
mov ebp, esi
lea r12, [r15 + rax*8]
mov eax, 0x40
mov qword [rsp + 0x48], rdi
mov ebx, edx
mov r15d, eax
mov edi, eax
shr edx, 6
and ebx, 0x3f
sub edi, esi
lea r8d, [rdx - 1]
sub r15d, r10d
sub eax, ebx
lea rdx, [r11 + rdx*8]
mov dword [rsp + 0x5c], edi
mov r13d, ebx
mov dword [rsp + 0x70], eax
lea rax, [rcx*8 - 8]
lea rdi, [r11 + r8*8]
mov esi, r10d
mov qword [rsp + 0x38], rax
lea rax, [r11 + 8]
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x40], rax
jmp 0x140046f36
mov rdx, rbx
mov ecx, r13d
sub r14d, 0x40
shl rdx, cl
movzx ecx, byte [rsp + 0x70]
xor rax, rdx
mov qword [rdi], rax
mov rax, qword [rsp + 0x60]
shr rbx, cl
xor qword [rax], rbx
cmp r14d, 0x3f
jbe 0x140046faa
cmp qword [rsp + 0x30], 1
mov rbx, qword [r11]
jbe 0x140046f56
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rcx, r11
call sym.memmove
mov r11, rax
mov rax, qword [rsp + 0x28]
mov qword [rax], 0
cmp esi, 0x3f
jbe 0x140047018
mov rax, rbx
mov ecx, ebp
shl rax, cl
xor qword [r12], rax
test ebp, ebp
je 0x140046f8e
movzx ecx, byte [rsp + 0x5c]
mov rax, rbx
shr rax, cl
mov rcx, qword [rsp + 0x48]
xor qword [rcx], rax
mov rax, qword [rdi]
test r13d, r13d
jne 0x140046f0d
xor rbx, rax
sub r14d, 0x40
mov qword [rdi], rbx
cmp r14d, 0x3f
ja 0x140046f36
mov r13d, dword [rsp + 0x74]
mov rbp, qword [rsp + 0x78]
and r13d, 0x3f
test r13d, r13d
jne 0x140047058
mov rcx, qword [rbp + 0xb8]
lea rbx, [rbp + 0xa0]
cmp rcx, r11
je 0x140046fe7
mov r8, qword [rbp + 0xb0]
mov rdx, r11
shl r8, 3
call sym.memcpy
mov rsi, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x68]
xor eax, eax
mov rdi, rsi
rep stosq qword [rdi], rax
mov rcx, rsi
call method.CryptoPP.UnalignedDeallocate_void_
mov rax, rbx
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, esi
xor eax, eax
nop dword [rax]
cmp edx, 0x3f
ja 0x140047039
mov r8, rbx
mov ecx, eax
shr r8, cl
mov ecx, edx
and r8d, 1
shl r8, cl
xor rbx, r8
add eax, 1
add edx, 1
cmp eax, r15d
jb 0x140047020
jmp 0x140046f77
cmp r14d, 1
jne 0x140046b85
jmp 0x140046dfb
mov edx, dword [rbp + 0x90]
mov r9d, 0x40
mov rax, qword [r11]
sub r9d, r13d
mov ecx, r9d
add rdx, 0x3f
shl rax, cl
shr rdx, 6
je 0x1400470a9
lea r8, [r11 + rdx*8 - 8]
xor ebx, ebx
mov r10, qword [r8]
mov ecx, r13d
mov rsi, r8
sub r8, 8
mov rdx, r10
shr rdx, cl
mov ecx, r9d
or rdx, rbx
mov rbx, r10
mov qword [r8 + 8], rdx
shl rbx, cl
cmp rsi, r11
jne 0x140047081
mov edx, dword [rbp + 0x98]
mov ebx, edx
and ebx, 0x3f
cmp edx, 0x3f
ja 0x140047151
mov esi, 0x40
mov r10d, edx
xor r9d, r9d
sub esi, edx
cmp r10d, 0x3f
ja 0x1400470e6
mov r8, rax
mov ecx, r9d
shr r8, cl
mov ecx, r10d
and r8d, 1
shl r8, cl
xor rax, r8
add r9d, 1
add r10d, 1
cmp esi, r9d
jne 0x1400470ca
test ebx, ebx
je 0x140047110
mov r8d, 0x40
shr edx, 6
mov rdi, rax
sub r8d, ebx
mov ecx, r8d
shr rdi, cl
xor qword [r11 + rdx*8], rdi
mov edx, dword [rbp + 0x94]
mov r8d, edx
shr r8d, 6
lea ecx, [r8 - 1]
lea r9, [r11 + rcx*8]
mov r10, qword [r9]
and edx, 0x3f
je 0x140047168
mov rdi, rax
mov ecx, edx
shl rdi, cl
mov rcx, rdi
xor rcx, r10
mov qword [r9], rcx
mov ecx, 0x40
sub ecx, edx
shr rax, cl
xor qword [r11 + r8*8], rax
jmp 0x140046fc1
mov ecx, edx
mov rdi, rax
shr ecx, 6
lea r8d, [rcx - 1]
mov ecx, ebx
shl rdi, cl
xor qword [r11 + r8*8], rdi
jmp 0x1400470f3
xor rax, r10
mov qword [r9], rax
jmp 0x140046fc1
mov ecx, 0x30
lea rdi, [rsp + 0x80]
call sym.__cxa_allocate_exception
lea rdx, [0x140366e70]
mov rcx, rdi
mov rsi, rax
call fcn.140352400
mov r8, rdi
mov edx, 1
mov rcx, rsi
call fcn.140244f70
lea rax, fcn.1402132b0
mov rcx, rdi
mov qword [rsi], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea r8, [fcn.1402132b0]
lea rdx, [0x1403982a0]
mov rcx, rsi
call sym.__cxa_throw
mov rbx, rax
jmp 0x1400471df
mov rcx, rsi
call sym.__cxa_free_exception
mov rcx, rbx
call sym._Unwind_Resume
nop