Function at 0x14008643e
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
lea r9, [rdx + r8]
mov r12b, 1
test r8, r8
mov qword [rsp + 0xa0], rcx
je 0x14008651c
xor r8d, r8d
movabs rsi, 0x100002600
xor eax, eax
mov rdi, rdx
movzx ebx, byte [rdi]
test bl, bl
js 0x140086488
lea r10, [rdi + 1]
jmp 0x1400864f2
mov r11d, ebx
and r11d, 0x1f
movzx r14d, byte [rdi + 1]
and r14d, 0x3f
cmp bl, 0xdf
jbe 0x1400864d5
movzx ebp, byte [rdi + 2]
shl r14d, 6
and ebp, 0x3f
or ebp, r14d
cmp bl, 0xf0
jb 0x1400864e5
lea r10, [rdi + 4]
movzx ebx, byte [rdi + 3]
and r11d, 7
shl r11d, 0x12
shl ebp, 6
and ebx, 0x3f
or ebx, ebp
or ebx, r11d
cmp ebx, 0x110000
jne 0x1400864f2
jmp 0x14008652f
lea r10, [rdi + 2]
shl r11d, 6
or r11d, r14d
mov ebx, r11d
jmp 0x1400864f2
lea r10, [rdi + 3]
shl r11d, 0xc
or ebp, r11d
mov ebx, ebp
mov r11, r10
sub r11, rdi
add r11, rax
cmp ebx, 0x20
ja 0x140086527
mov edi, ebx
bt rsi, rdi
jae 0x140086527
mov rax, r11
mov rdi, r10
cmp r10, r9
jne 0x14008647b
jmp 0x1400865d5
xor r11d, r11d
mov r10, rdx
xor r8d, r8d
jmp 0x140086532
xor r12d, r12d
mov r8, r11
jmp 0x140086532
mov r11, rax
cmp r10, r9
je 0x1400865d0
movabs rsi, 0x100002600
movzx edi, byte [r9 - 1]
test dil, dil
js 0x140086555
lea rbx, [r9 - 1]
jmp 0x1400865b0
movzx ebp, byte [r9 - 2]
cmp bpl, 0xc0
jge 0x140086585
movzx r14d, byte [r9 - 3]
cmp r14b, 0xc0
jge 0x14008658e
lea rbx, [r9 - 4]
movzx r15d, byte [r9 - 4]
and r15d, 7
shl r15d, 6
and r14d, 0x3f
or r14d, r15d
jmp 0x140086596
lea rbx, [r9 - 2]
and ebp, 0x1f
jmp 0x1400865a0
lea rbx, [r9 - 3]
and r14d, 0xf
shl r14d, 6
and ebp, 0x3f
or ebp, r14d
shl ebp, 6
and edi, 0x3f
or edi, ebp
cmp edi, 0x110000
je 0x1400865d0
cmp edi, 0x20
ja 0x1400865c7
mov edi, edi
bt rsi, rdi
jae 0x1400865c7
mov r9, rbx
cmp r10, rbx
jne 0x140086545
jmp 0x1400865d0
sub r11, r10
add r11, r9
mov r8, r11
test r12b, r12b
je 0x1400865d7
xor eax, eax
add rdx, rax
sub r8, rax
lea rsi, [rsp + 0xc0]
mov rcx, rsi
mov r9d, 0x2f
call fcn.140086fe7
mov r14, qword [rsi]
mov rdi, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov r8, qword [rsi + 0x18]
xor eax, eax
lea r15, [0x140336e40]
cmp rdi, rax
je 0x140086624
movzx ecx, byte [r14 + rax]
inc rax
cmp byte [rcx + r15], 0
jne 0x14008660b
jmp 0x140086ecf
test rdi, rdi
je 0x140086ecf
test rdx, rdx
je 0x140086ecf
lea rsi, [rsp + 0xc0]
mov rcx, rsi
mov r9d, 0x3b
call fcn.140086fe7
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov rsi, qword [rsi + 0x18]
call fcn.14008620a
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0x70], rdx
xor eax, eax
cmp qword [rsp + 0x70], rax
je 0x140086691
mov rcx, qword [rsp + 0xa8]
movzx ecx, byte [rcx + rax]
inc rax
cmp byte [rcx + r15], 0
jne 0x14008666f
jmp 0x140086ecf
cmp qword [rsp + 0x70], 0
je 0x140086ecf
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 8
mov qword [rsp + 0x88], rax
test rbx, rbx
je 0x140086e23
xor edx, edx
lea rcx, [rsp + 0xc0]
mov qword [rcx], rdx
mov qword [rcx + 8], rsi
mov qword [rcx + 0x10], rbx
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rsi
mov qword [rcx + 0x30], 1
movabs rax, 0x3b0000003b
mov qword [rcx + 0x38], rax
mov word [rcx + 0x40], 1
mov eax, 8
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xb8], rdx
mov rax, rdx
shl rax, 4
lea rax, [rax + rax*2]
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0xc0]
call fcn.1400870bd
test rax, rax
je 0x140086e23
mov r8, rdx
test rdx, rdx
je 0x140086801
mov rdx, r8
add rdx, rax
xor ecx, ecx
mov r9, rax
movzx r10d, byte [r9]
test r10b, r10b
js 0x140086762
lea rsi, [r9 + 1]
jmp 0x1400867d1
mov r11d, r10d
and r11d, 0x1f
movzx ebp, byte [r9 + 1]
and ebp, 0x3f
cmp r10b, 0xdf
jbe 0x1400867b3
movzx ebx, byte [r9 + 2]
shl ebp, 6
and ebx, 0x3f
or ebx, ebp
cmp r10b, 0xf0
jb 0x1400867c3
movzx r10d, byte [r9 + 3]
and r11d, 7
shl r11d, 0x12
shl ebx, 6
and r10d, 0x3f
or r10d, ebx
or r10d, r11d
cmp r10d, 0x110000
je 0x1400867fc
lea rsi, [r9 + 4]
jmp 0x1400867d1
lea rsi, [r9 + 2]
shl r11d, 6
or r11d, ebp
mov r10d, r11d
jmp 0x1400867d1
lea rsi, [r9 + 3]
shl r11d, 0xc
or ebx, r11d
mov r10d, ebx
cmp r10d, 0x20
ja 0x140086803
mov r10d, r10d
movabs r11, 0x100002600
bt r11, r10
jae 0x140086803
sub rcx, r9
add rcx, rsi
mov r9, rsi
cmp rsi, rdx
jne 0x140086753
mov rcx, r8
jmp 0x140086803
xor ecx, ecx
add rax, rcx
sub r8, rcx
lea rcx, [rsp + 0x38]
mov rdx, rax
mov r9d, 0x3d
call fcn.140086fe7
mov rsi, qword [rsp + 0x38]
mov r12, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
test r12, r12
je 0x14008684e
xor eax, eax
cmp r12, rax
je 0x140086c64
movzx ecx, byte [rsi + rax]
inc rax
cmp byte [rcx + r15], 0
jne 0x140086837
xor ebp, ebp
test r13, r13
je 0x140086726
test rbx, rbx
je 0x140086c2e
cmp byte [r13], 0x22
jne 0x140086c2e
mov dword [rsp + 0x94], ebp
lea rax, [rbx - 1]
sub rax, 1
mov ecx, 0
cmovae rcx, rax
call fcn.1401a6baf
lea rbp, [r13 + 1]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x68], r13
add rbx, r13
cmp rbp, rbx
je 0x140086b8d
movzx r13d, byte [rbp]
test r13b, r13b
js 0x1400868c6
inc rbp
jmp 0x140086923
mov eax, r13d
and eax, 0x1f
movzx edx, byte [rbp + 1]
and edx, 0x3f
cmp r13b, 0xdf
jbe 0x140086909
movzx ecx, byte [rbp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r13b, 0xf0
jb 0x140086917
movzx r13d, byte [rbp + 3]
add rbp, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and r13d, 0x3f
or r13d, ecx
or r13d, eax
jmp 0x140086923
add rbp, 2
shl eax, 6
or eax, edx
mov r13d, eax
jmp 0x140086923
add rbp, 3
shl eax, 0xc
or ecx, eax
mov r13d, ecx
cmp r13d, 0x5c
je 0x14008697e
cmp r13d, 0x22
je 0x140086cc8
cmp r13d, 0x110000
je 0x140086b8d
cmp r13d, 0x80
jae 0x1400869ec
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [rsp + 0x38]
jne 0x140086968
lea rcx, [rsp + 0x38]
call fcn.140273052
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov byte [rax + rdx], r13b
inc rdx
mov qword [rsp + 0x48], rdx
jmp 0x1400868ae
cmp rbp, rbx
je 0x140086bdd
movzx r13d, byte [rbp]
test r13b, r13b
jns 0x140086c0c
mov eax, r13d
and eax, 0x1f
movzx edx, byte [rbp + 1]
and edx, 0x3f
cmp r13b, 0xdf
jbe 0x140086a20
movzx ecx, byte [rbp + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r13b, 0xef
jbe 0x140086a69
movzx r13d, byte [rbp + 3]
add rbp, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and r13d, 0x3f
or r13d, ecx
or r13d, eax
cmp r13d, 0x110000
jne 0x140086a75
jmp 0x140086be0
mov dword [rsp + 0x2c], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x140086a2e
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x2c], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2d], r13b
mov eax, 2
jmp 0x140086b71
add rbp, 2
shl eax, 6
or eax, edx
mov r13d, eax
jmp 0x140086a75
cmp r13d, 0x10000
jae 0x140086b3a
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x2c], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2e], r13b
mov eax, 3
jmp 0x140086b71
add rbp, 3
shl eax, 0xc
or ecx, eax
mov r13d, ecx
cmp r13d, 0x80
jb 0x140086c0f
mov dword [rsp + 0x2c], 0
mov eax, r13d
cmp r13d, 0x800
jae 0x140086ab3
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x2c], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2d], r13b
mov eax, 2
jmp 0x140086b1e
cmp r13d, 0x10000
jae 0x140086ae7
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x2c], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2e], r13b
mov eax, 3
jmp 0x140086b1e
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x2c], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2e], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2f], r13b
mov eax, 4
lea r8, [rsp + rax]
add r8, 0x2c
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x2c]
call fcn.140085ef1
jmp 0x1400868ae
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x2c], al
mov eax, r13d
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2d], al
mov eax, r13d
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x2e], al
and r13b, 0x3f
or r13b, 0x80
mov byte [rsp + 0x2f], r13b
mov eax, 4
lea r8, [rsp + rax]
add r8, 0x2c
lea rcx, [rsp + 0x38]
lea rdx, [rsp + 0x2c]
call fcn.140085ef1
jmp 0x1400868ae
lea rcx, [rsp + 0xc0]
call fcn.1400870bd
mov rbp, rax
test rax, rax
je 0x140086cc8
mov rbx, rdx
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [rsp + 0x38]
jne 0x140086bc4
lea rcx, [rsp + 0x38]
call fcn.140273052
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x40]
mov byte [rax + rdx], 0x3b
inc rdx
mov qword [rsp + 0x48], rdx
add rbx, rbp
jmp 0x1400868ae
mov rbp, rbx
lea rcx, [rsp + 0xc0]
call fcn.1400870bd
add rdx, rax
test rax, rax
cmovne rbx, rdx
cmovne rbp, rax
mov r13d, 0x3b
mov eax, 0x5c
cmove r13d, eax
jmp 0x140086c0f
inc rbp
mov rdx, qword [rsp + 0x48]
cmp rdx, qword [rsp + 0x38]
jne 0x140086968
lea rcx, [rsp + 0x38]
call fcn.140273052
jmp 0x140086963
mov rcx, r13
mov rdx, rbx
call fcn.14008620a
mov ecx, ebp
mov rbp, rax
test rdx, rdx
setne al
test cl, al
je 0x140086726
mov rbx, rdx
mov rcx, rbp
call fcn.1400871df
test al, al
je 0x140086726
jmp 0x140086d23
mov bpl, 1
cmp qword [rsp + 0xb8], 0
je 0x140086850
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x30], rbx
xor ebx, ebx
mov r13, qword [rsp + 0x98]
mov rbp, qword [rsp + 0xb0]
cmp qword [r13 + rbx + 0x10], r12
jne 0x140086cad
mov rcx, qword [r13 + rbx + 8]
mov rdx, rsi
mov r8, r12
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x140086d12
add rbx, 0x30
cmp rbp, rbx
jne 0x140086c92
mov rbx, qword [rsp + 0x30]
mov r13, qword [rsp + 0x68]
mov bpl, 1
jmp 0x140086850
cmp byte [rsp + 0x94], 0
je 0x140086cec
mov rcx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x30]
call fcn.1400871df
mov r13, qword [rsp + 0x38]
test al, al
je 0x140086cf1
jmp 0x140086d43
mov r13, qword [rsp + 0x38]
test r13, r13
je 0x140086726
mov r8, qword [rsp + 0x40]
mov rcx, qword [0x1403f9220]
xor edx, edx
call fcn.1402e3f64
jmp 0x140086726
xor ebp, ebp
mov rbx, qword [rsp + 0x30]
mov r13, qword [rsp + 0x68]
jmp 0x140086850
mov rcx, rbx
call fcn.1401a6baf
mov r13, rax
mov qword [rsp + 0x30], rdx
mov rcx, rdx
mov rdx, rbp
mov r8, rbx
call sub.msvcrt.dll_memcpy
jmp 0x140086d52
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x30], rax
mov rbx, qword [rsp + 0x48]
mov rcx, r12
call fcn.1401a6baf
mov qword [rsp + 0x68], rax
mov rbp, rdx
mov rcx, rdx
mov rdx, rsi
mov r8, r12
call sub.msvcrt.dll_memcpy
test r12, r12
je 0x140086d95
xor eax, eax
mov cl, byte [rbp + rax]
lea edx, [rcx - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
mov byte [rbp + rax], dl
inc rax
cmp r12, rax
jne 0x140086d77
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x50], r13
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rbx
mov rdx, qword [rsp + 0x88]
cmp rdx, qword [rsp + 0x78]
jne 0x140086dde
lea rcx, [rsp + 0x78]
call fcn.1401381bf
mov rdx, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
lea rax, [rdx + rdx*2]
shl rax, 4
movups xmm0, xmmword [rsp + 0x38]
movups xmm1, xmmword [rsp + 0x48]
movups xmm2, xmmword [rsp + 0x58]
movups xmmword [rcx + rax + 0x20], xmm2
movups xmmword [rcx + rax + 0x10], xmm1
mov qword [rsp + 0x98], rcx
movups xmmword [rcx + rax], xmm0
inc rdx
mov qword [rsp + 0x88], rdx
jmp 0x14008670b
mov rcx, rdi
call fcn.1401a6baf
mov r15, rax
mov rbx, rdx
mov rcx, rdx
mov rdx, r14
mov r8, rdi
call sub.msvcrt.dll_memcpy
xor eax, eax
mov r12, qword [rsp + 0x70]
mov cl, byte [rbx + rax]
lea edx, [rcx - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
mov byte [rbx + rax], dl
inc rax
cmp rdi, rax
jne 0x140086e46
mov rcx, r12
call fcn.1401a6baf
mov rsi, rax
mov r14, rdx
mov rcx, rdx
mov rdx, qword [rsp + 0xa8]
mov r8, r12
call sub.msvcrt.dll_memcpy
xor eax, eax
mov cl, byte [r14 + rax]
lea edx, [rcx - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
mov byte [r14 + rax], dl
inc rax
cmp r12, rax
jne 0x140086e85
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0xd0], rax
movups xmm0, xmmword [rsp + 0x78]
movaps xmmword [rsp + 0xc0], xmm0
movabs rax, 0x8000000000000000
cmp r15, rax
jne 0x140086ef8
mov rax, qword [rsp + 0xa0]
movabs rcx, 0x8000000000000000
mov qword [rax], rcx
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0xa0]
mov qword [rcx], r15
mov qword [rcx + 8], rbx
mov qword [rcx + 0x10], rdi
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], r14
mov rax, qword [rsp + 0x70]
mov qword [rcx + 0x28], rax
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rcx + 0x30], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rcx + 0x40], rax
jmp 0x140086ee4