Function at 0x140045870
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov r14, qword [rdx + 0x10]
test r14, r14
je 0x140045926
lea r9, [r14 - 1]
mov qword [rdx + 0x10], r9
mov r11, qword [rdx]
mov r15, qword [rdx + 8]
cmp r11, r15
je 0x140045926
lea r12, [r11 + 1]
mov qword [rdx], r12
movzx r8d, byte [r11]
movzx esi, r8b
test sil, sil
jns 0x140045941
mov eax, esi
and eax, 0x1f
lea r12, [r11 + 2]
mov qword [rdx], r12
movzx r10d, byte [r11 + 1]
and r10d, 0x3f
cmp sil, 0xdf
jbe 0x140045939
mov rdi, r9
lea r12, [r11 + 3]
mov qword [rdx], r12
movzx r9d, byte [r11 + 2]
shl r10d, 6
and r9d, 0x3f
or r9d, r10d
cmp r8b, 0xf0
jb 0x140045964
lea r12, [r11 + 4]
mov qword [rdx], r12
movzx esi, byte [r11 + 3]
and eax, 7
shl eax, 0x12
shl r9d, 6
and esi, 0x3f
or esi, r9d
or esi, eax
cmp esi, 0x110000
mov r9, rdi
jne 0x140045941
mov qword [rcx], 4
xorps xmm0, xmm0
movups xmmword [rcx + 8], xmm0
jmp 0x140045b3c
shl eax, 6
or eax, r10d
mov esi, eax
test r9, r9
mov qword [rbp - 0x28], rcx
je 0x140045979
mov rax, r15
sub rax, r12
add rax, 3
shr rax, 2
cmp rax, r9
cmovae rax, r9
inc rax
jmp 0x14004597e
shl eax, 0xc
or r9d, eax
mov esi, r9d
mov r9, rdi
test r9, r9
mov qword [rbp - 0x28], rcx
jne 0x14004594a
mov eax, 1
cmp rax, 5
mov r13d, 4
cmovae r13, rax
xor edi, edi
mov rax, r13
shr rax, 0x3d
sete al
jne 0x140045b69
lea rbx, [r13*4]
mov dil, al
shl rdi, 2
test rbx, rbx
je 0x140045b50
movzx eax, byte [0x14028d4e5]
mov rcx, rbx
mov rdx, rdi
mov qword [rbp - 0x20], r15
mov r15d, esi
mov rsi, r9
call fcn.1400648c0
mov r9, rsi
mov esi, r15d
mov r15, qword [rbp - 0x20]
test rax, rax
je 0x140045b5c
mov dword [rax], esi
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x10], r13
mov qword [rbp - 8], 1
test r9, r9
je 0x140045b21
lea r13, [r15 + 3]
add r14, 0xfffffffffffffffe
mov edi, 1
lea rbx, [rbp - 0x18]
jmp 0x140045a57
mov r8, r13
sub r8, r12
shr r8, 2
cmp r8, r14
cmovae r8, r14
inc r8
mov rcx, rbx
mov rdx, rdi
call fcn.1401cfa10
mov rax, qword [rbp - 0x18]
mov dword [rax + rdi*4], esi
inc rdi
mov qword [rbp - 8], rdi
add r14, 0xffffffffffffffff
jae 0x140045b21
cmp r12, r15
je 0x140045b21
movzx r8d, byte [r12]
movzx esi, r8b
test sil, sil
js 0x140045a80
inc r12
cmp rdi, qword [rbp - 0x10]
jne 0x140045a43
jmp 0x140045b10
mov ecx, esi
and ecx, 0x1f
movzx r9d, byte [r12 + 1]
and r9d, 0x3f
cmp sil, 0xdf
jbe 0x140045ad9
movzx edx, byte [r12 + 2]
shl r9d, 6
and edx, 0x3f
or edx, r9d
cmp r8b, 0xf0
jb 0x140045af1
movzx esi, byte [r12 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and esi, 0x3f
or esi, edx
or esi, ecx
cmp esi, 0x110000
je 0x140045b21
add r12, 4
cmp rdi, qword [rbp - 0x10]
jne 0x140045a43
jmp 0x140045b10
add r12, 2
shl ecx, 6
or ecx, r9d
mov esi, ecx
cmp rdi, qword [rbp - 0x10]
jne 0x140045a43
jmp 0x140045b10
add r12, 3
shl ecx, 0xc
or edx, ecx
mov esi, edx
cmp rdi, qword [rbp - 0x10]
jne 0x140045a43
nop word cs:[rax + rax]
test r14, r14
jne 0x140045a20
xor r8d, r8d
jmp 0x140045a31
mov rax, qword [rbp - 8]
mov rcx, qword [rbp - 0x28]
mov qword [rcx + 0x10], rax
mov rax, qword [rbp - 0x18]
mov qword [rcx], rax
mov rax, qword [rbp - 0x10]
mov qword [rcx + 8], rax
mov rax, rcx
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, rdi
test rax, rax
jne 0x1400459e5
mov rcx, rdi
mov rdx, rbx
call fcn.1401d8540
ud2
call fcn.1401539a0
ud2