Function at 0x140016f80
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 0x140017262
mov rax, rdx
shr rax, 0x3d
jne 0x140017262
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 0x140017262
test rax, rax
setns cl
shl rax, cl
mov esi, r8d
shl rsi, 4
lea rdi, [0x1400db318]
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 0x1400172c5
movzx r15d, word [rsp + 0xa8]
movzx esi, word [rsi + rdi + 0xa]
cmp edx, 0x2710
jae 0x14001714c
cmp edx, 0x64
jae 0x14001716f
xor ecx, ecx
cmp edx, 0xa
setae cl
lea edi, [rcx + rcx*8]
inc edi
jmp 0x1400171c6
cmp edx, 0xf4240
jae 0x14001718a
cmp edx, 0x186a0
setb cl
mov ebx, 0x2710
mov edi, 0x186a0
cmovb edi, ebx
xor cl, 5
jmp 0x1400171c6
cmp edx, 0x3e8
setb cl
mov ebx, 0x64
mov edi, 0x3e8
cmovb edi, ebx
xor cl, 3
jmp 0x1400171c6
cmp edx, 0x5f5e100
jae 0x1400171ad
cmp edx, 0x989680
setb cl
mov ebx, 0xf4240
mov edi, 0x989680
cmovb edi, ebx
xor cl, 7
jmp 0x1400171c6
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 0x140017264
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 0x140017262
add al, 0x30
mov byte [r9 + rsi - 1], al
cmp r14, rsi
je 0x1400172d1
lea rax, [rcx + rsi]
cmp rax, 1
je 0x140017391
mov eax, edi
imul rax, r12
shr rax, 0x23
inc rsi
cmp edi, 0xa
mov edi, eax
jae 0x140017220
ud2
movabs rcx, 0xcccccccccccccccd
mul rcx
mov eax, edi
mov ecx, r8d
shl rax, cl
mov rcx, rax
sub rcx, r11
jbe 0x1400172c5
cmp rcx, r11
jbe 0x1400172c5
shr rdx, 3
mov rcx, rax
sub rcx, rdx
cmp rcx, rdx
jbe 0x1400172b4
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 0x140017459
sub rdx, r11
jbe 0x1400172c5
sub rax, rdx
cmp rax, rdx
jbe 0x140017481
mov qword [r14], 0
jmp 0x140017448
mov eax, edx
mov ecx, r8d
shl rax, cl
mov edx, edi
shl rdx, cl
mov rcx, rdx
sub rcx, r11
jbe 0x14001743c
cmp rcx, r11
jbe 0x14001743c
add rax, r13
mov rcx, rdx
sub rcx, rax
cmp rcx, rax
jbe 0x14001731e
mov r10, rdx
sub r10, rax
sub r10, rax
mov esi, 2
mov ecx, r8d
shl rsi, cl
cmp r10, rsi
jae 0x14001746b
sub rax, r11
jbe 0x14001743c
sub rdx, rax
cmp rdx, rax
ja 0x14001743c
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 0x1400174a5
mov rcx, rax
dec rax
inc r8
cmp byte [r9 + rcx - 1], 0x39
je 0x140017351
inc byte [r9 + rax]
cmp rcx, r14
jae 0x1400174de
add rcx, r9
mov dl, 0x30
mov rsi, r9
call fcn.14003fdf0
mov r9, rsi
mov edx, dword [rsp + 0x24]
jmp 0x1400174de
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 0x14001743c
cmp rsi, r15
jae 0x140017262
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 0x1400173b0
mov rcx, r11
sub rcx, rdx
jbe 0x14001743c
cmp rcx, rdx
jbe 0x14001743c
mov rcx, r11
sub rcx, r13
cmp rcx, r13
jbe 0x140017427
mov r8, r11
sub r8, r13
sub r8, r13
shl rax, 2
lea rax, [rax + rax*4]
cmp r8, rax
jae 0x14001746b
sub r13, rdx
mov edx, dword [rsp + 0x24]
jbe 0x14001743c
sub r11, r13
cmp r11, r13
jbe 0x1400174ec
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 0x140017448
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 0x140017448
lea eax, [rbx + 2]
cmp ax, r15w
jle 0x140017495
mov byte [r9], 0x31
mov ecx, 1
jmp 0x140017497
xor ecx, ecx
mov qword [r14], r9
mov qword [r14 + 8], rcx
mov word [r14 + 0x10], ax
jmp 0x140017448
mov byte [r9], 0x31
cmp r14, 1
je 0x1400174c4
lea rcx, [r9 + 1]
lea r8, [r14 - 1]
mov dl, 0x30
mov rsi, r9
call fcn.14003fdf0
mov r9, rsi
mov rax, qword [rsp + 0x30]
lea edx, [rax + 2]
cmp dx, di
jle 0x1400174de
cmp r14, rbx
jae 0x1400174de
mov byte [r9 + r14], 0x30
inc r14
cmp r14, rbx
jbe 0x14001756e
jmp 0x140017262
mov r8, 0xffffffffffffffff
mov rax, r14
test rax, rax
je 0x14001752b
mov rcx, rax
dec rax
inc r8
cmp byte [r9 + rcx - 1], 0x39
je 0x1400174f6
inc byte [r9 + rax]
cmp rcx, r14
jae 0x140017565
add rcx, r9
mov dl, 0x30
mov rsi, r9
call fcn.14003fdf0
mov r9, rsi
mov edx, dword [rsp + 0x24]
jmp 0x140017565
mov byte [r9], 0x31
mov rsi, r9
lea rcx, [r9 + 1]
lea r8, [r14 - 1]
mov dl, 0x30
call fcn.14003fdf0
mov rax, qword [rsp + 0x30]
add eax, 2
mov edx, eax
cmp ax, bx
jle 0x140017562
cmp r14, r15
jae 0x140017562
mov r9, rsi
mov byte [rsi + r14], 0x30
inc r14
jmp 0x140017565
mov r9, rsi
cmp r14, r15
ja 0x140017262
mov rax, qword [rsp + 0x28]
mov qword [rax], r9
mov qword [rax + 8], r14
mov word [rax + 0x10], dx
jmp 0x140017448