Function at 0x140070d40
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 0x140071090
mov edx, 0xffffffff
cmp rax, rdx
jg 0x1400710c0
imul rax, qword [rbx + 0x20], 3
jo 0x140071090
xor esi, esi
add rax, 0x16
seto sil
jo 0x140071090
test rax, rax
js 0x140071388
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 0x14007188f
mov qword [rsp + 0x90], rax
mov rcx, qword [0x1400cd4d0]
mov rdi, qword [rbx]
call fcn.14009c080
cmp byte [rax], 0
mov r15, rax
jne 0x140071095
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x14007146b
test rcx, rcx
js 0x140071480
mov rdx, rcx
mov rcx, r14
call fcn.140009970
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x14007146b
test rcx, rcx
js 0x140071630
cmp rdx, rcx
jle 0x140071630
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 0x140071095
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x140071475
test rcx, rcx
js 0x140071640
mov rdx, rcx
mov rcx, r14
call fcn.140009970
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x140071475
test rcx, rcx
js 0x140071660
cmp rdx, rcx
jle 0x140071660
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r15], 0
jne 0x140071095
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 0x140071899
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071095
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 0x1400718ad
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071095
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 0x1400717ed
mov rdx, r12
mov qword [rsp + 0x38], r14
mov r13d, dword [0x1400c6c48]
xor edi, edi
mov qword [rsp + 0x1f0], rbp
cmp rdx, rsi
jle 0x140071072
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 0x140071128
lea ecx, [rdi + 1]
cmp dil, 0x3d
je 0x1400712c0
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rsi
je 0x1400712c0
mov edi, ecx
add rsi, 1
cmp rax, r12
je 0x140071060
movdqu xmm1, xmmword [0x1400c6b80]
mov rcx, qword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
call fcn.140004050
cmp byte [r15], 0
jne 0x140071378
cmp rsi, r12
je 0x1400717e0
mov rdx, qword [rbx + 0x20]
cmp rdx, rsi
jg 0x140070ff4
sub rdx, 1
mov rcx, rsi
mov rbp, qword [rsp + 0x1f0]
call fcn.14000b4e0
jmp 0x140071095
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, [0x1400c6b60]
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, [0x1400c6c20]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.14000b090
jmp 0x140071095
test dil, dil
jne 0x140071320
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 0x140071378
mov ecx, dword [rsp + rdi*4 + 0xa0]
mov edx, ebp
call fcn.1400134f0
test al, al
jne 0x140071410
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 0x1400714a0
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 0x140071670
cmp rdi, 1
jg 0x140071670
cmp r10, 0xfffffffffffffffe
jl 0x140071670
cmp r10, 1
setle cl
cmp r11, 0xfffffffffffffffe
setge dl
test cl, dl
je 0x140071670
cmp r11, 1
jg 0x140071670
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 0x140071625
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x140071453
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 0x1400718a3
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
mov rax, qword [rbx + 0x20]
xor edi, edi
jmp 0x140071033
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 0x1400718cb
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
movzx edx, byte [r15]
test dl, dl
je 0x140071135
nop dword [rax]
mov rbp, qword [rsp + 0x1f0]
jmp 0x140071095
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.140008dd0
jmp 0x140071095
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 0x140071911
mov rcx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rcx + rdx + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x140071625
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
mov rax, qword [rbx + 0x20]
mov r13d, r14d
xor edi, edi
jmp 0x140071033
call fcn.1400087c0
jmp 0x140070ea1
call fcn.1400087c0
jmp 0x140070f0a
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008dd0
jmp 0x140070ea1
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 0x1400718fd
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x14007192f
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x140071925
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x1400718c1
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x14007143e
call fcn.1400087c0
jmp 0x140071453
sub rdx, 1
call fcn.14000b4e0
jmp 0x140070ea1
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008dd0
jmp 0x140070f0a
sub rdx, 1
call fcn.14000b4e0
jmp 0x140070f0a
cmp rax, 0xfffffffffffffff8
jl 0x1400716a2
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 0x1400716a2
lea r13, [r11 + 8]
cmp r13, 0xf
jbe 0x1400713a1
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 0x1400718e9
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x1400718df
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x1400718d5
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071378
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 0x14007143e
jmp 0x140071625
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 0x1400718b7
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x140071095
sub rbx, 1
jne 0x1400717f8
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 0x140071090
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x140071095
call fcn.1400087c0
jmp 0x140070e10
call fcn.1400087c0
jmp 0x140070f59
call fcn.1400087c0
jmp 0x140071306
call fcn.1400087c0
jmp 0x140070fa8
call fcn.1400087c0
jmp 0x140071839
call fcn.1400087c0
jmp 0x1400715e8
call fcn.1400087c0
jmp 0x140071369
call fcn.1400087c0
jmp 0x140071798
call fcn.1400087c0
jmp 0x140071746
mov dword [rsp + 0x48], r8d
call fcn.1400087c0
mov r8d, dword [rsp + 0x48]
jmp 0x1400716ef
mov dword [rsp + 0x50], r8d
call fcn.1400087c0
mov r8d, dword [rsp + 0x50]
jmp 0x1400714ed
mov qword [rsp + 0x48], rax
call fcn.1400087c0
mov rax, qword [rsp + 0x48]
jmp 0x1400713f6
call fcn.1400087c0
jmp 0x140071596
call fcn.1400087c0
jmp 0x140071544