Function at 0x1400c75db
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r14, r8
mov r15, rdx
mov rsi, rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov rax, r8
mul rcx
shr rdx, 1
lea rax, [rdx + rdx*2]
shl rdx, 2
mov r12, r8
sub r12, rax
je 0x1400c7a69
mov rcx, r14
shr rcx, 0x3e
add rdx, 4
setb al
cmp ecx, 2
ja 0x1400c7a79
test al, al
jne 0x1400c7a79
lea rdi, [rsp + 0x28]
mov rcx, rdi
call fcn.14002ad16
mov rbx, qword [rdi + 8]
mov rdi, qword [rdi + 0x10]
xor ecx, ecx
mov r8, r14
mov eax, 0
sub r8, 0x1a
cmovb r8, rcx
jbe 0x1400c7920
mov ecx, 0x20
xor eax, eax
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_m
lea rdx, [rax + 0x1a]
cmp rdx, r14
ja 0x1400c7bd3
test rcx, rcx
je 0x1400c7bdf
cmp rcx, rdi
ja 0x1400c7bca
mov rdx, qword [r15 + rax]
bswap rdx
mov r10, rdx
shr r10, 0x3a
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x20], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1f], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1e], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1d], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1c], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1b], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x1a], r10b
shr edx, 0x10
and edx, 0x3f
mov dl, byte [rdx + r9]
mov byte [rbx + rcx - 0x19], dl
mov rdx, qword [r15 + rax + 6]
bswap rdx
mov r10, rdx
shr r10, 0x3a
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x18], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x17], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x16], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x15], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x14], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x13], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x12], r10b
shr edx, 0x10
and edx, 0x3f
mov dl, byte [rdx + r9]
mov byte [rbx + rcx - 0x11], dl
mov rdx, qword [r15 + rax + 0xc]
bswap rdx
mov r10, rdx
shr r10, 0x3a
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0x10], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xf], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xe], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xd], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xc], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xb], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 0xa], r10b
shr edx, 0x10
and edx, 0x3f
mov dl, byte [rdx + r9]
mov byte [rbx + rcx - 9], dl
mov rdx, qword [r15 + rax + 0x12]
bswap rdx
mov r10, rdx
shr r10, 0x3a
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 8], r10b
mov r10, rdx
shr r10, 0x34
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 7], r10b
mov r10, rdx
shr r10, 0x2e
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 6], r10b
mov r10, rdx
shr r10, 0x28
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 5], r10b
mov r10, rdx
shr r10, 0x22
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 4], r10b
mov r10, rdx
shr r10, 0x1c
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 3], r10b
mov r10d, edx
shr r10d, 0x16
and r10d, 0x3f
mov r10b, byte [r10 + r9]
mov byte [rbx + rcx - 2], r10b
shr edx, 0x10
and edx, 0x3f
mov dl, byte [rdx + r9]
mov byte [rbx + rcx - 1], dl
add rax, 0x18
add rcx, 0x20
cmp rax, r8
jbe 0x1400c7675
add rcx, 0xffffffffffffffe0
mov r10, r14
sub r10, r12
cmp rax, r10
jae 0x1400c79de
lea r8, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_m
lea r9, [rax + 3]
cmp rax, 0xfffffffffffffffc
ja 0x1400c7c12
cmp r9, r14
ja 0x1400c7c24
lea rdx, [rcx + 4]
cmp rcx, 0xfffffffffffffffb
ja 0x1400c7bf4
cmp rdx, rdi
ja 0x1400c7c00
movzx r11d, byte [r15 + rax]
mov r13d, r11d
shr r13d, 2
mov bpl, byte [r13 + r8]
mov byte [rbx + rcx], bpl
mov bpl, byte [r15 + rax + 1]
shl r11b, 4
mov r13d, ebp
shr r13b, 4
or r13b, r11b
movzx r11d, r13b
and r11d, 0x3f
mov r11b, byte [r11 + r8]
mov byte [rbx + rcx + 1], r11b
movzx eax, byte [r15 + rax + 2]
shl bpl, 2
mov r11d, eax
shr r11b, 6
or r11b, bpl
movzx r11d, r11b
and r11d, 0x3f
mov r11b, byte [r11 + r8]
mov byte [rbx + rcx + 2], r11b
and eax, 0x3f
mov al, byte [rax + r8]
mov byte [rbx + rcx + 3], al
mov rax, r9
mov rcx, rdx
cmp r9, r10
jb 0x1400c7936
jmp 0x1400c79e1
mov rdx, rcx
cmp r12, 1
je 0x1400c7a91
cmp r12, 2
jne 0x1400c7ade
cmp rdx, rdi
jae 0x1400c7b82
movzx r8d, byte [r15 + r10]
mov eax, r8d
shr eax, 2
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_m
mov al, byte [rax + r9]
mov byte [rbx + rdx], al
inc r10
cmp r10, r14
jae 0x1400c7b97
lea rcx, [rdx + 1]
cmp rcx, rdi
jae 0x1400c7bb2
mov al, byte [r15 + r10]
mov ecx, eax
shr cl, 4
shl r8b, 4
or r8b, cl
movzx ecx, r8b
and ecx, 0x3f
mov cl, byte [rcx + r9]
mov byte [rbx + rdx + 1], cl
lea rcx, [rdx + 2]
cmp rcx, rdi
jae 0x1400c7bbb
shl al, 2
and al, 0x3c
mov r8d, 3
jmp 0x1400c7aca
mov rax, r14
shr rax, 0x3e
cmp eax, 3
jb 0x1400c763a
lea rcx, [0x14018f036]
lea r8, [0x14018f0c8]
mov edx, 0x2d
call fcn.14006a548
cmp rdx, rdi
jae 0x1400c7b8b
movzx eax, byte [r15 + r10]
mov ecx, eax
shr ecx, 2
lea r8, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_m
mov cl, byte [rcx + r8]
mov byte [rbx + rdx], cl
lea rcx, [rdx + 1]
cmp rcx, rdi
jae 0x1400c7ba9
shl al, 4
and al, 0x30
mov r8d, 2
movzx eax, al
lea r9, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_m
mov al, byte [rax + r9]
mov byte [rbx + rcx], al
add rdx, r8
mov rcx, rdi
sub rcx, rdx
jb 0x1400c7c36
xor eax, eax
test r12, r12
je 0x1400c7b0f
xor r12, 3
je 0x1400c7b0f
lea r8, [rbx + rdx]
xor eax, eax
cmp rcx, rax
je 0x1400c7b73
mov byte [r8 + rax], 0x3d
inc rax
cmp r12, rax
jne 0x1400c7afd
add rdx, rax
jb 0x1400c7c48
mov r15, qword [rsp + 0x28]
lea r14, [rsp + 0x40]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.14003da50
cmp qword [r14], 0
je 0x1400c7b57
mov rax, qword [rsp + 0x48]
movabs rcx, 0x8000000000000000
cmp r15, rcx
jne 0x1400c7c60
mov r15, rbx
mov rbx, rdi
mov rdi, rax
mov qword [rsi], r15
mov qword [rsi + 8], rbx
mov qword [rsi + 0x10], rdi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x140136198]
mov rdx, rcx
call fcn.140038810
lea r8, [0x1401360a8]
jmp 0x1400c7b92
lea r8, [0x140136108]
mov rcx, rdx
jmp 0x1400c7bc2
lea r8, [0x1401360c0]
mov rcx, r10
mov rdx, r14
call fcn.140038810
lea r8, [0x140136120]
jmp 0x1400c7bc2
lea r8, [0x1401360d8]
jmp 0x1400c7bc2
lea r8, [0x1401360f0]
mov rdx, rdi
call fcn.140038810
lea r8, [0x140136180]
jmp 0x1400c7c0a
lea r8, [0x140136168]
mov rcx, rdx
jmp 0x1400c7c2e
lea r8, [0x140136180]
mov rcx, 0xffffffffffffffe0
xor edx, edx
call fcn.14003d700
lea r8, [0x140136150]
call fcn.14003d700
lea r8, [0x140136150]
mov rcx, rdx
mov rdx, rdi
call fcn.140039350
lea r8, [0x140136138]
mov rcx, rax
mov rdx, r9
call fcn.14003d700
lea r8, [0x140136138]
mov rcx, r9
mov rdx, r14
call fcn.140039350
lea r8, [0x140136048]
mov rcx, rdx
mov rdx, rdi
call fcn.140038800
lea rcx, str.usize_overflow_when_calculating_b64_length
lea r8, [0x140136090]
mov edx, 0x2a
call fcn.14003fba0
lea r8, [rsp + 0x40]
mov rcx, qword [r8 + 0x10]
mov qword [r8], r15
mov qword [r8 + 8], rbx
mov qword [r8 + 0x10], rdi
mov qword [r8 + 0x18], rax
mov qword [r8 + 0x20], rcx
lea rax, [0x14018f0f0]
mov qword [rsp + 0x20], rax
lea rcx, str.Invalid_UTF8
lea r9, [0x14018cc48]
mov edx, 0xc
call fcn.14003ead0
int3