Function at 0x14006f560
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b8
movups xmmword [rsp + 0x1a0], xmm6
mov rax, qword [rdx]
imul rax, qword [rdx + 8]
mov qword [rsp + 0x90], 0
mov rsi, rcx
mov rbx, rdx
mov qword [rsp + 0x98], 0
jo 0x14006f8d0
mov edx, 0xffffffff
cmp rax, rdx
jg 0x14006f900
imul rax, qword [rbx + 0x20], 3
jo 0x14006f8d0
xor ebp, ebp
add rax, 0x16
seto bpl
jo 0x14006f8d0
test rax, rax
js 0x14006fce0
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r15, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x48], rdi
call fcn.14000a5d0
mov edx, 4
mov rcx, r15
movdqu xmm1, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x90], xmm1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
lea rax, [rdx + rax + 8]
mov dword [rax], 0x66696f71
mov byte [rax + 4], 0
mov rax, qword [rsp + 0x90]
add rax, 4
jo 0x14007016c
mov qword [rsp + 0x90], rax
mov rcx, qword [0x1400b8c70]
mov rdi, qword [rbx]
call fcn.14008ac80
cmp byte [rax], 0
mov r14, rax
jne 0x14006f8d5
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x14006fd5d
test rcx, rcx
js 0x14006fd78
mov rdx, rcx
mov rcx, r15
call fcn.14000a660
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x14006fd5d
test rcx, rcx
js 0x14006fd90
cmp rcx, rdx
jge 0x14006fd90
mov eax, edi
rol ax, 8
mov edx, eax
mov eax, edi
shr edi, 0x18
shr eax, 0x10
shl edx, 0x10
shl eax, 8
or eax, edi
movzx eax, ax
or eax, edx
mov rdx, qword [rsp + 0x98]
mov dword [rdx + rcx + 8], eax
cmp byte [r14], 0
jne 0x14006f8d5
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x14006fd67
test rcx, rcx
js 0x14006fda0
mov rdx, rcx
mov rcx, r15
call fcn.14000a660
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x14006fd67
test rcx, rcx
js 0x14006fdc0
cmp rcx, rdx
jge 0x14006fdc0
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r14], 0
jne 0x14006f8d5
mov edx, 1
mov rcx, r15
mov rdi, qword [rbx + 0x10]
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070162
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006f8d5
mov edx, 1
mov rcx, r15
movzx edi, byte [rbx + 0x18]
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070158
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006f8d5
lea r11, [rsp + 0xa0]
mov r12, qword [rbx + 0x20]
mov ecx, 0x20
xor eax, eax
mov rdi, r11
rep stosq qword [rdi], rax
test r12, r12
jle 0x14006ff65
mov edi, dword [0x1400b4968]
mov rax, r12
mov qword [rsp + 0x38], r15
xor r13d, r13d
mov qword [rsp + 0x200], rsi
movdqu xmm6, xmmword [0x1400b48a0]
mov qword [rsp + 0x78], r11
mov esi, edi
cmp rax, rbp
jle 0x14006f8b8
mov rax, qword [rbx + 0x28]
mov edx, esi
mov edi, dword [rax + rbp*4 + 8]
mov r15d, dword [rax + rbp*4 + 8]
mov ecx, edi
call fcn.1400140a0
test al, al
je 0x14006f968
lea ecx, [r13 + 1]
cmp r13b, 0x3d
je 0x14006fc70
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rbp
je 0x14006fc70
mov r13d, ecx
add rbp, 1
cmp r12, rax
je 0x14006f8a6
mov rcx, qword [rsp + 0x48]
movups xmmword [rsp + 0x80], xmm6
call fcn.140004050
cmp byte [r14], 0
jne 0x14006fcd0
cmp r12, rbp
je 0x14006ff58
mov rax, qword [rbx + 0x20]
cmp rax, rbp
jg 0x14006f841
lea rdx, [rax - 1]
mov rcx, rbp
mov rsi, qword [rsp + 0x200]
call fcn.14000c0d0
jmp 0x14006f8d5
call fcn.140009060
movdqu xmm0, xmmword [rsp + 0x90]
mov rax, rsi
movups xmmword [rsi], xmm0
movups xmm6, xmmword [rsp + 0x1a0]
add rsp, 0x1b8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov edx, 8
mov ecx, 0x40
call fcn.14000bf20
lea rdx, [0x1400b4880]
lea r9, [0x1400b488b]
mov rcx, rax
mov rax, qword [0x1400b8b50]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1400b4940]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0xa0
call fcn.14000bc80
jmp 0x14006f8d5
test r13b, r13b
je 0x14006f9c2
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub r13d, 1
or r13d, 0xffffffc0
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x140070176
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov eax, r15d
mov ecx, r15d
movzx r10d, r15b
mov r13d, r15d
shr ecx, 0x10
movzx eax, ah
shr r13d, 0x18
mov r8d, r15d
mov dword [rsp + 0x70], eax
mov eax, r15d
movzx r11d, cl
movzx eax, ah
mov dword [rsp + 0x74], ecx
mov r9, rax
lea rax, [r10 + r10*2]
lea rdx, [r9 + r9*4]
add rax, rdx
lea rdx, [r11*8]
sub rdx, r11
add rax, rdx
movzx edx, r13b
lea rcx, [rdx + rdx*4]
lea rdx, [rdx + rcx*2]
add rax, rdx
jo 0x140070126
cqo
shr rdx, 0x3a
add rax, rdx
and eax, 0x3f
sub rax, rdx
mov qword [rsp + 0x40], rax
cmp byte [r14], 0
jne 0x14006fcd0
cmp qword [rsp + 0x40], 0x3f
ja 0x140070100
mov rax, qword [rsp + 0x40]
mov edx, edi
mov dword [rsp + 0x6c], r8d
mov qword [rsp + 0x60], r11
mov ecx, dword [rsp + rax*4 + 0xa0]
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r10
call fcn.1400140a0
test al, al
jne 0x14006fd00
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x78]
mov r10, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x6c]
mov dword [rdi + rax*4], r15d
mov eax, esi
shr eax, 0x18
cmp r13b, al
jne 0x14006fdd0
movzx eax, sil
mov rdi, r9
sub r10, rax
mov eax, esi
shr esi, 0x10
movzx esi, sil
movzx eax, ah
sub r11, rsi
lea rsi, [r10 + 2]
sub rdi, rax
cmp rsi, 3
setbe al
cmp rdi, 0xfffffffffffffffe
setge dl
and edx, eax
cmp rdi, 1
setle al
and eax, edx
cmp r11, 0xfffffffffffffffe
setge dl
test al, dl
je 0x14006faf6
cmp r11, 1
jle 0x140070007
sub r10, rdi
sub r11, rdi
cmp rdi, 0xffffffffffffffe0
setge al
cmp rdi, 0x1f
lea rsi, [r10 + 8]
setle dl
and eax, edx
cmp rsi, 0xf
setbe dl
test al, dl
je 0x14006fb29
lea r13, [r11 + 8]
cmp r13, 0xf
jbe 0x140070072
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0xfe
add rax, 1
jo 0x1400701c6
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x1400701bc
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x70]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x1400701e4
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x74]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jno 0x14006fd33
call fcn.140009060
jmp 0x14006fd48
mov rcx, qword [rsp + 0x38]
mov edx, 1
or r13d, 0xffffffc0
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x14007011c
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rax, qword [rbx + 0x20]
xor r13d, r13d
jmp 0x14006f881
mov rsi, qword [rsp + 0x200]
jmp 0x14006f8d5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1400096a0
jmp 0x14006f8d5
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x40]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x14006fc5c
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rax, qword [rbx + 0x20]
mov esi, r15d
xor r13d, r13d
jmp 0x14006f881
call fcn.140009060
jmp 0x14006f6e1
call fcn.140009060
jmp 0x14006f74a
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1400096a0
jmp 0x14006f6e1
sub rdx, 1
call fcn.14000c0d0
jmp 0x14006f6e1
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1400096a0
jmp 0x14006f74a
sub rdx, 1
call fcn.14000c0d0
jmp 0x14006f74a
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0xff
add rax, 1
jo 0x1400701a8
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x14007019e
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x70]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x140070194
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x74]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x14007018a
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jno 0x14006fd33
jmp 0x14006fc5c
mov rsi, qword [rsp + 0x200]
mov r15, qword [rsp + 0x38]
mov ebx, 7
nop word [rax + rax]
mov edx, 1
mov rcx, r15
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x1400701da
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006f8d5
sub rbx, 1
jne 0x14006ff70
mov edx, 1
mov rcx, r15
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x14006f8d0
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x14006f8d5
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x50], r11
call fcn.14000a360
mov r11, qword [rsp + 0x50]
mov eax, esi
lea r9d, [rdi*4 + 8]
shl eax, 4
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
or eax, r9d
add r11, 2
or eax, r11d
or eax, 0x40
mov byte [rcx + rdx + 8], al
add rdx, 1
jo 0x14006fc5c
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x14006fd48
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.14000a360
mov rax, qword [rsp + 0x90]
lea r9, [rdi + 0x20]
mov rdx, qword [rsp + 0x98]
or r9d, 0xffffff80
mov byte [rdx + rax + 8], r9b
add rax, 1
jo 0x140070180
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x14006fcd0
mov rcx, qword [rsp + 0x38]
mov edx, 1
shl esi, 4
or esi, r13d
call fcn.14000a360
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jno 0x14006fd33
jmp 0x14006fc5c
mov rcx, qword [rsp + 0x40]
mov edx, 0x3f
mov rsi, qword [rsp + 0x200]
call fcn.14000c0d0
jmp 0x14006f8d5
call fcn.140009060
jmp 0x14006fcb7
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r10
mov dword [rsp + 0x6c], r15d
call fcn.140009060
mov r10, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
mov r11, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x6c]
jmp 0x14006fa33
call fcn.140009060
jmp 0x14006f7e8
call fcn.140009060
jmp 0x14006f799
call fcn.140009060
jmp 0x14006f650
call fcn.140009060
jmp 0x14006f9b8
call fcn.140009060
jmp 0x1400700bd
call fcn.140009060
jmp 0x14006ff18
call fcn.140009060
jmp 0x14006fec6
call fcn.140009060
jmp 0x14006fe74
mov dword [rsp + 0x50], r8d
call fcn.140009060
mov r8d, dword [rsp + 0x50]
jmp 0x14006fe1d
call fcn.140009060
jmp 0x14006fbcd
mov dword [rsp + 0x50], r8d
call fcn.140009060
mov r8d, dword [rsp + 0x50]
jmp 0x14006fb76
call fcn.140009060
jmp 0x14006ffb1
call fcn.140009060
jmp 0x14006fc1f