Function at 0x140071be0
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 rsi, rcx
mov rbx, rdx
jo 0x140071f38
mov edx, 0xffffffff
cmp rax, rdx
jg 0x140071f60
imul rax, qword [rbx + 0x20], 3
jo 0x140071f38
xor ebp, ebp
add rax, 0x16
seto bpl
jo 0x140071f38
test rax, rax
js 0x140072320
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r15, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x48], rdi
call fcn.140009d70
mov edx, 4
mov rcx, r15
movdqu xmm2, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x90], xmm2
call fcn.140009b00
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 0x14007278e
mov qword [rsp + 0x90], rax
mov rcx, qword [0x1400d4e60]
mov rdi, qword [rbx]
call fcn.14009cf40
cmp byte [rax], 0
mov r14, rax
jne 0x140071f3d
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x140072339
test rcx, rcx
js 0x1400723b8
mov rdx, rcx
mov rcx, r15
call fcn.140009e00
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x140072339
test rcx, rcx
js 0x140072550
cmp rcx, rdx
jge 0x140072550
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 0x140071f3d
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x1400723a9
test rcx, rcx
js 0x140072560
mov rdx, rcx
mov rcx, r15
call fcn.140009e00
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1400723a9
test rcx, rcx
js 0x140072580
cmp rcx, rdx
jge 0x140072580
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r14], 0
jne 0x140071f3d
mov edx, 1
mov rcx, r15
mov rdi, qword [rbx + 0x10]
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140072798
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140071f3d
mov edx, 1
mov rcx, r15
movzx edi, byte [rbx + 0x18]
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x14007275c
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140071f3d
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 0x14007259b
mov eax, dword [0x1400ce028]
mov rdx, r12
mov qword [rsp + 0x38], r15
xor r13d, r13d
mov qword [rsp + 0x1f0], rsi
mov r15, r12
mov qword [rsp + 0x70], r11
mov esi, eax
cmp rdx, rbp
jle 0x140071f1b
mov rax, qword [rbx + 0x28]
mov edx, esi
mov edi, dword [rax + rbp*4 + 8]
mov r12d, dword [rax + rbp*4 + 8]
mov ecx, edi
call fcn.140013b60
test al, al
je 0x140071fc8
lea ecx, [r13 + 1]
cmp r13b, 0x3d
je 0x1400722b0
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rbp
je 0x1400722b0
mov r13d, ecx
add rbp, 1
cmp r15, rax
je 0x140071f09
movdqa xmm1, xmmword [0x1400cdf60]
mov rcx, qword [rsp + 0x48]
movaps xmmword [rsp + 0x80], xmm1
call fcn.140004050
cmp byte [r14], 0
jne 0x140072310
cmp r15, rbp
je 0x14007258e
mov rdx, qword [rbx + 0x20]
cmp rdx, rbp
jg 0x140071e9c
sub rdx, 1
mov rcx, rbp
mov rsi, qword [rsp + 0x1f0]
call fcn.14000bc90
jmp 0x140071f3d
call fcn.140008c20
movdqa xmm0, xmmword [rsp + 0x90]
mov rax, rsi
movups xmmword [rsi], 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.14000bae0
lea rdx, [0x1400cdf40]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [0x1400d4d70]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1400ce000]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.14000b840
jmp 0x140071f3d
test r13b, r13b
je 0x140072022
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub r13d, 1
or r13d, 0xffffffc0
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x1400727ac
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov eax, r12d
mov edx, r12d
movzx r10d, r12b
mov ecx, r12d
shr edx, 0x10
movzx eax, ah
shr ecx, 0x18
mov r13d, r12d
mov dword [rsp + 0x78], eax
mov eax, r12d
movzx r11d, dl
movzx eax, ah
mov dword [rsp + 0x7c], edx
mov r9, rax
lea rax, [r10 + r10*2]
mov dword [rsp + 0x50], ecx
lea rdx, [r9 + r9*4]
add rax, rdx
lea rdx, [r11*8]
sub rdx, r11
add rax, rdx
movzx edx, cl
lea rcx, [rdx + rdx*4]
lea rdx, [rdx + rcx*2]
add rax, rdx
jo 0x140072766
cqo
shr rdx, 0x3a
add rax, rdx
and eax, 0x3f
sub rax, rdx
mov qword [rsp + 0x40], rax
cmp byte [r14], 0
jne 0x140072310
cmp qword [rsp + 0x40], 0x3f
ja 0x140072740
mov rax, qword [rsp + 0x40]
mov edx, edi
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x60], r9
mov ecx, dword [rsp + rax*4 + 0xa0]
mov qword [rsp + 0x58], r10
call fcn.140013b60
test al, al
jne 0x140072348
mov rax, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x70]
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
mov dword [rdi + rax*4], r12d
mov eax, esi
mov r11, qword [rsp + 0x68]
shr eax, 0x18
cmp byte [rsp + 0x50], al
jne 0x1400723d0
movzx eax, sil
mov rdi, r9
sub r10, rax
mov eax, esi
shr esi, 0x10
movzx eax, ah
sub rdi, rax
movzx eax, sil
lea rsi, [r10 + 2]
sub r11, rax
cmp rsi, 3
setbe dl
cmp rdi, 0xfffffffffffffffe
setge cl
and ecx, edx
cmp rdi, 1
setle dl
and edx, ecx
cmp r11, 0xfffffffffffffffe
setge cl
test dl, cl
je 0x14007214f
cmp r11, 1
jle 0x140072637
sub r10, rdi
sub r11, rdi
cmp rdi, 0xffffffffffffffe0
setge al
cmp rdi, 0x1f
setle dl
add r10, 8
and eax, edx
cmp r10, 0xf
setbe dl
test al, dl
je 0x140072182
lea rsi, [r11 + 8]
cmp rsi, 0xf
jbe 0x1400726a2
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0xfe
add rax, 1
jo 0x1400727de
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x1400727d4
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x78]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x1400727ca
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x7c]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jno 0x14007237b
call fcn.140008c20
jmp 0x140072390
mov rcx, qword [rsp + 0x38]
mov edx, 1
or r13d, 0xffffffc0
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x1400727a2
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rax, qword [rbx + 0x20]
xor r13d, r13d
jmp 0x140071edc
mov rsi, qword [rsp + 0x1f0]
jmp 0x140071f3d
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.140009260
jmp 0x140071f3d
call fcn.140008c20
jmp 0x140071d41
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
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 0x1400722a1
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rax, qword [rbx + 0x20]
mov esi, r12d
xor r13d, r13d
jmp 0x140071edc
call fcn.140008c20
jmp 0x140071daa
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140009260
jmp 0x140071d41
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0xff
add rax, 1
jo 0x140072810
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], r13b
add rax, 1
jo 0x140072806
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x78]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1400727fc
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
movzx esi, byte [rsp + 0x7c]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jo 0x1400727f2
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009b00
mov rax, qword [rsp + 0x90]
movzx edi, byte [rsp + 0x50]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jno 0x14007237b
jmp 0x1400722a1
sub rdx, 1
call fcn.14000bc90
jmp 0x140071d41
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140009260
jmp 0x140071daa
sub rdx, 1
call fcn.14000bc90
jmp 0x140071daa
mov rsi, qword [rsp + 0x1f0]
mov r15, qword [rsp + 0x38]
mov ebx, 7
mov edx, 1
mov rcx, r15
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x1400727e8
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140071f3d
sub rbx, 1
jne 0x1400725a0
mov edx, 1
mov rcx, r15
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x140071f38
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x140071f3d
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x50], r11
call fcn.140009b00
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 0x1400722a1
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x140072390
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x50], r10
call fcn.140009b00
lea r9, [rdi + 0x20]
mov r10, qword [rsp + 0x50]
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
or r9d, 0xffffff80
mov byte [rdx + rax + 8], r9b
add rax, 1
jo 0x1400727b6
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r14], 0
jne 0x140072310
mov rcx, qword [rsp + 0x38]
shl r10d, 4
mov edx, 1
or esi, r10d
call fcn.140009b00
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], sil
add rax, 1
jno 0x14007237b
jmp 0x1400722a1
mov rcx, qword [rsp + 0x40]
mov edx, 0x3f
mov rsi, qword [rsp + 0x1f0]
call fcn.14000bc90
jmp 0x140071f3d
call fcn.140008c20
jmp 0x140071e48
mov qword [rsp + 0x68], r11
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r10
call fcn.140008c20
mov r10, qword [rsp + 0x58]
mov r9, qword [rsp + 0x60]
mov r11, qword [rsp + 0x68]
jmp 0x140072095
call fcn.140008c20
jmp 0x140071cb0
call fcn.140008c20
jmp 0x140071df9
call fcn.140008c20
jmp 0x1400722f7
call fcn.140008c20
jmp 0x140072018
mov qword [rsp + 0x50], r10
call fcn.140008c20
mov r10, qword [rsp + 0x50]
jmp 0x1400726f7
call fcn.140008c20
jmp 0x140072264
call fcn.140008c20
jmp 0x140072212
call fcn.140008c20
jmp 0x1400721c5
call fcn.140008c20
jmp 0x1400725e1
call fcn.140008c20
jmp 0x140072504
call fcn.140008c20
jmp 0x1400724b2
call fcn.140008c20
jmp 0x140072460
call fcn.140008c20
jmp 0x140072413