Function at 0x680996f0
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
mov eax, 0x18d8
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.6800cfe0
sub rsp, rax
movups xmmword [rsp + 0x1890], xmm6
movups xmmword [rsp + 0x18a0], xmm7
movups xmmword [rsp + 0x18b0], xmm8
movups xmmword [rsp + 0x18c0], xmm9
pxor xmm0, xmm0
mov r14, qword [rcx]
mov qword [rcx + 0x18], 0
mov r15, rcx
movups xmmword [rcx + 8], xmm0
mov rcx, qword [r14 + 0xb8]
mov dword [rsp + 0x1928], edx
mov dword [rsp + 0x1930], r8d
cmp rcx, qword [r14 + 0xc0]
jb 0x68099808
mov r9d, dword [r14 + 0x30]
test r9d, r9d
jne 0x680997c0
nop dword [rax]
lea r12, str.bad_png_sig
xor r13d, r13d
mov qword [0x680b7420], r12
movups xmm6, xmmword [rsp + 0x1890]
mov eax, r13d
movups xmm7, xmmword [rsp + 0x18a0]
movups xmm8, xmmword [rsp + 0x18b0]
movups xmm9, xmmword [rsp + 0x18c0]
add rsp, 0x18d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rbx, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbx
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
jne 0x6809aa78
nop
movq xmm6, rcx
mov dword [r14 + 0x30], 0
punpcklqdq xmm6, xmm6
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x68099770
lea rdx, [rcx + 1]
mov qword [r14 + 0xb8], rdx
movzx esi, byte [rcx]
cmp sil, 0x89
jne 0x68099770
mov rdi, qword [r14 + 0xb8]
cmp rdi, qword [r14 + 0xc0]
jb 0x68099880
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x68099770
lea rbp, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbp
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm2, rcx
movzx r11d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x6809988f
lea r10, [rdi + 1]
mov qword [r14 + 0xb8], r10
movzx r11d, byte [rdi]
cmp r11b, 0x50
jne 0x68099770
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jb 0x68099900
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x68099770
lea rbx, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbx
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm4, rcx
movzx r9d, byte [r14 + 0x38]
add rax, rbx
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x68099911
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx r9d, byte [r12]
cmp r9b, 0x4e
jne 0x68099770
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x68099980
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x68099770
lea rsi, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rsi
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm6, rcx
movzx r8d, byte [r14 + 0x38]
add rax, rsi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x6809998f
lea rdi, [rcx + 1]
mov qword [r14 + 0xb8], rdi
movzx r8d, byte [rcx]
cmp r8b, 0x47
jne 0x68099770
mov rbp, qword [r14 + 0xb8]
cmp rbp, qword [r14 + 0xc0]
jb 0x68099a00
mov r10d, dword [r14 + 0x30]
test r10d, r10d
je 0x68099770
lea r12, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r12
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm9, rcx
movzx r13d, byte [r14 + 0x38]
add rax, r12
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x68099a10
lea r11, [rbp + 1]
mov qword [r14 + 0xb8], r11
movzx r13d, byte [rbp]
cmp r13b, 0xd
jne 0x68099770
mov rbx, qword [r14 + 0xb8]
cmp rbx, qword [r14 + 0xc0]
jb 0x68099a80
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x68099770
lea rsi, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rsi
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm1, rcx
movzx edx, byte [r14 + 0x38]
add rax, rsi
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x68099a8e
lea r9, [rbx + 1]
mov qword [r14 + 0xb8], r9
movzx edx, byte [rbx]
cmp dl, 0xa
jne 0x68099770
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x68099af8
mov edi, dword [r14 + 0x30]
test edi, edi
je 0x68099770
lea rbp, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbp
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm2, rcx
movzx r10d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x68099b07
lea r8, [rcx + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [rcx]
cmp r10b, 0x1a
jne 0x68099770
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jae 0x6809a750
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx ebx, byte [r12]
cmp bl, 0xa
jne 0x68099770
lea rdi, [r14 + 0x39]
mov dword [rsp + 0x60], 0
xor ebx, ebx
xor esi, esi
mov dword [rsp + 0x70], 0
mov r13d, 1
mov dword [rsp + 0x90], 0
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0x80], 0
mov byte [rsp + 0xa4], 0
mov byte [rsp + 0x58], 0
mov qword [rsp + 0xa8], rdi
nop dword [rax + rax]
mov rcx, r14
call fcn.68089cd0
mov rcx, r14
mov r12d, eax
call fcn.68089cd0
cmp eax, 0x49484452
je 0x6809a480
ja 0x68099d68
cmp eax, 0x49444154
je 0x6809a0f0
cmp eax, 0x49454e44
jne 0x6809a0c8
test r13d, r13d
jne 0x6809a7a8
mov esi, dword [rsp + 0x1928]
test esi, esi
jne 0x6809ab00
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x6809ad80
mov ebp, dword [r14 + 4]
mov ebx, dword [rsp + 0xa0]
mov r10d, dword [r14 + 8]
imul ebx, dword [r14]
mov r12d, dword [rsp + 0x90]
imul r10d, ebp
add ebx, 7
xor r12d, 1
shr ebx, 3
imul ebx, r10d
add ebx, ebp
movsxd rsi, ebx
mov rcx, rsi
call sub.msvcrt.dll_malloc
test rax, rax
je 0x6809c9bd
movsxd r9, dword [rsp + 0x70]
movq xmm5, rax
mov edx, r12d
add rax, rsi
punpcklqdq xmm5, xmm5
lea rcx, [rsp + 0x890]
mov qword [rsp + 0x890], rdi
add r9, rdi
mov qword [rsp + 0x8b8], rax
mov qword [rsp + 0x898], r9
mov dword [rsp + 0x8c0], 1
mov qword [rsp + 0xc8], rcx
movups xmmword [rsp + 0x8a8], xmm5
call fcn.6809c9e0
mov r13d, eax
test eax, eax
je 0x6809b86b
mov r8, qword [rsp + 0x8b0]
mov rdi, qword [rsp + 0x8a8]
sub rdi, r8
mov qword [r15 + 0x10], r8
mov dword [rsp + 0x110], edi
test r8, r8
je 0x68099d5d
mov rcx, qword [r15 + 8]
call sub.msvcrt.dll_free
mov edx, dword [r14 + 8]
mov qword [r15 + 8], 0
lea eax, [rdx + 1]
cmp eax, dword [rsp + 0x1930]
je 0x6809b028
cmp byte [rsp + 0xa4], 0
cmove eax, edx
mov r12d, eax
mov r8, qword [r15 + 0x10]
mov r11d, dword [rsp + 0x80]
mov dword [r14 + 0xc], r12d
mov r13, qword [r15]
mov qword [rsp + 0xf8], r8
test r11d, r11d
jne 0x6809b32d
mov r11d, dword [rsp + 0x60]
mov r10d, dword [rsp + 0xa0]
lea rdx, [r15 + 0x18]
mov r9d, edi
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x38], r10d
mov ecx, dword [r13 + 4]
mov dword [rsp + 0x30], ecx
mov eax, dword [r13]
mov rcx, r13
mov dword [rsp + 0x20], r12d
mov dword [rsp + 0x28], eax
call fcn.68081870
test eax, eax
jne 0x6809b071
xor r13d, r13d
jmp 0x68099781
cmp eax, 0x504c5445
je 0x6809a1b0
cmp eax, 0x74524e53
jne 0x6809a188
test r13d, r13d
jne 0x6809a7a8
cmp qword [r15 + 8], 0
jne 0x6809ba58
cmp byte [rsp + 0x58], 0
je 0x6809a7c0
cmp dword [rsp + 0x1928], 2
je 0x6809c0b0
test ebx, ebx
je 0x6809bccc
cmp ebx, r12d
jb 0x6809ba6b
test r12d, r12d
je 0x6809a0af
lea ecx, [r12 - 1]
lea r9, [rsp + 0x493]
mov rax, qword [r14 + 0xb8]
mov rdx, qword [r14 + 0xc0]
lea rbp, [rsp + rcx*4 + 0x497]
mov r11, rbp
sub r11, r9
sub r11, 4
shr r11, 2
add r11, 1
and r11d, 3
je 0x68099f8d
cmp r11, 1
je 0x68099f0a
cmp r11, 2
je 0x68099e8f
cmp rax, rdx
jb 0x6809b808
mov r10d, dword [r14 + 0x30]
xor r12d, r12d
test r10d, r10d
je 0x68099e88
lea rdx, [r14 + 0x38]
mov qword [rsp + 0xb0], r9
mov r8d, dword [r14 + 0x34]
mov qword [rsp + 0x58], rdx
mov rcx, qword [r14 + 0x28]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0xb0]
movsxd r8, eax
mov rax, rdi
test r8d, r8d
jne 0x6809bcbf
mov dword [r14 + 0x30], 0
mov rdx, rdi
mov byte [r14 + 0x38], 0
movq xmm1, rdi
movq xmm7, rdx
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
mov byte [r9], r12b
add r9, 4
cmp rax, rdx
jb 0x6809b011
mov r11d, dword [r14 + 0x30]
xor r12d, r12d
test r11d, r11d
je 0x68099f03
lea rdx, [r14 + 0x38]
mov qword [rsp + 0xb0], r9
mov rcx, qword [r14 + 0x28]
mov qword [rsp + 0x58], rdx
mov r8d, dword [r14 + 0x34]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0xb0]
movsxd r10, eax
mov rax, rdi
test r10d, r10d
jne 0x6809b9e8
mov dword [r14 + 0x30], 0
mov rdx, rdi
mov byte [r14 + 0x38], 0
movq xmm2, rdi
movq xmm4, rdx
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
mov byte [r9], r12b
add r9, 4
cmp rax, rdx
jb 0x6809ad98
mov ecx, dword [r14 + 0x30]
xor r12d, r12d
test ecx, ecx
je 0x68099f7d
lea rdx, [r14 + 0x38]
mov qword [rsp + 0xb0], r9
mov rcx, qword [r14 + 0x28]
mov qword [rsp + 0x58], rdx
mov r8d, dword [r14 + 0x34]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
mov r9, qword [rsp + 0xb0]
movsxd r11, eax
mov rax, rdi
test r11d, r11d
jne 0x6809b832
mov dword [r14 + 0x30], 0
mov rdx, rdi
mov byte [r14 + 0x38], 0
movq xmm5, rdi
movq xmm3, rdx
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
mov byte [r9], r12b
add r9, 4
cmp r9, rbp
je 0x6809a0af
mov r12, r9
cmp rax, rdx
jae 0x6809ac58
lea r9, [rax + 1]
mov qword [r14 + 0xb8], r9
movzx r11d, byte [rax]
mov rax, r9
mov byte [r12], r11b
add r12, 4
cmp rax, rdx
jae 0x6809abf0
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r11d, byte [rax]
mov rax, rcx
mov byte [r12], r11b
cmp rax, rdx
jb 0x6809abd0
mov r10d, dword [r14 + 0x30]
xor ecx, ecx
test r10d, r10d
je 0x6809a034
lea rdx, [r14 + 0x38]
mov byte [rsp + 0xb0], cl
mov r8d, dword [r14 + 0x34]
mov qword [rsp + 0x58], rdx
mov rcx, qword [r14 + 0x28]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
movsxd r9, eax
mov rax, rdi
test r9d, r9d
je 0x6809afb8
movzx ecx, byte [r14 + 0x38]
add rdx, r9
movq xmm1, rdi
movq xmm7, rdx
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
mov byte [r12 + 4], cl
cmp rax, rdx
jb 0x6809aba0
mov r11d, dword [r14 + 0x30]
xor r9d, r9d
test r11d, r11d
je 0x6809a09d
lea rdx, [r14 + 0x38]
mov byte [rsp + 0xb0], r9b
mov rcx, qword [r14 + 0x28]
mov qword [rsp + 0x58], rdx
mov r8d, dword [r14 + 0x34]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
movsxd r10, eax
mov rax, rdi
test r10d, r10d
je 0x6809af9a
movzx r9d, byte [r14 + 0x38]
add rdx, r10
movq xmm2, rdi
movq xmm4, rdx
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
mov byte [r12 + 8], r9b
add r12, 0xc
cmp r12, rbp
jne 0x68099f90
mov byte [rsp + 0x58], 4
nop dword [rax]
mov rcx, r14
call fcn.68089cd0
jmp 0x68099b98
cmp eax, 0x43674249
jne 0x6809a188
mov edx, r12d
mov rcx, r14
call fcn.680a15f0
mov dword [rsp + 0x90], 1
jmp 0x6809a0b8
test r13d, r13d
jne 0x6809a7a8
cmp byte [rsp + 0x58], 0
je 0x6809a108
test ebx, ebx
je 0x6809ba30
cmp dword [rsp + 0x1928], 2
je 0x6809ba43
mov ecx, dword [rsp + 0x70]
lea ebp, [rcx + r12]
cmp ebp, ecx
jl 0x68099d5d
mov rcx, qword [r15 + 8]
cmp ebp, esi
ja 0x6809ab40
mov r11d, dword [rsp + 0x70]
mov r10, qword [r14 + 0xc0]
mov rdx, qword [r14 + 0xb8]
add rcx, r11
cmp qword [r14 + 0x10], 0
je 0x6809a15e
mov r9, r10
sub r9, rdx
cmp r12d, r9d
jg 0x6809adaf
movsxd r12, r12d
lea r8, [rdx + r12]
cmp r10, r8
jae 0x6809acc0
lea r15, str.outofdata
mov qword [0x680b7420], r15
jmp 0x68099781
test r13d, r13d
jne 0x6809a7a8
test eax, 0x20000000
je 0x6809ba7e
mov edx, r12d
mov rcx, r14
call fcn.680a15f0
jmp 0x6809a0b8
test r13d, r13d
jne 0x6809a7a8
cmp r12d, 0x300
ja 0x6809b81f
mov ebx, r12d
mov r11d, 0xaaaaaaab
imul rbx, r11
shr rbx, 0x21
lea ecx, [rbx + rbx*2]
cmp ecx, r12d
jne 0x6809b81f
cmp ecx, 2
jbe 0x6809b04e
mov r11, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
xor ebp, ebp
lea r12, [rsp + 0x490]
test bl, 1
jne 0x6809aa00
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0xb8], r13d
jmp 0x6809a2e9
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx ecx, byte [r11]
mov byte [r12 + rbp*4], cl
cmp rax, r10
jbe 0x6809a34b
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx edx, byte [r10]
mov byte [r12 + rbp*4 + 1], dl
cmp rax, r11
jbe 0x6809a3a4
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx esi, byte [r11]
mov byte [r12 + rbp*4 + 2], sil
mov byte [r12 + rbp*4 + 3], 0xff
add rbp, 1
cmp r10, rax
jae 0x6809a400
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx r10d, byte [r10]
mov byte [r12 + rbp*4], r10b
cmp rax, r11
jbe 0x6809a414
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx r9d, byte [r11]
mov byte [r12 + rbp*4 + 1], r9b
mov r11, rdx
cmp rax, rdx
jbe 0x6809a427
lea r11, [rdx + 1]
mov qword [r14 + 0xb8], r11
movzx esi, byte [rdx]
mov byte [r12 + rbp*4 + 2], sil
mov byte [r12 + rbp*4 + 3], 0xff
add rbp, 1
cmp ebx, ebp
jbe 0x6809ab88
cmp r11, rax
jb 0x6809a228
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x6809a6a0
lea rsi, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rsi
call qword [r14 + 0x10]
mov r10, rdi
test eax, eax
je 0x6809a9e8
cdqe
movzx ecx, byte [r14 + 0x38]
add rax, rsi
movq xmm9, rdi
movq xmm0, rax
mov byte [r12 + rbp*4], cl
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
cmp rax, r10
ja 0x6809a244
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x6809a6b5
lea r13, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r13
call qword [r14 + 0x10]
mov r11, rdi
test eax, eax
je 0x6809a9b0
cdqe
movzx edx, byte [r14 + 0x38]
add rax, r13
movq xmm1, rdi
movq xmm7, rax
mov byte [r12 + rbp*4 + 1], dl
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
cmp rax, r11
ja 0x6809a261
mov r10, r11
mov r9d, dword [r14 + 0x30]
xor esi, esi
test r9d, r9d
je 0x6809a270
lea r13, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r13
call qword [r14 + 0x10]
mov r10, rdi
test eax, eax
je 0x6809a980
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm2, rdi
movq xmm4, rax
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
jmp 0x6809a270
mov ecx, dword [r14 + 0x30]
test ecx, ecx
jne 0x6809a708
mov byte [r12 + rbp*4], 0
mov r11, r10
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x6809a6c0
mov byte [r12 + rbp*4 + 1], 0
mov ecx, dword [r14 + 0x30]
xor esi, esi
test ecx, ecx
je 0x6809a2d2
lea r13, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r13
call qword [r14 + 0x10]
mov r11, rdi
test eax, eax
je 0x6809a9d0
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm9, rdi
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x6809a2d2
test r13d, r13d
je 0x6809ba07
cmp r12d, 0xd
jne 0x6809ba1a
mov rcx, r14
call fcn.68089cd0
mov dword [r14], eax
cmp eax, 0x1000000
ja 0x6809ab2a
mov rcx, r14
call fcn.68089cd0
mov dword [r14 + 4], eax
cmp eax, 0x1000000
ja 0x6809ab2a
mov r9, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
cmp r9, rax
jae 0x6809a630
lea r12, [r9 + 1]
mov qword [r14 + 0xb8], r12
movzx edx, byte [r9]
mov ebp, edx
lea r8d, [rdx - 1]
mov dword [rsp + 0xa0], edx
sub ebp, 4
and ebp, 0xfb
setne r11b
cmp r8d, 1
seta r10b
and r11d, r10d
test r11b, r11b
jne 0x6809a680
cmp r12, rax
jae 0x6809a860
lea r11, [r12 + 1]
mov qword [r14 + 0xb8], r11
movzx r9d, byte [r12]
mov dword [rsp + 0x60], r9d
mov ebp, r9d
cmp dword [rsp + 0x60], 6
jg 0x6809b83f
cmp dword [rsp + 0x60], 3
je 0x6809aaf0
test bpl, 1
jne 0x6809b83f
cmp r11, rax
jae 0x6809a872
lea r8, [r11 + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [r11]
test r10b, r10b
jne 0x6809baaf
cmp r8, rax
jae 0x6809a8ba
lea r11, [r8 + 1]
mov qword [r14 + 0xb8], r11
movzx ecx, byte [r8]
test cl, cl
jne 0x6809ba99
cmp r11, rax
jae 0x6809a903
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx eax, byte [r11]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 1
jg 0x6809bac5
mov r11d, dword [r14]
test r11d, r11d
je 0x6809b855
mov ecx, dword [r14 + 4]
test ecx, ecx
je 0x6809b855
cmp byte [rsp + 0x58], 0
jne 0x6809ab10
and ebp, 2
mov ebp, 3
mov eax, 0x40000000
cmove ebp, r13d
xor edx, edx
mov r13d, dword [rsp + 0x60]
div r11d
sar r13d, 2
xor edx, edx
add r13d, ebp
mov dword [r14 + 8], r13d
div r13d
cmp ecx, eax
ja 0x6809ab2a
cmp dword [rsp + 0x1928], 2
je 0x6809ab00
xor r13d, r13d
jmp 0x6809a0b8
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x6809a680
lea rbp, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov r12, rdi
mov rdx, rbp
call qword [r14 + 0x10]
test eax, eax
jne 0x6809ae08
movq xmm0, qword [rsp + 0xa8]
mov dword [r14 + 0x30], 0
mov byte [r14 + 0x38], 0
punpcklqdq xmm0, xmm0
movups xmmword [r14 + 0xb8], xmm0
nop dword [rax + rax]
lea r9, str.1_2_4_8_bit_only
xor r13d, r13d
mov qword [0x680b7420], r9
jmp 0x68099781
mov r8d, dword [r14 + 0x30]
mov byte [r12 + rbp*4], 0
mov r10, r11
test r8d, r8d
jne 0x6809a358
mov byte [r12 + rbp*4 + 1], 0
jmp 0x6809a3a7
lea rsi, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rsi
call qword [r14 + 0x10]
mov rdx, rdi
test eax, eax
je 0x6809a998
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rsi
movq xmm6, rdi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x6809a2b3
lea r13, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r13
call qword [r14 + 0x10]
mov r11, rdi
test eax, eax
je 0x6809a960
cdqe
movzx r10d, byte [r14 + 0x38]
add rax, r13
movq xmm5, rdi
movq xmm3, rax
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
jmp 0x6809a297
mov r11d, dword [r14 + 0x30]
test r11d, r11d
je 0x68099770
lea r13, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r13
call qword [r14 + 0x10]
lea rcx, [r14 + 0x39]
test eax, eax
je 0x680997e0
cdqe
movq xmm4, rcx
movzx ebx, byte [r14 + 0x38]
add rax, r13
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x68099b36
lea r13, str.first_not_IHDR
mov qword [0x680b7420], r13
xor r13d, r13d
jmp 0x68099781
mov eax, dword [r14 + 8]
test al, 1
je 0x6809bcdf
lea ebp, [rax + rax]
cmp ebp, r12d
jne 0x6809ba6b
mov byte [rsp + 0xa4], 1
test eax, eax
jle 0x6809a0b8
movsxd r10, dword [rsp + 0xa0]
xor r11d, r11d
mov dword [rsp + 0xa4], esi
lea rbp, [rsp + 0x42d]
mov dword [rsp + 0xb0], ebx
mov rsi, r14
lea r12, [0x68120880]
mov r14, rdi
mov rbx, r10
mov rdi, r11
mov rcx, rsi
call fcn.68089a70
mov r8d, eax
movzx eax, byte [r12 + rbx]
imul eax, r8d
mov byte [rbp + rdi], al
add rdi, 1
cmp dword [rsi + 8], edi
jg 0x6809a81c
mov rdi, r14
mov ebx, dword [rsp + 0xb0]
mov r14, rsi
mov esi, dword [rsp + 0xa4]
mov byte [rsp + 0xa4], 1
jmp 0x6809a0b8
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x6809aaa0
xor ebp, ebp
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x6809ace0
lea r12, [r14 + 0x38]
mov r8d, dword [r14 + 0x34]
mov rcx, qword [r14 + 0x28]
mov rdx, r12
call qword [r14 + 0x10]
mov r8, rdi
test eax, eax
jne 0x6809ae84
movq xmm5, rdi
mov dword [r14 + 0x30], 0
mov byte [r14 + 0x38], 0
punpcklqdq xmm5, xmm5
movups xmmword [r14 + 0xb8], xmm5
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x6809ace0
lea r12, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r12
call qword [r14 + 0x10]
mov r11, rdi
test eax, eax
jne 0x6809aea9
movq xmm9, rdi
mov dword [r14 + 0x30], 0
mov byte [r14 + 0x38], 0
punpcklqdq xmm9, xmm9
movups xmmword [r14 + 0xb8], xmm9
mov r9d, dword [r14 + 0x30]
mov dword [rsp + 0x80], r9d
test r9d, r9d
je 0x6809a5c4
lea r12, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r12
call qword [r14 + 0x10]
mov dword [rsp + 0x80], eax
test eax, eax
jne 0x6809aecf
movq xmm7, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm7, xmm7
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm7
jmp 0x6809a5c4
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r10d, r10d
mov byte [r14 + 0x38], 0
jmp 0x6809a730
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x6809a3de
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r9d, r9d
mov byte [r14 + 0x38], 0
jmp 0x6809a6e8
mov dword [r14 + 0x30], 0
mov rax, rdi
xor edx, edx
mov byte [r14 + 0x38], 0
jmp 0x6809a380
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x6809a45d
mov dword [r14 + 0x30], 0
mov rax, rdi
xor ecx, ecx
mov byte [r14 + 0x38], 0
jmp 0x6809a327
cmp r11, rax
jae 0x6809acf0
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx r9d, byte [r11]
mov byte [r12], r9b
cmp rax, rdx
jbe 0x6809ad04
lea r10, [rdx + 1]
mov qword [r14 + 0xb8], r10
movzx r11d, byte [rdx]
mov byte [r12 + 1], r11b
mov r11, r10
cmp rax, r10
jbe 0x6809ad1a
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx ebp, byte [r10]
mov byte [r12 + 2], bpl
mov ebp, 1
mov byte [r12 + 3], 0xff
cmp ebx, 1
ja 0x6809a20d
jmp 0x6809a0b8
cdqe
movq xmm1, rcx
movzx esi, byte [r14 + 0x38]
add rax, rbx
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x68099816
lea r12, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, r12
call qword [r14 + 0x10]
mov r11, rdi
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x6809ae56
movq xmm2, rdi
mov dword [r14 + 0x30], 0
xor ebp, ebp
punpcklqdq xmm2, xmm2
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm2
jmp 0x6809a872
mov byte [rsp + 0x58], 3
jmp 0x6809a556
mov r13d, 1
jmp 0x68099781
mov eax, 0x10000000
xor edx, edx
mov dword [r14 + 8], 1
div r11d
cmp ecx, eax
jbe 0x6809a628
lea r12, str.too_large
xor r13d, r13d
mov qword [0x680b7420], r12
jmp 0x68099781
test esi, esi
jne 0x6809ab60
cmp r12d, 0x1000
mov esi, 0x1000
cmovae esi, r12d
cmp ebp, esi
jbe 0x6809ab66
nop dword [rax + rax]
add esi, esi
cmp ebp, esi
ja 0x6809ab60
mov edx, esi
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x6809c9ca
mov qword [r15 + 8], rax
jmp 0x6809a132
mov esi, dword [rsp + 0xb0]
mov r13d, dword [rsp + 0xb8]
jmp 0x6809a0b8
lea r8, [rax + 1]
add r12, 0xc
mov qword [r14 + 0xb8], r8
movzx r9d, byte [rax]
mov rax, r8
mov byte [r12 - 4], r9b
cmp r12, rbp
jne 0x68099f90
jmp 0x6809a0af
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx ecx, byte [rax]
mov rax, r8
jmp 0x6809a034
mov r10d, dword [r14 + 0x30]
xor r11d, r11d
test r10d, r10d
je 0x68099fce
lea rdx, [r14 + 0x38]
mov r8d, dword [r14 + 0x34]
mov byte [rsp + 0xb0], r11b
mov qword [rsp + 0x58], rdx
mov rcx, qword [r14 + 0x28]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
movsxd r8, eax
mov rax, rdi
test r8d, r8d
je 0x6809afd5
movzx r11d, byte [r14 + 0x38]
add rdx, r8
movq xmm9, rdi
movq xmm0, rdx
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x68099fce
mov r8d, dword [r14 + 0x30]
xor r11d, r11d
test r8d, r8d
je 0x68099fab
lea rdx, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov byte [rsp + 0xb0], r11b
mov qword [rsp + 0x58], rdx
mov r8d, dword [r14 + 0x34]
call qword [r14 + 0x10]
mov rdx, qword [rsp + 0x58]
movsxd rcx, eax
mov rax, rdi
test ecx, ecx
je 0x6809aff3
movzx r11d, byte [r14 + 0x38]
add rdx, rcx
movq xmm6, rdi
movq xmm8, rdx
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x68099fab
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [r14 + 0xb8], r12
mov dword [rsp + 0x70], ebp
jmp 0x6809a0b8
mov dword [rsp + 0x80], 0
jmp 0x6809a5c4
mov ebp, dword [r14 + 0x30]
test ebp, ebp
jne 0x6809af4e
mov byte [r12], 0
mov rdx, r11
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x6809af02
mov byte [r12 + 1], 0
mov r11, rdx
mov edx, dword [r14 + 0x30]
xor ebp, ebp
test edx, edx
je 0x6809aa54
lea rdx, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov qword [rsp + 0xb0], rdx
call qword [r14 + 0x10]
mov r9, qword [rsp + 0xb0]
mov r11, rdi
test eax, eax
jne 0x6809b7ea
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
movq xmm6, rdi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x6809aa54
lea rbx, str.no_IDAT
mov qword [0x680b7420], rbx
jmp 0x68099781
lea r10, [rax + 1]
mov qword [r14 + 0xb8], r10
movzx r12d, byte [rax]
mov rax, r10
jmp 0x68099f7d
movsxd r8, r9d
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0x70], r8
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x70]
mov rdx, rax
mov rax, qword [rsp + 0xb0]
lea rdx, [rdx + rcx]
mov rcx, qword [r14 + 0x28]
sub r12d, eax
mov r8d, r12d
call qword [r14 + 0x10]
mov r11, qword [r14 + 0xc0]
mov qword [r14 + 0xb8], r11
cmp r12d, eax
je 0x6809accf
jmp 0x6809a16e
movzx r8d, byte [r14 + 0x38]
cdqe
movq xmm8, rdi
add rax, rbp
mov r10d, r8d
lea ecx, [r8 - 1]
movq xmm9, rax
mov dword [rsp + 0xa0], r8d
sub r10d, 4
punpcklqdq xmm8, xmm9
and r10d, 0xfb
movups xmmword [r14 + 0xb8], xmm8
setne r11b
cmp ecx, 1
seta r9b
and r11d, r9d
jmp 0x6809a50b
movsxd rax, dword [rsp + 0x60]
movzx ecx, byte [r14 + 0x38]
movq xmm1, rdi
add rax, r12
mov dword [rsp + 0x60], ecx
mov ebp, ecx
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x6809a536
cdqe
movq xmm4, rdi
movzx r10d, byte [r14 + 0x38]
add rax, r12
movq xmm3, rax
punpcklqdq xmm4, xmm3
movups xmmword [r14 + 0xb8], xmm4
jmp 0x6809a56e
cdqe
movq xmm6, rdi
movzx ecx, byte [r14 + 0x38]
add rax, r12
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x6809a58f
movsxd rdx, dword [rsp + 0x80]
movzx r8d, byte [r14 + 0x38]
movq xmm0, rdi
add r12, rdx
mov dword [rsp + 0x80], r8d
movq xmm1, r12
punpcklqdq xmm0, xmm1
movups xmmword [r14 + 0xb8], xmm0
jmp 0x6809a5b6
lea rbp, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbp
call qword [r14 + 0x10]
mov r10, rdi
test eax, eax
jne 0x6809b7f9
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r11d, r11d
mov byte [r14 + 0x38], 0
movq xmm5, rdi
movq xmm3, rax
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
jmp 0x6809aa34
lea rbp, [r14 + 0x38]
mov rcx, qword [r14 + 0x28]
mov r8d, dword [r14 + 0x34]
mov rdx, rbp
call qword [r14 + 0x10]
mov rdx, rdi
test eax, eax
jne 0x6809b7db
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r9d, r9d
mov byte [r14 + 0x38], 0
movq xmm2, rdi
movq xmm4, rax
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
jmp 0x6809aa18
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r9d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x6809a087
mov byte [r14 + 0x38], 0
movzx ecx, byte [rsp + 0xb0]
mov rdx, rdi
mov dword [r14 + 0x30], 0
jmp 0x6809a01e
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x6809ac39
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x6809aca0
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx r12d, byte [rax]
mov rax, r8
jmp 0x68099f03
cmp dword [rsp + 0x1930], 3
je 0x68099ce8
cmp byte [rsp + 0x58], 0
mov r12d, dword [rsp + 0x1930]
je 0x68099cf6
jmp 0x68099ce8
xor ebx, ebx
jmp 0x6809a0b8
mov r15, qword [rsp + 0x1920]
mov r12, qword [rsp + 0x100]
mov r14, qword [rsp + 0x118]
mov qword [r15 + 0x18], r12
cmp byte [rsp + 0xa4], 0
jne 0x6809b885
mov r12d, dword [rsp + 0x90]
test r12d, r12d
je 0x6809b0a1
mov ecx, dword [0x680b72b0]
test ecx, ecx
je 0x6809b0a1
cmp dword [r14 + 0xc], 2
jg 0x6809c0c3
cmp byte [rsp + 0x58], 0
je 0x6809b311
movzx ebp, byte [rsp + 0x58]
cmp dword [rsp + 0x1930], 2
mov dword [r14 + 8], ebp
jg 0x6809b9f5
mov dword [r14 + 0xc], ebp
mov r14, qword [r15]
mov ecx, ebp
mov r13, qword [r15 + 0x18]
mov esi, dword [r14]
imul esi, dword [r14 + 4]
imul ecx, esi
call sub.msvcrt.dll_malloc
mov rbx, rax
test rax, rax
je 0x6809c9ca
cmp ebp, 3
je 0x6809badb
test esi, esi
je 0x6809b305
lea r10d, [rsi - 1]
mov rbp, r13
mov rdi, rax
lea r8, [rax + r10*4 + 4]
add r10, 1
and r10d, 3
je 0x6809b200
cmp r10, 1
je 0x6809b1b2
cmp r10, 2
je 0x6809b16b
movzx eax, byte [r13]
lea rdi, [rbx + 4]
lea rbp, [r13 + 1]
shl eax, 2
cdqe
movzx ecx, byte [rsp + rax + 0x491]
movzx edx, byte [rsp + rax + 0x493]
movzx r12d, byte [rsp + rax + 0x490]
movzx r11d, byte [rsp + rax + 0x492]
mov byte [rbx + 1], cl
mov byte [rbx], r12b
mov byte [rbx + 2], r11b
mov byte [rbx + 3], dl
movzx r9d, byte [rbp]
add rdi, 4
add rbp, 1
shl r9d, 2
movsxd r14, r9d
movzx esi, byte [rsp + r14 + 0x490]
movzx r10d, byte [rsp + r14 + 0x491]
movzx eax, byte [rsp + r14 + 0x492]
movzx r12d, byte [rsp + r14 + 0x493]
mov byte [rdi - 4], sil
mov byte [rdi - 3], r10b
mov byte [rdi - 2], al
mov byte [rdi - 1], r12b
movzx ecx, byte [rbp]
add rdi, 4
add rbp, 1
shl ecx, 2
movsxd r11, ecx
movzx edx, byte [rsp + r11 + 0x490]
movzx r9d, byte [rsp + r11 + 0x491]
movzx r14d, byte [rsp + r11 + 0x492]
movzx esi, byte [rsp + r11 + 0x493]
mov byte [rdi - 4], dl
mov byte [rdi - 3], r9b
mov byte [rdi - 2], r14b
mov byte [rdi - 1], sil
cmp rdi, r8
je 0x6809b305
movzx r10d, byte [rbp]
add rdi, 0x10
add rbp, 4
shl r10d, 2
movsxd rax, r10d
movzx ecx, byte [rsp + rax + 0x491]
movzx edx, byte [rsp + rax + 0x493]
movzx r12d, byte [rsp + rax + 0x490]
movzx r11d, byte [rsp + rax + 0x492]
mov byte [rdi - 0xd], dl
mov byte [rdi - 0x10], r12b
mov byte [rdi - 0xe], r11b
mov byte [rdi - 0xf], cl
movzx r9d, byte [rbp - 3]
shl r9d, 2
movsxd r14, r9d
movzx esi, byte [rsp + r14 + 0x490]
movzx r10d, byte [rsp + r14 + 0x491]
movzx eax, byte [rsp + r14 + 0x492]
movzx r12d, byte [rsp + r14 + 0x493]
mov byte [rdi - 0xc], sil
mov byte [rdi - 0xa], al
mov byte [rdi - 9], r12b
mov byte [rdi - 0xb], r10b
movzx ecx, byte [rbp - 2]
shl ecx, 2
movsxd r11, ecx
movzx edx, byte [rsp + r11 + 0x490]
movzx r9d, byte [rsp + r11 + 0x491]
movzx r14d, byte [rsp + r11 + 0x492]
movzx esi, byte [rsp + r11 + 0x493]
mov byte [rdi - 8], dl
mov byte [rdi - 7], r9b
mov byte [rdi - 6], r14b
mov byte [rdi - 5], sil
movzx r10d, byte [rbp - 1]
shl r10d, 2
movsxd rax, r10d
movzx r12d, byte [rsp + rax + 0x490]
movzx ecx, byte [rsp + rax + 0x491]
mov byte [rdi - 4], r12b
mov byte [rdi - 3], cl
movzx r11d, byte [rsp + rax + 0x492]
movzx edx, byte [rsp + rax + 0x493]
mov byte [rdi - 2], r11b
mov byte [rdi - 1], dl
cmp rdi, r8
jne 0x6809b200
mov rcx, r13
call sub.msvcrt.dll_free
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
mov r13d, 1
call sub.msvcrt.dll_free
mov qword [r15 + 0x10], 0
jmp 0x68099781
mov esi, dword [r13]
mov ebp, dword [r13 + 4]
lea rbx, [rsp + 0x430]
mov ecx, esi
mov dword [rsp + 0x70], ebp
imul ecx, ebp
imul ecx, r12d
call sub.msvcrt.dll_malloc
lea r10, [rsp + 0x470]
mov rcx, r13
lea r9, [rsp + 0x450]
mov qword [rsp + 0x100], rax
movdqu xmm7, xmmword [0x680bba80]
mov qword [rsp + 0xe0], rbx
movdqu xmm6, xmmword [0x680bba90]
mov qword [rsp + 0xf0], r10
mov r8d, dword [rsp + 0x70]
mov qword [rsp + 0xa8], 0
movdqu xmm9, xmmword [0x680bba60]
mov qword [rsp + 0xe8], r9
movdqu xmm8, xmmword [0x680bba70]
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x1920], r15
jmp 0x6809b3fc
add qword [rsp + 0xa8], 4
mov rbp, qword [rsp + 0xa8]
cmp rbp, 0x1c
je 0x6809b055
mov rdi, qword [rsp + 0x1920]
mov rcx, qword [rdi]
mov esi, dword [rcx]
mov r8d, dword [rcx + 4]
mov r13, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xf0]
movabs r15, 0x200000002
movabs r14, 0x100000000
mov rdi, qword [rsp + 0xe0]
mov qword [rsp + 0x480], r15
add r15, 2
movups xmmword [rsp + 0x470], xmm7
mov r11, qword [rsp + 0xc8]
mov dword [rsp + 0x488], 1
mov ebx, dword [rdx + r13]
xor edx, edx
mov qword [rsp + 0x440], r14
mov dword [rsp + 0x448], 0
lea eax, [rsi + rbx - 1]
mov rsi, qword [rsp + 0xe8]
movups xmmword [rsp + 0x430], xmm9
mov r14d, dword [rdi + r13]
mov qword [rsp + 0x8a0], r15
sub eax, r14d
mov dword [rsp + 0x8a8], 2
div ebx
movups xmmword [rsp + 0x890], xmm6
mov r10d, dword [r11 + r13]
mov qword [rsp + 0x460], 2
mov dword [rsp + 0x468], 1
movups xmmword [rsp + 0x450], xmm8
mov esi, dword [rsi + r13]
mov dword [rsp + 0xc4], r10d
xor edx, edx
mov dword [rsp + 0x70], eax
lea eax, [r10 + r8 - 1]
mov ebp, dword [rsp + 0x70]
sub eax, esi
div r10d
mov dword [rsp + 0xc0], eax
test ebp, ebp
je 0x6809b3d0
test eax, eax
je 0x6809b3d0
mov edi, dword [rcx + 8]
mov r15d, dword [rsp + 0x70]
mov dword [rsp + 0x30], eax
mov r13d, dword [rsp + 0xa0]
mov r10d, dword [rsp + 0x60]
mov dword [rsp + 0x20], r12d
imul edi, r15d
mov r11, qword [rsp + 0x1920]
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x40], r10d
mov r9d, dword [rsp + 0x110]
mov dword [rsp + 0x38], r13d
mov r8, qword [rsp + 0xf8]
lea rdx, [r11 + 0x18]
imul edi, r13d
add edi, 7
sar edi, 3
add edi, 1
imul edi, eax
mov dword [rsp + 0x114], edi
call fcn.68081870
test eax, eax
je 0x6809c255
mov rcx, qword [rsp + 0x1920]
mov r8d, dword [rsp + 0xc0]
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x108], rax
test r8d, r8d
jle 0x6809b7b3
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x6809b7b3
imul eax, r12d
mov rdx, qword [rsp + 0x108]
mov rbp, qword [rsp + 0x100]
movsxd r13, r12d
mov dword [rsp + 0xb0], 0
imul r14d, r12d
imul ebx, r12d
mov qword [rsp + 0xb8], rdx
cdqe
movsxd r14, r14d
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xd0], r14
movsxd rbx, ebx
nop dword [rax + rax]
mov r9, qword [rsp + 0x1920]
mov r11d, dword [rsp + 0x70]
xor r15d, r15d
mov r14, qword [rsp + 0xb8]
mov r8, qword [rsp + 0xd0]
mov rdi, qword [r9]
and r11d, 3
je 0x6809b6d4
cmp r11d, 1
je 0x6809b695
cmp r11d, 2
je 0x6809b661
mov ecx, dword [rdi]
mov r14, r8
mov rdx, qword [rsp + 0xb8]
mov r15d, 1
imul ecx, r12d
imul ecx, esi
add rcx, r8
mov r8, r13
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov r10, qword [rsp + 0xb8]
lea r8, [r14 + rbx]
lea r14, [r10 + r13]
mov ecx, dword [rdi]
mov qword [rsp + 0x80], r8
mov rdx, r14
add r15d, 1
add r14, r13
imul ecx, r12d
imul ecx, esi
add rcx, r8
mov r8, r13
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x80]
add r8, rbx
mov ecx, dword [rdi]
mov qword [rsp + 0x80], r8
mov rdx, r14
add r15d, 1
add r14, r13
imul ecx, r12d
imul ecx, esi
add rcx, r8
mov r8, r13
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x80]
add r8, rbx
cmp dword [rsp + 0x70], r15d
je 0x6809b77e
mov rcx, r13
mov eax, r15d
mov r13, r8
mov r15, rcx
mov ecx, dword [rdi]
mov rdx, r14
mov r8, r15
mov dword [rsp + 0x80], eax
add r14, r15
imul ecx, r12d
imul ecx, esi
add rcx, r13
add r13, rbx
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov ecx, dword [rdi]
mov rdx, r14
mov r8, r15
add r14, r15
imul ecx, r12d
imul ecx, esi
add rcx, r13
add r13, rbx
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov ecx, dword [rdi]
mov rdx, r14
mov r8, r15
add r14, r15
imul ecx, r12d
imul ecx, esi
add rcx, r13
add r13, rbx
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov ecx, dword [rdi]
mov rdx, r14
mov r8, r15
add r14, r15
imul ecx, r12d
imul ecx, esi
add rcx, r13
add r13, rbx
add rcx, rbp
call sub.msvcrt.dll_memcpy
mov eax, dword [rsp + 0x80]
add eax, 4
cmp dword [rsp + 0x70], eax
jne 0x6809b6e0
mov r13, r15
add dword [rsp + 0xb0], 1
mov rdx, qword [rsp + 0xd8]
mov r9d, dword [rsp + 0xb0]
add qword [rsp + 0xb8], rdx
add esi, dword [rsp + 0xc4]
cmp dword [rsp + 0xc0], r9d
jne 0x6809b5f0
mov rcx, qword [rsp + 0x108]
call sub.msvcrt.dll_free
mov esi, dword [rsp + 0x114]
add qword [rsp + 0xf8], rsi
sub dword [rsp + 0x110], esi
jmp 0x6809b3d0
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rbp
jmp 0x6809af7f
cdqe
movzx ebp, byte [r14 + 0x38]
add rax, r9
jmp 0x6809ad63
cdqe
movzx r11d, byte [r14 + 0x38]
add rax, rbp
jmp 0x6809af33
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r12d, byte [rax]
mov rax, rcx
jmp 0x68099e88
lea rax, str.invalid_PLTE
mov qword [0x680b7420], rax
jmp 0x68099781
movzx r12d, byte [r14 + 0x38]
add rdx, r11
jmp 0x68099f67
lea rbx, str.bad_ctype
xor r13d, r13d
mov qword [0x680b7420], rbx
jmp 0x68099781
lea r14, str.0_pixel_image
xor r13d, r13d
mov qword [0x680b7420], r14
jmp 0x68099781
mov rcx, qword [rsp + 0x8b0]
call sub.msvcrt.dll_free
mov qword [r15 + 0x10], 0
jmp 0x68099781
mov r13, qword [r15]
mov r12, qword [r15 + 0x18]
mov ebp, dword [r13]
imul ebp, dword [r13 + 4]
cmp dword [r14 + 0xc], 2
je 0x6809bcf2
test ebp, ebp
je 0x6809b07f
lea edx, [rbp - 1]
movzx ebx, byte [rsp + 0x42d]
movzx r9d, byte [rsp + 0x42e]
lea rsi, [r12 + rdx*4 + 4]
add rdx, 1
movzx edi, byte [rsp + 0x42f]
and edx, 7
je 0x6809b9c9
cmp rdx, 1
je 0x6809b94e
cmp rdx, 2
je 0x6809b940
cmp rdx, 3
je 0x6809b932
cmp rdx, 4
je 0x6809b924
cmp rdx, 5
je 0x6809b916
cmp rdx, 6
je 0x6809b908
cmp byte [r12], bl
je 0x6809c99c
add r12, 4
cmp byte [r12], bl
je 0x6809c2f6
add r12, 4
cmp byte [r12], bl
je 0x6809c2d5
add r12, 4
cmp byte [r12], bl
je 0x6809c2ac
add r12, 4
cmp byte [r12], bl
je 0x6809c28b
add r12, 4
cmp byte [r12], bl
je 0x6809c234
add r12, 4
cmp byte [r12], bl
je 0x6809c26a
add r12, 4
cmp r12, rsi
jne 0x6809b9c9
jmp 0x6809b07f
lea r8, [r12 + 4]
cmp byte [r12 + 4], bl
je 0x6809c216
cmp byte [r8 + 4], bl
je 0x6809c1f8
cmp byte [r8 + 8], bl
je 0x6809c1da
cmp byte [r8 + 0xc], bl
je 0x6809c1bc
cmp byte [r8 + 0x10], bl
je 0x6809c19e
cmp byte [r8 + 0x14], bl
je 0x6809c180
cmp byte [r8 + 0x18], bl
je 0x6809c162
lea r12, [r8 + 0x1c]
cmp r12, rsi
je 0x6809b07f
cmp byte [r12], bl
jne 0x6809b970
cmp byte [r12 + 1], r9b
jne 0x6809b970
cmp byte [r12 + 2], dil
jne 0x6809b970
mov byte [r12 + 3], 0
jmp 0x6809b970
movzx r12d, byte [r14 + 0x38]
add rdx, r10
jmp 0x68099eed
mov edi, dword [rsp + 0x1930]
mov dword [r14 + 0xc], edi
mov ebp, edi
jmp 0x6809b0c7
lea r10, str.multiple_IHDR
mov qword [0x680b7420], r10
jmp 0x68099781
lea r8, str.bad_IHDR_len
xor r13d, r13d
mov qword [0x680b7420], r8
jmp 0x68099781
lea rdi, str.no_PLTE
mov qword [0x680b7420], rdi
jmp 0x68099781
movzx r13d, byte [rsp + 0x58]
mov dword [r14 + 8], r13d
mov r13d, 1
jmp 0x68099781
lea r14, str.tRNS_after_IDAT
mov qword [0x680b7420], r14
jmp 0x68099781
lea rsi, str.bad_tRNS_len
mov qword [0x680b7420], rsi
jmp 0x68099781
lea rbp, str.XXXX_PNG_chunk_not_known
bswap eax
mov dword [str.XXXX_PNG_chunk_not_known], eax
mov qword [0x680b7420], rbp
jmp 0x68099781
lea rsi, str.bad_filter_method
xor r13d, r13d
mov qword [0x680b7420], rsi
jmp 0x68099781
lea rdi, str.bad_comp_method
xor r13d, r13d
mov qword [0x680b7420], rdi
jmp 0x68099781
lea r15, str.bad_interlace_method
xor r13d, r13d
mov qword [0x680b7420], r15
jmp 0x68099781
test esi, esi
je 0x6809b305
lea r8d, [rsi - 1]
mov r11, r13
mov r12, rax
movabs r9, 0xaaaaaaaaaaaaaaab
lea rdi, [r8 + r8*2 + 3]
lea rbp, [rax + rdi]
sub rdi, 3
imul rdi, r9
add rdi, 1
and edi, 3
je 0x6809bbd8
cmp rdi, 1
je 0x6809bb93
cmp rdi, 2
je 0x6809bb58
movzx eax, byte [r13]
lea r12, [rbx + 3]
lea r11, [r13 + 1]
shl eax, 2
cdqe
movzx r14d, byte [rsp + rax + 0x490]
movzx esi, byte [rsp + rax + 0x491]
movzx r10d, byte [rsp + rax + 0x492]
mov byte [rbx], r14b
mov byte [rbx + 1], sil
mov byte [rbx + 2], r10b
movzx ecx, byte [r11]
add r12, 3
add r11, 1
shl ecx, 2
movsxd rdx, ecx
movzx r8d, byte [rsp + rdx + 0x490]
movzx edi, byte [rsp + rdx + 0x491]
movzx r9d, byte [rsp + rdx + 0x492]
mov byte [r12 - 3], r8b
mov byte [r12 - 2], dil
mov byte [r12 - 1], r9b
movzx eax, byte [r11]
add r12, 3
add r11, 1
shl eax, 2
movsxd r14, eax
movzx esi, byte [rsp + r14 + 0x490]
movzx r10d, byte [rsp + r14 + 0x491]
movzx ecx, byte [rsp + r14 + 0x492]
mov byte [r12 - 3], sil
mov byte [r12 - 2], r10b
mov byte [r12 - 1], cl
cmp r12, rbp
je 0x6809b305
movzx edx, byte [r11]
add r12, 0xc
add r11, 4
shl edx, 2
movsxd r8, edx
movzx edi, byte [rsp + r8 + 0x490]
movzx r9d, byte [rsp + r8 + 0x491]
movzx eax, byte [rsp + r8 + 0x492]
mov byte [r12 - 0xc], dil
mov byte [r12 - 0xb], r9b
mov byte [r12 - 0xa], al
movzx r14d, byte [r11 - 3]
shl r14d, 2
movsxd rsi, r14d
movzx ecx, byte [rsp + rsi + 0x491]
movzx edx, byte [rsp + rsi + 0x492]
movzx r10d, byte [rsp + rsi + 0x490]
mov byte [r12 - 8], cl
mov byte [r12 - 9], r10b
mov byte [r12 - 7], dl
movzx r8d, byte [r11 - 2]
shl r8d, 2
movsxd rdi, r8d
movzx r9d, byte [rsp + rdi + 0x490]
movzx eax, byte [rsp + rdi + 0x491]
movzx r14d, byte [rsp + rdi + 0x492]
mov byte [r12 - 6], r9b
mov byte [r12 - 5], al
mov byte [r12 - 4], r14b
movzx esi, byte [r11 - 1]
shl esi, 2
movsxd rcx, esi
movzx r10d, byte [rsp + rcx + 0x490]
movzx edx, byte [rsp + rcx + 0x491]
movzx r8d, byte [rsp + rcx + 0x492]
mov byte [r12 - 3], r10b
mov byte [r12 - 2], dl
mov byte [r12 - 1], r8b
cmp r12, rbp
jne 0x6809bbd8
jmp 0x6809b305
movzx r12d, byte [r14 + 0x38]
add rdx, r8
jmp 0x68099e72
lea rbx, str.tRNS_before_PLTE
mov qword [0x680b7420], rbx
jmp 0x68099781
lea r15, str.tRNS_with_alpha
mov qword [0x680b7420], r15
jmp 0x68099781
test ebp, ebp
je 0x6809b07f
lea eax, [rbp - 1]
movzx ecx, byte [rsp + 0x42d]
cmp eax, 0xf
jbe 0x6809c2cd
movd xmm3, ecx
lea r13, [r12 + 1]
pxor xmm4, xmm4
mov r10d, eax
shr r10d, 4
punpcklbw xmm3, xmm3
movdqu xmm9, xmmword [0x680bb930]
movdqu xmm5, xmmword [0x680bb9b0]
sub r10d, 1
punpcklwd xmm3, xmm3
shl r10, 5
pshufd xmm1, xmm3, 0
lea rbx, [r12 + r10 + 0x21]
movdqu xmm0, xmmword [r13 - 1]
movdqu xmm2, xmmword [r13 + 0xf]
movdqu xmm8, xmm4
add r13, 0x20
pand xmm0, xmm9
pand xmm2, xmm9
packuswb xmm0, xmm2
pcmpeqb xmm0, xmm1
pandn xmm0, xmm5
psubb xmm8, xmm0
movups xmmword [rsp + 0x60], xmm8
movzx r9d, byte [rsp + 0x60]
movups xmmword [rsp + 0x410], xmm8
mov byte [r13 - 0x20], r9b
movups xmmword [rsp + 0x400], xmm8
movzx edi, byte [rsp + 0x401]
mov byte [r13 - 0x1e], dil
movups xmmword [rsp + 0x3f0], xmm8
movzx edx, byte [rsp + 0x3f2]
mov byte [r13 - 0x1c], dl
movups xmmword [rsp + 0x3e0], xmm8
movzx esi, byte [rsp + 0x3e3]
mov byte [r13 - 0x1a], sil
movups xmmword [rsp + 0x3d0], xmm8
movzx r8d, byte [rsp + 0x3d4]
mov byte [r13 - 0x18], r8b
movups xmmword [rsp + 0x3c0], xmm8
movzx r11d, byte [rsp + 0x3c5]
mov byte [r13 - 0x16], r11b
movups xmmword [rsp + 0x3b0], xmm8
movzx r10d, byte [rsp + 0x3b6]
mov byte [r13 - 0x14], r10b
movups xmmword [rsp + 0x3a0], xmm8
movzx r9d, byte [rsp + 0x3a7]
mov byte [r13 - 0x12], r9b
movups xmmword [rsp + 0x390], xmm8
movzx edi, byte [rsp + 0x398]
mov byte [r13 - 0x10], dil
movups xmmword [rsp + 0x380], xmm8
movzx edx, byte [rsp + 0x389]
mov byte [r13 - 0xe], dl
movups xmmword [rsp + 0x370], xmm8
movzx esi, byte [rsp + 0x37a]
mov byte [r13 - 0xc], sil
movups xmmword [rsp + 0x360], xmm8
movzx r8d, byte [rsp + 0x36b]
mov byte [r13 - 0xa], r8b
movups xmmword [rsp + 0x350], xmm8
movzx r11d, byte [rsp + 0x35c]
mov byte [r13 - 8], r11b
movups xmmword [rsp + 0x340], xmm8
movzx r10d, byte [rsp + 0x34d]
mov byte [r13 - 6], r10b
movups xmmword [rsp + 0x330], xmm8
movzx r9d, byte [rsp + 0x33e]
mov byte [r13 - 4], r9b
movups xmmword [rsp + 0x320], xmm8
movzx edi, byte [rsp + 0x32f]
mov byte [r13 - 2], dil
cmp r13, rbx
jne 0x6809bd4d
mov r11d, eax
and r11d, 0xfffffff0
mov eax, r11d
lea r12, [r12 + rax*2]
cmp byte [r12], cl
lea ebx, [r11 + 1]
setne r13b
neg r13d
mov byte [r12 + 1], r13b
cmp ebp, ebx
jbe 0x6809b07f
cmp byte [r12 + 2], cl
lea esi, [r11 + 2]
setne dl
neg edx
mov byte [r12 + 3], dl
cmp ebp, esi
jbe 0x6809b07f
cmp byte [r12 + 4], cl
lea r10d, [r11 + 3]
setne r8b
neg r8d
mov byte [r12 + 5], r8b
cmp ebp, r10d
jbe 0x6809b07f
cmp byte [r12 + 6], cl
lea edi, [r11 + 4]
setne r9b
neg r9d
mov byte [r12 + 7], r9b
cmp ebp, edi
jbe 0x6809b07f
cmp byte [r12 + 8], cl
lea r13d, [r11 + 5]
setne al
neg eax
mov byte [r12 + 9], al
cmp ebp, r13d
jbe 0x6809b07f
cmp byte [r12 + 0xa], cl
lea edx, [r11 + 6]
setne bl
neg ebx
mov byte [r12 + 0xb], bl
cmp ebp, edx
jbe 0x6809b07f
cmp byte [r12 + 0xc], cl
lea r8d, [r11 + 7]
setne sil
neg esi
mov byte [r12 + 0xd], sil
cmp ebp, r8d
jbe 0x6809b07f
cmp byte [r12 + 0xe], cl
lea r9d, [r11 + 8]
setne r10b
neg r10d
mov byte [r12 + 0xf], r10b
cmp ebp, r9d
jbe 0x6809b07f
cmp byte [r12 + 0x10], cl
lea eax, [r11 + 9]
setne dil
neg edi
mov byte [r12 + 0x11], dil
cmp ebp, eax
jbe 0x6809b07f
cmp byte [r12 + 0x12], cl
lea ebx, [r11 + 0xa]
setne r13b
neg r13d
mov byte [r12 + 0x13], r13b
cmp ebp, ebx
jbe 0x6809b07f
cmp byte [r12 + 0x14], cl
lea esi, [r11 + 0xb]
setne dl
neg edx
mov byte [r12 + 0x15], dl
cmp ebp, esi
jbe 0x6809b07f
cmp byte [r12 + 0x16], cl
lea r10d, [r11 + 0xc]
setne r8b
neg r8d
mov byte [r12 + 0x17], r8b
cmp ebp, r10d
jbe 0x6809b07f
cmp byte [r12 + 0x18], cl
lea edi, [r11 + 0xd]
setne r9b
neg r9d
mov byte [r12 + 0x19], r9b
cmp ebp, edi
jbe 0x6809b07f
cmp byte [r12 + 0x1a], cl
lea r13d, [r11 + 0xe]
setne al
neg eax
mov byte [r12 + 0x1b], al
cmp ebp, r13d
jbe 0x6809b07f
cmp byte [r12 + 0x1c], cl
setne bl
add r11d, 0xf
neg ebx
mov byte [r12 + 0x1d], bl
cmp ebp, r11d
jbe 0x6809b07f
cmp byte [r12 + 0x1e], cl
setne bpl
neg ebp
mov byte [r12 + 0x1f], bpl
jmp 0x6809b07f
mov dword [r14 + 8], 4
mov r13d, 1
jmp 0x68099781
mov r11, qword [r15]
mov rsi, qword [r15 + 0x18]
mov r8d, dword [r11]
imul r8d, dword [r11 + 4]
cmp dword [r11 + 0xc], 3
je 0x6809c80f
mov edx, dword [0x680b7480]
test edx, edx
je 0x6809c317
test r8d, r8d
je 0x6809b0a1
lea r12d, [r8 - 1]
lea rcx, [rsi + r12*4 + 4]
movzx edi, byte [rsi + 3]
movzx r11d, byte [rsi]
movzx r9d, byte [rsi + 2]
test dil, dil
je 0x6809c14c
movzx edx, byte [rsi + 1]
add rsi, 4
mov eax, edx
shl eax, 8
sub eax, edx
cdq
idiv edi
mov byte [rsi - 3], al
mov eax, r11d
shl eax, 8
sub eax, r11d
cdq
idiv edi
mov byte [rsi - 2], al
mov eax, r9d
shl eax, 8
sub eax, r9d
cdq
idiv edi
mov byte [rsi - 4], al
cmp rcx, rsi
jne 0x6809c0fd
jmp 0x6809b0a1
mov byte [rsi + 2], r11b
add rsi, 4
mov byte [rsi - 4], r9b
cmp rsi, rcx
jne 0x6809c0fd
jmp 0x6809b0a1
cmp byte [r8 + 0x19], r9b
jne 0x6809b9bc
cmp byte [r8 + 0x1a], dil
jne 0x6809b9bc
mov byte [r8 + 0x1b], 0
jmp 0x6809b9bc
cmp byte [r8 + 0x15], r9b
jne 0x6809b9b2
cmp byte [r8 + 0x16], dil
jne 0x6809b9b2
mov byte [r8 + 0x17], 0
jmp 0x6809b9b2
cmp byte [r8 + 0x11], r9b
jne 0x6809b9a8
cmp byte [r8 + 0x12], dil
jne 0x6809b9a8
mov byte [r8 + 0x13], 0
jmp 0x6809b9a8
cmp byte [r8 + 0xd], r9b
jne 0x6809b99e
cmp byte [r8 + 0xe], dil
jne 0x6809b99e
mov byte [r8 + 0xf], 0
jmp 0x6809b99e
cmp byte [r8 + 9], r9b
jne 0x6809b994
cmp byte [r8 + 0xa], dil
jne 0x6809b994
mov byte [r8 + 0xb], 0
jmp 0x6809b994
cmp byte [r8 + 5], r9b
jne 0x6809b98a
cmp byte [r8 + 6], dil
jne 0x6809b98a
mov byte [r8 + 7], 0
jmp 0x6809b98a
cmp byte [r8 + 1], r9b
jne 0x6809b980
cmp byte [r8 + 2], dil
jne 0x6809b980
mov byte [r8 + 3], 0
jmp 0x6809b980
cmp byte [r12 + 1], r9b
jne 0x6809b94a
cmp byte [r12 + 2], dil
jne 0x6809b94a
mov byte [r12 + 3], 0
jmp 0x6809b94a
mov rcx, qword [rsp + 0x100]
mov r13d, eax
call sub.msvcrt.dll_free
jmp 0x68099781
cmp byte [r12 + 1], r9b
jne 0x6809b958
cmp byte [r12 + 2], dil
jne 0x6809b958
mov byte [r12 + 3], 0
jmp 0x6809b958
cmp byte [r12 + 1], r9b
jne 0x6809b93c
cmp byte [r12 + 2], dil
jne 0x6809b93c
mov byte [r12 + 3], 0
jmp 0x6809b93c
cmp byte [r12 + 1], r9b
jne 0x6809b92e
cmp byte [r12 + 2], dil
jne 0x6809b92e
mov byte [r12 + 3], 0
jmp 0x6809b92e
xor r11d, r11d
jmp 0x6809bef0
cmp byte [r12 + 1], r9b
jne 0x6809b920
cmp byte [r12 + 2], dil
jne 0x6809b920
mov byte [r12 + 3], 0
jmp 0x6809b920
cmp byte [r12 + 1], r9b
jne 0x6809b912
cmp byte [r12 + 2], dil
jne 0x6809b912
mov byte [r12 + 3], 0
jmp 0x6809b912
test r8d, r8d
je 0x6809b0a1
lea edi, [r8 - 1]
cmp edi, 0xf
jbe 0x6809c994
mov r9d, edi
mov rax, rsi
shr r9d, 4
sub r9d, 1
shl r9, 6
lea r13, [rsi + r9 + 0x40]
movdqu xmm3, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
add rax, 0x40
movdqu xmm9, xmmword [rax - 0x20]
movdqu xmm5, xmmword [rax - 0x10]
movups xmmword [rsp + 0x60], xmm3
movdqu xmm4, xmmword [rsp + 0x60]
movups xmmword [rsp + 0x70], xmm1
movdqu xmm3, xmmword [rsp + 0x70]
movups xmmword [rsp + 0x310], xmm4
movzx ebx, byte [rsp + 0x312]
movups xmmword [rsp + 0x80], xmm9
mov byte [rax - 0x40], bl
movups xmmword [rsp + 0x300], xmm4
movzx ebp, byte [rsp + 0x306]
movups xmmword [rsp + 0x90], xmm5
mov byte [rax - 0x3c], bpl
movups xmmword [rsp + 0x2f0], xmm4
movzx r12d, byte [rsp + 0x2fa]
mov byte [rax - 0x38], r12b
movups xmmword [rsp + 0x2e0], xmm4
movzx ecx, byte [rsp + 0x2ee]
mov byte [rax - 0x34], cl
movups xmmword [rsp + 0x2d0], xmm3
movzx r11d, byte [rsp + 0x2d2]
mov byte [rax - 0x30], r11b
movups xmmword [rsp + 0x2c0], xmm3
movzx edx, byte [rsp + 0x2c6]
mov byte [rax - 0x2c], dl
movups xmmword [rsp + 0x2b0], xmm3
movzx r10d, byte [rsp + 0x2ba]
mov byte [rax - 0x28], r10b
movups xmmword [rsp + 0x2a0], xmm3
movzx r9d, byte [rsp + 0x2ae]
movdqu xmm3, xmmword [rsp + 0x80]
mov byte [rax - 0x24], r9b
movups xmmword [rsp + 0x290], xmm3
movzx ebx, byte [rsp + 0x292]
mov byte [rax - 0x20], bl
movzx ebx, byte [rsp + 0x60]
movups xmmword [rsp + 0x280], xmm3
movzx ebp, byte [rsp + 0x286]
mov byte [rax - 0x1c], bpl
movups xmmword [rsp + 0x270], xmm3
movzx r12d, byte [rsp + 0x27a]
mov byte [rax - 0x18], r12b
movups xmmword [rsp + 0x260], xmm3
movzx ecx, byte [rsp + 0x26e]
movdqu xmm3, xmmword [rsp + 0x90]
mov byte [rax - 0x14], cl
movups xmmword [rsp + 0x250], xmm3
movzx r11d, byte [rsp + 0x252]
mov byte [rax - 0x10], r11b
movups xmmword [rsp + 0x240], xmm3
movzx edx, byte [rsp + 0x246]
mov byte [rax - 0xc], dl
movups xmmword [rsp + 0x230], xmm3
movzx r10d, byte [rsp + 0x23a]
mov byte [rax - 8], r10b
movups xmmword [rsp + 0x220], xmm3
movdqu xmm3, xmmword [rsp + 0x60]
movzx r9d, byte [rsp + 0x22e]
mov byte [rax - 4], r9b
movups xmmword [rsp + 0x210], xmm3
mov byte [rax - 0x3e], bl
movups xmmword [rsp + 0x200], xmm3
movzx ebp, byte [rsp + 0x204]
movzx r11d, byte [rsp + 0x70]
movzx ebx, byte [rsp + 0x80]
mov byte [rax - 0x3a], bpl
movups xmmword [rsp + 0x1f0], xmm3
movzx r12d, byte [rsp + 0x1f8]
mov byte [rax - 0x36], r12b
movups xmmword [rsp + 0x1e0], xmm3
movdqu xmm3, xmmword [rsp + 0x70]
movzx ecx, byte [rsp + 0x1ec]
mov byte [rax - 0x32], cl
movups xmmword [rsp + 0x1d0], xmm3
mov byte [rax - 0x2e], r11b
movups xmmword [rsp + 0x1c0], xmm3
movzx edx, byte [rsp + 0x1c4]
mov byte [rax - 0x2a], dl
movups xmmword [rsp + 0x1b0], xmm3
movzx r10d, byte [rsp + 0x1b8]
mov byte [rax - 0x26], r10b
movups xmmword [rsp + 0x1a0], xmm3
movdqu xmm3, xmmword [rsp + 0x80]
movzx r9d, byte [rsp + 0x1ac]
mov byte [rax - 0x22], r9b
movups xmmword [rsp + 0x190], xmm3
mov byte [rax - 0x1e], bl
movups xmmword [rsp + 0x180], xmm3
movzx ebp, byte [rsp + 0x184]
mov byte [rax - 0x1a], bpl
movups xmmword [rsp + 0x170], xmm3
movzx r12d, byte [rsp + 0x178]
mov byte [rax - 0x16], r12b
movups xmmword [rsp + 0x160], xmm3
movzx ecx, byte [rsp + 0x16c]
movdqu xmm3, xmmword [rsp + 0x90]
movzx r11d, byte [rsp + 0x90]
mov byte [rax - 0x12], cl
movups xmmword [rsp + 0x150], xmm3
mov byte [rax - 0xe], r11b
movups xmmword [rsp + 0x140], xmm3
movzx edx, byte [rsp + 0x144]
mov byte [rax - 0xa], dl
movups xmmword [rsp + 0x130], xmm3
movzx r10d, byte [rsp + 0x138]
mov byte [rax - 6], r10b
movups xmmword [rsp + 0x120], xmm3
movzx r9d, byte [rsp + 0x12c]
mov byte [rax - 2], r9b
cmp rax, r13
jne 0x6809c344
mov r10d, edi
and r10d, 0xfffffff0
mov edi, r10d
lea rsi, [rsi + rdi*4]
movzx eax, byte [rsi]
movzx r13d, byte [rsi + 2]
lea ebx, [r10 + 1]
mov byte [rsi], r13b
mov byte [rsi + 2], al
cmp ebx, r8d
jae 0x6809b0a1
movzx ebp, byte [rsi + 4]
movzx r12d, byte [rsi + 6]
lea ecx, [r10 + 2]
mov byte [rsi + 4], r12b
mov byte [rsi + 6], bpl
cmp r8d, ecx
jbe 0x6809b0a1
movzx r11d, byte [rsi + 8]
movzx edx, byte [rsi + 0xa]
lea r9d, [r10 + 3]
mov byte [rsi + 8], dl
mov byte [rsi + 0xa], r11b
cmp r9d, r8d
jae 0x6809b0a1
movzx edi, byte [rsi + 0xc]
movzx eax, byte [rsi + 0xe]
lea r13d, [r10 + 4]
mov byte [rsi + 0xc], al
mov byte [rsi + 0xe], dil
cmp r13d, r8d
jae 0x6809b0a1
movzx ebx, byte [rsi + 0x10]
movzx ebp, byte [rsi + 0x12]
lea r12d, [r10 + 5]
mov byte [rsi + 0x10], bpl
mov byte [rsi + 0x12], bl
cmp r12d, r8d
jae 0x6809b0a1
movzx ecx, byte [rsi + 0x14]
movzx r11d, byte [rsi + 0x16]
lea edx, [r10 + 6]
mov byte [rsi + 0x14], r11b
mov byte [rsi + 0x16], cl
cmp edx, r8d
jae 0x6809b0a1
movzx edi, byte [rsi + 0x18]
movzx r9d, byte [rsi + 0x1a]
lea eax, [r10 + 7]
mov byte [rsi + 0x18], r9b
mov byte [rsi + 0x1a], dil
cmp r8d, eax
jbe 0x6809b0a1
movzx r13d, byte [rsi + 0x1c]
movzx ebx, byte [rsi + 0x1e]
lea ebp, [r10 + 8]
mov byte [rsi + 0x1c], bl
mov byte [rsi + 0x1e], r13b
cmp r8d, ebp
jbe 0x6809b0a1
movzx r12d, byte [rsi + 0x20]
movzx ecx, byte [rsi + 0x22]
lea r11d, [r10 + 9]
mov byte [rsi + 0x20], cl
mov byte [rsi + 0x22], r12b
cmp r11d, r8d
jae 0x6809b0a1
movzx edx, byte [rsi + 0x24]
movzx edi, byte [rsi + 0x26]
lea r9d, [r10 + 0xa]
mov byte [rsi + 0x24], dil
mov byte [rsi + 0x26], dl
cmp r9d, r8d
jae 0x6809b0a1
movzx eax, byte [rsi + 0x28]
movzx r13d, byte [rsi + 0x2a]
lea ebx, [r10 + 0xb]
mov byte [rsi + 0x28], r13b
mov byte [rsi + 0x2a], al
cmp r8d, ebx
jbe 0x6809b0a1
movzx ebp, byte [rsi + 0x2c]
movzx r12d, byte [rsi + 0x2e]
lea ecx, [r10 + 0xc]
mov byte [rsi + 0x2c], r12b
mov byte [rsi + 0x2e], bpl
cmp ecx, r8d
jae 0x6809b0a1
movzx r11d, byte [rsi + 0x30]
movzx edx, byte [rsi + 0x32]
lea edi, [r10 + 0xd]
mov byte [rsi + 0x30], dl
mov byte [rsi + 0x32], r11b
cmp edi, r8d
jae 0x6809b0a1
movzx eax, byte [rsi + 0x34]
movzx r9d, byte [rsi + 0x36]
lea r13d, [r10 + 0xe]
mov byte [rsi + 0x34], r9b
mov byte [rsi + 0x36], al
cmp r8d, r13d
jbe 0x6809b0a1
movzx ebx, byte [rsi + 0x38]
movzx ebp, byte [rsi + 0x3a]
add r10d, 0xf
mov byte [rsi + 0x38], bpl
mov byte [rsi + 0x3a], bl
cmp r8d, r10d
jbe 0x6809b0a1
movzx r8d, byte [rsi + 0x3c]
movzx r10d, byte [rsi + 0x3e]
mov byte [rsi + 0x3e], r8b
mov byte [rsi + 0x3c], r10b
jmp 0x6809b0a1
test r8d, r8d
je 0x6809b0a1
lea r13d, [r8 - 1]
movabs r8, 0xaaaaaaaaaaaaaaab
add r13, 1
lea rbx, [r13 + r13*2]
lea rbp, [rsi + rbx]
sub rbx, 3
imul rbx, r8
add rbx, 1
and ebx, 7
je 0x6809c901
cmp rbx, 1
je 0x6809c8e5
cmp rbx, 2
je 0x6809c8d0
cmp rbx, 3
je 0x6809c8bd
cmp rbx, 4
je 0x6809c8ac
cmp rbx, 5
je 0x6809c897
cmp rbx, 6
je 0x6809c885
movzx r10d, byte [rsi]
movzx r12d, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], r12b
mov byte [rsi - 1], r10b
movzx ecx, byte [rsi]
movzx edi, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], dil
mov byte [rsi - 1], cl
movzx r11d, byte [rsi]
movzx r9d, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], r9b
mov byte [rsi - 1], r11b
movzx eax, byte [rsi]
movzx edx, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], dl
mov byte [rsi - 1], al
movzx r13d, byte [rsi]
movzx ebx, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], bl
mov byte [rsi - 1], r13b
movzx r10d, byte [rsi]
movzx r8d, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], r8b
mov byte [rsi - 1], r10b
movzx r12d, byte [rsi]
movzx ecx, byte [rsi + 2]
add rsi, 3
mov byte [rsi - 3], cl
mov byte [rsi - 1], r12b
cmp rsi, rbp
je 0x6809b0a1
movzx edi, byte [rsi]
movzx r11d, byte [rsi + 2]
add rsi, 0x18
movzx eax, byte [rsi - 0x15]
movzx r9d, byte [rsi - 0x13]
movzx edx, byte [rsi - 0x12]
movzx r13d, byte [rsi - 0x10]
mov byte [rsi - 0x18], r11b
movzx ebx, byte [rsi - 0xf]
movzx r10d, byte [rsi - 0xd]
mov byte [rsi - 0x16], dil
movzx r8d, byte [rsi - 0xc]
movzx r12d, byte [rsi - 0xa]
mov byte [rsi - 0x15], r9b
movzx ecx, byte [rsi - 9]
movzx edi, byte [rsi - 7]
mov byte [rsi - 0x13], al
movzx r11d, byte [rsi - 6]
movzx eax, byte [rsi - 4]
mov byte [rsi - 0x10], dl
movzx r9d, byte [rsi - 1]
movzx edx, byte [rsi - 3]
mov byte [rsi - 0x12], r13b
mov byte [rsi - 0xf], r10b
mov byte [rsi - 0xd], bl
mov byte [rsi - 0xc], r12b
mov byte [rsi - 0xa], r8b
mov byte [rsi - 9], dil
mov byte [rsi - 7], cl
mov byte [rsi - 6], al
mov byte [rsi - 4], r11b
mov byte [rsi - 3], r9b
mov byte [rsi - 1], dl
cmp rsi, rbp
jne 0x6809c901
jmp 0x6809b0a1
xor r10d, r10d
jmp 0x6809c648
cmp byte [r12 + 1], r9b
jne 0x6809b904
cmp byte [r12 + 2], dil
jne 0x6809b904
mov byte [r12 + 3], 0
jmp 0x6809b904
mov qword [r15 + 0x10], 0
jmp 0x68099781
lea r15, str.outofmem
mov qword [0x680b7420], r15
jmp 0x68099d5d