Function at 0x140071e70
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
movups xmmword [rsp + 0x190], xmm6
mov rax, qword [rdx]
imul rax, qword [rdx + 8]
mov r12, rcx
mov rbp, rdx
jo 0x140072240
mov edx, 0xffffffff
cmp rax, rdx
jg 0x140072278
imul rax, qword [rbp + 0x20], 3
jo 0x140072240
xor edi, edi
add rax, 0x16
seto dil
mov r15, rdi
jo 0x140072240
test rax, rax
js 0x1400724a0
lea rsi, [rsp + 0x70]
mov rdx, rax
lea r13, [rsp + 0x80]
mov rcx, rsi
mov qword [rsp + 0x48], rsi
call fcn.14000a0a0
movdqu xmm1, xmmword [rsp + 0x70]
mov edx, 4
mov rcx, r13
movups xmmword [rsp + 0x80], xmm1
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
lea rax, [rdx + rax + 8]
mov dword [rax], 0x66696f71
mov byte [rax + 4], 0
mov rax, qword [rsp + 0x80]
add rax, 4
jo 0x140072a23
mov qword [rsp + 0x80], rax
mov rcx, qword [0x1400cfed0]
call fcn.14009d6d0
cmp byte [rax], 0
mov rsi, rax
jne 0x140072245
mov r10, qword [rsp + 0x80]
add r10, 4
jo 0x14007265a
test r10, r10
js 0x140072670
mov rdx, r10
mov rcx, r13
mov rbx, qword [rbp]
call fcn.14000a130
mov rdx, qword [rsp + 0x80]
mov rcx, rdx
sub rcx, 4
jo 0x14007265a
test rcx, rcx
js 0x140072690
cmp rdx, rcx
jle 0x140072690
mov eax, ebx
rol ax, 8
mov edx, eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
shl edx, 0x10
shl eax, 8
or eax, ebx
movzx eax, ax
or eax, edx
mov rdx, qword [rsp + 0x88]
mov dword [rdx + rcx + 8], eax
cmp byte [rsi], 0
jne 0x140072245
mov r10, qword [rsp + 0x80]
add r10, 4
jo 0x140072664
test r10, r10
js 0x1400726a0
mov rdx, r10
mov rcx, r13
mov rbx, qword [rbp + 8]
call fcn.14000a130
mov rdx, qword [rsp + 0x80]
mov rcx, rdx
sub rcx, 4
jo 0x140072664
cmp rdx, rcx
jle 0x1400726c0
test rcx, rcx
js 0x1400726c0
mov eax, ebx
rol ax, 8
mov edx, eax
mov eax, ebx
shr ebx, 0x18
shr eax, 0x10
shl edx, 0x10
shl eax, 8
or eax, ebx
movzx eax, ax
or eax, edx
mov rdx, qword [rsp + 0x88]
mov dword [rdx + rcx + 8], eax
cmp byte [rsi], 0
jne 0x140072245
mov edx, 1
mov rcx, r13
mov rbx, qword [rbp + 0x10]
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], bl
add rax, 1
jo 0x140072a0f
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072245
mov edx, 1
mov rcx, r13
movzx ebx, byte [rbp + 0x18]
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], bl
add rax, 1
jo 0x140072a05
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072245
lea rdi, [rsp + 0x90]
mov ecx, 0x20
xor eax, eax
mov qword [rsp + 0x68], rdi
rep stosq qword [rdi], rax
mov rdi, qword [rbp + 0x20]
test rdi, rdi
jle 0x140072840
mov byte [rsp + 0x46], 0
movdqu xmm6, xmmword [0x1400c90e0]
xor r14d, r14d
mov rbx, r15
mov byte [rsp + 0x47], 0
mov byte [rsp + 0x38], 0xff
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x1f0], r12
mov rcx, qword [rbp + 0x28]
lea rdx, [rbx*4]
lea rax, [rcx + rdx]
mov r15d, dword [rcx + rdx + 8]
xor edx, edx
mov dl, byte [rsp + 0x46]
movzx r8d, byte [rax + 8]
movzx r11d, byte [rax + 9]
movzx r9d, byte [rax + 0xa]
movzx r12d, byte [rax + 0xb]
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x38]
mov byte [rsp + 0x44], r8b
mov byte [rsp + 0x34], r11b
mov dh, al
movzx eax, byte [rsp + 0x47]
shl ecx, 0x18
mov byte [rsp + 0x45], r9b
movzx edx, dx
shl eax, 0x10
or edx, eax
or edx, ecx
mov ecx, r15d
call fcn.140013ec0
test al, al
je 0x1400722e0
lea edx, [r14 + 1]
cmp r14b, 0x3d
je 0x140072438
mov rax, qword [rbp + 0x20]
sub rax, 1
cmp rax, rbx
je 0x140072438
mov r14d, edx
add rbx, 1
mov r15, rbx
jo 0x14007222f
cmp rdi, qword [rbp + 0x20]
je 0x1400721fe
mov rcx, qword [rsp + 0x48]
movups xmmword [rsp + 0x70], xmm6
call fcn.1400043c0
cmp byte [rsi], 0
jne 0x140072490
cmp r15, rdi
jge 0x140072838
mov rdx, qword [rbp + 0x20]
test r15, r15
js 0x140072219
cmp r15, rdx
jl 0x14007214b
sub rdx, 1
mov rcx, r15
mov r12, qword [rsp + 0x1f0]
call fcn.14000b8e0
jmp 0x140072245
mov r12, qword [rsp + 0x1f0]
nop word [rax + rax]
call fcn.140008cc0
movdqu xmm0, xmmword [rsp + 0x80]
mov rax, r12
movups xmmword [r12], xmm0
movups xmm6, xmmword [rsp + 0x190]
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.14000a460
lea rdx, [0x1400c90c0]
lea r9, str.qoi.nim
mov rcx, rax
mov rax, qword [0x1400cfd60]
lea r8, str.encodeQoi
mov qword [rcx + 0x10], rdx
mov qword [rcx], rax
lea rax, [0x1400c9180]
mov qword [rcx + 0x18], 0x1a
mov qword [rcx + 0x20], rax
mov qword [rcx + 8], 0
mov qword [rsp + 0x20], 0xa0
call fcn.14000b630
jmp 0x140072245
test r14b, r14b
jne 0x1400724c0
movzx r9d, byte [rsp + 0x44]
movzx r11d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x45]
lea r14, [r9 + r9*2]
lea rax, [r11 + r11*4]
add rax, r14
lea r14, [r10*8]
sub r14, r10
add r14, rax
movzx eax, r12b
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
add r14, rax
and r14d, 0x3f
cmp byte [rsi], 0
jne 0x140072490
mov ecx, dword [rsp + r14*4 + 0x90]
mov edx, r15d
mov qword [rsp + 0x60], r10
mov qword [rsp + 0x58], r11
mov qword [rsp + 0x50], r9
call fcn.140013ec0
mov r9, qword [rsp + 0x50]
mov r11, qword [rsp + 0x58]
test al, al
mov r10, qword [rsp + 0x60]
jne 0x1400725e8
mov ecx, dword [rsp + 0x34]
xor eax, eax
mov al, byte [rsp + 0x44]
movzx edx, byte [rsp + 0x45]
mov ah, cl
mov ecx, r12d
shl edx, 0x10
movzx eax, ax
shl ecx, 0x18
or eax, edx
or eax, ecx
mov rcx, qword [rsp + 0x68]
mov dword [rcx + r14*4], eax
cmp byte [rsp + 0x38], r12b
jne 0x1400726d0
movzx edx, byte [rsp + 0x46]
mov rax, r9
sub rax, rdx
movzx edx, byte [rsp + 0x40]
lea r14, [rax + 2]
sub r11, rdx
movzx edx, byte [rsp + 0x47]
sub r10, rdx
cmp r14, 3
ja 0x140072551
lea r9, [r11 + 2]
cmp r9, 3
mov qword [rsp + 0x38], r9
ja 0x140072551
lea r15, [r10 + 2]
cmp r15, 3
ja 0x1400728de
mov edx, 1
mov rcx, r13
shl r14, 4
call fcn.140009e30
mov r9, qword [rsp + 0x38]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
shl r9, 2
or r14d, r9d
or r14d, r15d
or r14d, 0x40
mov byte [rdx + rax + 8], r14b
add rax, 1
jno 0x140072614
call fcn.140008cc0
jmp 0x140072629
mov edx, 1
mov rcx, r13
or r14d, 0xffffffc0
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x140072a19
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
xor r14d, r14d
jmp 0x1400721d7
mov r12, qword [rsp + 0x1f0]
jmp 0x140072245
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rax
call fcn.1400093d0
jmp 0x140072245
mov edx, 1
mov rcx, r13
sub r14d, 1
call fcn.140009e30
mov rax, qword [rsp + 0x80]
or r14d, 0xffffffc0
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x140072a2d
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
movzx r9d, byte [rsp + 0x44]
movzx r11d, byte [rsp + 0x34]
movzx r10d, byte [rsp + 0x45]
lea r14, [r9 + r9*2]
lea rax, [r11 + r11*4]
add rax, r14
lea r14, [r10*8]
sub r14, r10
add r14, rax
movzx eax, r12b
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
add r14, rax
and r14d, 0x3f
jmp 0x140072330
sub rax, r11
lea r15, [rax + 8]
cmp r15, 0xf
ja 0x1400728ea
lea r8, [r11 + 0x20]
cmp r8, 0x3f
ja 0x1400728ea
sub r10, r11
lea r14, [r10 + 8]
cmp r14, 0xf
ja 0x1400728ea
mov edx, 1
mov rcx, r13
mov qword [rsp + 0x38], r8
call fcn.140009e30
mov r8, qword [rsp + 0x38]
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
or r8d, 0xffffff80
mov byte [rdx + rax + 8], r8b
add rax, 1
jo 0x140072a41
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov rax, r15
shl rax, 4
or r14d, eax
nop dword [rax + rax]
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r14b
add rax, 1
jo 0x140072428
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
movzx eax, byte [rsp + 0x45]
mov byte [rsp + 0x38], r12b
xor r14d, r14d
mov byte [rsp + 0x47], al
movzx eax, byte [rsp + 0x34]
mov byte [rsp + 0x40], al
movzx eax, byte [rsp + 0x44]
mov byte [rsp + 0x46], al
jmp 0x1400721d7
call fcn.140008cc0
jmp 0x140071fd7
call fcn.140008cc0
jmp 0x14007205a
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r10
call fcn.1400093d0
jmp 0x140071fd7
sub rdx, 1
call fcn.14000b8e0
jmp 0x140071fd7
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r10
call fcn.1400093d0
jmp 0x14007205a
sub rdx, 1
call fcn.14000b8e0
jmp 0x14007205a
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0xff
add rax, 1
jo 0x140072a87
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x44]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072a7d
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x34]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072a73
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072a69
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], r12b
add rax, 1
jno 0x140072614
jmp 0x140072428
mov r12, qword [rsp + 0x1f0]
mov ebx, 7
nop dword [rax]
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0
add rax, 1
jo 0x140072a37
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072245
sub rbx, 1
jne 0x140072848
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 1
add rax, 1
jo 0x140072240
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
jmp 0x140072245
sub rax, r11
lea r15, [rax + 8]
jmp 0x140072562
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], 0xfe
add rax, 1
jo 0x140072a5f
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x44]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072a55
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x34]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jo 0x140072a4b
mov rdx, qword [rsp + 0x88]
mov qword [rsp + 0x80], rax
mov byte [rdx + rax + 8], 0
cmp byte [rsi], 0
jne 0x140072490
mov edx, 1
mov rcx, r13
call fcn.140009e30
mov rax, qword [rsp + 0x80]
movzx ecx, byte [rsp + 0x45]
mov rdx, qword [rsp + 0x88]
mov byte [rdx + rax + 8], cl
add rax, 1
jno 0x140072614
jmp 0x140072428
call fcn.140008cc0
jmp 0x1400720f4
call fcn.140008cc0
jmp 0x1400720a7
call fcn.140008cc0
jmp 0x14007247d
call fcn.140008cc0
jmp 0x140071f45
call fcn.140008cc0
jmp 0x140072509
call fcn.140008cc0
jmp 0x140072889
call fcn.140008cc0
jmp 0x1400725d0
call fcn.140008cc0
jmp 0x1400729c7
call fcn.140008cc0
jmp 0x140072979
call fcn.140008cc0
jmp 0x14007292b
call fcn.140008cc0
jmp 0x1400727fb
call fcn.140008cc0
jmp 0x1400727ad
call fcn.140008cc0
jmp 0x14007275f
call fcn.140008cc0
jmp 0x140072711