Function at 0x14001c310
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x20], r9
push rbp
push rdi
push r12
sub rsp, 0x30
movsxd rbp, edx
mov r12, r9
mov rdi, rcx
test rcx, rcx
je 0x14001c5b2
test r8, r8
je 0x14001c5b2
test r9, r9
je 0x14001c5b2
mov rcx, rbp
shl rcx, 2
cmp rcx, 0x7fffffff
jg 0x14001c5bd
mov qword [rsp + 0x60], r13
movabs rax, 0x5555555555555556
imul rcx
mov eax, 0x55555556
mov qword [rsp + 0x28], r14
mov r9, rdx
mov r14d, 4
shr r9, 0x3f
add r9, rdx
imul ebp
mov eax, ebp
mov r10d, edx
shr r10d, 0x1f
add r10d, edx
lea r13d, [r10 + r10*2]
sub eax, r13d
add r9d, eax
mov eax, 0x6bca1af3
imul r9d
mov ecx, r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x4c
sub ecx, eax
je 0x14001c3d0
and ecx, 0x80000003
jge 0x14001c3c4
dec ecx
or ecx, 0xfffffffc
inc ecx
test ecx, ecx
je 0x14001c3d0
mov eax, r14d
sub eax, ecx
add r9d, eax
lea eax, [rdx + 1]
lea eax, [r9 + rax*2]
cmp dword [r12], eax
jge 0x14001c3f2
xor eax, eax
mov r13, qword [rsp + 0x60]
mov r14, qword [rsp + 0x28]
add rsp, 0x30
pop r12
pop rdi
pop rbp
ret
xor ecx, ecx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], rsi
mov eax, 0x6bca1af3
mov qword [rsp + 0x20], r15
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_CRLogProductPreferences
lea r15d, [r10*4]
mov r9d, ecx
imul r15d
lea ebx, [rcx + 0x13]
mov r10d, ecx
mov r11d, edx
sar r11d, 5
mov eax, r11d
shr eax, 0x1f
add r11d, eax
js 0x14001c507
lea r12, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_CRLogProductPreferences
cmp ecx, r11d
jne 0x14001c458
imul ecx, r11d, 0x4c
mov eax, r15d
sub eax, ecx
cdq
and edx, 3
lea ebx, [rdx + rax]
sar ebx, 2
test ebx, ebx
jle 0x14001c4ce
mov esi, ebx
nop
movzx eax, byte [rdi + 2]
movzx ecx, byte [rdi + 1]
movzx edx, byte [rdi]
add rdi, 3
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
shl edx, 8
mov eax, edx
shl edx, 6
shr eax, 0x1a
movzx ecx, al
movzx eax, byte [rcx + r12]
mov byte [r8], al
mov eax, edx
shr eax, 0x1a
movzx ecx, al
shl edx, 6
movzx eax, byte [rcx + r12]
mov byte [r8 + 1], al
mov eax, edx
shr eax, 0x1a
movzx ecx, al
movzx eax, byte [rcx + r12]
mov byte [r8 + 2], al
mov eax, edx
shr eax, 0x14
and eax, 0x3f
movzx eax, byte [rax + r12]
mov byte [r8 + 3], al
add r8, r14
sub rsi, 1
jne 0x14001c460
lea r9d, [r9 + rbx*4]
mov word [r8], 0xa0d
add r9d, 2
add r8, 2
inc r10d
cmp r10d, r11d
jle 0x14001c443
mov r12, qword [rsp + 0x68]
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_CRLogProductPreferences
test r9d, r9d
je 0x14001c505
sub r8, 2
sub r9d, 2
xor ecx, ecx
mov r15, qword [rsp + 0x20]
sub ebp, r13d
mov rbx, qword [rsp + 0x50]
lea r10d, [rbp + 1]
cmove r10d, ecx
test r10d, r10d
je 0x14001c59f
mov edx, ecx
test ebp, ebp
jle 0x14001c52d
movzx edx, byte [rdi]
inc rdi
shl edx, 8
cmp ebp, 1
jle 0x14001c53d
movzx eax, byte [rdi]
or edx, eax
inc rdi
shl edx, 8
cmp ebp, 2
jle 0x14001c54a
movzx eax, byte [rdi]
or edx, eax
shl edx, 8
test r10d, r10d
jle 0x14001c57d
mov edi, r10d
nop word [rax + rax]
mov eax, edx
shl edx, 6
shr eax, 0x1a
movzx ecx, al
movzx eax, byte [rcx + rsi]
mov byte [r8], al
inc r8
sub rdi, 1
jne 0x14001c560
xor ecx, ecx
sub r14d, r10d
add r9d, r10d
test r10d, r10d
cmove r14d, ecx
test r14d, r14d
jle 0x14001c59c
mov ecx, r14d
mov rdi, r8
mov eax, 0x3d
rep stosb byte [rdi], al
add r9d, r14d
mov rsi, qword [rsp + 0x58]
mov eax, 1
mov dword [r12], r9d
jmp 0x14001c3df
xor eax, eax
add rsp, 0x30
pop r12
pop rdi
pop rbp
ret
mov ecx, 0x80004005
call fcn.1400011d0
int3