Function at 0x1400701a0
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1a8
mov rax, qword [rdx]
imul rax, qword [rdx + 8]
mov rbp, rcx
mov rbx, rdx
jo 0x1400704f0
mov edx, 0xffffffff
cmp rax, rdx
jg 0x140070520
imul rax, qword [rbx + 0x20], 3
jo 0x1400704f0
xor esi, esi
add rax, 0x16
seto sil
jo 0x1400704f0
test rax, rax
js 0x1400707e8
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r14, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x40], rdi
call fcn.1400098e0
mov edx, 4
mov rcx, r14
movdqu xmm2, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x90], xmm2
call fcn.140009670
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 0x140070cef
mov qword [rsp + 0x90], rax
mov rcx, qword [0x1400cdc30]
mov rdi, qword [rbx]
call fcn.14009b230
cmp byte [rax], 0
mov r15, rax
jne 0x1400704f5
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x1400708cb
test rcx, rcx
js 0x1400708e0
mov rdx, rcx
mov rcx, r14
call fcn.140009970
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1400708cb
test rcx, rcx
js 0x140070a90
cmp rdx, rcx
jle 0x140070a90
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 [r15], 0
jne 0x1400704f5
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x1400708d5
test rcx, rcx
js 0x140070aa0
mov rdx, rcx
mov rcx, r14
call fcn.140009970
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1400708d5
test rcx, rcx
js 0x140070ac0
cmp rdx, rcx
jle 0x140070ac0
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r15], 0
jne 0x1400704f5
mov edx, 1
mov rcx, r14
mov rdi, qword [rbx + 0x10]
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070cf9
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400704f5
mov edx, 1
mov rcx, r14
movzx edi, byte [rbx + 0x18]
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d0d
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400704f5
mov r12, qword [rbx + 0x20]
lea rdi, [rsp + 0xa0]
mov ecx, 0x20
xor eax, eax
mov qword [rsp + 0x70], rdi
rep stosq qword [rdi], rax
test r12, r12
jle 0x140070c4d
mov rdx, r12
mov qword [rsp + 0x38], r14
mov r13d, dword [0x1400c6fa8]
xor edi, edi
mov qword [rsp + 0x1f0], rbp
cmp rdx, rsi
jle 0x1400704d2
mov rax, qword [rbx + 0x28]
mov edx, r13d
mov ebp, dword [rax + rsi*4 + 8]
mov r14d, dword [rax + rsi*4 + 8]
mov ecx, ebp
call fcn.1400134f0
test al, al
je 0x140070588
lea ecx, [rdi + 1]
cmp dil, 0x3d
je 0x140070720
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rsi
je 0x140070720
mov edi, ecx
add rsi, 1
cmp rax, r12
je 0x1400704c0
movdqu xmm1, xmmword [0x1400c6ee0]
mov rcx, qword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
call fcn.140004050
cmp byte [r15], 0
jne 0x1400707d8
cmp rsi, r12
je 0x140070c40
mov rdx, qword [rbx + 0x20]
cmp rdx, rsi
jg 0x140070454
sub rdx, 1
mov rcx, rsi
mov rbp, qword [rsp + 0x1f0]
call fcn.14000b4e0
jmp 0x1400704f5
call fcn.1400087c0
movdqu xmm0, xmmword [rsp + 0x90]
mov rax, rbp
movups xmmword [rbp], xmm0
add rsp, 0x1a8
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.14000b330
lea rdx, [0x1400c6ec0]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [str._k_n_]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1400c6f80]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.14000b090
jmp 0x1400704f5
test dil, dil
jne 0x140070780
movzx edx, byte [r15]
mov eax, r14d
mov edi, r14d
movzx r9d, r14b
mov ecx, r14d
shr edi, 0x10
movzx eax, ah
shr ecx, 0x18
mov dword [rsp + 0x6c], r14d
movzx r10d, al
movzx r11d, dil
mov dword [rsp + 0x7c], edi
lea rdi, [r9 + r9*2]
mov byte [rsp + 0x7b], al
lea rax, [r10 + r10*4]
add rdi, rax
lea rax, [r11*8]
mov dword [rsp + 0x48], ecx
sub rax, r11
mov qword [rsp + 0x60], r9
add rdi, rax
movzx eax, byte [rsp + 0x48]
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x50], r11
lea rcx, [rax + rax*4]
lea rax, [rax + rcx*2]
add rdi, rax
and edi, 0x3f
test dl, dl
jne 0x1400707d8
mov ecx, dword [rsp + rdi*4 + 0xa0]
mov edx, ebp
call fcn.1400134f0
test al, al
jne 0x140070870
mov rax, qword [rsp + 0x70]
mov r11, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
mov dword [rax + rdi*4], r14d
mov eax, r13d
mov r8d, dword [rsp + 0x6c]
shr eax, 0x18
cmp byte [rsp + 0x48], al
jne 0x140070900
movzx eax, r13b
mov rdi, r9
sub rdi, rax
mov eax, r13d
shr r13d, 0x10
movzx eax, ah
movzx eax, al
sub r10, rax
movzx eax, r13b
sub r11, rax
mov rax, rdi
mov rbp, r10
sub rax, r10
cmp rdi, 0xfffffffffffffffe
jl 0x140070ad0
cmp rdi, 1
jg 0x140070ad0
cmp r10, 0xfffffffffffffffe
jl 0x140070ad0
cmp r10, 1
setle cl
cmp r11, 0xfffffffffffffffe
setge dl
test cl, dl
je 0x140070ad0
cmp r11, 1
jg 0x140070ad0
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x48], r11
call fcn.140009670
mov r11, qword [rsp + 0x48]
lea rax, [rdi + 2]
lea rcx, [rbp*4 + 8]
shl rax, 4
mov rdx, qword [rsp + 0x90]
or eax, ecx
add r11, 2
mov rcx, qword [rsp + 0x98]
or eax, r11d
or eax, 0x40
mov byte [rcx + rdx + 8], al
add rdx, 1
jo 0x140070a85
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x1400708b3
mov rcx, qword [rsp + 0x38]
mov edx, 1
or edi, 0xffffffc0
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d03
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rax, qword [rbx + 0x20]
xor edi, edi
jmp 0x140070493
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub edi, 1
or edi, 0xffffffc0
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d2b
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
movzx edx, byte [r15]
test dl, dl
je 0x140070595
nop dword [rax]
mov rbp, qword [rsp + 0x1f0]
jmp 0x1400704f5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.140008dd0
jmp 0x1400704f5
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x48], rax
call fcn.140009670
lea r10, [rbp + 0x20]
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
or r10d, 0xffffff80
mov byte [rcx + rdx + 8], r10b
add rdx, 1
jo 0x140070d71
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rcx + rdx + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
lea rdi, [rax + 8]
shl rdi, 4
or edi, r13d
nop dword [rax + rax]
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070a85
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rax, qword [rbx + 0x20]
mov r13d, r14d
xor edi, edi
jmp 0x140070493
call fcn.1400087c0
jmp 0x140070301
call fcn.1400087c0
jmp 0x14007036a
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008dd0
jmp 0x140070301
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.140009670
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 0x140070d5d
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.140009670
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 0x140070d8f
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x7b]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d85
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x7c]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d21
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jno 0x14007089e
call fcn.1400087c0
jmp 0x1400708b3
sub rdx, 1
call fcn.14000b4e0
jmp 0x140070301
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008dd0
jmp 0x14007036a
sub rdx, 1
call fcn.14000b4e0
jmp 0x14007036a
cmp rax, 0xfffffffffffffff8
jl 0x140070b02
sub r11, rbp
cmp rbp, 0xffffffffffffffe0
setge dl
cmp rbp, 0x1f
setle cl
and edx, ecx
cmp rax, 7
setle cl
test dl, cl
je 0x140070b02
lea r13, [r11 + 8]
cmp r13, 0xf
jbe 0x140070801
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0xfe
add rax, 1
jo 0x140070d49
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov r8d, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x140070d3f
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x7b]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070d35
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400707d8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009670
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x7c]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jno 0x14007089e
jmp 0x140070a85
mov rbp, qword [rsp + 0x1f0]
mov r14, qword [rsp + 0x38]
mov ebx, 7
nop word [rax + rax]
mov edx, 1
mov rcx, r14
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x140070d17
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1400704f5
sub rbx, 1
jne 0x140070c58
mov edx, 1
mov rcx, r14
call fcn.140009670
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x1400704f0
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x1400704f5
call fcn.1400087c0
jmp 0x140070270
call fcn.1400087c0
jmp 0x1400703b9
call fcn.1400087c0
jmp 0x140070766
call fcn.1400087c0
jmp 0x140070408
call fcn.1400087c0
jmp 0x140070c99
call fcn.1400087c0
jmp 0x140070a48
call fcn.1400087c0
jmp 0x1400707c9
call fcn.1400087c0
jmp 0x140070bf8
call fcn.1400087c0
jmp 0x140070ba6
mov dword [rsp + 0x48], r8d
call fcn.1400087c0
mov r8d, dword [rsp + 0x48]
jmp 0x140070b4f
mov dword [rsp + 0x50], r8d
call fcn.1400087c0
mov r8d, dword [rsp + 0x50]
jmp 0x14007094d
mov qword [rsp + 0x48], rax
call fcn.1400087c0
mov rax, qword [rsp + 0x48]
jmp 0x140070856
call fcn.1400087c0
jmp 0x1400709f6
call fcn.1400087c0
jmp 0x1400709a4