Function at 0x140002ca0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push r12
sub rsp, 0x58
mov r12, r8
mov r8, rcx
mov rsi, r9
cmp r9, 0x2c00016
jbe 0x140002cd0
mov eax, 0x8fd
add rsp, 0x58
pop r12
pop rsi
ret
test rdx, rdx
je 0x140002cf6
lea rax, [r9 + 3]
shr rax, 2
lea rcx, [rax + rax*2]
cmp qword [rdx], rcx
jae 0x140002cf6
mov qword [rdx], rcx
mov eax, 0x514
add rsp, 0x58
pop r12
pop rsi
ret
test r8, r8
je 0x1400030f7
test rdx, rdx
je 0x1400030f7
test r12, r12
je 0x1400030f7
mov qword [rsp + 0x50], rbp
xor ebp, ebp
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x38], r14
xor r14d, r14d
mov qword [rsp + 0x88], rbp
test r9, r9
je 0x140002d6a
nop word [rax + rax]
movsx edx, byte [r12 + rsi - 1]
lea rcx, str._r_n_t
call fcn.1400a7330
test rax, rax
je 0x140002d60
inc r14
sub rsi, 1
jne 0x140002d40
mov rdx, qword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
xor edi, edi
xor r13d, r13d
cmp rsi, 3
jbe 0x1400030b0
mov ecx, 2
mov qword [rsp + 0x80], rbx
sub rcx, r8
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x20], rcx
nop dword [rax]
nop word [rax + rax]
lea rax, [r8 + r13]
add rax, rcx
cmp rax, qword [rdx]
jae 0x1400030a3
movsx ecx, byte [rdi + r12]
call fcn.1400b4db8
test eax, eax
jne 0x140002ddb
movsx ecx, byte [rdi + r12]
call fcn.1400b4f18
test eax, eax
jne 0x140002ddb
movzx eax, byte [rdi + r12]
sub al, 0x2b
test al, 0xfb
jne 0x14000309e
movsx ecx, byte [rdi + r12 + 1]
call fcn.1400b4db8
test eax, eax
jne 0x140002e09
movsx ecx, byte [rdi + r12 + 1]
call fcn.1400b4f18
test eax, eax
jne 0x140002e09
movzx eax, byte [rdi + r12 + 1]
sub al, 0x2b
test al, 0xfb
jne 0x14000309e
movsx ecx, byte [rdi + r12 + 2]
call fcn.1400b4db8
test eax, eax
jne 0x140002e4e
movsx ecx, byte [rdi + r12 + 2]
call fcn.1400b4f18
test eax, eax
jne 0x140002e4e
movzx edx, byte [rdi + r12 + 2]
lea eax, [rdx - 0x2b]
test al, 0xfb
je 0x140002e4e
lea rcx, [rdi + 2]
lea rax, [rsi - 2]
cmp rcx, rax
jb 0x14000309e
cmp dl, 0x3d
jne 0x14000309e
movsx ecx, byte [rdi + r12 + 3]
call fcn.1400b4db8
test eax, eax
jne 0x140002e93
movsx ecx, byte [rdi + r12 + 3]
call fcn.1400b4f18
test eax, eax
jne 0x140002e93
movzx edx, byte [rdi + r12 + 3]
lea eax, [rdx - 0x2b]
test al, 0xfb
je 0x140002e93
lea rcx, [rdi + 3]
lea rax, [rsi - 2]
cmp rcx, rax
jb 0x14000309e
cmp dl, 0x3d
jne 0x14000309e
movsx eax, byte [rdi + r12]
cmp al, 0x3d
jne 0x140002ea1
xor r15d, r15d
jmp 0x140002ee5
cmp al, 0x2f
jne 0x140002ead
mov r15d, 0x3f
jmp 0x140002ee5
cmp al, 0x2b
jne 0x140002eb9
mov r15d, 0x3e
jmp 0x140002ee5
mov ecx, eax
call fcn.1400b4f18
movsx ecx, byte [rdi + r12]
test eax, eax
je 0x140002ecf
lea r15d, [rcx + 4]
jmp 0x140002ee5
call fcn.1400b4ff4
movsx ecx, byte [rdi + r12]
lea r15d, [rcx - 0x47]
test eax, eax
jne 0x140002ee5
lea r15d, [rcx - 0x41]
movsx eax, byte [rdi + r12 + 1]
cmp al, 0x3d
jne 0x140002ef3
xor ebp, ebp
jmp 0x140002f36
cmp al, 0x2f
jne 0x140002efe
mov ebp, 0x3f
jmp 0x140002f36
cmp al, 0x2b
jne 0x140002f09
mov ebp, 0x3e
jmp 0x140002f36
mov ecx, eax
call fcn.1400b4f18
movsx ecx, byte [rdi + r12 + 1]
test eax, eax
je 0x140002f1f
lea ebp, [rcx + 4]
jmp 0x140002f36
call fcn.1400b4ff4
movsx ebp, byte [rdi + r12 + 1]
test eax, eax
je 0x140002f33
add ebp, 0xffffffb9
jmp 0x140002f36
add ebp, 0xffffffbf
movsx eax, byte [rdi + r12 + 2]
cmp al, 0x3d
jne 0x140002f44
xor ebx, ebx
jmp 0x140002f87
cmp al, 0x2f
jne 0x140002f4f
mov ebx, 0x3f
jmp 0x140002f87
cmp al, 0x2b
jne 0x140002f5a
mov ebx, 0x3e
jmp 0x140002f87
mov ecx, eax
call fcn.1400b4f18
movsx ecx, byte [rdi + r12 + 2]
test eax, eax
je 0x140002f70
lea ebx, [rcx + 4]
jmp 0x140002f87
call fcn.1400b4ff4
movsx ebx, byte [rdi + r12 + 2]
test eax, eax
je 0x140002f84
add ebx, 0xffffffb9
jmp 0x140002f87
add ebx, 0xffffffbf
movsx eax, byte [rdi + r12 + 3]
cmp al, 0x3d
jne 0x140002f95
xor ecx, ecx
jmp 0x140002fd8
cmp al, 0x2f
jne 0x140002fa0
mov ecx, 0x3f
jmp 0x140002fd8
cmp al, 0x2b
jne 0x140002fab
mov ecx, 0x3e
jmp 0x140002fd8
mov ecx, eax
call fcn.1400b4f18
movsx ecx, byte [rdi + r12 + 3]
test eax, eax
je 0x140002fc1
add ecx, 4
jmp 0x140002fd8
call fcn.1400b4ff4
movsx ecx, byte [rdi + r12 + 3]
test eax, eax
je 0x140002fd5
add ecx, 0xffffffb9
jmp 0x140002fd8
add ecx, 0xffffffbf
mov r8, qword [rsp + 0x70]
movzx eax, bpl
shr al, 4
and cl, 0x3f
and al, 3
shl bpl, 4
shl r15b, 2
or al, r15b
mov byte [r8 + r13], al
movzx eax, bl
shr al, 2
shl bl, 6
and al, 0xf
or cl, bl
or al, bpl
mov rbp, qword [rsp + 0x88]
lea rbx, [rdi + 4]
mov byte [r8 + r13 + 1], al
mov byte [r8 + r13 + 2], cl
cmp rbx, rsi
jne 0x140003052
cmp byte [rdi + r12 + 2], 0x3d
lea rax, [rbp + 1]
cmovne rax, rbp
cmp byte [rdi + r12 + 3], 0x3d
mov rbp, rax
mov qword [rsp + 0x88], rax
jne 0x14000304f
inc rbp
mov qword [rsp + 0x88], rbp
cmp rbx, rsi
jae 0x14000307d
movsx edx, byte [rbx + r12]
lea rcx, str._r_n_t
call fcn.1400a7330
test rax, rax
je 0x140003078
inc r14
inc rdi
inc rbx
cmp rbx, rsi
jb 0x140003054
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
add rdi, 4
mov rcx, qword [rsp + 0x20]
add r13, 3
lea rax, [rdi + 3]
cmp rax, rsi
jb 0x140002da0
jmp 0x1400030a3
mov rdx, qword [rsp + 0x78]
mov r15, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x80]
cmp rdi, rsi
mov rdi, qword [rsp + 0x48]
jne 0x1400030f0
mov rcx, qword [rdx]
lea rax, [r14 + 3]
shr rax, 2
lea rax, [rax + rax*2]
sub rcx, rax
cmp r13, rcx
jne 0x1400030f0
sub r13, rbp
mov qword [rdx], r13
xor eax, eax
mov rbp, qword [rsp + 0x50]
mov r13, qword [rsp + 0x40]
mov r14, qword [rsp + 0x38]
add rsp, 0x58
pop r12
pop rsi
ret
mov eax, 0x5dc
jmp 0x1400030d9
mov eax, 0x8fc
add rsp, 0x58
pop r12
pop rsi
ret