Function at 0x14001c020
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
test rdx, rdx
je 0x14001c302
mov rax, rdx
shr rax, 0x3d
jne 0x14001c302
mov r14, rcx
mov rax, rdx
shr rax, 0x20
mov rcx, rdx
shl rcx, 0x20
lea r10d, [r8 - 0x20]
test rax, rax
cmovne r10d, r8d
cmovne rcx, rdx
mov rax, rcx
shr rax, 0x30
mov rdx, rcx
shl rdx, 0x10
lea r8d, [r10 - 0x10]
test rax, rax
cmovne r8d, r10d
cmovne rdx, rcx
mov rax, rdx
shr rax, 0x38
mov rcx, rdx
shl rcx, 8
lea r10d, [r8 - 8]
test rax, rax
cmovne r10d, r8d
cmovne rcx, rdx
mov rax, rcx
shr rax, 0x3c
mov r8, rcx
shl r8, 4
lea r11d, [r10 - 4]
test rax, rax
cmovne r11d, r10d
cmovne r8, rcx
mov rcx, r8
shr rcx, 0x3e
lea rax, [r8*4]
lea edx, [r11 - 2]
test rcx, rcx
cmovne edx, r11d
cmovne rax, r8
xor ecx, ecx
test rax, rax
setns cl
sub edx, ecx
mov ecx, 0xffffffa0
sub ecx, edx
movsx ecx, cx
lea ecx, [rcx + rcx*4]
shl ecx, 4
add ecx, 0x153b0
movsxd rcx, ecx
imul r8, rcx, 0x7b4dc993
mov rcx, r8
shr rcx, 0x3f
shr r8, 0x20
sar r8d, 0xa
add r8d, ecx
cmp r8d, 0x51
jae 0x14001c302
test rax, rax
setns cl
shl rax, cl
mov esi, r8d
shl rsi, 4
lea rdi, [0x141d9f8f0]
mov r8, qword [rsi + rdi]
mov rcx, rax
shr rcx, 0x20
mov eax, eax
mov r10d, r8d
shr r8, 0x20
mov r11, r8
imul r11, rcx
imul r8, rax
imul rcx, r10
imul r10, rax
shr r10, 0x20
mov ebx, ecx
add rbx, r10
mov eax, r8d
add rax, rbx
sub rax, 0xffffffff80000000
shr rcx, 0x20
add rcx, r11
shr r8, 0x20
add r8, rcx
shr rax, 0x20
add dx, word [rsi + rdi + 8]
add rax, r8
mov ecx, 0xffffffc0
sub ecx, edx
movzx r10d, cx
mov r8d, r10d
and r8d, 0x3f
mov rdx, rax
mov ecx, r8d
shr rdx, cl
mov r11d, 1
shl r11, cl
lea rbp, [r11 - 1]
mov r13, rax
and r13, rbp
je 0x14001c365
movzx r15d, word [rsp + 0xa8]
movzx esi, word [rsi + rdi + 0xa]
cmp edx, 0x2710
jae 0x14001c1ec
cmp edx, 0x64
jae 0x14001c20f
xor ecx, ecx
cmp edx, 0xa
setae cl
lea edi, [rcx + rcx*8]
inc edi
jmp 0x14001c266
cmp edx, 0xf4240
jae 0x14001c22a
cmp edx, 0x186a0
setb cl
mov ebx, 0x2710
mov edi, 0x186a0
cmovb edi, ebx
xor cl, 5
jmp 0x14001c266
cmp edx, 0x3e8
setb cl
mov ebx, 0x64
mov edi, 0x3e8
cmovb edi, ebx
xor cl, 3
jmp 0x14001c266
cmp edx, 0x5f5e100
jae 0x14001c24d
cmp edx, 0x989680
setb cl
mov ebx, 0xf4240
mov edi, 0x989680
cmovb edi, ebx
xor cl, 7
jmp 0x14001c266
cmp edx, 0x3b9aca00
setb cl
mov ebx, 0x5f5e100
mov edi, 0x3b9aca00
cmovb edi, ebx
xor cl, 9
movzx ecx, cl
mov ebx, ecx
sub ebx, esi
mov esi, ebx
inc esi
cmp si, r15w
jle 0x14001c304
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r14
mov rbx, qword [rsp + 0xa0]
movsx rax, si
mov dword [rsp + 0x24], esi
sub esi, r15d
movsx r14, r15w
sub rax, r14
cmp rax, rbx
movsx r14, si
cmovae r14, rbx
neg rcx
mov r15, rbx
neg r15
mov esi, 1
mov r12d, 0xcccccccd
nop
lea rbx, [r15 + rsi]
mov eax, edx
xor edx, edx
div edi
cmp rbx, 1
je 0x14001c302
add al, 0x30
mov byte [r9 + rsi - 1], al
cmp r14, rsi
je 0x14001c371
lea rax, [rcx + rsi]
cmp rax, 1
je 0x14001c431
mov eax, edi
imul rax, r12
shr rax, 0x23
inc rsi
cmp edi, 0xa
mov edi, eax
jae 0x14001c2c0
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, edi
mov ecx, r8d
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x14001c365
cmp rcx, r11
jbe 0x14001c365
shr rdx, 3
mov rcx, rax
sub rcx, rdx
cmp rcx, rdx
jbe 0x14001c354
mov r10, rax
sub r10, rdx
sub r10, rdx
mov edi, esi
mov esi, 2
mov ecx, r8d
shl rsi, cl
cmp r10, rsi
jae 0x14001c4f9
sub rdx, r11
jbe 0x14001c365
sub rax, rdx
cmp rax, rdx
jbe 0x14001c521
mov qword [r14], 0
jmp 0x14001c4e8
mov eax, edx
mov ecx, r8d
shl rax, cl
mov edx, edi
shl rdx, cl
mov rcx, rdx
sub rcx, r11
jbe 0x14001c4dc
cmp rcx, r11
jbe 0x14001c4dc
add rax, r13
mov rcx, rdx
sub rcx, rax
cmp rcx, rax
jbe 0x14001c3be
mov r10, rdx
sub r10, rax
sub r10, rax
mov esi, 2
mov ecx, r8d
shl rsi, cl
cmp r10, rsi
jae 0x14001c50b
sub rax, r11
jbe 0x14001c4dc
sub rdx, rax
cmp rdx, rax
ja 0x14001c4dc
mov r8, 0xffffffffffffffff
mov rax, r14
movzx edi, word [rsp + 0xa8]
mov edx, dword [rsp + 0x24]
mov rbx, qword [rsp + 0xa0]
test rax, rax
je 0x14001c545
mov rcx, rax
dec rax
inc r8
cmp byte [r9 + rcx - 1], 0x39
je 0x14001c3f1
inc byte [r9 + rax]
cmp rcx, r14
jae 0x14001c57e
add rcx, r9
mov dl, 0x30
mov rsi, r9
call fcn.140053f10
mov r9, rsi
mov edx, dword [rsp + 0x24]
jmp 0x14001c57e
dec r10d
and r10d, 0x3f
mov edx, 1
movzx ebx, word [rsp + 0xa8]
mov r15, qword [rsp + 0xa0]
nop dword [rax]
mov rax, rdx
mov ecx, r10d
shr rdx, cl
test rdx, rdx
jne 0x14001c4dc
cmp rsi, r15
jae 0x14001c302
add r13, r13
lea rdi, [r13*4]
add rdi, r13
mov r13, rdi
and r13, rbp
lea rcx, [rax + rax]
lea rdx, [rcx + rcx*4]
mov ecx, r8d
shr rdi, cl
add dil, 0x30
mov byte [r9 + rsi], dil
inc rsi
cmp r14, rsi
jne 0x14001c450
mov rcx, r11
sub rcx, rdx
jbe 0x14001c4dc
cmp rcx, rdx
jbe 0x14001c4dc
mov rcx, r11
sub rcx, r13
cmp rcx, r13
jbe 0x14001c4c7
mov r8, r11
sub r8, r13
sub r8, r13
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jae 0x14001c50b
sub r13, rdx
mov edx, dword [rsp + 0x24]
jbe 0x14001c4dc
sub r11, r13
cmp r11, r13
jbe 0x14001c58c
mov rax, qword [rsp + 0x28]
mov qword [rax], 0
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r14], r9
mov qword [r14 + 8], 0
mov word [r14 + 0x10], di
jmp 0x14001c4e8
mov rax, qword [rsp + 0x28]
mov qword [rax], r9
mov qword [rax + 8], r14
mov ecx, dword [rsp + 0x24]
mov word [rax + 0x10], cx
jmp 0x14001c4e8
lea eax, [rbx + 2]
cmp ax, r15w
jle 0x14001c535
mov byte [r9], 0x31
mov ecx, 1
jmp 0x14001c537
xor ecx, ecx
mov qword [r14], r9
mov qword [r14 + 8], rcx
mov word [r14 + 0x10], ax
jmp 0x14001c4e8
mov byte [r9], 0x31
cmp r14, 1
je 0x14001c564
lea rcx, [r9 + 1]
lea r8, [r14 - 1]
mov dl, 0x30
mov rsi, r9
call fcn.140053f10
mov r9, rsi
mov rax, qword [rsp + 0x30]
lea edx, [rax + 2]
cmp dx, di
jle 0x14001c57e
cmp r14, rbx
jae 0x14001c57e
mov byte [r9 + r14], 0x30
inc r14
cmp r14, rbx
jbe 0x14001c60e
jmp 0x14001c302
mov r8, 0xffffffffffffffff
mov rax, r14
test rax, rax
je 0x14001c5cb
mov rcx, rax
dec rax
inc r8
cmp byte [r9 + rcx - 1], 0x39
je 0x14001c596
inc byte [r9 + rax]
cmp rcx, r14
jae 0x14001c605
add rcx, r9
mov dl, 0x30
mov rsi, r9
call fcn.140053f10
mov r9, rsi
mov edx, dword [rsp + 0x24]
jmp 0x14001c605
mov byte [r9], 0x31
mov rsi, r9
lea rcx, [r9 + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.140053f10
mov rax, qword [rsp + 0x30]
add eax, 2
mov edx, eax
cmp ax, bx
jle 0x14001c602
cmp r14, r15
jae 0x14001c602
mov r9, rsi
mov byte [rsi + r14], 0x30
inc r14
jmp 0x14001c605
mov r9, rsi
cmp r14, r15
ja 0x14001c302
mov rax, qword [rsp + 0x28]
mov qword [rax], r9
mov qword [rax + 8], r14
mov word [rax + 0x10], dx
jmp 0x14001c4e8