Function at 0x1f46b89f0
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 qword [rsp + 0x90], 0
mov rbp, rcx
mov rbx, rdx
mov qword [rsp + 0x98], 0
jo 0x1f46b8d50
mov edx, 0xffffffff
cmp rax, rdx
jg 0x1f46b8d80
imul rax, qword [rbx + 0x20], 3
jo 0x1f46b8d50
xor esi, esi
add rax, 0x16
seto sil
jo 0x1f46b8d50
test rax, rax
js 0x1f46b9048
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r14, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x40], rdi
call fcn.1f4656e60
mov edx, 4
mov rcx, r14
movdqu xmm2, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x90], xmm2
call fcn.1f4656ba0
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 0x1f46b953f
mov qword [rsp + 0x90], rax
mov r15, qword [0x1f470dc10]
mov rdi, qword [rbx]
cmp byte [r15], 0
jne 0x1f46b8d55
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x1f46b911b
test rcx, rcx
js 0x1f46b9130
mov rdx, rcx
mov rcx, r14
call fcn.1f4656df0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1f46b911b
test rcx, rcx
js 0x1f46b92e0
cmp rdx, rcx
jle 0x1f46b92e0
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 0x1f46b8d55
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x1f46b9125
test rcx, rcx
js 0x1f46b92f0
mov rdx, rcx
mov rcx, r14
call fcn.1f4656df0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1f46b9125
test rcx, rcx
js 0x1f46b9310
cmp rdx, rcx
jle 0x1f46b9310
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r15], 0
jne 0x1f46b8d55
mov edx, 1
mov rcx, r14
mov rdi, qword [rbx + 0x10]
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1f46b9549
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b8d55
mov edx, 1
mov rcx, r14
movzx edi, byte [rbx + 0x18]
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1f46b955d
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b8d55
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 0x1f46b949d
mov rdx, r12
mov qword [rsp + 0x38], r14
mov r13d, dword [0x1f4706ea8]
xor edi, edi
mov qword [rsp + 0x1f0], rbp
cmp rsi, rdx
jge 0x1f46b8d33
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.1f4661730
test al, al
je 0x1f46b8de8
lea ecx, [rdi + 1]
cmp dil, 0x3d
je 0x1f46b8f80
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rsi
je 0x1f46b8f80
mov edi, ecx
add rsi, 1
cmp r12, rax
je 0x1f46b8d21
movdqu xmm1, xmmword [0x1f4706de0]
mov rcx, qword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
call fcn.1f4651dc0
cmp byte [r15], 0
jne 0x1f46b9038
cmp rsi, r12
je 0x1f46b9490
mov rdx, qword [rbx + 0x20]
cmp rsi, rdx
jl 0x1f46b8cb5
sub rdx, 1
mov rcx, rsi
mov rbp, qword [rsp + 0x1f0]
call fcn.1f465ac40
jmp 0x1f46b8d55
call fcn.1f4655e70
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.1f4657080
lea rdx, [0x1f4706dc0]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [0x1f470d9b0]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1f4706e80]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0xa0
call fcn.1f4658e40
jmp 0x1f46b8d55
test dil, dil
jne 0x1f46b8fe0
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 0x1f46b9038
mov ecx, dword [rsp + rdi*4 + 0xa0]
mov edx, ebp
call fcn.1f4661730
test al, al
jne 0x1f46b90c0
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 0x1f46b9150
movzx eax, r13b
mov rdi, r9
sub rdi, rax
mov eax, r13d
shr r13d, 0x10
movzx eax, ah
movzx r13d, r13b
movzx eax, al
sub r11, r13
mov r13, rdi
sub r10, rax
mov rbp, r10
sub r13, r10
cmp rdi, 0xfffffffffffffffe
jl 0x1f46b9320
cmp rdi, 1
jg 0x1f46b9320
cmp r10, 0xfffffffffffffffe
jl 0x1f46b9320
cmp r10, 1
setle dl
cmp r11, 0xfffffffffffffffe
setge al
test dl, al
je 0x1f46b9320
cmp r11, 1
jg 0x1f46b9320
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x48], r11
call fcn.1f4656ba0
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 0x1f46b92d5
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x1f46b9103
mov rcx, qword [rsp + 0x38]
mov edx, 1
or edi, 0xffffffc0
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1f46b9553
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rax, qword [rbx + 0x20]
xor edi, edi
jmp 0x1f46b8cf4
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub edi, 1
or edi, 0xffffffc0
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1f46b957b
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
movzx edx, byte [r15]
test dl, dl
je 0x1f46b8df5
nop dword [rax]
mov rbp, qword [rsp + 0x1f0]
jmp 0x1f46b8d55
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1f4656500
jmp 0x1f46b8d55
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
lea r10, [rbp + 0x20]
mov rdx, qword [rsp + 0x98]
or r10d, 0xffffff80
mov byte [rdx + rax + 8], r10b
add rax, 1
jo 0x1f46b95c1
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
add r13, 8
shl r13, 4
or edi, r13d
nop dword [rax]
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1f46b92d5
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
mov qword [rsp + 0x90], rax
cmp byte [r15], 0
jne 0x1f46b9038
mov rax, qword [rbx + 0x20]
mov r13d, r14d
xor edi, edi
jmp 0x1f46b8cf4
call fcn.1f4655e70
jmp 0x1f46b8b62
call fcn.1f4655e70
jmp 0x1f46b8bcb
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1f4656500
jmp 0x1f46b8b62
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.1f4656ba0
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 0x1f46b95ad
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.1f4656ba0
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 0x1f46b95d5
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
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 0x1f46b95cb
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
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 0x1f46b9571
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
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 0x1f46b90ee
call fcn.1f4655e70
jmp 0x1f46b9103
sub rdx, 1
call fcn.1f465ac40
jmp 0x1f46b8b62
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1f4656500
jmp 0x1f46b8bcb
sub rdx, 1
call fcn.1f465ac40
jmp 0x1f46b8bcb
cmp r13, 0xfffffffffffffff8
jl 0x1f46b9352
sub r11, rbp
cmp rbp, 0xffffffffffffffe0
setge al
cmp rbp, 0x1f
setle dl
and eax, edx
cmp r13, 7
setle dl
test al, dl
je 0x1f46b9352
lea rdi, [r11 + 8]
cmp rdi, 0xf
jbe 0x1f46b9061
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.1f4656ba0
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 0x1f46b9599
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.1f4656ba0
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 0x1f46b958f
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
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 0x1f46b9585
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b9038
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1f4656ba0
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 0x1f46b90ee
jmp 0x1f46b92d5
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.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x1f46b9567
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1f46b8d55
sub rbx, 1
jne 0x1f46b94a8
mov edx, 1
mov rcx, r14
call fcn.1f4656ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x1f46b8d50
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x1f46b8d55
call fcn.1f4655e70
jmp 0x1f46b8ad8
call fcn.1f4655e70
jmp 0x1f46b8c1a
call fcn.1f4655e70
jmp 0x1f46b8fc6
call fcn.1f4655e70
jmp 0x1f46b8c69
call fcn.1f4655e70
jmp 0x1f46b94e9
call fcn.1f4655e70
jmp 0x1f46b9298
call fcn.1f4655e70
jmp 0x1f46b9029
call fcn.1f4655e70
jmp 0x1f46b9448
call fcn.1f4655e70
jmp 0x1f46b93f6
mov dword [rsp + 0x48], r8d
call fcn.1f4655e70
mov r8d, dword [rsp + 0x48]
jmp 0x1f46b939f
mov dword [rsp + 0x50], r8d
call fcn.1f4655e70
mov r8d, dword [rsp + 0x50]
jmp 0x1f46b919d
call fcn.1f4655e70
jmp 0x1f46b90ac
call fcn.1f4655e70
jmp 0x1f46b9246
call fcn.1f4655e70
jmp 0x1f46b91f4