Function at 0x4019c0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
lea r13, [rcx + 0x10]
mov qword [rcx + 8], 0
mov rbx, rcx
mov qword [rcx], r13
mov byte [rcx + 0x10], 0
mov rsi, qword [rdx]
mov rax, qword [rdx + 8]
add rax, rsi
cmp rsi, rax
mov qword [rsp + 0x30], rax
je 0x401b10
movzx eax, byte [rsi]
mov edi, 1
mov byte [rsp + 0x49], al
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
jmp 0x401a23
movsxd rdi, eax
add rsi, 1
cmp qword [rsp + 0x30], rsi
je 0x401b30
movzx edx, byte [rsi]
lea eax, [rdi + 1]
cmp eax, 3
mov byte [rsp + rdi + 0x49], dl
jne 0x401a20
movzx ecx, byte [rsp + 0x49]
lea rbp, [rsp + 0x4c]
movzx edx, byte [rsp + 0x4a]
lea r15, [0x00408040]
mov eax, ecx
shl ecx, 4
mov r8d, edx
and ecx, 0x30
shl edx, 2
shr r8b, 4
and edx, 0x3c
shr al, 2
add ecx, r8d
mov byte [rsp + 0x4c], al
mov byte [rsp + 0x4d], cl
movzx ecx, byte [rsp + 0x4b]
mov r8d, ecx
and ecx, 0x3f
shr r8b, 6
mov byte [rsp + 0x4f], cl
add edx, r8d
mov byte [rsp + 0x4e], dl
mov rdx, qword [r15]
movzx eax, al
mov rdi, qword [rbx + 8]
movzx r14d, byte [rdx + rax]
mov rax, qword [rbx]
lea r12, [rdi + 1]
cmp r13, rax
je 0x401b24
mov rdx, qword [rbx + 0x10]
cmp r12, rdx
ja 0x401ae0
mov byte [rax + rdi], r14b
add rbp, 1
mov rax, qword [rbx]
cmp qword [rsp + 0x38], rbp
mov qword [rbx + 8], r12
mov byte [rax + rdi + 1], 0
je 0x401b00
movzx eax, byte [rbp]
jmp 0x401a94
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rbx
call fcn.00403580
mov rax, qword [rbx]
jmp 0x401ab8
xor eax, eax
jmp 0x401a20
mov rax, rbx
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 0xf
jmp 0x401ab3
test edi, edi
je 0x401b10
movsxd rax, edi
cmp edi, 2
mov byte [rsp + rax + 0x49], 0
je 0x401b46
mov byte [rsp + 0x4b], 0
movzx ecx, byte [rsp + 0x49]
lea r15, [0x00408040]
xor ebp, ebp
movzx edx, byte [rsp + 0x4a]
mov eax, ecx
shl ecx, 4
mov r8d, edx
and ecx, 0x30
shl edx, 2
shr r8b, 4
and edx, 0x3c
shr al, 2
add ecx, r8d
mov byte [rsp + 0x4c], al
mov byte [rsp + 0x4d], cl
movzx ecx, byte [rsp + 0x4b]
mov r8d, ecx
and ecx, 0x3f
shr r8b, 6
mov byte [rsp + 0x4f], cl
add edx, r8d
mov byte [rsp + 0x4e], dl
mov rdx, qword [r15]
movzx eax, al
mov rsi, qword [rbx + 8]
movzx r14d, byte [rdx + rax]
mov rax, qword [rbx]
lea r12, [rsi + 1]
cmp r13, rax
je 0x401c70
mov rdx, qword [rbx + 0x10]
cmp r12, rdx
ja 0x401be0
mov byte [rax + rsi], r14b
mov rax, qword [rbx]
add rbp, 1
cmp edi, ebp
mov qword [rbx + 8], r12
mov byte [rax + rsi + 1], 0
jl 0x401c00
movzx eax, byte [rsp + rbp + 0x4c]
jmp 0x401b96
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.00403580
mov rax, qword [rbx]
jmp 0x401bbe
add edi, 1
jmp 0x401c23
mov byte [rax + rsi], 0x3d
mov rax, qword [rbx]
cmp edi, 3
mov qword [rbx + 8], rbp
mov byte [rax + rsi + 1], 0
je 0x401b10
mov edi, 3
mov rax, qword [rbx]
mov rsi, qword [rbx + 8]
cmp r13, rax
lea rbp, [rsi + 1]
je 0x401c60
mov rdx, qword [rbx + 0x10]
cmp rbp, rdx
jbe 0x401c05
mov qword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call fcn.00403580
mov rax, qword [rbx]
jmp 0x401c05
mov edx, 0xf
jmp 0x401c37
mov edx, 0xf
jmp 0x401bb9