Function at 0x14009cd40
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x30
xor ebx, ebx
lea eax, [rdx + 0x3f]
shr eax, 6
mov r10d, edx
sub r10d, eax
mov dword [rbp - 0x10], ebx
inc r10d
mov r13, r8
mov rdi, rcx
lea eax, [r10 + r10*2]
shr eax, 2
cmp eax, dword [r9]
ja 0x14009d074
cmp edx, 3
jbe 0x14009d05e
nop dword [rax]
nop word [rax + rax]
lea r8, [rbp - 0x10]
mov rcx, rdi
lea rdx, [rbp + 0x48]
call fcn.14009d090
test eax, eax
jne 0x14009d053
mov ecx, dword [rbp - 0x10]
movzx r14d, byte [rcx + rdi]
inc ecx
mov dword [rbp - 0x10], ecx
test r14b, r14b
je 0x14009d05a
dec dword [rbp + 0x48]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x48]
mov rcx, rdi
call fcn.14009d090
test eax, eax
jne 0x14009d079
mov ecx, dword [rbp - 0x10]
lea r8, [rbp - 0x10]
dec dword [rbp + 0x48]
lea rdx, [rbp + 0x48]
movzx r12d, byte [rcx + rdi]
inc ecx
mov dword [rbp - 0x10], ecx
mov rcx, rdi
call fcn.14009d090
test eax, eax
jne 0x14009d079
mov ecx, dword [rbp - 0x10]
lea r8, [rbp - 0x10]
dec dword [rbp + 0x48]
lea rdx, [rbp + 0x48]
movzx esi, byte [rcx + rdi]
inc ecx
mov dword [rbp - 0x10], ecx
mov rcx, rdi
call fcn.14009d090
test eax, eax
jne 0x14009d079
mov ecx, dword [rbp - 0x10]
mov r15d, dword [rbp + 0x48]
dec r15d
mov dword [rbp + 0x48], r15d
movzx r10d, byte [rcx + rdi]
inc ecx
mov dword [rbp - 0x10], ecx
cmp sil, 0x3d
jne 0x14009ce5f
cmp r10b, sil
jne 0x14009d04c
cmp r14b, 0x2b
jb 0x14009d04c
cmp r12b, 0x2b
jb 0x14009d04c
cmp sil, 0x2b
jb 0x14009d04c
cmp r10b, 0x2b
jb 0x14009d04c
cmp r14b, 0x7a
ja 0x14009d04c
cmp r12b, 0x7a
ja 0x14009d04c
cmp sil, 0x7a
ja 0x14009d04c
cmp r10b, 0x7a
ja 0x14009d04c
mov r9, qword [rbp + 0x58]
xor eax, eax
cmp r10b, 0x3d
setne al
xor ecx, ecx
cmp sil, 0x3d
setne cl
add eax, ebx
inc ecx
add ecx, eax
cmp ecx, dword [r9]
ja 0x14009d074
sub r14b, 0x2b
lea r11, [0x14020fdc0]
movzx edx, r14b
sub r12b, 0x2b
mov ecx, edx
mov r8d, 0x3f
sub r8b, r14b
and ecx, 0xf
shr r8b, 7
or rcx, 0x40
dec r8b
and edx, 0x3f
movzx eax, r8b
not al
movzx r14d, byte [rcx + r11]
and r14b, al
movzx eax, byte [rdx + r11]
and al, r8b
movzx edx, r12b
or r14b, al
mov ecx, edx
and ecx, 0xf
and edx, 0x3f
or rcx, 0x40
mov r8d, 0x3f
sub r8b, r12b
lea r12, [0x14020fdc0]
shr r8b, 7
dec r8b
movzx r11d, byte [rcx + r12]
movzx eax, r8b
not al
and r11b, al
movzx eax, byte [rdx + r12]
and al, r8b
or r11b, al
cmp sil, 0x3d
jne 0x14009cf66
xor al, al
jmp 0x14009cf9f
lea eax, [rsi - 0x2b]
mov r8d, 0x3f
movzx edx, al
sub r8b, al
mov eax, edx
shr r8b, 7
and eax, 0xf
dec r8b
or rax, 0x40
and edx, 0x3f
movzx ecx, r8b
not cl
movzx eax, byte [rax + r12]
and al, cl
movzx ecx, byte [rdx + r12]
and cl, r8b
or al, cl
cmp r10b, 0x3d
jne 0x14009cfa9
xor dl, dl
jmp 0x14009cfea
lea ecx, [r10 - 0x2b]
mov r9d, 0x3f
sub r9b, cl
movzx r8d, cl
mov edx, r8d
shr r9b, 7
and edx, 0xf
dec r9b
or rdx, 0x40
movzx ecx, r9b
not cl
and r8d, 0x3f
movzx edx, byte [rdx + r12]
and dl, cl
movzx ecx, byte [r8 + r12]
and cl, r9b
mov r9, qword [rbp + 0x58]
or dl, cl
cmp r14b, 0xff
je 0x14009d04c
cmp r11b, 0xff
je 0x14009d04c
cmp al, 0xff
je 0x14009d04c
cmp dl, 0xff
je 0x14009d04c
shl r14b, 2
movzx r8d, al
shl r8b, 6
or r8b, dl
movzx edx, r11b
shr dl, 4
or dl, r14b
mov byte [rbx + r13], dl
inc ebx
cmp sil, 0x3d
je 0x14009d034
shr al, 2
shl r11b, 4
or al, r11b
mov byte [rbx + r13], al
inc ebx
cmp r10b, 0x3d
je 0x14009d05e
mov byte [rbx + r13], r8b
inc ebx
cmp r15d, 3
ja 0x14009cda0
jmp 0x14009d05e
mov eax, 0xffffff66
jmp 0x14009d079
cmp eax, 0xffffff7c
jne 0x14009d079
mov r9, qword [rbp + 0x58]
test r13, r13
je 0x14009d06d
cmp dword [r9], ebx
jbe 0x14009d06d
mov byte [rbx + r13], 0
mov dword [r9], ebx
xor eax, eax
jmp 0x14009d079
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x70]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret