Function at 0x1400714f0
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
movups xmmword [rsp + 0x190], xmm6
mov rax, qword [rdx]
imul rax, qword [rdx + 8]
mov qword [rsp + 0x80], 0
mov r12, rcx
mov rbp, rdx
mov qword [rsp + 0x88], 0
jo 0x1400718d0
mov edx, 0xffffffff
cmp rax, rdx
jg 0x140071908
imul rax, qword [rbp + 0x20], 3
jo 0x1400718d0
xor edi, edi
add rax, 0x16
seto dil
mov r15, rdi
jo 0x1400718d0
test rax, rax
js 0x140071b30
lea rsi, [rsp + 0x70]
mov rdx, rax
lea r13, [rsp + 0x80]
mov rcx, rsi
mov qword [rsp + 0x48], rsi
call fcn.14000a150
movdqu xmm1, xmmword [rsp + 0x70]
mov edx, 4
mov rcx, r13
movups xmmword [rsp + 0x80], xmm1
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
lea rax, [rdx + rax + 8]
mov dword [rax], 0x66696f71
mov byte [rax + 4], 0
mov rax, qword [rsp + 0x80]
add rax, 4
jo 0x1400720b3
mov qword [rsp + 0x80], rax
mov rcx, qword [0x1400d7510]
call fcn.1400a4c00
cmp byte [rax], 0
mov rsi, rax
jne 0x1400718d5
mov r10, qword [rsp + 0x80]
add r10, 4
jo 0x140071cea
test r10, r10
js 0x140071d00
mov rdx, r10
mov rcx, r13
mov rbx, qword [rbp]
call fcn.14000a0f0
mov rdx, qword [rsp + 0x80]
mov rcx, rdx
sub rcx, 4
jo 0x140071cea
test rcx, rcx
js 0x140071d20
cmp rdx, rcx
jle 0x140071d20
mov eax, ebx
rol ax, 8
mov edx, eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
shl edx, 0x10
shl eax, 8
or eax, ebx
movzx eax, ax
or eax, edx
mov rdx, qword [rsp + 0x88]
mov dword [rdx + rcx + 8], eax
cmp byte [rsi], 0
jne 0x1400718d5
mov r10, qword [rsp + 0x80]
add r10, 4
jo 0x140071cf4
test r10, r10
js 0x140071d30
mov rdx, r10
mov rcx, r13
mov rbx, qword [rbp + 8]
call fcn.14000a0f0
mov rdx, qword [rsp + 0x80]
mov rcx, rdx
sub rcx, 4
jo 0x140071cf4
cmp rdx, rcx
jle 0x140071d50
test rcx, rcx
js 0x140071d50
mov eax, ebx
rol ax, 8
mov edx, eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
shl edx, 0x10
shl eax, 8
or eax, ebx
movzx eax, ax
or eax, edx
mov rdx, qword [rsp + 0x88]
mov dword [rdx + rcx + 8], eax
cmp byte [rsi], 0
jne 0x1400718d5
mov edx, 1
mov rcx, r13
mov rbx, qword [rbp + 0x10]
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], bl
add rax, 1
jo 0x14007209f
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x1400718d5
mov edx, 1
mov rcx, r13
movzx ebx, byte [rbp + 0x18]
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], bl
add rax, 1
jo 0x140072095
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x1400718d5
lea rdi, [rsp + 0x90]
mov ecx, 0x20
xor eax, eax
mov qword [rsp + 0x68], rdi
rep stosq qword [rdi], rax
mov rdi, qword [rbp + 0x20]
test rdi, rdi
jle 0x140071ed0
mov byte [rsp + 0x40], 0
movdqu xmm6, xmmword [0x1400d0100]
xor r14d, r14d
mov rbx, r15
mov byte [rsp + 0x38], 0xff
mov byte [rsp + 0x47], 0
mov byte [rsp + 0x46], 0
mov qword [rsp + 0x1f0], r12
mov rcx, qword [rbp + 0x28]
lea rdx, [rbx*4]
lea rax, [rcx + rdx]
mov r15d, dword [rcx + rdx + 8]
xor edx, edx
mov dl, byte [rsp + 0x46]
movzx r8d, byte [rax + 8]
movzx r11d, byte [rax + 9]
movzx r9d, byte [rax + 0xa]
movzx r12d, byte [rax + 0xb]
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x38]
mov byte [rsp + 0x44], r8b
mov byte [rsp + 0x34], r11b
mov dh, al
movzx eax, byte [rsp + 0x47]
shl ecx, 0x18
mov byte [rsp + 0x45], r9b
movzx edx, dx
shl eax, 0x10
or edx, eax
or edx, ecx
mov ecx, r15d
call fcn.140013ce0
test al, al
je 0x140071970
lea edx, [r14 + 1]
cmp r14b, 0x3d
je 0x140071ac8
mov rax, qword [rbp + 0x20]
sub rax, 1
cmp rbx, rax
je 0x140071ac8
mov r14d, edx
add rbx, 1
mov r15, rbx
jo 0x1400718c7
cmp rdi, qword [rbp + 0x20]
je 0x140071896
mov rcx, qword [rsp + 0x48]
movups xmmword [rsp + 0x70], xmm6
call fcn.1400043d0
cmp byte [rsi], 0
jne 0x140071b20
cmp r15, rdi
jge 0x140071ec8
mov rdx, qword [rbp + 0x20]
test r15, r15
js 0x1400718b1
cmp r15, rdx
jl 0x1400717e3
sub rdx, 1
mov rcx, r15
mov r12, qword [rsp + 0x1f0]
call fcn.14000b7e0
jmp 0x1400718d5
mov r12, qword [rsp + 0x1f0]
nop
call fcn.140008cf0
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, r12
movups xmmword [r12], xmm0
movups xmm6, xmmword [rsp + 0x190]
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.14000a2f0
lea rdx, [0x1400d00e0]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [0x1400d7350]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1400d01a0]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.14000b530
jmp 0x1400718d5
test r14b, r14b
jne 0x140071b50
movzx r9d, byte [rsp + 0x44]
movzx r11d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x45]
lea r14, [r9 + r9*2]
lea rax, [r11 + r11*4]
add rax, r14
lea r14, [r10*8]
sub r14, r10
add r14, rax
movzx eax, r12b
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
add r14, rax
and r14d, 0x3f
cmp byte [rsi], 0
jne 0x140071b20
mov ecx, dword [rsp + r14*4 + 0x90]
mov edx, r15d
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x50], r9
call fcn.140013ce0
mov r9, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
test al, al
mov r10, qword [rsp + 0x60]
jne 0x140071c78
mov ecx, dword [rsp + 0x34]
xor eax, eax
mov al, byte [rsp + 0x44]
movzx edx, byte [rsp + 0x45]
mov ah, cl
mov ecx, r12d
shl edx, 0x10
movzx eax, ax
shl ecx, 0x18
or eax, edx
or eax, ecx
mov rcx, qword [rsp + 0x68]
mov dword [rcx + r14*4], eax
cmp r12b, byte [rsp + 0x38]
jne 0x140071d60
movzx edx, byte [rsp + 0x46]
mov rax, r9
sub rax, rdx
movzx edx, byte [rsp + 0x40]
lea r14, [rax + 2]
sub r11, rdx
movzx edx, byte [rsp + 0x47]
sub r10, rdx
cmp r14, 3
ja 0x140071be1
lea r9, [r11 + 2]
cmp r9, 3
mov qword [rsp + 0x38], r9
ja 0x140071be1
lea r15, [r10 + 2]
cmp r15, 3
ja 0x140071f6e
mov edx, 1
mov rcx, r13
shl r14, 4
call fcn.140009f20
mov r9, qword [rsp + 0x38]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
shl r9, 2
or r14d, r9d
or r14d, r15d
or r14d, 0x40
mov byte [rdx + rax + 8], r14b
add rax, 1
jno 0x140071ca4
call fcn.140008cf0
jmp 0x140071cb9
mov edx, 1
mov rcx, r13
or r14d, 0xffffffc0
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x1400720a9
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
xor r14d, r14d
jmp 0x14007186f
mov r12, qword [rsp + 0x1f0]
jmp 0x1400718d5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1400093f0
jmp 0x1400718d5
mov edx, 1
mov rcx, r13
sub r14d, 1
call fcn.140009f20
mov rax, qword [rsp + 0x80]
or r14d, 0xffffffc0
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x1400720bd
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
movzx r9d, byte [rsp + 0x44]
movzx r11d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x45]
lea r14, [r9 + r9*2]
lea rax, [r11 + r11*4]
add rax, r14
lea r14, [r10*8]
sub r14, r10
add r14, rax
movzx eax, r12b
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
add r14, rax
and r14d, 0x3f
jmp 0x1400719c0
sub rax, r11
lea r15, [rax + 8]
cmp r15, 0xf
ja 0x140071f7a
lea r8, [r11 + 0x20]
cmp r8, 0x3f
ja 0x140071f7a
sub r10, r11
lea r14, [r10 + 8]
cmp r14, 0xf
ja 0x140071f7a
mov edx, 1
mov rcx, r13
mov qword [rsp + 0x38], r8
call fcn.140009f20
mov r8, qword [rsp + 0x38]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
or r8d, 0xffffff80
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x1400720d1
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov rax, r15
shl rax, 4
or r14d, eax
nop dword [rax + rax]
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x140071ab8
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0
mov qword [rsp + 0x80], rax
cmp byte [rsi], 0
jne 0x140071b20
movzx eax, byte [rsp + 0x45]
mov byte [rsp + 0x38], r12b
xor r14d, r14d
mov byte [rsp + 0x47], al
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x40], al
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0x46], al
jmp 0x14007186f
call fcn.140008cf0
jmp 0x14007166f
call fcn.140008cf0
jmp 0x1400716f2
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r10
call fcn.1400093f0
jmp 0x14007166f
sub rdx, 1
call fcn.14000b7e0
jmp 0x14007166f
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r10
call fcn.1400093f0
jmp 0x1400716f2
sub rdx, 1
call fcn.14000b7e0
jmp 0x1400716f2
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0xff
add rax, 1
jo 0x140072117
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x44]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x14007210d
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x34]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072103
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x1400720f9
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r12b
add rax, 1
jno 0x140071ca4
jmp 0x140071ab8
mov r12, qword [rsp + 0x1f0]
mov ebx, 7
nop dword [rax]
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x1400720c7
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x1400718d5
sub rbx, 1
jne 0x140071ed8
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x1400718d0
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
jmp 0x1400718d5
sub rax, r11
lea r15, [rax + 8]
jmp 0x140071bf2
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0xfe
add rax, 1
jo 0x1400720ef
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x44]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x1400720e5
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x34]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x1400720db
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140071b20
mov edx, 1
mov rcx, r13
call fcn.140009f20
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jno 0x140071ca4
jmp 0x140071ab8
call fcn.140008cf0
jmp 0x14007178c
call fcn.140008cf0
jmp 0x14007173f
call fcn.140008cf0
jmp 0x140071b0d
call fcn.140008cf0
jmp 0x1400715dd
call fcn.140008cf0
jmp 0x140071b99
call fcn.140008cf0
jmp 0x140071f19
call fcn.140008cf0
jmp 0x140071c60
call fcn.140008cf0
jmp 0x140072057
call fcn.140008cf0
jmp 0x140072009
call fcn.140008cf0
jmp 0x140071fbb
call fcn.140008cf0
jmp 0x140071e8b
call fcn.140008cf0
jmp 0x140071e3d
call fcn.140008cf0
jmp 0x140071def
call fcn.140008cf0
jmp 0x140071da1