Function at 0x683a66b0
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.6830cfe0
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 0x683a67c8
mov r9d, dword [r14 + 0x30]
test r9d, r9d
jne 0x683a6780
nop dword [rax]
lea r12, str.bad_png_sig
xor r13d, r13d
mov qword [0x683c4440], 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 0x683a7a38
nop
movq xmm6, rcx
mov dword [r14 + 0x30], 0
punpcklqdq xmm6, xmm6
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x683a6730
lea rdx, [rcx + 1]
mov qword [r14 + 0xb8], rdx
movzx esi, byte [rcx]
cmp sil, 0x89
jne 0x683a6730
mov rdi, qword [r14 + 0xb8]
cmp rdi, qword [r14 + 0xc0]
jb 0x683a6840
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm2, rcx
movzx r11d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x683a684f
lea r10, [rdi + 1]
mov qword [r14 + 0xb8], r10
movzx r11d, byte [rdi]
cmp r11b, 0x50
jne 0x683a6730
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jb 0x683a68c0
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm4, rcx
movzx r9d, byte [r14 + 0x38]
add rax, rbx
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x683a68d1
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx r9d, byte [r12]
cmp r9b, 0x4e
jne 0x683a6730
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x683a6940
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm6, rcx
movzx r8d, byte [r14 + 0x38]
add rax, rsi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x683a694f
lea rdi, [rcx + 1]
mov qword [r14 + 0xb8], rdi
movzx r8d, byte [rcx]
cmp r8b, 0x47
jne 0x683a6730
mov rbp, qword [r14 + 0xb8]
cmp rbp, qword [r14 + 0xc0]
jb 0x683a69c0
mov r10d, dword [r14 + 0x30]
test r10d, r10d
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm9, rcx
movzx r13d, byte [r14 + 0x38]
add rax, r12
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x683a69d0
lea r11, [rbp + 1]
mov qword [r14 + 0xb8], r11
movzx r13d, byte [rbp]
cmp r13b, 0xd
jne 0x683a6730
mov rbx, qword [r14 + 0xb8]
cmp rbx, qword [r14 + 0xc0]
jb 0x683a6a40
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm1, rcx
movzx edx, byte [r14 + 0x38]
add rax, rsi
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x683a6a4e
lea r9, [rbx + 1]
mov qword [r14 + 0xb8], r9
movzx edx, byte [rbx]
cmp dl, 0xa
jne 0x683a6730
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x683a6ab8
mov edi, dword [r14 + 0x30]
test edi, edi
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm2, rcx
movzx r10d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x683a6ac7
lea r8, [rcx + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [rcx]
cmp r10b, 0x1a
jne 0x683a6730
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jae 0x683a7710
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx ebx, byte [r12]
cmp bl, 0xa
jne 0x683a6730
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.68396c90
mov rcx, r14
mov r12d, eax
call fcn.68396c90
cmp eax, 0x49484452
je 0x683a7440
ja 0x683a6d28
cmp eax, 0x49444154
je 0x683a70b0
cmp eax, 0x49454e44
jne 0x683a7088
test r13d, r13d
jne 0x683a7768
mov esi, dword [rsp + 0x1928]
test esi, esi
jne 0x683a7ac0
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x683a7d40
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 0x683a997d
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.683a99a0
mov r13d, eax
test eax, eax
je 0x683a882b
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 0x683a6d1d
mov rcx, qword [r15 + 8]
call fcn.68313a20
mov edx, dword [r14 + 8]
mov qword [r15 + 8], 0
lea eax, [rdx + 1]
cmp eax, dword [rsp + 0x1930]
je 0x683a7fe8
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 0x683a82ed
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.6838e830
test eax, eax
jne 0x683a8031
xor r13d, r13d
jmp 0x683a6741
cmp eax, 0x504c5445
je 0x683a7170
cmp eax, 0x74524e53
jne 0x683a7148
test r13d, r13d
jne 0x683a7768
cmp qword [r15 + 8], 0
jne 0x683a8a18
cmp byte [rsp + 0x58], 0
je 0x683a7780
cmp dword [rsp + 0x1928], 2
je 0x683a9070
test ebx, ebx
je 0x683a8c8c
cmp ebx, r12d
jb 0x683a8a2b
test r12d, r12d
je 0x683a706f
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 0x683a6f4d
cmp r11, 1
je 0x683a6eca
cmp r11, 2
je 0x683a6e4f
cmp rax, rdx
jb 0x683a87c8
mov r10d, dword [r14 + 0x30]
xor r12d, r12d
test r10d, r10d
je 0x683a6e48
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 0x683a8c7f
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 0x683a7fd1
mov r11d, dword [r14 + 0x30]
xor r12d, r12d
test r11d, r11d
je 0x683a6ec3
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 0x683a89a8
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 0x683a7d58
mov ecx, dword [r14 + 0x30]
xor r12d, r12d
test ecx, ecx
je 0x683a6f3d
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 0x683a87f2
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 0x683a706f
mov r12, r9
cmp rax, rdx
jae 0x683a7c18
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 0x683a7bb0
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r11d, byte [rax]
mov rax, rcx
mov byte [r12], r11b
cmp rax, rdx
jb 0x683a7b90
mov r10d, dword [r14 + 0x30]
xor ecx, ecx
test r10d, r10d
je 0x683a6ff4
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 0x683a7f78
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 0x683a7b60
mov r11d, dword [r14 + 0x30]
xor r9d, r9d
test r11d, r11d
je 0x683a705d
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 0x683a7f5a
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 0x683a6f50
mov byte [rsp + 0x58], 4
nop dword [rax]
mov rcx, r14
call fcn.68396c90
jmp 0x683a6b58
cmp eax, 0x43674249
jne 0x683a7148
mov edx, r12d
mov rcx, r14
call fcn.683ae5b0
mov dword [rsp + 0x90], 1
jmp 0x683a7078
test r13d, r13d
jne 0x683a7768
cmp byte [rsp + 0x58], 0
je 0x683a70c8
test ebx, ebx
je 0x683a89f0
cmp dword [rsp + 0x1928], 2
je 0x683a8a03
mov ecx, dword [rsp + 0x70]
lea ebp, [rcx + r12]
cmp ebp, ecx
jl 0x683a6d1d
mov rcx, qword [r15 + 8]
cmp ebp, esi
ja 0x683a7b00
mov r11d, dword [rsp + 0x70]
mov r10, qword [r14 + 0xc0]
mov rdx, qword [r14 + 0xb8]
add rcx, r11
cmp qword [r14 + 0x10], 0
je 0x683a711e
mov r9, r10
sub r9, rdx
cmp r12d, r9d
jg 0x683a7d6f
movsxd r12, r12d
lea r8, [rdx + r12]
cmp r10, r8
jae 0x683a7c80
lea r15, str.outofdata
mov qword [0x683c4440], r15
jmp 0x683a6741
test r13d, r13d
jne 0x683a7768
test eax, 0x20000000
je 0x683a8a3e
mov edx, r12d
mov rcx, r14
call fcn.683ae5b0
jmp 0x683a7078
test r13d, r13d
jne 0x683a7768
cmp r12d, 0x300
ja 0x683a87df
mov ebx, r12d
mov r11d, 0xaaaaaaab
imul rbx, r11
shr rbx, 0x21
lea ecx, [rbx + rbx*2]
cmp ecx, r12d
jne 0x683a87df
cmp ecx, 2
jbe 0x683a800e
mov r11, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
xor ebp, ebp
lea r12, [rsp + 0x490]
test bl, 1
jne 0x683a79c0
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0xb8], r13d
jmp 0x683a72a9
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx ecx, byte [r11]
mov byte [r12 + rbp*4], cl
cmp rax, r10
jbe 0x683a730b
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx edx, byte [r10]
mov byte [r12 + rbp*4 + 1], dl
cmp rax, r11
jbe 0x683a7364
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 0x683a73c0
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx r10d, byte [r10]
mov byte [r12 + rbp*4], r10b
cmp rax, r11
jbe 0x683a73d4
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 0x683a73e7
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 0x683a7b48
cmp r11, rax
jb 0x683a71e8
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x683a7660
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 0x683a79a8
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 0x683a7204
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x683a7675
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 0x683a7970
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 0x683a7221
mov r10, r11
mov r9d, dword [r14 + 0x30]
xor esi, esi
test r9d, r9d
je 0x683a7230
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 0x683a7940
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm2, rdi
movq xmm4, rax
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
jmp 0x683a7230
mov ecx, dword [r14 + 0x30]
test ecx, ecx
jne 0x683a76c8
mov byte [r12 + rbp*4], 0
mov r11, r10
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x683a7680
mov byte [r12 + rbp*4 + 1], 0
mov ecx, dword [r14 + 0x30]
xor esi, esi
test ecx, ecx
je 0x683a7292
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 0x683a7990
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm9, rdi
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x683a7292
test r13d, r13d
je 0x683a89c7
cmp r12d, 0xd
jne 0x683a89da
mov rcx, r14
call fcn.68396c90
mov dword [r14], eax
cmp eax, 0x1000000
ja 0x683a7aea
mov rcx, r14
call fcn.68396c90
mov dword [r14 + 4], eax
cmp eax, 0x1000000
ja 0x683a7aea
mov r9, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
cmp r9, rax
jae 0x683a75f0
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 0x683a7640
cmp r12, rax
jae 0x683a7820
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 0x683a87ff
cmp dword [rsp + 0x60], 3
je 0x683a7ab0
test bpl, 1
jne 0x683a87ff
cmp r11, rax
jae 0x683a7832
lea r8, [r11 + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [r11]
test r10b, r10b
jne 0x683a8a6f
cmp r8, rax
jae 0x683a787a
lea r11, [r8 + 1]
mov qword [r14 + 0xb8], r11
movzx ecx, byte [r8]
test cl, cl
jne 0x683a8a59
cmp r11, rax
jae 0x683a78c3
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx eax, byte [r11]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 1
jg 0x683a8a85
mov r11d, dword [r14]
test r11d, r11d
je 0x683a8815
mov ecx, dword [r14 + 4]
test ecx, ecx
je 0x683a8815
cmp byte [rsp + 0x58], 0
jne 0x683a7ad0
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 0x683a7aea
cmp dword [rsp + 0x1928], 2
je 0x683a7ac0
xor r13d, r13d
jmp 0x683a7078
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x683a7640
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 0x683a7dc8
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 [0x683c4440], r9
jmp 0x683a6741
mov r8d, dword [r14 + 0x30]
mov byte [r12 + rbp*4], 0
mov r10, r11
test r8d, r8d
jne 0x683a7318
mov byte [r12 + rbp*4 + 1], 0
jmp 0x683a7367
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 0x683a7958
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rsi
movq xmm6, rdi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x683a7273
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 0x683a7920
cdqe
movzx r10d, byte [r14 + 0x38]
add rax, r13
movq xmm5, rdi
movq xmm3, rax
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
jmp 0x683a7257
mov r11d, dword [r14 + 0x30]
test r11d, r11d
je 0x683a6730
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 0x683a67a0
cdqe
movq xmm4, rcx
movzx ebx, byte [r14 + 0x38]
add rax, r13
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x683a6af6
lea r13, str.first_not_IHDR
mov qword [0x683c4440], r13
xor r13d, r13d
jmp 0x683a6741
mov eax, dword [r14 + 8]
test al, 1
je 0x683a8c9f
lea ebp, [rax + rax]
cmp ebp, r12d
jne 0x683a8a2b
mov byte [rsp + 0xa4], 1
test eax, eax
jle 0x683a7078
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, [0x683fb930]
mov r14, rdi
mov rbx, r10
mov rdi, r11
mov rcx, rsi
call fcn.68396a30
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 0x683a77dc
mov rdi, r14
mov ebx, dword [rsp + 0xb0]
mov r14, rsi
mov esi, dword [rsp + 0xa4]
mov byte [rsp + 0xa4], 1
jmp 0x683a7078
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x683a7a60
xor ebp, ebp
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x683a7ca0
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 0x683a7e44
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 0x683a7ca0
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 0x683a7e69
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 0x683a7584
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 0x683a7e8f
movq xmm7, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm7, xmm7
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm7
jmp 0x683a7584
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r10d, r10d
mov byte [r14 + 0x38], 0
jmp 0x683a76f0
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x683a739e
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r9d, r9d
mov byte [r14 + 0x38], 0
jmp 0x683a76a8
mov dword [r14 + 0x30], 0
mov rax, rdi
xor edx, edx
mov byte [r14 + 0x38], 0
jmp 0x683a7340
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x683a741d
mov dword [r14 + 0x30], 0
mov rax, rdi
xor ecx, ecx
mov byte [r14 + 0x38], 0
jmp 0x683a72e7
cmp r11, rax
jae 0x683a7cb0
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx r9d, byte [r11]
mov byte [r12], r9b
cmp rax, rdx
jbe 0x683a7cc4
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 0x683a7cda
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 0x683a71cd
jmp 0x683a7078
cdqe
movq xmm1, rcx
movzx esi, byte [r14 + 0x38]
add rax, rbx
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x683a67d6
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 0x683a7e16
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 0x683a7832
mov byte [rsp + 0x58], 3
jmp 0x683a7516
mov r13d, 1
jmp 0x683a6741
mov eax, 0x10000000
xor edx, edx
mov dword [r14 + 8], 1
div r11d
cmp ecx, eax
jbe 0x683a75e8
lea r12, str.too_large
xor r13d, r13d
mov qword [0x683c4440], r12
jmp 0x683a6741
test esi, esi
jne 0x683a7b20
cmp r12d, 0x1000
mov esi, 0x1000
cmovae esi, r12d
cmp ebp, esi
jbe 0x683a7b26
nop dword [rax + rax]
add esi, esi
cmp ebp, esi
ja 0x683a7b20
mov edx, esi
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x683a998a
mov qword [r15 + 8], rax
jmp 0x683a70f2
mov esi, dword [rsp + 0xb0]
mov r13d, dword [rsp + 0xb8]
jmp 0x683a7078
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 0x683a6f50
jmp 0x683a706f
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx ecx, byte [rax]
mov rax, r8
jmp 0x683a6ff4
mov r10d, dword [r14 + 0x30]
xor r11d, r11d
test r10d, r10d
je 0x683a6f8e
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 0x683a7f95
movzx r11d, byte [r14 + 0x38]
add rdx, r8
movq xmm9, rdi
movq xmm0, rdx
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x683a6f8e
mov r8d, dword [r14 + 0x30]
xor r11d, r11d
test r8d, r8d
je 0x683a6f6b
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 0x683a7fb3
movzx r11d, byte [r14 + 0x38]
add rdx, rcx
movq xmm6, rdi
movq xmm8, rdx
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x683a6f6b
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [r14 + 0xb8], r12
mov dword [rsp + 0x70], ebp
jmp 0x683a7078
mov dword [rsp + 0x80], 0
jmp 0x683a7584
mov ebp, dword [r14 + 0x30]
test ebp, ebp
jne 0x683a7f0e
mov byte [r12], 0
mov rdx, r11
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x683a7ec2
mov byte [r12 + 1], 0
mov r11, rdx
mov edx, dword [r14 + 0x30]
xor ebp, ebp
test edx, edx
je 0x683a7a14
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 0x683a87aa
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 0x683a7a14
lea rbx, str.no_IDAT
mov qword [0x683c4440], rbx
jmp 0x683a6741
lea r10, [rax + 1]
mov qword [r14 + 0xb8], r10
movzx r12d, byte [rax]
mov rax, r10
jmp 0x683a6f3d
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 0x683a7c8f
jmp 0x683a712e
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 0x683a74cb
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 0x683a74f6
cdqe
movq xmm4, rdi
movzx r10d, byte [r14 + 0x38]
add rax, r12
movq xmm3, rax
punpcklqdq xmm4, xmm3
movups xmmword [r14 + 0xb8], xmm4
jmp 0x683a752e
cdqe
movq xmm6, rdi
movzx ecx, byte [r14 + 0x38]
add rax, r12
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x683a754f
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 0x683a7576
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 0x683a87b9
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 0x683a79f4
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 0x683a879b
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 0x683a79d8
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r9d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x683a7047
mov byte [r14 + 0x38], 0
movzx ecx, byte [rsp + 0xb0]
mov rdx, rdi
mov dword [r14 + 0x30], 0
jmp 0x683a6fde
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x683a7bf9
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x683a7c60
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx r12d, byte [rax]
mov rax, r8
jmp 0x683a6ec3
cmp dword [rsp + 0x1930], 3
je 0x683a6ca8
cmp byte [rsp + 0x58], 0
mov r12d, dword [rsp + 0x1930]
je 0x683a6cb6
jmp 0x683a6ca8
xor ebx, ebx
jmp 0x683a7078
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 0x683a8845
mov r12d, dword [rsp + 0x90]
test r12d, r12d
je 0x683a8061
mov ecx, dword [0x683c42e0]
test ecx, ecx
je 0x683a8061
cmp dword [r14 + 0xc], 2
jg 0x683a9083
cmp byte [rsp + 0x58], 0
je 0x683a82d1
movzx ebp, byte [rsp + 0x58]
cmp dword [rsp + 0x1930], 2
mov dword [r14 + 8], ebp
jg 0x683a89b5
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 0x683a998a
cmp ebp, 3
je 0x683a8a9b
test esi, esi
je 0x683a82c5
lea r10d, [rsi - 1]
mov rbp, r13
mov rdi, rax
lea r8, [rax + r10*4 + 4]
add r10, 1
and r10d, 3
je 0x683a81c0
cmp r10, 1
je 0x683a8172
cmp r10, 2
je 0x683a812b
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 0x683a82c5
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 0x683a81c0
mov rcx, r13
call fcn.68313a20
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
mov r13d, 1
call fcn.68313a20
mov qword [r15 + 0x10], 0
jmp 0x683a6741
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 [0x683c9bb0]
mov qword [rsp + 0xe0], rbx
movdqu xmm6, xmmword [0x683c9bc0]
mov qword [rsp + 0xf0], r10
mov r8d, dword [rsp + 0x70]
mov qword [rsp + 0xa8], 0
movdqu xmm9, xmmword [0x683c9b90]
mov qword [rsp + 0xe8], r9
movdqu xmm8, xmmword [0x683c9ba0]
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x1920], r15
jmp 0x683a83bc
add qword [rsp + 0xa8], 4
mov rbp, qword [rsp + 0xa8]
cmp rbp, 0x1c
je 0x683a8015
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 0x683a8390
test eax, eax
je 0x683a8390
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.6838e830
test eax, eax
je 0x683a9215
mov rcx, qword [rsp + 0x1920]
mov r8d, dword [rsp + 0xc0]
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x108], rax
test r8d, r8d
jle 0x683a8773
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x683a8773
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 0x683a8694
cmp r11d, 1
je 0x683a8655
cmp r11d, 2
je 0x683a8621
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 0x683a873e
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 0x683a86a0
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 0x683a85b0
mov rcx, qword [rsp + 0x108]
call fcn.68313a20
mov esi, dword [rsp + 0x114]
add qword [rsp + 0xf8], rsi
sub dword [rsp + 0x110], esi
jmp 0x683a8390
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rbp
jmp 0x683a7f3f
cdqe
movzx ebp, byte [r14 + 0x38]
add rax, r9
jmp 0x683a7d23
cdqe
movzx r11d, byte [r14 + 0x38]
add rax, rbp
jmp 0x683a7ef3
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r12d, byte [rax]
mov rax, rcx
jmp 0x683a6e48
lea rax, str.invalid_PLTE
mov qword [0x683c4440], rax
jmp 0x683a6741
movzx r12d, byte [r14 + 0x38]
add rdx, r11
jmp 0x683a6f27
lea rbx, str.bad_ctype
xor r13d, r13d
mov qword [0x683c4440], rbx
jmp 0x683a6741
lea r14, str.0_pixel_image
xor r13d, r13d
mov qword [0x683c4440], r14
jmp 0x683a6741
mov rcx, qword [rsp + 0x8b0]
call fcn.68313a20
mov qword [r15 + 0x10], 0
jmp 0x683a6741
mov r13, qword [r15]
mov r12, qword [r15 + 0x18]
mov ebp, dword [r13]
imul ebp, dword [r13 + 4]
cmp dword [r14 + 0xc], 2
je 0x683a8cb2
test ebp, ebp
je 0x683a803f
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 0x683a8989
cmp rdx, 1
je 0x683a890e
cmp rdx, 2
je 0x683a8900
cmp rdx, 3
je 0x683a88f2
cmp rdx, 4
je 0x683a88e4
cmp rdx, 5
je 0x683a88d6
cmp rdx, 6
je 0x683a88c8
cmp byte [r12], bl
je 0x683a995c
add r12, 4
cmp byte [r12], bl
je 0x683a92b6
add r12, 4
cmp byte [r12], bl
je 0x683a9295
add r12, 4
cmp byte [r12], bl
je 0x683a926c
add r12, 4
cmp byte [r12], bl
je 0x683a924b
add r12, 4
cmp byte [r12], bl
je 0x683a91f4
add r12, 4
cmp byte [r12], bl
je 0x683a922a
add r12, 4
cmp r12, rsi
jne 0x683a8989
jmp 0x683a803f
lea r8, [r12 + 4]
cmp byte [r12 + 4], bl
je 0x683a91d6
cmp byte [r8 + 4], bl
je 0x683a91b8
cmp byte [r8 + 8], bl
je 0x683a919a
cmp byte [r8 + 0xc], bl
je 0x683a917c
cmp byte [r8 + 0x10], bl
je 0x683a915e
cmp byte [r8 + 0x14], bl
je 0x683a9140
cmp byte [r8 + 0x18], bl
je 0x683a9122
lea r12, [r8 + 0x1c]
cmp r12, rsi
je 0x683a803f
cmp byte [r12], bl
jne 0x683a8930
cmp byte [r12 + 1], r9b
jne 0x683a8930
cmp byte [r12 + 2], dil
jne 0x683a8930
mov byte [r12 + 3], 0
jmp 0x683a8930
movzx r12d, byte [r14 + 0x38]
add rdx, r10
jmp 0x683a6ead
mov edi, dword [rsp + 0x1930]
mov dword [r14 + 0xc], edi
mov ebp, edi
jmp 0x683a8087
lea r10, str.multiple_IHDR
mov qword [0x683c4440], r10
jmp 0x683a6741
lea r8, str.bad_IHDR_len
xor r13d, r13d
mov qword [0x683c4440], r8
jmp 0x683a6741
lea rdi, str.no_PLTE
mov qword [0x683c4440], rdi
jmp 0x683a6741
movzx r13d, byte [rsp + 0x58]
mov dword [r14 + 8], r13d
mov r13d, 1
jmp 0x683a6741
lea r14, str.tRNS_after_IDAT
mov qword [0x683c4440], r14
jmp 0x683a6741
lea rsi, str.bad_tRNS_len
mov qword [0x683c4440], rsi
jmp 0x683a6741
lea rbp, str.XXXX_PNG_chunk_not_known
bswap eax
mov dword [str.XXXX_PNG_chunk_not_known], eax
mov qword [0x683c4440], rbp
jmp 0x683a6741
lea rsi, str.bad_filter_method
xor r13d, r13d
mov qword [0x683c4440], rsi
jmp 0x683a6741
lea rdi, str.bad_comp_method
xor r13d, r13d
mov qword [0x683c4440], rdi
jmp 0x683a6741
lea r15, str.bad_interlace_method
xor r13d, r13d
mov qword [0x683c4440], r15
jmp 0x683a6741
test esi, esi
je 0x683a82c5
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 0x683a8b98
cmp rdi, 1
je 0x683a8b53
cmp rdi, 2
je 0x683a8b18
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 0x683a82c5
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 0x683a8b98
jmp 0x683a82c5
movzx r12d, byte [r14 + 0x38]
add rdx, r8
jmp 0x683a6e32
lea rbx, str.tRNS_before_PLTE
mov qword [0x683c4440], rbx
jmp 0x683a6741
lea r15, str.tRNS_with_alpha
mov qword [0x683c4440], r15
jmp 0x683a6741
test ebp, ebp
je 0x683a803f
lea eax, [rbp - 1]
movzx ecx, byte [rsp + 0x42d]
cmp eax, 0xf
jbe 0x683a928d
movd xmm3, ecx
lea r13, [r12 + 1]
pxor xmm4, xmm4
mov r10d, eax
shr r10d, 4
punpcklbw xmm3, xmm3
movdqu xmm9, xmmword [0x683c9a60]
movdqu xmm5, xmmword [0x683c9ae0]
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 0x683a8d0d
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 0x683a803f
cmp byte [r12 + 2], cl
lea esi, [r11 + 2]
setne dl
neg edx
mov byte [r12 + 3], dl
cmp ebp, esi
jbe 0x683a803f
cmp byte [r12 + 4], cl
lea r10d, [r11 + 3]
setne r8b
neg r8d
mov byte [r12 + 5], r8b
cmp ebp, r10d
jbe 0x683a803f
cmp byte [r12 + 6], cl
lea edi, [r11 + 4]
setne r9b
neg r9d
mov byte [r12 + 7], r9b
cmp ebp, edi
jbe 0x683a803f
cmp byte [r12 + 8], cl
lea r13d, [r11 + 5]
setne al
neg eax
mov byte [r12 + 9], al
cmp ebp, r13d
jbe 0x683a803f
cmp byte [r12 + 0xa], cl
lea edx, [r11 + 6]
setne bl
neg ebx
mov byte [r12 + 0xb], bl
cmp ebp, edx
jbe 0x683a803f
cmp byte [r12 + 0xc], cl
lea r8d, [r11 + 7]
setne sil
neg esi
mov byte [r12 + 0xd], sil
cmp ebp, r8d
jbe 0x683a803f
cmp byte [r12 + 0xe], cl
lea r9d, [r11 + 8]
setne r10b
neg r10d
mov byte [r12 + 0xf], r10b
cmp ebp, r9d
jbe 0x683a803f
cmp byte [r12 + 0x10], cl
lea eax, [r11 + 9]
setne dil
neg edi
mov byte [r12 + 0x11], dil
cmp ebp, eax
jbe 0x683a803f
cmp byte [r12 + 0x12], cl
lea ebx, [r11 + 0xa]
setne r13b
neg r13d
mov byte [r12 + 0x13], r13b
cmp ebp, ebx
jbe 0x683a803f
cmp byte [r12 + 0x14], cl
lea esi, [r11 + 0xb]
setne dl
neg edx
mov byte [r12 + 0x15], dl
cmp ebp, esi
jbe 0x683a803f
cmp byte [r12 + 0x16], cl
lea r10d, [r11 + 0xc]
setne r8b
neg r8d
mov byte [r12 + 0x17], r8b
cmp ebp, r10d
jbe 0x683a803f
cmp byte [r12 + 0x18], cl
lea edi, [r11 + 0xd]
setne r9b
neg r9d
mov byte [r12 + 0x19], r9b
cmp ebp, edi
jbe 0x683a803f
cmp byte [r12 + 0x1a], cl
lea r13d, [r11 + 0xe]
setne al
neg eax
mov byte [r12 + 0x1b], al
cmp ebp, r13d
jbe 0x683a803f
cmp byte [r12 + 0x1c], cl
setne bl
add r11d, 0xf
neg ebx
mov byte [r12 + 0x1d], bl
cmp ebp, r11d
jbe 0x683a803f
cmp byte [r12 + 0x1e], cl
setne bpl
neg ebp
mov byte [r12 + 0x1f], bpl
jmp 0x683a803f
mov dword [r14 + 8], 4
mov r13d, 1
jmp 0x683a6741
mov r11, qword [r15]
mov rsi, qword [r15 + 0x18]
mov r8d, dword [r11]
imul r8d, dword [r11 + 4]
cmp dword [r11 + 0xc], 3
je 0x683a97cf
mov edx, dword [0x683c44a0]
test edx, edx
je 0x683a92d7
test r8d, r8d
je 0x683a8061
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 0x683a910c
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 0x683a90bd
jmp 0x683a8061
mov byte [rsi + 2], r11b
add rsi, 4
mov byte [rsi - 4], r9b
cmp rsi, rcx
jne 0x683a90bd
jmp 0x683a8061
cmp byte [r8 + 0x19], r9b
jne 0x683a897c
cmp byte [r8 + 0x1a], dil
jne 0x683a897c
mov byte [r8 + 0x1b], 0
jmp 0x683a897c
cmp byte [r8 + 0x15], r9b
jne 0x683a8972
cmp byte [r8 + 0x16], dil
jne 0x683a8972
mov byte [r8 + 0x17], 0
jmp 0x683a8972
cmp byte [r8 + 0x11], r9b
jne 0x683a8968
cmp byte [r8 + 0x12], dil
jne 0x683a8968
mov byte [r8 + 0x13], 0
jmp 0x683a8968
cmp byte [r8 + 0xd], r9b
jne 0x683a895e
cmp byte [r8 + 0xe], dil
jne 0x683a895e
mov byte [r8 + 0xf], 0
jmp 0x683a895e
cmp byte [r8 + 9], r9b
jne 0x683a8954
cmp byte [r8 + 0xa], dil
jne 0x683a8954
mov byte [r8 + 0xb], 0
jmp 0x683a8954
cmp byte [r8 + 5], r9b
jne 0x683a894a
cmp byte [r8 + 6], dil
jne 0x683a894a
mov byte [r8 + 7], 0
jmp 0x683a894a
cmp byte [r8 + 1], r9b
jne 0x683a8940
cmp byte [r8 + 2], dil
jne 0x683a8940
mov byte [r8 + 3], 0
jmp 0x683a8940
cmp byte [r12 + 1], r9b
jne 0x683a890a
cmp byte [r12 + 2], dil
jne 0x683a890a
mov byte [r12 + 3], 0
jmp 0x683a890a
mov rcx, qword [rsp + 0x100]
mov r13d, eax
call fcn.68313a20
jmp 0x683a6741
cmp byte [r12 + 1], r9b
jne 0x683a8918
cmp byte [r12 + 2], dil
jne 0x683a8918
mov byte [r12 + 3], 0
jmp 0x683a8918
cmp byte [r12 + 1], r9b
jne 0x683a88fc
cmp byte [r12 + 2], dil
jne 0x683a88fc
mov byte [r12 + 3], 0
jmp 0x683a88fc
cmp byte [r12 + 1], r9b
jne 0x683a88ee
cmp byte [r12 + 2], dil
jne 0x683a88ee
mov byte [r12 + 3], 0
jmp 0x683a88ee
xor r11d, r11d
jmp 0x683a8eb0
cmp byte [r12 + 1], r9b
jne 0x683a88e0
cmp byte [r12 + 2], dil
jne 0x683a88e0
mov byte [r12 + 3], 0
jmp 0x683a88e0
cmp byte [r12 + 1], r9b
jne 0x683a88d2
cmp byte [r12 + 2], dil
jne 0x683a88d2
mov byte [r12 + 3], 0
jmp 0x683a88d2
test r8d, r8d
je 0x683a8061
lea edi, [r8 - 1]
cmp edi, 0xf
jbe 0x683a9954
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 0x683a9304
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
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 0x683a8061
movzx r8d, byte [rsi + 0x3c]
movzx r10d, byte [rsi + 0x3e]
mov byte [rsi + 0x3e], r8b
mov byte [rsi + 0x3c], r10b
jmp 0x683a8061
test r8d, r8d
je 0x683a8061
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 0x683a98c1
cmp rbx, 1
je 0x683a98a5
cmp rbx, 2
je 0x683a9890
cmp rbx, 3
je 0x683a987d
cmp rbx, 4
je 0x683a986c
cmp rbx, 5
je 0x683a9857
cmp rbx, 6
je 0x683a9845
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 0x683a8061
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 0x683a98c1
jmp 0x683a8061
xor r10d, r10d
jmp 0x683a9608
cmp byte [r12 + 1], r9b
jne 0x683a88c4
cmp byte [r12 + 2], dil
jne 0x683a88c4
mov byte [r12 + 3], 0
jmp 0x683a88c4
mov qword [r15 + 0x10], 0
jmp 0x683a6741
lea r15, str.outofmem
mov qword [0x683c4440], r15
jmp 0x683a6d1d