Function at 0x14005ca20
Capabilities:
Encode data using base64

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x30
mov edx, 2
mov qword [rsp + 0x28], 0
mov rsi, rcx
xor ecx, ecx
call fcn.14000ca50
mov r10d, 0x4d42
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
lea rdx, [rax + rdx + 0x10]
mov word [rdx], r10w
mov byte [rdx + 2], 0
add qword [rax], 2
mov rdx, qword [rsp + 0x28]
xor eax, eax
test rdx, rdx
je 0x14005a3d0
mov rax, qword [rdx]
add rax, 4
mov rbx, rax
jo 0x14005a8c1
test rbx, rbx
js 0x14005a848
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
lea rdi, [rsp + 0x28]
call fcn.14000c4f0
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14005a7c8
mov rbx, qword [rcx]
sub rbx, 4
mov rbp, rbx
jo 0x14005a610
lea r12, [rbx + 0x10]
test rbx, rbx
js 0x14005a63d
mov rdx, qword [rcx]
cmp rdx, rbx
jle 0x14005a640
mov dword [rcx + r12], 0
mov rax, qword [rcx]
add rax, 2
mov rbx, rax
jo 0x14005a8ad
test rbx, rbx
js 0x14005a7e8
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
call fcn.14000c4f0
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14005a7a8
mov rbx, qword [rcx]
sub rbx, 2
mov rbp, rbx
jo 0x14005a6f8
lea r12, [rbx + 0x10]
test rbx, rbx
js 0x14005a718
mov rdx, qword [rcx]
cmp rdx, rbx
jle 0x14005a71b
xor eax, eax
mov word [rcx + r12], ax
mov rax, qword [rcx]
add rax, 2
mov rbx, rax
jo 0x14005a8b7
test rbx, rbx
js 0x14005a828
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
call fcn.14000c4f0
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x14005a788
mov rbx, qword [rcx]
sub rbx, 2
mov rbp, rbx
jo 0x14005a6a8
lea r12, [rbx + 0x10]
test rbx, rbx
js 0x14005a6c8
mov rdx, qword [rcx]
cmp rdx, rbx
jle 0x14005a6cb
xor edx, edx
mov word [rcx + r12], dx
mov rax, qword [rcx]
add rax, 4
mov rbx, rax
jo 0x14005a8cb
test rbx, rbx
js 0x14005a808
mov rcx, qword [rsp + 0x28]
mov rdx, rbx
call fcn.14000c4f0
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14005a770
mov rbx, qword [rax]
sub rbx, 4
mov rdi, rbx
jo 0x14005a670
test rbx, rbx
js 0x14005a68c
mov rdx, qword [rax]
cmp rdx, rbx
jle 0x14005a68f
mov dword [rax + rdi + 0x10], 0x96
mov rcx, rsi
call fcn.140058ca0
mov rbx, rax
test rax, rax
je 0x14005a748
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov rsi, rax
mov rax, qword [rax]
lea rcx, [rsi + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rsi], rax
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14005a762
mov rdx, qword [rax]
mov ebx, edx
cmp rdx, 2
jg 0x14005a5ff
sub rdx, 1
mov ecx, 2
call fcn.14000d730
mov rax, qword [rsp + 0x28]
mov dword [rax + 0x12], ebx
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call fcn.140008e90
lea r12, [rbx + 0x10]
mov rcx, qword [rsp + 0x28]
test rbx, rbx
js 0x14005a638
test rcx, rcx
jne 0x14005a42e
mov rdx, 0xffffffffffffffff
jmp 0x14005a644
test rcx, rcx
je 0x14005a62c
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, rbp
call fcn.14000d730
mov rcx, qword [rsp + 0x28]
xor eax, eax
mov dword [rcx + r12], 0
test rcx, rcx
jne 0x14005a442
jmp 0x14005a445
call fcn.140008e90
mov rax, qword [rsp + 0x28]
test rbx, rbx
jns 0x14005a868
test rax, rax
je 0x14005a871
mov rdx, qword [rax]
sub rdx, 1
mov rcx, rdi
call fcn.14000d730
mov rax, qword [rsp + 0x28]
jmp 0x14005a584
call fcn.140008e90
lea r12, [rbx + 0x10]
mov rcx, qword [rsp + 0x28]
test rbx, rbx
jns 0x14005a898
test rcx, rcx
je 0x14005a8a1
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, rbp
call fcn.14000d730
mov rcx, qword [rsp + 0x28]
xor r8d, r8d
xor eax, eax
mov word [rcx + r12], r8w
test rcx, rcx
jne 0x14005a520
jmp 0x14005a523
call fcn.140008e90
lea r12, [rbx + 0x10]
mov rcx, qword [rsp + 0x28]
test rbx, rbx
jns 0x14005a880
test rcx, rcx
je 0x14005a889
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, rbp
call fcn.14000d730
mov rcx, qword [rsp + 0x28]
xor r9d, r9d
xor eax, eax
mov word [rcx + r12], r9w
test rcx, rcx
jne 0x14005a4b1
jmp 0x14005a4b4
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.14000ca50
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x14005a5e1
xor ebx, ebx
mov rdx, 0xffffffffffffffff
jmp 0x14005a5f0
mov rdi, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
jmp 0x14005a693
mov r12d, 0xe
mov rbp, 0xfffffffffffffffe
mov rdx, 0xffffffffffffffff
jmp 0x14005a6cf
mov r12d, 0xe
mov rbp, 0xfffffffffffffffe
mov rdx, 0xffffffffffffffff
jmp 0x14005a71f
mov r12d, 0xc
mov rbp, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
jmp 0x14005a644
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005a45b
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005a539
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005a4ca
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005a3e6
test rax, rax
jne 0x14005a578
mov rdx, 0xffffffffffffffff
jmp 0x14005a693
test rcx, rcx
jne 0x14005a49e
mov rdx, 0xffffffffffffffff
jmp 0x14005a71f
test rcx, rcx
jne 0x14005a50d
mov rdx, 0xffffffffffffffff
jmp 0x14005a6cf
call fcn.140008e90
jmp 0x14005a452
call fcn.140008e90
jmp 0x14005a4c1
call fcn.140008e90
jmp 0x14005a3dd
call fcn.140008e90
jmp 0x14005a530
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov rdx, qword [rcx + 0x10]
mov rsi, rcx
test rdx, rdx
je 0x14005c57e
cmp qword [rdx], 0
jne 0x14005c62b
mov rcx, qword [0x140090ba0]
mov edx, 0x30
lea rbp, [0x14008d3e0]
call fcn.14000bb80
lea rcx, [0x14008d5a0]
mov rbx, rax
mov rax, qword [0x140090b20]
mov qword [rbx + 0x10], rbp
mov rdi, qword [rbx + 0x18]
mov qword [rbx], rax
call fcn.14000b230
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x14005c5da
mov rax, qword [rdi - 0x10]
lea rdx, [rdi - 0x10]
sub rax, 8
mov qword [rdi - 0x10], rax
cmp rax, 7
jbe 0x14005c6a0
mov rax, qword [rbx + 8]
test rax, rax
je 0x14005c5fd
mov rdi, qword [rax - 0x10]
lea rcx, [rax - 0x10]
lea rdx, [rdi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x14005c688
mov qword [rbx + 8], 0
mov rdx, rbp
mov rcx, rbx
lea r9, str.png.nim
mov qword [rsp + 0x20], 0x28f
lea r8, str.encodePng
call fcn.14000d440
mov rdx, qword [rsi + 0x10]
mov r8, qword [0x140090c40]
lea rbx, [rsp + 0x38]
mov rcx, rbx
call fcn.140010a90
mov rcx, rbx
call fcn.140058a90
mov rdx, qword [rsp + 0x38]
xor eax, eax
test rdx, rdx
je 0x14005c65a
mov rax, qword [rdx]
shl rax, 2
mov r10, qword [rsi + 8]
mov rcx, qword [rsi]
lea r9, [rdx + 0x10]
mov qword [rsp + 0x20], rax
mov r8d, 4
mov rdx, r10
call fcn.14005aca0
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
jmp 0x14005c5fd
mov rax, qword [str._l_n_]
lea rcx, [rax + 0x18]
call fcn.140007130
jmp 0x14005c5da
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov edx, 2
mov qword [rsp + 0x28], 0
mov r12, rcx
xor ecx, ecx
call fcn.14000ca50
mov r10d, 0x3650
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
lea rdx, [rax + rdx + 0x10]
mov word [rdx], r10w
mov byte [rdx + 2], 0
mov edx, 1
add qword [rax], 2
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
mov r11d, 0xa
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov word [rax + rdx + 0x10], r11w
add qword [rax], 1
mov rcx, qword [r12]
call fcn.140001f70
mov rbx, rax
test rax, rax
je 0x14005c97a
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov rsi, rax
mov rax, qword [rax]
lea rcx, [rsi + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rsi], rax
mov rcx, qword [rsp + 0x28]
mov edx, 1
call fcn.14000ca50
mov r9d, 0x20
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov word [rax + rdx + 0x10], r9w
add qword [rax], 1
mov rcx, qword [r12 + 8]
call fcn.140001f70
mov rbx, rax
test rax, rax
je 0x14005c961
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov rsi, rax
mov rax, qword [rax]
lea rcx, [rsi + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rsi], rax
mov rcx, qword [rsp + 0x28]
mov edx, 1
call fcn.14000ca50
mov ecx, 0xa
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov word [rax + rdx + 0x10], cx
mov edx, 3
add qword [rax], 1
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov dword [rax + rdx + 0x10], 0x353532
mov edx, 1
add qword [rax], 3
mov rcx, qword [rsp + 0x28]
call fcn.14000ca50
mov r8d, 0xa
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov word [rax + rdx + 0x10], r8w
add qword [rax], 1
mov rdx, qword [r12 + 8]
test rdx, rdx
jle 0x14005c91a
mov rax, qword [r12]
xor esi, esi
lea rbx, [rsp + 0x28]
nop word [rax + rax]
test rax, rax
jle 0x14005c930
xor edi, edi
jmp 0x14005c8f4
imul rax, rsi
mov rdx, qword [r12 + 0x10]
lea rax, [rdi + rax + 4]
mov edx, dword [rdx + rax*4]
mov ebp, edx
movsx eax, dh
movsx edx, dl
shr ebp, 0x10
mov r13d, eax
movsx ebp, bpl
mov rcx, qword [rsp + 0x28]
add rdi, 1
call fcn.14000c790
mov rcx, rbx
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x28]
mov edx, r13d
call fcn.14000c790
mov rcx, rbx
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x28]
mov edx, ebp
call fcn.14000c790
mov rcx, rbx
mov rdx, rax
call fcn.140008df0
mov rax, qword [r12]
cmp rdi, rax
jge 0x14005c908
cmp rsi, qword [r12 + 8]
jl 0x14005c880
xor edx, edx
xor r13d, r13d
xor ebp, ebp
jmp 0x14005c8a3
mov rdx, qword [r12 + 8]
add rsi, 1
cmp rsi, rdx
jl 0x14005c870
mov rax, qword [rsp + 0x28]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
lea rax, [rsi + 1]
cmp rdx, rax
jle 0x14005c91a
mov rcx, rdx
sub rcx, rax
and ecx, 1
je 0x14005c94d
lea rax, [rsi + 2]
cmp rdx, rax
jle 0x14005c91a
add rax, 2
cmp rdx, rax
jle 0x14005c91a
add rax, 2
cmp rdx, rax
jg 0x14005c94d
jmp 0x14005c91a
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.14000ca50
mov qword [rsp + 0x28], rax
mov rcx, rax
jmp 0x14005c7e7
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.14000ca50
mov qword [rsp + 0x28], rax
mov rcx, rax
jmp 0x14005c777
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x188
mov rax, qword [rcx]
imul rax, qword [rcx + 8]
mov qword [rsp + 0x78], 0
mov rbp, rcx
jo 0x14005d34b
mov edx, 0xffffffff
cmp rax, rdx
jg 0x14005d0f8
mov rax, qword [rbp + 0x20]
xor ecx, ecx
test rax, rax
je 0x14005ca69
mov rcx, qword [rax]
imul rcx, rcx, 3
jo 0x14005d337
add rcx, 0x16
jo 0x14005d369
test rcx, rcx
js 0x14005d208
call fcn.14000bdc0
mov edx, 4
mov rcx, rax
mov qword [rsp + 0x78], rax
call fcn.14000ca50
mov qword [rsp + 0x78], rax
mov rdx, qword [rax]
lea rdx, [rax + rdx + 0x10]
mov dword [rdx], 0x66696f71
mov byte [rdx + 4], 0
add qword [rax], 4
mov rsi, qword [rbp]
xor eax, eax
mov rdx, qword [rsp + 0x78]
bswap esi
test rdx, rdx
je 0x14005cacd
mov rax, qword [rdx]
add rax, 4
mov rbx, rax
jo 0x14005d35f
test rbx, rbx
js 0x14005d1e8
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
lea r15, [rsp + 0x78]
call fcn.14000c4f0
mov rcx, r15
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005d1d0
mov rbx, qword [rcx]
sub rbx, 4
mov rdi, rbx
jo 0x14005ce58
test rbx, rbx
js 0x14005ce85
mov rdx, qword [rcx]
cmp rbx, rdx
jge 0x14005ce88
mov dword [rcx + rbx + 0x10], esi
mov rsi, qword [rbp + 8]
bswap esi
mov rax, qword [rcx]
add rax, 4
mov rbx, rax
jo 0x14005d32d
test rbx, rbx
js 0x14005d230
mov rcx, qword [rsp + 0x78]
mov rdx, rbx
call fcn.14000c4f0
mov rcx, r15
mov rdx, rax
call fcn.140008df0
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x14005d1b8
mov rbx, qword [rcx]
sub rbx, 4
mov rdi, rbx
jo 0x14005d0c0
test rbx, rbx
js 0x14005d0dc
mov rdx, qword [rcx]
cmp rbx, rdx
jge 0x14005d0df
mov dword [rcx + rdi + 0x10], esi
movsx edx, byte [rbp + 0x10]
lea rdi, [rsp + 0x80]
call fcn.14000c790
mov rcx, r15
mov rdx, rax
call fcn.140008df0
movsx edx, byte [rbp + 0x18]
mov rcx, qword [rsp + 0x78]
call fcn.14000c790
mov rcx, r15
mov rdx, rax
call fcn.140008df0
xor eax, eax
mov ecx, 0x20
mov qword [rsp + 0x68], rdi
rep stosq qword [rdi], rax
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x14005d045
mov r14, qword [rax]
test r14, r14
jle 0x14005d045
mov qword [rsp + 0x38], r15
mov edi, dword [0x14008d6f0]
xor esi, esi
xor ebx, ebx
jmp 0x14005cdcd
test bl, bl
je 0x14005cc46
lea edx, [rbx - 1]
mov rcx, qword [rsp + 0x78]
mov ebx, edx
or ebx, 0xffffffc0
movsx edx, bl
call fcn.14000c790
mov rcx, qword [rsp + 0x38]
mov rdx, rax
call fcn.140008df0
mov eax, r12d
mov ebx, r12d
movzx r10d, r12b
mov ecx, r12d
shr ebx, 0x10
movzx eax, ah
shr ecx, 0x18
mov r15d, r12d
mov dword [rsp + 0x48], eax
mov eax, r12d
movzx r11d, bl
movzx eax, ah
mov dword [rsp + 0x4c], ebx
lea rbx, [r10 + r10*2]
mov r9, rax
lea rax, [rax + rax*4]
mov dword [rsp + 0x44], ecx
add rbx, rax
lea rax, [r11*8]
sub rax, r11
add rbx, rax
movzx eax, cl
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
add rbx, rax
jo 0x14005d305
mov rax, rbx
mov qword [rsp + 0x60], r11
sar rax, 0x3f
mov qword [rsp + 0x58], r9
shr rax, 0x3a
mov qword [rsp + 0x50], r10
add rbx, rax
and ebx, 0x3f
sub rbx, rax
cmp rbx, 0x3f
ja 0x14005cfe0
mov ecx, dword [rsp + rbx*4 + 0x80]
mov edx, r13d
call fcn.140012a40
mov r10, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
test al, al
mov r11, qword [rsp + 0x60]
jne 0x14005cfc0
mov rax, qword [rsp + 0x68]
mov dword [rax + rbx*4], r12d
mov eax, edi
mov ebx, dword [rsp + 0x44]
shr eax, 0x18
mov rcx, qword [rsp + 0x78]
cmp bl, al
je 0x14005cee0
mov edx, 0xffffffff
call fcn.14000c790
mov rdi, qword [rsp + 0x38]
mov rdx, rax
mov rcx, rdi
call fcn.140008df0
mov rcx, qword [rsp + 0x78]
movsx edx, r15b
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
movsx edx, byte [rsp + 0x48]
mov rcx, qword [rsp + 0x78]
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
movsx edx, byte [rsp + 0x4c]
mov rcx, qword [rsp + 0x78]
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
movsx edx, bl
mov rcx, qword [rsp + 0x78]
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
mov rax, qword [rbp + 0x20]
mov edi, r12d
test rax, rax
je 0x14005ce4b
mov rax, qword [rax]
xor ebx, ebx
cmp r14, rax
je 0x14005cdbc
lea rcx, [0x14008d640]
call fcn.140001cb0
add rsi, 1
cmp rsi, r14
je 0x14005d040
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x14005ced0
mov rdx, qword [rax]
cmp rdx, rsi
jle 0x14005ceb8
mov r12d, dword [rax + rsi*4 + 0x10]
mov edx, edi
mov ecx, r12d
mov r13d, r12d
call fcn.140012a40
test al, al
je 0x14005cc20
lea edx, [rbx + 1]
cmp bl, 0x3d
je 0x14005ce21
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x14005d0b0
mov rax, qword [rax]
lea rcx, [rax - 1]
cmp rcx, rsi
jne 0x14005d0a0
mov rcx, qword [rsp + 0x78]
or ebx, 0xffffffc0
movsx edx, bl
call fcn.14000c790
mov rcx, qword [rsp + 0x38]
mov rdx, rax
call fcn.140008df0
mov rax, qword [rbp + 0x20]
test rax, rax
jne 0x14005cda6
xor ebx, ebx
jmp 0x14005cdb0
call fcn.140008e90
mov rcx, qword [rsp + 0x78]
test rbx, rbx
js 0x14005ce80
test rcx, rcx
jne 0x14005cb27
mov rdx, 0xffffffffffffffff
jmp 0x14005ce8c
test rcx, rcx
je 0x14005ce70
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, rdi
call fcn.14000d730
mov rcx, qword [rsp + 0x78]
xor eax, eax
mov dword [rcx + rdi + 0x10], esi
mov rsi, qword [rbp + 8]
bswap esi
test rcx, rcx
je 0x14005cb40
jmp 0x14005cb3d
sub rdx, 1
mov rcx, rsi
call fcn.14000d730
mov rax, qword [rbp + 0x20]
jmp 0x14005cde2
mov rdx, 0xffffffffffffffff
jmp 0x14005cebc
movzx eax, dil
sub r10, rax
mov eax, edi
shr edi, 0x10
movzx edi, dil
movzx eax, ah
sub r11, rdi
sub r9, rax
mov rax, r10
add r10, 2
mov rbx, r11
sub rax, r9
sub rbx, r9
cmp r10, 3
setbe dl
cmp r9, 0xfffffffffffffffe
setge dil
and edi, edx
cmp r9, 1
setle dl
and edx, edi
cmp r11, 0xfffffffffffffffe
setge dil
test dl, dil
je 0x14005cf3a
cmp r11, 1
jle 0x14005d250
cmp r9, 0xffffffffffffffe0
lea rdi, [rax + 8]
setge dl
cmp r9, 0x1f
setle r10b
and edx, r10d
cmp rdi, 0xf
setbe al
test dl, al
je 0x14005cf69
add rbx, 8
cmp rbx, 0xf
jbe 0x14005d2c0
mov edx, 0xfffffffe
call fcn.14000c790
mov rdi, qword [rsp + 0x38]
mov rdx, rax
mov rcx, rdi
call fcn.140008df0
mov rcx, qword [rsp + 0x78]
movsx edx, r15b
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
movsx edx, byte [rsp + 0x48]
mov rcx, qword [rsp + 0x78]
call fcn.14000c790
mov rcx, rdi
mov rdx, rax
call fcn.140008df0
movsx edx, byte [rsp + 0x4c]
jmp 0x14005cd81
mov rcx, qword [rsp + 0x78]
mov edx, ebx
call fcn.14000c790
mov rcx, qword [rsp + 0x38]
mov rdx, rax
call fcn.140008df0
jmp 0x14005cd96
mov edx, 0x3f
mov rcx, rbx
call fcn.14000d730
mov ecx, dword [rsp + rbx*4 + 0x80]
mov edx, r13d
call fcn.140012a40
mov r10, qword [rsp + 0x50]
mov r9, qword [rsp + 0x58]
test al, al
mov r11, qword [rsp + 0x60]
jne 0x14005cfc0
mov edx, 0x3f
mov rcx, rbx
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r10
call fcn.14000d730
mov r11, qword [rsp + 0x60]
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
jmp 0x14005ccf8
mov r15, qword [rsp + 0x38]
mov ebx, 7
nop word [rax + rax]
mov rcx, qword [rsp + 0x78]
xor edx, edx
call fcn.14000c790
mov rcx, r15
mov rdx, rax
call fcn.140008df0
sub rbx, 1
jne 0x14005d050
mov rcx, qword [rsp + 0x78]
mov edx, 1
call fcn.14000c790
mov rcx, r15
mov rdx, rax
call fcn.140008df0
mov rax, qword [rsp + 0x78]
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebx, edx
jmp 0x14005cdab
mov ebx, edx
jmp 0x14005cdb0
call fcn.140008e90
mov rcx, qword [rsp + 0x78]
test rbx, rbx
jns 0x14005d290
test rcx, rcx
je 0x14005d299
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, rdi
call fcn.14000d730
mov rcx, qword [rsp + 0x78]
jmp 0x14005cba1
mov rcx, qword [0x140090ba0]
mov edx, 0x30
lea rdi, [0x14008d5e0]
call fcn.14000bb80
lea rcx, [0x14008d6c0]
mov rbx, rax
mov rax, qword [0x140090b20]
mov qword [rbx + 0x10], rdi
mov rsi, qword [rbx + 0x18]
mov qword [rbx], rax
call fcn.14000b230
mov qword [rbx + 0x18], rax
test rsi, rsi
je 0x14005d154
mov rax, qword [rsi - 0x10]
lea rdx, [rsi - 0x10]
sub rax, 8
mov qword [rsi - 0x10], rax
cmp rax, 7
jbe 0x14005d2a8
mov rax, qword [rbx + 8]
test rax, rax
je 0x14005d186
mov rsi, qword [rax - 0x10]
lea rcx, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x14005d186
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
mov qword [rbx + 8], 0
lea r9, str.qoi.nim
mov rdx, rdi
mov rcx, rbx
mov qword [rsp + 0x20], 0xa0
lea r8, str.encodeQoi
call fcn.14000d440
jmp 0x14005ca5b
mov rdi, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
jmp 0x14005d0e3
mov rdi, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
jmp 0x14005ce8c
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005cae3
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov qword [rsp + 0x38], rcx
call fcn.14000d590
mov rcx, qword [rsp + 0x38]
jmp 0x14005ca86
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rbx
call fcn.14000d590
jmp 0x14005cb56
shl r10d, 4
lea r9d, [r9*4 + 8]
add r11, 2
mov edx, r10d
or edx, r9d
or edx, r11d
or edx, 0x40
movsx edx, dl
call fcn.14000c790
mov rcx, qword [rsp + 0x38]
mov rdx, rax
call fcn.140008df0
jmp 0x14005cd96
test rcx, rcx
jne 0x14005cb95
mov rdx, 0xffffffffffffffff
jmp 0x14005d0e3
mov rax, qword [str._l_n_]
lea rcx, [rax + 0x18]
call fcn.140007130
jmp 0x14005d154
add r9, 0x20
or r9d, 0xffffff80
movsx edx, r9b
call fcn.14000c790
mov r15, qword [rsp + 0x38]
mov rdx, rax
mov rcx, r15
call fcn.140008df0
mov eax, edi
mov rcx, qword [rsp + 0x78]
shl eax, 4
or eax, ebx
movsx edx, al
call fcn.14000c790
mov rcx, r15
mov rdx, rax
call fcn.140008df0
jmp 0x14005cd96
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x58], r9
mov qword [rsp + 0x50], r10
call fcn.140008e90
mov r11, qword [rsp + 0x60]
mov r9, qword [rsp + 0x58]
mov r10, qword [rsp + 0x50]
jmp 0x14005cca5
call fcn.140008e90
jmp 0x14005cb4d
mov qword [rsp + 0x38], rcx
call fcn.140008e90
mov rcx, qword [rsp + 0x38]
jmp 0x14005ca73
mov qword [rsp + 0x38], rax
call fcn.140008e90
mov rax, qword [rsp + 0x38]
jmp 0x14005ca4d
call fcn.140008e90
jmp 0x14005cada
mov qword [rsp + 0x38], rcx
call fcn.140008e90
mov rcx, qword [rsp + 0x38]
jmp 0x14005ca7d
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov edx, 0x28
xor esi, esi
mov rdi, rcx
lea rcx, [0x1400b1b00]
call fcn.14000bb80
mov rbx, rax
mov rax, qword [rdi]
mov qword [rbx], rax
mov rax, qword [rdi + 8]
mov qword [rbx + 0x10], 4
mov qword [rbx + 8], rax
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14005d3cc
mov rsi, qword [rax]
test rsi, rsi
js 0x14005d540
mov rcx, qword [rbx + 0x20]
mov r8, rsi
lea rdx, [0x1400b1b40]
lea rbp, [rbx + 0x20]
call fcn.140011970
mov rsi, rax
test rax, rax
je 0x14005d4f8
add qword [rax - 0x10], 8
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14005d417
mov rdx, qword [rax - 0x10]
lea rcx, [rax - 0x10]
sub rdx, 8
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x14005d4a0
mov qword [rbx + 0x20], rsi
mov rdx, qword [rsi]
test rdx, rdx
jle 0x14005d4c3
mov rax, qword [rdi + 0x10]
test rax, rax
je 0x14005d480
mov r8, qword [rax]
lea rdx, [r8 - 1]
test r8, r8
jle 0x14005d487
imul rsi, r8, 4
jo 0x14005d559
test rsi, rsi
js 0x14005d4d8
mov rax, qword [rbx + 0x20]
mov rdx, qword [rdi + 0x10]
mov r8, rsi
add rdx, 0x10
lea rcx, [rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rcx, rbp
call fcn.140058b50
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
jmp 0x14005ca20
mov rdx, 0xffffffffffffffff
xor ecx, ecx
call fcn.14000d730
mov rax, qword [rdi + 0x10]
xor r8d, r8d
test rax, rax
je 0x14005d43c
mov r8, qword [rax]
jmp 0x14005d43c
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
mov qword [rbx + 0x20], rsi
mov rdx, qword [rsi]
test rdx, rdx
jg 0x14005d427
sub rdx, 1
xor ecx, ecx
call fcn.14000d730
jmp 0x14005d427
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d590
jmp 0x14005d44f
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x14005d532
mov rsi, qword [rax - 0x10]
lea rcx, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x14005d52a
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
mov qword [rbx + 0x20], 0
mov rdx, 0xffffffffffffffff
jmp 0x14005d4c7
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.14000d590
jmp 0x14005d3cc
call fcn.140008e90
jmp 0x14005d446
push rdi
push rsi
push rbx
sub rsp, 0x30
cmp dl, 5
ja case.default.0x14005d851
lea r8, [0x14008d764]
movzx edx, dl
movsxd rax, dword [r8 + rdx*4]
add rax, r8
jmp rax
mov rcx, qword [0x140090ba0]
mov edx, 0x30
lea rsi, str.PixieError
call fcn.14000bb80
lea rcx, [0x14008d780]
mov rbx, rax
mov rax, qword [0x140090b20]
mov qword [rbx + 0x10], rsi
mov rdi, qword [rbx + 0x18]
mov qword [rbx], rax
call fcn.14000b230
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x14005d8c0
mov rax, qword [rdi - 0x10]
lea rdx, [rdi - 0x10]
sub rax, 8
mov qword [rdi - 0x10], rax
cmp rax, 7
ja 0x14005d8c0
mov rax, qword [str._l_n_]
lea rcx, [rax + 0x18]
call fcn.140007130
mov rax, qword [rbx + 8]
test rax, rax
je 0x14005d8f2
mov rdi, qword [rax - 0x10]
lea rcx, [rax - 0x10]
lea rdx, [rdi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x14005d8f2
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
mov qword [rbx + 8], 0
mov qword [rsp + 0x20], 0x5e
lea r9, str.pixie.nim
lea r8, str.encodeImage
mov rdx, rsi
mov rcx, rbx
call fcn.14000d440
xor eax, eax
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
add rsp, 0x30
pop rbx
pop rsi
pop rdi
jmp 0x14005d380
add rsp, 0x30
pop rbx
pop rsi
pop rdi
jmp 0x14005c6c0
add rsp, 0x30
pop rbx
pop rsi
pop rdi
jmp 0x14005c560
add rsp, 0x30
pop rbx
pop rsi
pop rdi
jmp 0x14005a380
mov rcx, qword [0x140090ba0]
mov edx, 0x30
lea rsi, str.PixieError
call fcn.14000bb80
lea rcx, [0x14008d780]
mov rbx, rax
mov rax, qword [0x140090b20]
mov qword [rbx + 0x10], rsi
mov rdi, qword [rbx + 0x18]
mov qword [rbx], rax
call fcn.14000b230
mov qword [rbx + 0x18], rax
test rdi, rdi
je 0x14005d9d8
mov rax, qword [rdi - 0x10]
lea rdx, [rdi - 0x10]
sub rax, 8
mov qword [rdi - 0x10], rax
cmp rax, 7
ja 0x14005d9d8
mov rax, qword [str._l_n_]
lea rcx, [rax + 0x18]
call fcn.140007130
mov rax, qword [rbx + 8]
test rax, rax
je 0x14005da0a
mov rdi, qword [rax - 0x10]
lea rcx, [rax - 0x10]
lea rdx, [rdi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x14005da0a
mov rax, qword [str._l_n_]
mov rdx, rcx
lea rcx, [rax + 0x18]
call fcn.140007130
mov qword [rbx + 8], 0
mov qword [rsp + 0x20], 0x64
jmp 0x14005d903