Function at 0x463b70
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rbx
sub rsp, 0x30
mov edx, 2
mov r14d, 4
mov qword [rsp + 0x28], 0
mov r12, rcx
xor ecx, ecx
call fcn.0040b8c0
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 rcx, qword [rsp + 0x28]
test rcx, rcx
je 0x461355
mov rcx, qword [rcx]
add rcx, 4
mov r13, rcx
mov r14, rcx
jo 0x461610
mov rcx, qword [rsp + 0x28]
test r13, r13
js 0x461623
mov rdx, r14
lea r13, [rsp + 0x28]
call fcn.0040d6a0
mov rcx, r13
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x461810
mov rbx, qword [rax]
sub rbx, 4
mov r15, rbx
jo 0x4615b0
lea r14, [rbx + 0x10]
test rbx, rbx
js 0x4616d1
mov rdx, qword [rax]
cmp rbx, rdx
jge 0x4616d4
mov dword [rax + r14], 0
mov rcx, qword [rax]
add rcx, 2
mov r14, rcx
mov r15, rcx
jno 0x4613c0
call fcn.0040a060
test r14, r14
jns 0x4613d9
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.0040dba0
mov rcx, qword [rsp + 0x28]
mov rdx, r15
call fcn.0040d6a0
mov rcx, r13
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x4617f0
mov rbx, qword [rax]
sub rbx, 2
mov r15, rbx
jo 0x461780
lea r14, [rbx + 0x10]
test rbx, rbx
js 0x461691
mov rdx, qword [rax]
cmp rbx, rdx
jge 0x461694
xor edx, edx
mov word [rax + r14], dx
mov rcx, qword [rax]
add rcx, 2
mov r14, rcx
mov r15, rcx
jno 0x461443
call fcn.0040a060
test r14, r14
jns 0x46145c
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.0040dba0
mov rcx, qword [rsp + 0x28]
mov rdx, r15
call fcn.0040d6a0
mov rcx, r13
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x4617b0
mov rbx, qword [rax]
sub rbx, 2
mov r15, rbx
jo 0x461720
lea r14, [rbx + 0x10]
test rbx, rbx
js 0x461651
mov rdx, qword [rax]
cmp rbx, rdx
jge 0x461654
xor ecx, ecx
mov word [rax + r14], cx
mov rcx, qword [rax]
add rcx, 4
mov r14, rcx
mov r15, rcx
jno 0x4614c6
call fcn.0040a060
test r14, r14
jns 0x4614df
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r14
call fcn.0040dba0
mov rcx, qword [rsp + 0x28]
mov rdx, r15
call fcn.0040d6a0
mov rcx, r13
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x4617d0
mov rbx, qword [rax]
sub rbx, 4
mov r14, rbx
jo 0x461750
lea r13, [rbx + 0x10]
test rbx, rbx
js 0x4616e9
mov rdx, qword [rax]
cmp rbx, rdx
jge 0x4616ec
mov dword [rax + r13], 0x96
mov rcx, r12
call fcn.0045fb90
mov rbx, rax
test rax, rax
je 0x461840
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov r12, rax
mov rax, qword [rax]
lea rcx, [r12 + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [r12], rax
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x461830
mov rdx, qword [rax]
mov ebx, edx
cmp rdx, 2
jle 0x461708
mov dword [rax + 0x12], ebx
add rsp, 0x30
pop rbx
pop r12
pop r13
pop r14
pop r15
ret
call fcn.0040a060
lea r14, [rbx + 0x10]
mov rax, qword [rsp + 0x28]
test rbx, rbx
js 0x4616c8
mov rdx, 0xffffffffffffffff
test rax, rax
jne 0x461398
nop word [rax + rax]
mov rcx, r15
mov r15d, 2
call fcn.0040dd50
mov rax, qword [rsp + 0x28]
mov dword [rax + r14], 0
test rax, rax
jne 0x4613ac
jmp 0x4613d9
call fcn.0040a060
mov rcx, qword [rsp + 0x28]
test r13, r13
jns 0x461355
movabs r8, 0x7fffffffffffffff
mov rcx, r13
xor edx, edx
call fcn.0040dba0
mov rcx, qword [rsp + 0x28]
jmp 0x461355
test rax, rax
je 0x46185f
mov rdx, qword [rax]
sub rdx, 1
mov rcx, r15
mov r15d, 4
call fcn.0040dd50
mov rax, qword [rsp + 0x28]
xor r8d, r8d
mov word [rax + r14], r8w
test rax, rax
jne 0x4614b2
jmp 0x4614df
test rax, rax
je 0x461871
mov rdx, qword [rax]
sub rdx, 1
mov rcx, r15
mov r15d, 2
call fcn.0040dd50
mov rax, qword [rsp + 0x28]
xor r9d, r9d
mov word [rax + r14], r9w
test rax, rax
jne 0x46142f
jmp 0x46145c
test rax, rax
je 0x461856
mov rdx, qword [rax]
sub rdx, 1
jmp 0x4615e0
test rax, rax
je 0x461868
mov rdx, qword [rax]
sub rdx, 1
mov rcx, r14
call fcn.0040dd50
mov rax, qword [rsp + 0x28]
jmp 0x46152e
sub rdx, 1
mov ecx, 2
call fcn.0040dd50
mov rax, qword [rsp + 0x28]
jmp 0x46159b
call fcn.0040a060
lea r14, [rbx + 0x10]
mov rax, qword [rsp + 0x28]
test rbx, rbx
js 0x461648
mov rdx, 0xffffffffffffffff
test rax, rax
je 0x461658
jmp 0x46149f
call fcn.0040a060
lea r13, [rbx + 0x10]
mov rax, qword [rsp + 0x28]
test rbx, rbx
js 0x4616e0
mov rdx, 0xffffffffffffffff
test rax, rax
je 0x4616f0
jmp 0x461522
call fcn.0040a060
lea r14, [rbx + 0x10]
mov rax, qword [rsp + 0x28]
test rbx, rbx
js 0x461688
mov rdx, 0xffffffffffffffff
test rax, rax
je 0x461698
jmp 0x46141c
mov r14d, 0xe
mov r15, 0xfffffffffffffffe
mov rdx, 0xffffffffffffffff
jmp 0x461658
mov r14, 0xfffffffffffffffc
mov r13d, 0xc
mov rdx, 0xffffffffffffffff
jmp 0x4616f0
mov r15, 0xfffffffffffffffe
mov r14d, 0xe
mov rdx, 0xffffffffffffffff
jmp 0x461698
mov r15, 0xfffffffffffffffc
mov r14d, 0xc
mov rdx, 0xffffffffffffffff
jmp 0x4615e0
xor ebx, ebx
mov rdx, 0xffffffffffffffff
jmp 0x46170c
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.0040b8c0
mov qword [rsp + 0x28], rax
jmp 0x461583
or rdx, 0xffffffffffffffff
jmp 0x4615e0
or rdx, 0xffffffffffffffff
jmp 0x461658
or rdx, 0xffffffffffffffff
jmp 0x4616f0
or rdx, 0xffffffffffffffff
jmp 0x461698
push r12
push rsi
push rbx
sub rsp, 0x40
mov rdx, qword [rcx + 0x10]
mov rbx, rcx
test rdx, rdx
je 0x4636ae
cmp qword [rdx], 0
jne 0x463765
mov rcx, qword [0x00499ca0]
mov edx, 0x30
call fcn.0040c6d0
lea rcx, [0x00495fe0]
mov r12, rax
mov rax, qword [0x00499b70]
mov rsi, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, [0x00495e00]
mov qword [r12 + 0x10], rax
call fcn.0040b6b0
mov qword [r12 + 0x18], rax
test rsi, rsi
je 0x46370e
mov rax, qword [rsi - 0x10]
lea rdx, [rsi - 0x10]
sub rax, 8
mov qword [rsi - 0x10], rax
cmp rax, 7
jbe 0x4637e0
mov rax, qword [r12 + 8]
test rax, rax
je 0x463732
mov rsi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x4637c0
mov qword [r12 + 8], 0
lea rdx, [0x00495e00]
mov rcx, r12
lea r9, str.png.nim
mov qword [rsp + 0x20], 0x291
lea r8, str.encodePng
call fcn.0040da50
mov rdx, qword [rbx + 0x10]
mov r8, qword [0x00499d40]
lea r12, [rsp + 0x38]
mov rcx, r12
call fcn.004113f0
mov rcx, r12
call fcn.0045f960
mov rdx, qword [rsp + 0x38]
xor eax, eax
test rdx, rdx
je 0x463794
mov rax, qword [rdx]
shl rax, 2
mov r10, qword [rbx + 8]
mov rcx, qword [rbx]
mov qword [rsp + 0x20], rax
lea r9, [rdx + 0x10]
mov r8d, 4
mov rdx, r10
call fcn.00461ce0
add rsp, 0x40
pop rbx
pop rsi
pop r12
ret
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
jmp 0x463732
mov rcx, qword [0x0049a130]
add rcx, 0x18
call fcn.00407d10
jmp 0x46370e
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov edx, 2
mov qword [rsp + 0x28], 0
mov rsi, rcx
xor ecx, ecx
call fcn.0040b8c0
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.0040b8c0
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 [rsi]
call fcn.004020f0
mov rbx, rax
test rax, rax
je 0x463add
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov rdi, rax
mov rax, qword [rax]
lea rcx, [rdi + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rdi], rax
mov rcx, qword [rsp + 0x28]
mov edx, 1
call fcn.0040b8c0
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 [rsi + 8]
call fcn.004020f0
mov rbx, rax
test rax, rax
je 0x463af6
mov rdx, qword [rax]
mov rcx, qword [rsp + 0x28]
call fcn.0040b8c0
lea rdx, [rbx + 0x10]
mov qword [rsp + 0x28], rax
mov rdi, rax
mov rax, qword [rax]
lea rcx, [rdi + rax + 0x10]
mov rax, qword [rbx]
lea r8, [rax + 1]
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
add qword [rdi], rax
mov rcx, qword [rsp + 0x28]
mov edx, 1
call fcn.0040b8c0
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.0040b8c0
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.0040b8c0
mov r8d, 0xa
mov qword [rsp + 0x28], rax
mov rdx, qword [rax]
mov word [rax + rdx + 0x10], r8w
add qword [rax], 1
cmp qword [rsi + 8], 0
jle 0x463abc
xor edi, edi
lea rbx, [rsp + 0x28]
nop dword [rax]
mov rax, qword [rsi]
test rax, rax
jle 0x463ad0
xor ebp, ebp
test rdi, rdi
jns 0x463a45
jmp 0x463a60
imul rax, rdi
mov rdx, qword [rsi + 0x10]
lea rax, [rbp + rax + 4]
mov edx, dword [rdx + rax*4]
mov r12d, edx
movsx eax, dh
mov dword [rsp + 0x24], edx
movsx edx, dl
shr r12d, 0x10
mov r13d, eax
movsx r12d, r12b
mov rcx, qword [rsp + 0x28]
add rbp, 1
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x28]
mov edx, r13d
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x28]
mov edx, r12d
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsi]
cmp rax, rbp
jle 0x463ad0
cmp rdi, qword [rsi + 8]
jl 0x4639c8
xor edx, edx
xor r13d, r13d
xor r12d, r12d
jmp 0x4639f0
mov rcx, qword [rsp + 0x28]
xor edx, edx
add rbp, 1
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.0040b9c0
mov rcx, rbx
mov rdx, rax
call fcn.00409fd0
cmp rbp, qword [rsi]
jl 0x463a60
add rdi, 1
cmp qword [rsi + 8], rdi
jg 0x4639a8
mov rax, qword [rsp + 0x28]
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
add rdi, 1
jno 0x463ab2
call fcn.0040a060
jmp 0x463ab2
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.0040b8c0
mov qword [rsp + 0x28], rax
mov rcx, rax
jmp 0x4638b6
mov rcx, qword [rsp + 0x28]
xor edx, edx
call fcn.0040b8c0
mov qword [rsp + 0x28], rax
mov rcx, rax
jmp 0x463925
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov rax, qword [rcx]
imul rax, qword [rcx + 8]
mov qword [rsp + 0x68], 0
mov rbp, rcx
jo 0x46440c
mov edx, 0xffffffff
cmp rax, rdx
jg 0x464200
mov rax, qword [rbp + 0x20]
mov r13d, 0x16
test rax, rax
je 0x463bda
imul r12, qword [rax], 3
jo 0x464432
add r12, 0x16
mov r13, r12
jo 0x463fe0
test r12, r12
js 0x464010
mov rcx, r13
mov r13d, 4
call fcn.0040cc40
mov edx, 4
mov rcx, rax
mov qword [rsp + 0x68], rax
call fcn.0040b8c0
mov qword [rsp + 0x68], rax
mov rdx, qword [rax]
lea rdx, [rax + rdx + 0x10]
mov dword [rdx], 0x66696f71
mov byte [rdx + 4], 0
add qword [rax], 4
mov rcx, qword [rbp]
mov edx, ecx
mov ebx, ecx
shr ecx, 0x18
shr edx, 0x10
rol bx, 8
shl edx, 8
shl ebx, 0x10
or edx, ecx
mov rcx, qword [rsp + 0x68]
movzx eax, dx
or ebx, eax
test rcx, rcx
je 0x463c5f
mov rcx, qword [rcx]
add rcx, 4
mov r12, rcx
mov r13, rcx
jo 0x463fc8
mov rcx, qword [rsp + 0x68]
test r12, r12
js 0x463ff0
mov rdx, r13
lea r12, [rsp + 0x68]
call fcn.0040d6a0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov r8, qword [rsp + 0x68]
test r8, r8
je 0x464300
mov rsi, qword [r8]
sub rsi, 4
mov r13, rsi
jo 0x463f88
lea rdi, [rsi + 0x10]
test rsi, rsi
js 0x4641e3
mov rdx, qword [r8]
cmp rsi, rdx
jge 0x4641e6
mov dword [r8 + rdi], ebx
mov rcx, qword [rbp + 8]
mov r14d, 4
mov edx, ecx
mov ebx, ecx
shr ecx, 0x18
shr edx, 0x10
rol bx, 8
shl edx, 8
shl ebx, 0x10
or edx, ecx
movzx eax, dx
or ebx, eax
test r8, r8
je 0x463d09
mov rcx, qword [r8]
add rcx, 4
mov r13, rcx
mov r14, rcx
jno 0x463cf0
call fcn.0040a060
test r13, r13
jns 0x463d09
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r13
call fcn.0040dba0
mov rcx, qword [rsp + 0x68]
mov rdx, r14
call fcn.0040d6a0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x464328
mov rsi, qword [rcx]
sub rsi, 4
mov r13, rsi
jo 0x4642d0
lea rdi, [rsi + 0x10]
test rsi, rsi
js 0x4641c1
mov rdx, qword [rcx]
cmp rsi, rdx
jge 0x4641c4
mov dword [rcx + rdi], ebx
movsx edx, byte [rbp + 0x10]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, byte [rbp + 0x18]
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
lea rdx, [rsp + 0x70]
xor eax, eax
mov ecx, 0x20
mov rdi, rdx
rep stosq qword [rdi], rax
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x464160
mov rsi, qword [rax]
mov qword [rsp + 0x40], rsi
test rsi, rsi
jle 0x464160
mov byte [rsp + 0x4e], 0
xor esi, esi
xor ebx, ebx
mov r14d, r15d
mov byte [rsp + 0x3c], 0xff
mov byte [rsp + 0x48], 0
mov byte [rsp + 0x4f], 0
jmp 0x463ec6
test bl, bl
je 0x463e04
lea edx, [rbx - 1]
mov rcx, qword [rsp + 0x68]
mov ebx, edx
or ebx, 0xffffffc0
movsx edx, bl
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movzx r8d, byte [rsp + 0x30]
movzx r10d, byte [rsp + 0x4d]
movzx r14d, r15b
lea rbx, [r8 + r8*2]
lea rax, [r10 + r10*4]
mov qword [rsp + 0x58], r8
add rax, rbx
lea rbx, [r14*8]
mov qword [rsp + 0x50], r10
sub rbx, r14
add rbx, rax
movzx eax, r13b
lea rdx, [rax + rax*4]
lea rax, [rax + rdx*2]
mov edx, edi
add rbx, rax
and ebx, 0x3f
mov ecx, dword [rsp + rbx*4 + 0x70]
call fcn.00413060
mov edx, ebx
test al, al
je 0x464060
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movzx eax, byte [rsp + 0x4d]
mov byte [rsp + 0x3c], r13b
mov r14d, edi
xor ebx, ebx
mov byte [rsp + 0x4e], r15b
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x30]
mov byte [rsp + 0x4f], al
mov rax, qword [rbp + 0x20]
add rsi, 1
test rax, rax
je 0x463eab
mov rdi, qword [rsp + 0x40]
cmp rdi, qword [rax]
je 0x463eb7
lea rcx, [0x00496080]
call fcn.00401e70
cmp rsi, qword [rsp + 0x40]
jge 0x464160
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x464048
mov rdx, qword [rax]
cmp rsi, rdx
jge 0x464030
lea rax, [rax + rsi*4 + 0x10]
mov r14b, byte [rsp + 0x4f]
mov edx, dword [rsp + 0x3c]
movzx edi, byte [rax]
movzx r15d, byte [rax + 2]
movzx r13d, byte [rax + 3]
shl edx, 0x18
mov byte [rsp + 0x30], dil
movzx edi, byte [rax + 1]
mov byte [rsp + 0x4d], dil
mov edi, dword [rax]
mov eax, r14d
mov ah, byte [rsp + 0x48]
mov ecx, edi
mov r14d, eax
movzx eax, byte [rsp + 0x4e]
movzx r8d, r14w
shl eax, 0x10
or r8d, eax
or r8d, edx
mov edx, r8d
mov r14d, r8d
call fcn.00413060
test al, al
je 0x463de0
lea ecx, [rbx + 1]
cmp bl, 0x3d
je 0x463f5f
mov rax, qword [rbp + 0x20]
test rax, rax
je 0x464058
mov rdi, qword [rax]
lea rdx, [rdi - 1]
cmp rsi, rdx
jne 0x464058
mov rcx, qword [rsp + 0x68]
or ebx, 0xffffffc0
movsx edx, bl
xor ebx, ebx
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rbp + 0x20]
jmp 0x463e98
call fcn.0040a060
lea rdi, [rsi + 0x10]
mov r8, qword [rsp + 0x68]
test rsi, rsi
js 0x4641da
mov rdx, 0xffffffffffffffff
test r8, r8
jne 0x463ca2
mov rcx, r13
call fcn.0040dd50
mov r8, qword [rsp + 0x68]
jmp 0x463cae
call fcn.0040a060
mov rcx, qword [rsp + 0x68]
test r12, r12
jns 0x463c5f
jmp 0x463ff0
call fcn.0040a060
test r12, r12
jns 0x463bda
jmp 0x464010
movabs r8, 0x7fffffffffffffff
mov rcx, r12
xor edx, edx
call fcn.0040dba0
mov rcx, qword [rsp + 0x68]
jmp 0x463c5f
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, r12
call fcn.0040dba0
jmp 0x463bda
sub rdx, 1
mov rcx, rsi
call fcn.0040dd50
mov rax, qword [rbp + 0x20]
jmp 0x463edb
mov rdx, 0xffffffffffffffff
jmp 0x464034
mov ebx, ecx
jmp 0x463e98
mov r10, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov dword [rsp + rbx*4 + 0x70], edi
mov rcx, qword [rsp + 0x68]
cmp byte [rsp + 0x3c], r13b
je 0x4640e8
mov edx, 0xffffffff
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, byte [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, byte [rsp + 0x4d]
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov rcx, qword [rsp + 0x68]
movsx edx, r15b
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, r13b
jmp 0x463e5e
movzx eax, byte [rsp + 0x4f]
mov r9, r14
sub r8, rax
movzx eax, byte [rsp + 0x48]
sub r10, rax
movzx eax, byte [rsp + 0x4e]
sub r9, rax
lea rax, [r8 + 2]
cmp rax, 3
ja 0x464340
lea r11, [r10 + 2]
cmp r11, 3
ja 0x464340
lea rbx, [r9 + 2]
cmp rbx, 3
ja 0x464400
shl rax, 4
mov rdx, rax
lea rax, [r11*4]
or edx, eax
or edx, ebx
or edx, 0x40
movzx edx, dl
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
jmp 0x463e73
mov ebx, 7
nop dword [rax]
mov rcx, qword [rsp + 0x68]
xor edx, edx
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
sub rbx, 1
jne 0x464168
mov rcx, qword [rsp + 0x68]
mov edx, 1
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov rax, qword [rsp + 0x68]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rcx, rcx
je 0x464429
mov rdx, qword [rcx]
sub rdx, 1
mov rcx, r13
call fcn.0040dd50
mov rcx, qword [rsp + 0x68]
jmp 0x463d58
test r8, r8
je 0x464420
mov rdx, qword [r8]
sub rdx, 1
mov rcx, r13
call fcn.0040dd50
mov r8, qword [rsp + 0x68]
jmp 0x463cae
mov rcx, qword [0x00499ca0]
mov edx, 0x30
call fcn.0040c6d0
lea rcx, [0x00496100]
mov r12, rax
mov rax, qword [0x00499b70]
mov rbx, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, [0x00496020]
mov qword [r12 + 0x10], rax
call fcn.0040b6b0
mov qword [r12 + 0x18], rax
test rbx, rbx
je 0x464260
mov rax, qword [rbx - 0x10]
lea rdx, [rbx - 0x10]
sub rax, 8
mov qword [rbx - 0x10], rax
cmp rax, 7
jbe 0x4643e8
mov rax, qword [r12 + 8]
test rax, rax
je 0x464293
mov rsi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x464293
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
lea r9, str.qoi.nim
mov rcx, r12
lea r8, str.encodeQoi
mov qword [rsp + 0x20], 0x98
lea rdx, [0x00496020]
call fcn.0040da50
jmp 0x463bab
call fcn.0040a060
lea rdi, [rsi + 0x10]
mov rcx, qword [rsp + 0x68]
test rsi, rsi
js 0x4641b8
mov rdx, 0xffffffffffffffff
test rcx, rcx
je 0x4641c8
jmp 0x463d4c
mov r13, 0xfffffffffffffffc
mov rdx, 0xffffffffffffffff
mov edi, 0xc
mov rcx, r13
call fcn.0040dd50
mov r8, qword [rsp + 0x68]
jmp 0x463cae
mov r13, 0xfffffffffffffffc
mov edi, 0xc
mov rdx, 0xffffffffffffffff
jmp 0x4641c8
sub r8, r10
lea rbx, [r8 + 8]
cmp rbx, 0xf
ja 0x464390
lea rdx, [r10 + 0x20]
cmp rdx, 0x3f
ja 0x464390
sub r9, r10
lea r14, [r9 + 8]
cmp r14, 0xf
ja 0x464390
or edx, 0xffffff80
shl rbx, 4
movsx edx, dl
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
mov r9d, ebx
or r9d, r14d
movsx edx, r9b
jmp 0x463e5e
mov edx, 0xfffffffe
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, byte [rsp + 0x30]
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, byte [rsp + 0x4d]
mov rcx, qword [rsp + 0x68]
call fcn.0040b9c0
mov rcx, r12
mov rdx, rax
call fcn.00409fd0
movsx edx, r15b
jmp 0x463e5e
mov rcx, qword [0x0049a130]
add rcx, 0x18
call fcn.00407d10
jmp 0x464260
sub r8, r10
lea rbx, [r8 + 8]
jmp 0x46434d
mov qword [rsp + 0x30], rax
call fcn.0040a060
mov rax, qword [rsp + 0x30]
jmp 0x463b9d
or rdx, 0xffffffffffffffff
jmp 0x463faf
or rdx, 0xffffffffffffffff
jmp 0x4641c8
call fcn.0040a060
jmp 0x463bc4
push r13
push r12
push rsi
push rbx
sub rsp, 0x38
mov edx, 0x28
xor esi, esi
mov rbx, rcx
lea rcx, [0x004bf800]
call fcn.0040c6d0
mov r12, rax
mov rax, qword [rbx]
mov qword [r12], rax
mov rax, qword [rbx + 8]
mov qword [r12 + 0x10], 4
mov qword [r12 + 8], rax
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x464491
mov rsi, qword [rax]
test rsi, rsi
js 0x464618
mov rcx, qword [r12 + 0x20]
mov r8, rsi
lea r13, [r12 + 0x20]
lea rdx, [0x004bf8c0]
call fcn.00412250
mov rsi, rax
test rax, rax
je 0x4645d0
add qword [rax - 0x10], 8
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x4644df
mov rdx, qword [rax - 0x10]
lea r8, [rax - 0x10]
sub rdx, 8
mov qword [rax - 0x10], rdx
cmp rdx, 7
jbe 0x464570
mov qword [r12 + 0x20], rsi
mov rdx, qword [rsi]
test rdx, rdx
jle 0x4645c0
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x464550
mov rcx, qword [rdx]
lea rdx, [rcx - 1]
test rcx, rcx
jle 0x464557
imul rcx, rcx, 4
jo 0x464643
mov rsi, rcx
test rcx, rcx
js 0x4645a0
mov rdx, qword [rbx + 0x10]
mov rax, qword [r12 + 0x20]
add rdx, 0x10
mov r8, rsi
lea rcx, [rax + 0x10]
call sub.msvcrt.dll_memcpy
mov rcx, r13
call fcn.0045fa20
mov rcx, r12
add rsp, 0x38
pop rbx
pop rsi
pop r12
pop r13
jmp 0x463b70
mov rdx, 0xffffffffffffffff
xor ecx, ecx
xor esi, esi
call fcn.0040dd50
mov rdx, qword [rbx + 0x10]
test rdx, rdx
je 0x46451f
mov rcx, qword [rdx]
jmp 0x464505
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 0x20], rsi
mov rdx, qword [rsi]
test rdx, rdx
jg 0x4644f0
jmp 0x4645c0
movabs r8, 0x7fffffffffffffff
xor edx, edx
call fcn.0040dba0
jmp 0x46451b
sub rdx, 1
xor ecx, ecx
call fcn.0040dd50
jmp 0x4644f0
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x46460c
mov rsi, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rsi - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x464638
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 0x20], 0
mov rdx, 0xffffffffffffffff
jmp 0x4645c4
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call fcn.0040dba0
jmp 0x464491
mov qword [r12 + 0x20], 0
jmp 0x46460c
mov qword [rsp + 0x28], rcx
call fcn.0040a060
mov rcx, qword [rsp + 0x28]
jmp 0x46450f
push r12
push rbx
sub rsp, 0x38
cmp dl, 5
ja case.default.0x464921
lea r8, [0x00496184]
movzx edx, dl
movsxd rax, dword [r8 + rdx*4]
add rax, r8
jmp rax
mov rcx, qword [0x00499ca0]
mov edx, 0x30
call fcn.0040c6d0
lea rcx, [0x004961a0]
mov r12, rax
mov rax, qword [0x00499b70]
mov rbx, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.PixieError
mov qword [r12 + 0x10], rax
call fcn.0040b6b0
mov qword [r12 + 0x18], rax
test rbx, rbx
je 0x464994
mov rax, qword [rbx - 0x10]
lea rdx, [rbx - 0x10]
sub rax, 8
mov qword [rbx - 0x10], rax
cmp rax, 7
ja 0x464994
mov rcx, qword [0x0049a130]
add rcx, 0x18
call fcn.00407d10
mov rax, qword [r12 + 8]
test rax, rax
je 0x4649c7
mov rbx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rbx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x4649c7
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
mov qword [rsp + 0x20], 0x52
lea r9, str.pixie.nim
lea r8, str.encodeImage
mov rcx, r12
lea rdx, str.PixieError
call fcn.0040da50
xor eax, eax
add rsp, 0x38
pop rbx
pop r12
ret
add rsp, 0x38
pop rbx
pop r12
jmp 0x464440
add rsp, 0x38
pop rbx
pop r12
jmp 0x463800
add rsp, 0x38
pop rbx
pop r12
jmp 0x463690
add rsp, 0x38
pop rbx
pop r12
jmp 0x4612e0
mov rcx, qword [0x00499ca0]
mov edx, 0x30
call fcn.0040c6d0
lea rcx, [0x004961a0]
mov r12, rax
mov rax, qword [0x00499b70]
mov rbx, qword [r12 + 0x18]
mov qword [r12], rax
lea rax, str.PixieError
mov qword [r12 + 0x10], rax
call fcn.0040b6b0
mov qword [r12 + 0x18], rax
test rbx, rbx
je 0x464aac
mov rax, qword [rbx - 0x10]
lea rdx, [rbx - 0x10]
sub rax, 8
mov qword [rbx - 0x10], rax
cmp rax, 7
ja 0x464aac
mov rcx, qword [0x0049a130]
add rcx, 0x18
call fcn.00407d10
mov rax, qword [r12 + 8]
test rax, rax
je 0x464adf
mov rbx, qword [rax - 0x10]
lea r8, [rax - 0x10]
lea rdx, [rbx - 8]
mov qword [rax - 0x10], rdx
cmp rdx, 7
ja 0x464adf
mov rcx, qword [0x0049a130]
mov rdx, r8
add rcx, 0x18
call fcn.00407d10
mov qword [r12 + 8], 0
mov qword [rsp + 0x20], 0x58
jmp 0x4649d9