Function at 0x1fc378f60
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 0x1fc3792c0
mov edx, 0xffffffff
cmp rax, rdx
jg 0x1fc3792f0
imul rax, qword [rbx + 0x20], 3
jo 0x1fc3792c0
xor esi, esi
add rax, 0x16
seto sil
jo 0x1fc3792c0
test rax, rax
js 0x1fc3795b8
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r14, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x40], rdi
call fcn.1fc316e60
mov edx, 4
mov rcx, r14
movdqu xmm2, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x90], xmm2
call fcn.1fc316ba0
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 0x1fc379aaf
mov qword [rsp + 0x90], rax
mov r15, qword [0x1fc3cd8d0]
mov rdi, qword [rbx]
cmp byte [r15], 0
jne 0x1fc3792c5
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x1fc37968b
test rcx, rcx
js 0x1fc3796a0
mov rdx, rcx
mov rcx, r14
call fcn.1fc316df0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1fc37968b
test rcx, rcx
js 0x1fc379850
cmp rdx, rcx
jle 0x1fc379850
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 0x1fc3792c5
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x1fc379695
test rcx, rcx
js 0x1fc379860
mov rdx, rcx
mov rcx, r14
call fcn.1fc316df0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x1fc379695
test rcx, rcx
js 0x1fc379880
cmp rdx, rcx
jle 0x1fc379880
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r15], 0
jne 0x1fc3792c5
mov edx, 1
mov rcx, r14
mov rdi, qword [rbx + 0x10]
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1fc379ab9
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3792c5
mov edx, 1
mov rcx, r14
movzx edi, byte [rbx + 0x18]
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1fc379acd
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3792c5
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 0x1fc379a0d
mov rdx, r12
mov qword [rsp + 0x38], r14
mov r13d, dword [0x1fc3c6b48]
xor edi, edi
mov qword [rsp + 0x1f0], rbp
cmp rsi, rdx
jge 0x1fc3792a3
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.1fc321730
test al, al
je 0x1fc379358
lea ecx, [rdi + 1]
cmp dil, 0x3d
je 0x1fc3794f0
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rsi
je 0x1fc3794f0
mov edi, ecx
add rsi, 1
cmp r12, rax
je 0x1fc379291
movdqu xmm1, xmmword [0x1fc3c6a80]
mov rcx, qword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
call fcn.1fc311dc0
cmp byte [r15], 0
jne 0x1fc3795a8
cmp rsi, r12
je 0x1fc379a00
mov rdx, qword [rbx + 0x20]
cmp rsi, rdx
jl 0x1fc379225
sub rdx, 1
mov rcx, rsi
mov rbp, qword [rsp + 0x1f0]
call fcn.1fc31ac40
jmp 0x1fc3792c5
call fcn.1fc315e70
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.1fc317080
lea rdx, [0x1fc3c6a60]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [0x1fc3cd640]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1fc3c6b20]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.1fc318e40
jmp 0x1fc3792c5
test dil, dil
jne 0x1fc379550
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 0x1fc3795a8
mov ecx, dword [rsp + rdi*4 + 0xa0]
mov edx, ebp
call fcn.1fc321730
test al, al
jne 0x1fc379630
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 0x1fc3796c0
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 0x1fc379890
cmp rdi, 1
jg 0x1fc379890
cmp r10, 0xfffffffffffffffe
jl 0x1fc379890
cmp r10, 1
setle dl
cmp r11, 0xfffffffffffffffe
setge al
test dl, al
je 0x1fc379890
cmp r11, 1
jg 0x1fc379890
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x48], r11
call fcn.1fc316ba0
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 0x1fc379845
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x1fc379673
mov rcx, qword [rsp + 0x38]
mov edx, 1
or edi, 0xffffffc0
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1fc379ac3
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rax, qword [rbx + 0x20]
xor edi, edi
jmp 0x1fc379264
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub edi, 1
or edi, 0xffffffc0
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1fc379aeb
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
movzx edx, byte [r15]
test dl, dl
je 0x1fc379365
nop dword [rax]
mov rbp, qword [rsp + 0x1f0]
jmp 0x1fc3792c5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1fc316500
jmp 0x1fc3792c5
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc379b31
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
add r13, 8
shl r13, 4
or edi, r13d
nop dword [rax]
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1fc379845
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
mov qword [rsp + 0x90], rax
cmp byte [r15], 0
jne 0x1fc3795a8
mov rax, qword [rbx + 0x20]
mov r13d, r14d
xor edi, edi
jmp 0x1fc379264
call fcn.1fc315e70
jmp 0x1fc3790d2
call fcn.1fc315e70
jmp 0x1fc37913b
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1fc316500
jmp 0x1fc3790d2
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.1fc316ba0
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 0x1fc379b1d
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.1fc316ba0
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 0x1fc379b45
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc379b3b
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc379ae1
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc37965e
call fcn.1fc315e70
jmp 0x1fc379673
sub rdx, 1
call fcn.1fc31ac40
jmp 0x1fc3790d2
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.1fc316500
jmp 0x1fc37913b
sub rdx, 1
call fcn.1fc31ac40
jmp 0x1fc37913b
cmp r13, 0xfffffffffffffff8
jl 0x1fc3798c2
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 0x1fc3798c2
lea rdi, [r11 + 8]
cmp rdi, 0xf
jbe 0x1fc3795d1
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.1fc316ba0
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 0x1fc379b09
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.1fc316ba0
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 0x1fc379aff
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc379af5
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3795a8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.1fc316ba0
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 0x1fc37965e
jmp 0x1fc379845
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.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x1fc379ad7
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x1fc3792c5
sub rbx, 1
jne 0x1fc379a18
mov edx, 1
mov rcx, r14
call fcn.1fc316ba0
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x1fc3792c0
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x1fc3792c5
call fcn.1fc315e70
jmp 0x1fc379048
call fcn.1fc315e70
jmp 0x1fc37918a
call fcn.1fc315e70
jmp 0x1fc379536
call fcn.1fc315e70
jmp 0x1fc3791d9
call fcn.1fc315e70
jmp 0x1fc379a59
call fcn.1fc315e70
jmp 0x1fc379808
call fcn.1fc315e70
jmp 0x1fc379599
call fcn.1fc315e70
jmp 0x1fc3799b8
call fcn.1fc315e70
jmp 0x1fc379966
mov dword [rsp + 0x48], r8d
call fcn.1fc315e70
mov r8d, dword [rsp + 0x48]
jmp 0x1fc37990f
mov dword [rsp + 0x50], r8d
call fcn.1fc315e70
mov r8d, dword [rsp + 0x50]
jmp 0x1fc37970d
call fcn.1fc315e70
jmp 0x1fc37961c
call fcn.1fc315e70
jmp 0x1fc3797b6
call fcn.1fc315e70
jmp 0x1fc379764