Function at 0x140024a30
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x68
xor eax, eax
mov rbp, rcx
mov rsi, rdx
mov rbx, r8
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], 0
imul rcx, r8, 4
seto al
test r9b, r9b
je 0x140024cf8
test rax, rax
jne 0x140024f90
movabs rdi, 0x5555555555555556
mov rax, rcx
sar rcx, 0x3f
imul rdi
sub rdx, rcx
add rdx, 6
mov rcx, rdx
js 0x140024fd0
lea rax, [rsp + 0x50]
mov rcx, rax
mov qword [rsp + 0x20], rax
call fcn.14000b850
mov rax, rbx
imul rdi
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rbx
sub rdx, rax
mov rax, rbx
sub rax, rdx
seto r13b
mov qword [rsp + 0x28], rax
mov r14, rax
movzx r13d, r13b
jo 0x140024f90
test rax, rax
je 0x1400253e8
test rbx, rbx
jle 0x1400250a3
movzx eax, byte [rsi]
shl eax, 0x10
cmp rbx, 1
je 0x1400251f0
movzx edi, byte [rsi + 1]
shl edi, 8
or edi, eax
cmp rbx, 2
je 0x1400251fa
lea r12, [0x14005c560]
mov qword [rsp + 0xb0], rbp
xor r14d, r14d
mov rbp, r13
mov qword [rsp + 0x48], rdx
movzx eax, byte [rsi + rbp + 2]
mov r15, rbp
mov qword [rsp + 0x30], rbp
add rbp, 3
or edi, eax
mov rax, qword [rsp + 0x50]
cmp rax, r14
jle 0x14002503c
mov rcx, qword [rsp + 0x58]
lea r13, [r14 + 1]
mov r9d, edi
shr r9d, 0x12
test rcx, rcx
je 0x140024f70
test byte [rcx + 7], 0x40
je 0x140024f70
mov rcx, qword [rsp + 0x20]
mov dword [rsp + 0x38], r9d
call fcn.14000e690
mov r9d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x58]
movzx ecx, byte [r12 + r9]
mov byte [rax + r14 + 8], cl
mov rax, qword [rsp + 0x50]
cmp r13, rax
jge 0x140025020
mov rcx, qword [rsp + 0x58]
lea r9, [r14 + 2]
mov r11d, edi
shr r11d, 0xc
and r11d, 0x3f
test rcx, rcx
je 0x140024f80
test byte [rcx + 7], 0x40
je 0x140024f80
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], r11d
call fcn.14000e690
mov r11d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0x40]
movzx ecx, byte [r12 + r11]
mov byte [rax + r13 + 8], cl
mov rax, qword [rsp + 0x50]
cmp rax, r9
jle 0x140025058
mov rcx, qword [rsp + 0x58]
lea r13, [r14 + 3]
mov r11d, edi
shr r11d, 6
and r11d, 0x3f
test rcx, rcx
je 0x140024fb8
test byte [rcx + 7], 0x40
je 0x140024fb8
mov rcx, qword [rsp + 0x20]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], r11d
call fcn.14000e690
mov r11d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x58]
mov r9, qword [rsp + 0x40]
movzx ecx, byte [r12 + r11]
mov byte [rax + r9 + 8], cl
mov rax, qword [rsp + 0x50]
cmp rax, r13
jle 0x140025020
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140024c89
test byte [rax + 7], 0x40
je 0x140024c89
mov rcx, qword [rsp + 0x20]
call fcn.14000e690
mov rax, qword [rsp + 0x58]
and edi, 0x3f
add r14, 4
cmp qword [rsp + 0x28], rbp
movzx ecx, byte [r12 + rdi]
mov byte [rax + r13 + 8], cl
je 0x1400250d0
cmp rbx, rbp
jle 0x140025098
movzx eax, byte [rsi + rbp]
lea rcx, [r15 + 4]
shl eax, 0x10
cmp rbx, rcx
jle 0x1400250b8
movzx edi, byte [rsi + rbp + 1]
add r15, 5
shl edi, 8
or edi, eax
cmp r15, rbx
jl 0x140024b31
mov rbp, qword [rsp + 0xb0]
lea rdx, [rbx - 1]
mov rcx, r15
call fcn.14000d220
jmp 0x140024f95
test rax, rax
jne 0x140024f90
movabs rdi, 0x5555555555555556
mov rax, rcx
sar rcx, 0x3f
imul rdi
sub rdx, rcx
add rdx, 6
mov rcx, rdx
js 0x140024fd0
lea rax, [rsp + 0x50]
mov rcx, rax
mov qword [rsp + 0x20], rax
call fcn.14000b850
mov rax, rbx
imul rdi
mov rax, rbx
sar rax, 0x3f
sub rdx, rax
lea rax, [rdx + rdx*2]
mov rdx, rbx
sub rdx, rax
mov rax, rbx
sub rax, rdx
seto r13b
mov qword [rsp + 0x28], rax
mov r14, rax
movzx r13d, r13b
jo 0x140024f90
test rax, rax
je 0x140025484
test rbx, rbx
jle 0x1400250a3
movzx eax, byte [rsi]
shl eax, 0x10
cmp rbx, 1
je 0x1400251f0
movzx edi, byte [rsi + 1]
shl edi, 8
or edi, eax
cmp rbx, 2
je 0x1400251fa
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
xor r14d, r14d
mov qword [rsp + 0x38], rdx
mov r15, r14
mov qword [rsp + 0xb0], rbp
movzx eax, byte [rsi + r13 + 2]
mov r12, r13
add r13, 3
or edi, eax
mov rax, qword [rsp + 0x50]
cmp r15, rax
jge 0x140025039
mov rcx, qword [rsp + 0x58]
lea r14, [r15 + 1]
mov ebp, edi
shr ebp, 0x12
test rcx, rcx
je 0x140024fe8
test byte [rcx + 7], 0x40
je 0x140024fe8
mov rcx, qword [rsp + 0x20]
call fcn.14000e690
mov r9d, ebp
mov rax, qword [rsp + 0x58]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
movzx ecx, byte [r10 + r9]
mov byte [rax + r15 + 8], cl
mov rax, qword [rsp + 0x50]
cmp r14, rax
jge 0x140025078
mov rcx, qword [rsp + 0x58]
lea rbp, [r15 + 2]
mov r11d, edi
shr r11d, 0xc
and r11d, 0x3f
test rcx, rcx
je 0x140025000
test byte [rcx + 7], 0x40
je 0x140025000
mov rcx, qword [rsp + 0x20]
mov dword [rsp + 0x30], r11d
call fcn.14000e690
mov r11d, dword [rsp + 0x30]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
mov rax, qword [rsp + 0x58]
movzx ecx, byte [r10 + r11]
mov byte [rax + r14 + 8], cl
mov rax, qword [rsp + 0x50]
cmp rbp, rax
jge 0x140025055
mov rcx, qword [rsp + 0x58]
lea r14, [r15 + 3]
mov r11d, edi
shr r11d, 6
and r11d, 0x3f
test rcx, rcx
je 0x140025010
test byte [rcx + 7], 0x40
je 0x140025010
mov rcx, qword [rsp + 0x20]
mov dword [rsp + 0x30], r11d
call fcn.14000e690
mov r11d, dword [rsp + 0x30]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
mov rax, qword [rsp + 0x58]
movzx ecx, byte [r10 + r11]
mov byte [rax + rbp + 8], cl
mov rax, qword [rsp + 0x50]
cmp r14, rax
jge 0x140025078
mov rax, qword [rsp + 0x58]
test rax, rax
je 0x140024f0e
test byte [rax + 7], 0x40
je 0x140024f0e
mov rcx, qword [rsp + 0x20]
call fcn.14000e690
mov rax, qword [rsp + 0x58]
lea r10, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
and edi, 0x3f
add r15, 4
movzx ecx, byte [r10 + rdi]
mov byte [rax + r14 + 8], cl
mov rax, qword [rsp + 0x28]
cmp r13, rax
je 0x140025205
cmp r13, rbx
jge 0x140025303
movzx eax, byte [rsi + r13]
lea rcx, [r12 + 4]
shl eax, 0x10
cmp rbx, rcx
jle 0x1400250b8
movzx edi, byte [rsi + r13 + 1]
add r12, 5
shl edi, 8
or edi, eax
cmp rbx, r12
jg 0x140024dbc
mov r15, r12
jmp 0x140024cd9
movzx r9d, byte [r12 + r9]
mov byte [rcx + r14 + 8], r9b
jmp 0x140024b9d
movzx r11d, byte [r12 + r11]
mov byte [rcx + r13 + 8], r11b
jmp 0x140024bff
call fcn.14000a670
movdqa xmm0, xmmword [rsp + 0x50]
mov rax, rbp
movups xmmword [rbp], xmm0
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx r11d, byte [r12 + r11]
mov byte [rcx + r9 + 8], r11b
jmp 0x140024c61
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.14000acb0
jmp 0x140024f95
mov r9d, ebp
movzx r9d, byte [r10 + r9]
mov byte [rcx + r15 + 8], r9b
jmp 0x140024e22
movzx r11d, byte [r10 + r11]
mov byte [rcx + r14 + 8], r11b
jmp 0x140024e81
movzx r11d, byte [r10 + r11]
mov byte [rcx + rbp + 8], r11b
jmp 0x140024edf
lea rdx, [rax - 1]
mov rcx, r13
mov rbp, qword [rsp + 0xb0]
call fcn.14000d220
jmp 0x140024f95
mov r14, r15
mov rbp, qword [rsp + 0xb0]
lea rdx, [rax - 1]
mov rcx, r14
call fcn.14000d220
jmp 0x140024f95
mov r9, rbp
lea rdx, [rax - 1]
mov rcx, r9
mov rbp, qword [rsp + 0xb0]
call fcn.14000d220
jmp 0x140024f95
lea rdx, [rax - 1]
mov rcx, r14
mov rbp, qword [rsp + 0xb0]
call fcn.14000d220
jmp 0x140024f95
mov r13, rbp
mov rbp, qword [rsp + 0xb0]
lea rdx, [rbx - 1]
mov rcx, r13
call fcn.14000d220
jmp 0x140024f95
mov rbp, qword [rsp + 0xb0]
lea rdx, [rbx - 1]
call fcn.14000d220
jmp 0x140024f95
mov rdx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xb0]
cmp rdx, 1
je 0x140025310
cmp rdx, 2
jne 0x1400251de
mov rax, qword [rsp + 0x28]
cmp rbx, rax
jle 0x1400254db
mov rcx, qword [rsp + 0x30]
movzx eax, byte [rsi + rax]
add rcx, 4
shl eax, 0x10
cmp rbx, rcx
jle 0x1400250c0
movzx edx, byte [rsi + rcx]
mov rcx, qword [rsp + 0x50]
cmp rcx, r14
jle 0x1400254ca
mov rcx, qword [rsp + 0x20]
lea rsi, [0x14005c560]
movzx ebx, dl
lea rdi, [r14 + 1]
shl ebx, 8
or ebx, eax
call fcn.140024990
mov eax, ebx
shr eax, 0x12
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + r14 + 8], dl
mov rax, qword [rsp + 0x50]
cmp rax, rdi
jle 0x1400254ec
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rdi + 8], dl
mov rax, qword [rsp + 0x50]
lea rdi, [r14 + 2]
cmp rax, rdi
jle 0x1400254ec
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov eax, ebx
lea rbx, [r14 + 3]
shr eax, 6
and eax, 0x3c
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rdi + 8], dl
mov rax, qword [rsp + 0x50]
cmp rax, rbx
jle 0x1400252f2
mov rcx, qword [rsp + 0x20]
add r14, 4
call fcn.140024990
mov rax, qword [rsp + 0x58]
mov byte [rax + rbx + 8], 0x3d
mov rcx, qword [rsp + 0x20]
mov rdx, r14
call fcn.14000b850
jmp 0x140024f95
mov ecx, 1
jmp 0x1400250c0
mov r15d, 2
jmp 0x140024ce1
mov rdx, qword [rsp + 0x38]
mov r14, r15
mov rbp, qword [rsp + 0xb0]
cmp rdx, 1
je 0x14002540f
cmp rdx, 2
jne 0x1400251de
cmp r13, rbx
jge 0x1400250a3
movzx eax, byte [rsi + r13]
lea rcx, [r13 + 1]
shl eax, 0x10
cmp rbx, rcx
jle 0x1400250c0
mov rdx, qword [rsp + 0x50]
movzx ebx, byte [rsi + rcx]
cmp r14, rdx
jge 0x1400254fd
mov rcx, qword [rsp + 0x20]
lea rsi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
shl ebx, 8
lea rdi, [r14 + 1]
or ebx, eax
call fcn.140024990
mov eax, ebx
shr eax, 0x12
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + r14 + 8], dl
mov rax, qword [rsp + 0x50]
cmp rax, rdi
jle 0x1400254ec
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov eax, ebx
shr eax, 0xc
and eax, 0x3f
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rdi + 8], dl
mov rax, qword [rsp + 0x50]
lea rdi, [r14 + 2]
cmp rax, rdi
jle 0x1400254ec
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov eax, ebx
lea rbx, [r14 + 3]
shr eax, 6
and eax, 0x3c
movzx edx, byte [rsi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rdi + 8], dl
mov rax, qword [rsp + 0x50]
cmp rbx, rax
jl 0x1400251c6
lea rdx, [rax - 1]
mov rcx, rbx
call fcn.14000d220
jmp 0x140024f95
mov rbp, qword [rsp + 0xb0]
jmp 0x1400250a3
mov rax, qword [rsp + 0x28]
add rsi, rax
cmp rbx, rax
jle 0x1400254ab
mov rax, qword [rsp + 0x50]
movzx edx, byte [rsi]
cmp rax, r14
jle 0x140025044
mov rcx, qword [rsp + 0x58]
mov esi, edx
mov ebx, edx
shl esi, 0x10
shr ebx, 2
test rcx, rcx
je 0x1400254b3
test byte [rcx + 7], 0x40
je 0x1400254b3
mov rcx, qword [rsp + 0x20]
lea rdi, [0x14005c560]
call fcn.14000e690
mov edx, ebx
mov rax, qword [rsp + 0x58]
movzx edx, byte [rdi + rdx]
mov byte [rax + r14 + 8], dl
mov rax, qword [rsp + 0x50]
lea rbx, [r14 + 1]
cmp rbx, rax
jge 0x1400252f2
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov eax, esi
shr eax, 0xc
and eax, 0x30
movzx edx, byte [rdi + rax]
mov rax, qword [rsp + 0x58]
mov byte [rax + rbx + 8], dl
mov rax, qword [rsp + 0x50]
lea rbx, [r14 + 2]
cmp rax, rbx
jle 0x1400252f2
mov rcx, qword [rsp + 0x20]
call fcn.140024990
mov rax, qword [rsp + 0x58]
mov byte [rax + rbx + 8], 0x3d
mov rax, qword [rsp + 0x50]
lea rbx, [r14 + 3]
cmp rax, rbx
jle 0x1400252f2
jmp 0x1400251c6
cmp rdx, 1
je 0x140025321
cmp rdx, 2
jne 0x1400254a3
movzx eax, byte [rsi]
xor r14d, r14d
mov ecx, 1
shl eax, 0x10
jmp 0x140025114
cmp r13, rbx
jge 0x1400250a3
add rsi, r13
mov rax, qword [rsp + 0x50]
movzx edx, byte [rsi]
cmp rax, r14
jle 0x140025044
mov rcx, qword [rsp + 0x58]
mov esi, edx
mov ebx, edx
shl esi, 0x10
shr ebx, 2
test rcx, rcx
je 0x14002550e
test byte [rcx + 7], 0x40
je 0x14002550e
mov rcx, qword [rsp + 0x20]
lea rdi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
call fcn.14000e690
mov rax, qword [rsp + 0x58]
movzx edx, byte [rdi + rbx]
mov byte [rax + r14 + 8], dl
mov rax, qword [rsp + 0x50]
lea rbx, [r14 + 1]
cmp rax, rbx
jle 0x1400252f2
jmp 0x140025387
cmp rdx, 1
je 0x14002541b
cmp rdx, 2
jne 0x1400254a3
movzx eax, byte [rsi]
xor r14d, r14d
mov ecx, 1
shl eax, 0x10
jmp 0x140025243
xor r14d, r14d
jmp 0x1400251de
mov rcx, rax
jmp 0x1400250c0
lea rdi, [0x14005c560]
mov edx, ebx
movzx edx, byte [rdi + rdx]
mov byte [rcx + r14 + 8], dl
jmp 0x14002537a
lea rdx, [rcx - 1]
mov rcx, r14
call fcn.14000d220
jmp 0x140024f95
lea rdx, [rbx - 1]
mov rcx, rax
call fcn.14000d220
jmp 0x140024f95
lea rdx, [rax - 1]
mov rcx, rdi
call fcn.14000d220
jmp 0x140024f95
sub rdx, 1
mov rcx, r14
call fcn.14000d220
jmp 0x140024f95
lea rdi, str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789__
movzx edx, byte [rdi + rbx]
mov byte [rcx + r14 + 8], dl
jmp 0x140025472