Function at 0x14006f890
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 0x14006fbf0
mov edx, 0xffffffff
cmp rax, rdx
jg 0x14006fc20
imul rax, qword [rbx + 0x20], 3
jo 0x14006fbf0
xor esi, esi
add rax, 0x16
seto sil
jo 0x14006fbf0
test rax, rax
js 0x14006fee8
lea rdi, [rsp + 0x80]
mov rdx, rax
lea r14, [rsp + 0x90]
mov rcx, rdi
mov qword [rsp + 0x40], rdi
call fcn.140009940
mov edx, 4
mov rcx, r14
movdqu xmm2, xmmword [rsp + 0x80]
movups xmmword [rsp + 0x90], xmm2
call fcn.140009710
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 0x1400703df
mov qword [rsp + 0x90], rax
mov rcx, qword [0x1400cdbc0]
mov rdi, qword [rbx]
call fcn.14009b490
cmp byte [rax], 0
mov r15, rax
jne 0x14006fbf5
mov rcx, qword [rsp + 0x90]
add rcx, 4
jo 0x14006ffbb
test rcx, rcx
js 0x14006ffd0
mov rdx, rcx
mov rcx, r14
call fcn.1400098d0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x14006ffbb
test rcx, rcx
js 0x140070180
cmp rdx, rcx
jle 0x140070180
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 0x14006fbf5
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rbx + 8]
add rcx, 4
jo 0x14006ffc5
test rcx, rcx
js 0x140070190
mov rdx, rcx
mov rcx, r14
call fcn.1400098d0
mov rdx, qword [rsp + 0x90]
mov rcx, rdx
sub rcx, 4
jo 0x14006ffc5
test rcx, rcx
js 0x1400701b0
cmp rdx, rcx
jle 0x1400701b0
mov rax, qword [rsp + 0x98]
bswap edi
mov dword [rax + rcx + 8], edi
cmp byte [r15], 0
jne 0x14006fbf5
mov edx, 1
mov rcx, r14
mov rdi, qword [rbx + 0x10]
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1400703e9
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fbf5
mov edx, 1
mov rcx, r14
movzx edi, byte [rbx + 0x18]
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1400703fd
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fbf5
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 0x14007033d
mov rdx, r12
mov qword [rsp + 0x38], r14
mov r13d, dword [0x1400c6d28]
xor edi, edi
mov qword [rsp + 0x1f0], rbp
cmp rsi, rdx
jge 0x14006fbda
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.140013370
test al, al
je 0x14006fc88
lea ecx, [rdi + 1]
cmp dil, 0x3d
je 0x14006fe20
mov rax, qword [rbx + 0x20]
lea rdx, [rax - 1]
cmp rdx, rsi
je 0x14006fe20
mov edi, ecx
add rsi, 1
cmp r12, rax
je 0x14006fbc8
movdqu xmm1, xmmword [0x1400c6c60]
mov rcx, qword [rsp + 0x40]
movups xmmword [rsp + 0x80], xmm1
call fcn.140004140
cmp byte [r15], 0
jne 0x14006fed8
cmp rsi, r12
je 0x140070330
mov rdx, qword [rbx + 0x20]
cmp rsi, rdx
jl 0x14006fb5c
sub rdx, 1
mov rcx, rsi
mov rbp, qword [rsp + 0x1f0]
call fcn.14000b560
jmp 0x14006fbf5
call fcn.140008890
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.140009ac0
lea rdx, [0x1400c6c40]
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, [0x1400c6d00]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0x98
call fcn.14000b2c0
jmp 0x14006fbf5
test dil, dil
jne 0x14006fe80
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 0x14006fed8
mov ecx, dword [rsp + rdi*4 + 0xa0]
mov edx, ebp
call fcn.140013370
test al, al
jne 0x14006ff60
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 0x14006fff0
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 0x1400701c0
cmp rdi, 1
jg 0x1400701c0
cmp r10, 0xfffffffffffffffe
jl 0x1400701c0
cmp r10, 1
setle dl
cmp r11, 0xfffffffffffffffe
setge al
test dl, al
je 0x1400701c0
cmp r11, 1
jg 0x1400701c0
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov qword [rsp + 0x48], r11
call fcn.140009710
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 0x140070175
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x90], rdx
mov byte [rax + rdx + 8], 0
jmp 0x14006ffa3
mov rcx, qword [rsp + 0x38]
mov edx, 1
or edi, 0xffffffc0
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x1400703f3
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rax, qword [rbx + 0x20]
xor edi, edi
jmp 0x14006fb9b
mov rcx, qword [rsp + 0x38]
mov edx, 1
sub edi, 1
or edi, 0xffffffc0
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x14007041b
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
movzx edx, byte [r15]
test dl, dl
je 0x14006fc95
nop dword [rax]
mov rbp, qword [rsp + 0x1f0]
jmp 0x14006fbf5
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.140008eb0
jmp 0x14006fbf5
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x140070461
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
add r13, 8
shl r13, 4
or edi, r13d
nop dword [rax]
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], dil
add rax, 1
jo 0x140070175
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
mov qword [rsp + 0x90], rax
cmp byte [r15], 0
jne 0x14006fed8
mov rax, qword [rbx + 0x20]
mov r13d, r14d
xor edi, edi
jmp 0x14006fb9b
call fcn.140008890
jmp 0x14006fa09
call fcn.140008890
jmp 0x14006fa72
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008eb0
jmp 0x14006fa09
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.140009710
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 0x14007044d
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x50], r8d
call fcn.140009710
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 0x140070475
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x14007046b
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x140070411
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x14006ff8e
call fcn.140008890
jmp 0x14006ffa3
sub rdx, 1
call fcn.14000b560
jmp 0x14006fa09
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.140008eb0
jmp 0x14006fa72
sub rdx, 1
call fcn.14000b560
jmp 0x14006fa72
cmp r13, 0xfffffffffffffff8
jl 0x1400701f2
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 0x1400701f2
lea rdi, [r11 + 8]
cmp rdi, 0xf
jbe 0x14006ff01
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.140009710
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 0x140070439
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
mov dword [rsp + 0x48], r8d
call fcn.140009710
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 0x14007042f
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x140070425
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fed8
mov rcx, qword [rsp + 0x38]
mov edx, 1
call fcn.140009710
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 0x14006ff8e
jmp 0x140070175
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.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x140070407
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
cmp byte [r15], 0
jne 0x14006fbf5
sub rbx, 1
jne 0x140070348
mov edx, 1
mov rcx, r14
call fcn.140009710
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x14006fbf0
mov rdx, qword [rsp + 0x98]
mov qword [rsp + 0x90], rax
mov byte [rdx + rax + 8], 0
jmp 0x14006fbf5
call fcn.140008890
jmp 0x14006f978
call fcn.140008890
jmp 0x14006fac1
call fcn.140008890
jmp 0x14006fe66
call fcn.140008890
jmp 0x14006fb10
call fcn.140008890
jmp 0x140070389
call fcn.140008890
jmp 0x140070138
call fcn.140008890
jmp 0x14006fec9
call fcn.140008890
jmp 0x1400702e8
call fcn.140008890
jmp 0x140070296
mov dword [rsp + 0x48], r8d
call fcn.140008890
mov r8d, dword [rsp + 0x48]
jmp 0x14007023f
mov dword [rsp + 0x50], r8d
call fcn.140008890
mov r8d, dword [rsp + 0x50]
jmp 0x14007003d
call fcn.140008890
jmp 0x14006ff4c
call fcn.140008890
jmp 0x1400700e6
call fcn.140008890
jmp 0x140070094