Function at 0x180017800
Capabilities:
Encode data using base64

Disassembly:
push rsi
push r12
push r13
push r15
sub rsp, 0x38
lea r12d, [rdx + 0xe0]
mov r15, r8
mov r13d, edx
mov rsi, rcx
cmp edx, r12d
jae 0x180017abc
mov qword [rsp + 0x60], rbx
movabs r9, 0xaaaaaaaaaaaaaaab
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x30], rbp
mov ebp, dword [rsp + 0x68]
mov qword [rsp + 0x28], rdi
mov edi, dword [rsp + 0x68]
mov qword [rsp + 0x20], r14
mov r14d, dword [rsp + 0x68]
nop word [rax + rax]
mov eax, r13d
sub eax, 0x77
je 0x180017a69
sub eax, 0x38
je 0x180017a56
sub eax, 0x20
je 0x180017a27
cmp eax, 0x38
jne 0x180017a91
cmp qword [r15 + 0x18], 0x10
mov r8, r15
jb 0x180017894
mov r8, qword [r15]
mov rcx, qword [rsi + 0x10]
mov rax, r9
mul rcx
xor r10d, r10d
shr rdx, 1
lea rax, [rdx + rdx*2]
test rax, rax
je 0x180017974
lea rcx, [rax - 1]
mov rax, r9
mul rcx
shr rdx, 1
inc rdx
lea r10, [rdx + rdx*2]
nop word [rax + rax]
mov r9d, 0x60
mov eax, r9d
sub eax, 0x5f
je 0x180017955
cmp eax, 1
jne 0x180017959
mov rax, qword [0x18002e678]
movzx ecx, byte [rbx]
shr rcx, 2
movzx ecx, byte [rcx + rax]
mov byte [r8], cl
movzx ecx, byte [rbx]
movzx eax, byte [rbx + 1]
and ecx, 3
shl ecx, 4
shr eax, 4
add ecx, eax
mov rax, qword [0x18002e678]
movzx ecx, byte [rcx + rax]
mov byte [r8 + 1], cl
movzx ecx, byte [rbx + 1]
movzx eax, byte [rbx + 2]
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18002e678]
movzx ecx, byte [rcx + rax]
mov byte [r8 + 2], cl
movzx ecx, byte [rbx + 2]
mov rax, qword [0x18002e678]
and ecx, 0x3f
movzx ecx, byte [rcx + rax]
mov byte [r8 + 3], cl
add r8, 4
jmp 0x180017959
add rbx, 3
dec r9d
cmp r9d, 0x5e
ja 0x1800178d6
sub rdx, 1
jne 0x1800178d0
mov rcx, qword [rsi + 0x10]
cmp r10, rcx
jae 0x180017a91
mov edx, 0x2c
mov eax, edx
sub eax, 0x2c
je 0x1800179ea
sub eax, 1
je 0x1800179d9
cmp eax, 1
jne 0x180017a1a
lea rax, [r10 + 1]
cmp rax, qword [rsi + 0x10]
jae 0x1800179c9
mov ecx, edi
mov eax, r14d
and ecx, 0xf
shr eax, 6
lea ecx, [rax + rcx*4]
mov rax, qword [0x18002e678]
movzx r9d, byte [rcx + rax]
mov byte [r8], r9b
mov byte [r8 + 1], 0x3d
add r8, 2
jmp 0x180017a1a
mov r9b, 0x3d
mov byte [r8], r9b
mov byte [r8 + 1], r9b
add r8, 2
jmp 0x180017a1a
mov ecx, ebp
mov eax, edi
and ecx, 3
shr eax, 4
shl ecx, 4
add ecx, eax
jmp 0x180017a09
movzx ebp, byte [rbx]
lea rax, [r10 + 1]
cmp rax, qword [rsi + 0x10]
jae 0x1800179fd
movzx edi, byte [rbx + 1]
jmp 0x1800179ff
xor edi, edi
xor r14d, r14d
mov rcx, rbp
shr rcx, 2
mov rax, qword [0x18002e678]
movzx ecx, byte [rcx + rax]
mov byte [r8], cl
inc r8
inc edx
cmp edx, 0x2f
jb 0x180017982
jmp 0x180017a91
mov rcx, qword [rsi + 0x10]
mov rax, r9
add rcx, 2
xor r8d, r8d
mul rcx
mov rcx, r15
shr rdx, 1
shl rdx, 2
call fcn.1800187c0
cmp qword [rsi + 0x18], 0x10
mov rbx, rsi
jb 0x180017a91
mov rbx, qword [rsi]
jmp 0x180017a91
mov rcx, qword [rsi]
mov r8d, 0x9b
mov rdx, r15
call fcn.180020940
jmp 0x180017a91
lea r9, [rsp + 0x68]
mov dword [rsp + 0x68], 1
mov r8d, 0x5d
mov dword [rsp + 0x78], 0x70
lea rdx, [rsp + 0x78]
mov rcx, r15
call fcn.180019da0
add r13d, 0x38
movabs r9, 0xaaaaaaaaaaaaaaab
cmp r13d, r12d
jb 0x180017860
mov r14, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x60]
add rsp, 0x38
pop r15
pop r13
pop r12
pop rsi
ret