Function at 0x692e9310
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.6924cfe0
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 0x692e9428
mov r9d, dword [r14 + 0x30]
test r9d, r9d
jne 0x692e93e0
nop dword [rax]
lea r12, str.bad_png_sig
xor r13d, r13d
mov qword [0x69306440], 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 0x692ea698
nop
movq xmm6, rcx
mov dword [r14 + 0x30], 0
punpcklqdq xmm6, xmm6
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692e9390
lea rdx, [rcx + 1]
mov qword [r14 + 0xb8], rdx
movzx esi, byte [rcx]
cmp sil, 0x89
jne 0x692e9390
mov rdi, qword [r14 + 0xb8]
cmp rdi, qword [r14 + 0xc0]
jb 0x692e94a0
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x692e9390
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 0x692e9400
cdqe
movq xmm2, rcx
movzx r11d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x692e94af
lea r10, [rdi + 1]
mov qword [r14 + 0xb8], r10
movzx r11d, byte [rdi]
cmp r11b, 0x50
jne 0x692e9390
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jb 0x692e9520
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x692e9390
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 0x692e9400
cdqe
movq xmm4, rcx
movzx r9d, byte [r14 + 0x38]
add rax, rbx
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x692e9531
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx r9d, byte [r12]
cmp r9b, 0x4e
jne 0x692e9390
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x692e95a0
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x692e9390
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 0x692e9400
cdqe
movq xmm6, rcx
movzx r8d, byte [r14 + 0x38]
add rax, rsi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692e95af
lea rdi, [rcx + 1]
mov qword [r14 + 0xb8], rdi
movzx r8d, byte [rcx]
cmp r8b, 0x47
jne 0x692e9390
mov rbp, qword [r14 + 0xb8]
cmp rbp, qword [r14 + 0xc0]
jb 0x692e9620
mov r10d, dword [r14 + 0x30]
test r10d, r10d
je 0x692e9390
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 0x692e9400
cdqe
movq xmm9, rcx
movzx r13d, byte [r14 + 0x38]
add rax, r12
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x692e9630
lea r11, [rbp + 1]
mov qword [r14 + 0xb8], r11
movzx r13d, byte [rbp]
cmp r13b, 0xd
jne 0x692e9390
mov rbx, qword [r14 + 0xb8]
cmp rbx, qword [r14 + 0xc0]
jb 0x692e96a0
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x692e9390
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 0x692e9400
cdqe
movq xmm1, rcx
movzx edx, byte [r14 + 0x38]
add rax, rsi
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x692e96ae
lea r9, [rbx + 1]
mov qword [r14 + 0xb8], r9
movzx edx, byte [rbx]
cmp dl, 0xa
jne 0x692e9390
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x692e9718
mov edi, dword [r14 + 0x30]
test edi, edi
je 0x692e9390
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 0x692e9400
cdqe
movq xmm2, rcx
movzx r10d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x692e9727
lea r8, [rcx + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [rcx]
cmp r10b, 0x1a
jne 0x692e9390
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jae 0x692ea370
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx ebx, byte [r12]
cmp bl, 0xa
jne 0x692e9390
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.692d98f0
mov rcx, r14
mov r12d, eax
call fcn.692d98f0
cmp eax, 0x49484452
je 0x692ea0a0
ja 0x692e9988
cmp eax, 0x49444154
je 0x692e9d10
cmp eax, 0x49454e44
jne 0x692e9ce8
test r13d, r13d
jne 0x692ea3c8
mov esi, dword [rsp + 0x1928]
test esi, esi
jne 0x692ea720
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x692ea9a0
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 0x692ec5dd
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.692ec600
mov r13d, eax
test eax, eax
je 0x692eb48b
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 0x692e997d
mov rcx, qword [r15 + 8]
call fcn.69253a20
mov edx, dword [r14 + 8]
mov qword [r15 + 8], 0
lea eax, [rdx + 1]
cmp eax, dword [rsp + 0x1930]
je 0x692eac48
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 0x692eaf4d
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.692d1490
test eax, eax
jne 0x692eac91
xor r13d, r13d
jmp 0x692e93a1
cmp eax, 0x504c5445
je 0x692e9dd0
cmp eax, 0x74524e53
jne 0x692e9da8
test r13d, r13d
jne 0x692ea3c8
cmp qword [r15 + 8], 0
jne 0x692eb678
cmp byte [rsp + 0x58], 0
je 0x692ea3e0
cmp dword [rsp + 0x1928], 2
je 0x692ebcd0
test ebx, ebx
je 0x692eb8ec
cmp ebx, r12d
jb 0x692eb68b
test r12d, r12d
je 0x692e9ccf
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 0x692e9bad
cmp r11, 1
je 0x692e9b2a
cmp r11, 2
je 0x692e9aaf
cmp rax, rdx
jb 0x692eb428
mov r10d, dword [r14 + 0x30]
xor r12d, r12d
test r10d, r10d
je 0x692e9aa8
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 0x692eb8df
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 0x692eac31
mov r11d, dword [r14 + 0x30]
xor r12d, r12d
test r11d, r11d
je 0x692e9b23
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 0x692eb608
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 0x692ea9b8
mov ecx, dword [r14 + 0x30]
xor r12d, r12d
test ecx, ecx
je 0x692e9b9d
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 0x692eb452
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 0x692e9ccf
mov r12, r9
cmp rax, rdx
jae 0x692ea878
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 0x692ea810
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r11d, byte [rax]
mov rax, rcx
mov byte [r12], r11b
cmp rax, rdx
jb 0x692ea7f0
mov r10d, dword [r14 + 0x30]
xor ecx, ecx
test r10d, r10d
je 0x692e9c54
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 0x692eabd8
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 0x692ea7c0
mov r11d, dword [r14 + 0x30]
xor r9d, r9d
test r11d, r11d
je 0x692e9cbd
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 0x692eabba
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 0x692e9bb0
mov byte [rsp + 0x58], 4
nop dword [rax]
mov rcx, r14
call fcn.692d98f0
jmp 0x692e97b8
cmp eax, 0x43674249
jne 0x692e9da8
mov edx, r12d
mov rcx, r14
call fcn.692f1210
mov dword [rsp + 0x90], 1
jmp 0x692e9cd8
test r13d, r13d
jne 0x692ea3c8
cmp byte [rsp + 0x58], 0
je 0x692e9d28
test ebx, ebx
je 0x692eb650
cmp dword [rsp + 0x1928], 2
je 0x692eb663
mov ecx, dword [rsp + 0x70]
lea ebp, [rcx + r12]
cmp ebp, ecx
jl 0x692e997d
mov rcx, qword [r15 + 8]
cmp ebp, esi
ja 0x692ea760
mov r11d, dword [rsp + 0x70]
mov r10, qword [r14 + 0xc0]
mov rdx, qword [r14 + 0xb8]
add rcx, r11
cmp qword [r14 + 0x10], 0
je 0x692e9d7e
mov r9, r10
sub r9, rdx
cmp r12d, r9d
jg 0x692ea9cf
movsxd r12, r12d
lea r8, [rdx + r12]
cmp r10, r8
jae 0x692ea8e0
lea r15, str.outofdata
mov qword [0x69306440], r15
jmp 0x692e93a1
test r13d, r13d
jne 0x692ea3c8
test eax, 0x20000000
je 0x692eb69e
mov edx, r12d
mov rcx, r14
call fcn.692f1210
jmp 0x692e9cd8
test r13d, r13d
jne 0x692ea3c8
cmp r12d, 0x300
ja 0x692eb43f
mov ebx, r12d
mov r11d, 0xaaaaaaab
imul rbx, r11
shr rbx, 0x21
lea ecx, [rbx + rbx*2]
cmp ecx, r12d
jne 0x692eb43f
cmp ecx, 2
jbe 0x692eac6e
mov r11, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
xor ebp, ebp
lea r12, [rsp + 0x490]
test bl, 1
jne 0x692ea620
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0xb8], r13d
jmp 0x692e9f09
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx ecx, byte [r11]
mov byte [r12 + rbp*4], cl
cmp rax, r10
jbe 0x692e9f6b
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx edx, byte [r10]
mov byte [r12 + rbp*4 + 1], dl
cmp rax, r11
jbe 0x692e9fc4
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 0x692ea020
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx r10d, byte [r10]
mov byte [r12 + rbp*4], r10b
cmp rax, r11
jbe 0x692ea034
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 0x692ea047
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 0x692ea7a8
cmp r11, rax
jb 0x692e9e48
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x692ea2c0
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 0x692ea608
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 0x692e9e64
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x692ea2d5
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 0x692ea5d0
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 0x692e9e81
mov r10, r11
mov r9d, dword [r14 + 0x30]
xor esi, esi
test r9d, r9d
je 0x692e9e90
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 0x692ea5a0
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm2, rdi
movq xmm4, rax
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
jmp 0x692e9e90
mov ecx, dword [r14 + 0x30]
test ecx, ecx
jne 0x692ea328
mov byte [r12 + rbp*4], 0
mov r11, r10
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x692ea2e0
mov byte [r12 + rbp*4 + 1], 0
mov ecx, dword [r14 + 0x30]
xor esi, esi
test ecx, ecx
je 0x692e9ef2
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 0x692ea5f0
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm9, rdi
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x692e9ef2
test r13d, r13d
je 0x692eb627
cmp r12d, 0xd
jne 0x692eb63a
mov rcx, r14
call fcn.692d98f0
mov dword [r14], eax
cmp eax, 0x1000000
ja 0x692ea74a
mov rcx, r14
call fcn.692d98f0
mov dword [r14 + 4], eax
cmp eax, 0x1000000
ja 0x692ea74a
mov r9, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
cmp r9, rax
jae 0x692ea250
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 0x692ea2a0
cmp r12, rax
jae 0x692ea480
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 0x692eb45f
cmp dword [rsp + 0x60], 3
je 0x692ea710
test bpl, 1
jne 0x692eb45f
cmp r11, rax
jae 0x692ea492
lea r8, [r11 + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [r11]
test r10b, r10b
jne 0x692eb6cf
cmp r8, rax
jae 0x692ea4da
lea r11, [r8 + 1]
mov qword [r14 + 0xb8], r11
movzx ecx, byte [r8]
test cl, cl
jne 0x692eb6b9
cmp r11, rax
jae 0x692ea523
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx eax, byte [r11]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 1
jg 0x692eb6e5
mov r11d, dword [r14]
test r11d, r11d
je 0x692eb475
mov ecx, dword [r14 + 4]
test ecx, ecx
je 0x692eb475
cmp byte [rsp + 0x58], 0
jne 0x692ea730
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 0x692ea74a
cmp dword [rsp + 0x1928], 2
je 0x692ea720
xor r13d, r13d
jmp 0x692e9cd8
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x692ea2a0
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 0x692eaa28
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 [0x69306440], r9
jmp 0x692e93a1
mov r8d, dword [r14 + 0x30]
mov byte [r12 + rbp*4], 0
mov r10, r11
test r8d, r8d
jne 0x692e9f78
mov byte [r12 + rbp*4 + 1], 0
jmp 0x692e9fc7
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 0x692ea5b8
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rsi
movq xmm6, rdi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692e9ed3
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 0x692ea580
cdqe
movzx r10d, byte [r14 + 0x38]
add rax, r13
movq xmm5, rdi
movq xmm3, rax
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
jmp 0x692e9eb7
mov r11d, dword [r14 + 0x30]
test r11d, r11d
je 0x692e9390
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 0x692e9400
cdqe
movq xmm4, rcx
movzx ebx, byte [r14 + 0x38]
add rax, r13
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x692e9756
lea r13, str.first_not_IHDR
mov qword [0x69306440], r13
xor r13d, r13d
jmp 0x692e93a1
mov eax, dword [r14 + 8]
test al, 1
je 0x692eb8ff
lea ebp, [rax + rax]
cmp ebp, r12d
jne 0x692eb68b
mov byte [rsp + 0xa4], 1
test eax, eax
jle 0x692e9cd8
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, [0x69350e30]
mov r14, rdi
mov rbx, r10
mov rdi, r11
mov rcx, rsi
call fcn.692d9690
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 0x692ea43c
mov rdi, r14
mov ebx, dword [rsp + 0xb0]
mov r14, rsi
mov esi, dword [rsp + 0xa4]
mov byte [rsp + 0xa4], 1
jmp 0x692e9cd8
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x692ea6c0
xor ebp, ebp
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x692ea900
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 0x692eaaa4
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 0x692ea900
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 0x692eaac9
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 0x692ea1e4
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 0x692eaaef
movq xmm7, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm7, xmm7
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm7
jmp 0x692ea1e4
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r10d, r10d
mov byte [r14 + 0x38], 0
jmp 0x692ea350
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x692e9ffe
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r9d, r9d
mov byte [r14 + 0x38], 0
jmp 0x692ea308
mov dword [r14 + 0x30], 0
mov rax, rdi
xor edx, edx
mov byte [r14 + 0x38], 0
jmp 0x692e9fa0
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x692ea07d
mov dword [r14 + 0x30], 0
mov rax, rdi
xor ecx, ecx
mov byte [r14 + 0x38], 0
jmp 0x692e9f47
cmp r11, rax
jae 0x692ea910
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx r9d, byte [r11]
mov byte [r12], r9b
cmp rax, rdx
jbe 0x692ea924
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 0x692ea93a
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 0x692e9e2d
jmp 0x692e9cd8
cdqe
movq xmm1, rcx
movzx esi, byte [r14 + 0x38]
add rax, rbx
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x692e9436
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 0x692eaa76
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 0x692ea492
mov byte [rsp + 0x58], 3
jmp 0x692ea176
mov r13d, 1
jmp 0x692e93a1
mov eax, 0x10000000
xor edx, edx
mov dword [r14 + 8], 1
div r11d
cmp ecx, eax
jbe 0x692ea248
lea r12, str.too_large
xor r13d, r13d
mov qword [0x69306440], r12
jmp 0x692e93a1
test esi, esi
jne 0x692ea780
cmp r12d, 0x1000
mov esi, 0x1000
cmovae esi, r12d
cmp ebp, esi
jbe 0x692ea786
nop dword [rax + rax]
add esi, esi
cmp ebp, esi
ja 0x692ea780
mov edx, esi
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x692ec5ea
mov qword [r15 + 8], rax
jmp 0x692e9d52
mov esi, dword [rsp + 0xb0]
mov r13d, dword [rsp + 0xb8]
jmp 0x692e9cd8
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 0x692e9bb0
jmp 0x692e9ccf
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx ecx, byte [rax]
mov rax, r8
jmp 0x692e9c54
mov r10d, dword [r14 + 0x30]
xor r11d, r11d
test r10d, r10d
je 0x692e9bee
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 0x692eabf5
movzx r11d, byte [r14 + 0x38]
add rdx, r8
movq xmm9, rdi
movq xmm0, rdx
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x692e9bee
mov r8d, dword [r14 + 0x30]
xor r11d, r11d
test r8d, r8d
je 0x692e9bcb
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 0x692eac13
movzx r11d, byte [r14 + 0x38]
add rdx, rcx
movq xmm6, rdi
movq xmm8, rdx
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692e9bcb
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [r14 + 0xb8], r12
mov dword [rsp + 0x70], ebp
jmp 0x692e9cd8
mov dword [rsp + 0x80], 0
jmp 0x692ea1e4
mov ebp, dword [r14 + 0x30]
test ebp, ebp
jne 0x692eab6e
mov byte [r12], 0
mov rdx, r11
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x692eab22
mov byte [r12 + 1], 0
mov r11, rdx
mov edx, dword [r14 + 0x30]
xor ebp, ebp
test edx, edx
je 0x692ea674
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 0x692eb40a
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 0x692ea674
lea rbx, str.no_IDAT
mov qword [0x69306440], rbx
jmp 0x692e93a1
lea r10, [rax + 1]
mov qword [r14 + 0xb8], r10
movzx r12d, byte [rax]
mov rax, r10
jmp 0x692e9b9d
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 0x692ea8ef
jmp 0x692e9d8e
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 0x692ea12b
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 0x692ea156
cdqe
movq xmm4, rdi
movzx r10d, byte [r14 + 0x38]
add rax, r12
movq xmm3, rax
punpcklqdq xmm4, xmm3
movups xmmword [r14 + 0xb8], xmm4
jmp 0x692ea18e
cdqe
movq xmm6, rdi
movzx ecx, byte [r14 + 0x38]
add rax, r12
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x692ea1af
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 0x692ea1d6
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 0x692eb419
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 0x692ea654
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 0x692eb3fb
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 0x692ea638
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r9d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x692e9ca7
mov byte [r14 + 0x38], 0
movzx ecx, byte [rsp + 0xb0]
mov rdx, rdi
mov dword [r14 + 0x30], 0
jmp 0x692e9c3e
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x692ea859
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x692ea8c0
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx r12d, byte [rax]
mov rax, r8
jmp 0x692e9b23
cmp dword [rsp + 0x1930], 3
je 0x692e9908
cmp byte [rsp + 0x58], 0
mov r12d, dword [rsp + 0x1930]
je 0x692e9916
jmp 0x692e9908
xor ebx, ebx
jmp 0x692e9cd8
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 0x692eb4a5
mov r12d, dword [rsp + 0x90]
test r12d, r12d
je 0x692eacc1
mov ecx, dword [0x693062e0]
test ecx, ecx
je 0x692eacc1
cmp dword [r14 + 0xc], 2
jg 0x692ebce3
cmp byte [rsp + 0x58], 0
je 0x692eaf31
movzx ebp, byte [rsp + 0x58]
cmp dword [rsp + 0x1930], 2
mov dword [r14 + 8], ebp
jg 0x692eb615
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 0x692ec5ea
cmp ebp, 3
je 0x692eb6fb
test esi, esi
je 0x692eaf25
lea r10d, [rsi - 1]
mov rbp, r13
mov rdi, rax
lea r8, [rax + r10*4 + 4]
add r10, 1
and r10d, 3
je 0x692eae20
cmp r10, 1
je 0x692eadd2
cmp r10, 2
je 0x692ead8b
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 0x692eaf25
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 0x692eae20
mov rcx, r13
call fcn.69253a20
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
mov r13d, 1
call fcn.69253a20
mov qword [r15 + 0x10], 0
jmp 0x692e93a1
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 [0x6930bca0]
mov qword [rsp + 0xe0], rbx
movdqu xmm6, xmmword [0x6930bcb0]
mov qword [rsp + 0xf0], r10
mov r8d, dword [rsp + 0x70]
mov qword [rsp + 0xa8], 0
movdqu xmm9, xmmword [0x6930bc80]
mov qword [rsp + 0xe8], r9
movdqu xmm8, xmmword [0x6930bc90]
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x1920], r15
jmp 0x692eb01c
add qword [rsp + 0xa8], 4
mov rbp, qword [rsp + 0xa8]
cmp rbp, 0x1c
je 0x692eac75
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 0x692eaff0
test eax, eax
je 0x692eaff0
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.692d1490
test eax, eax
je 0x692ebe75
mov rcx, qword [rsp + 0x1920]
mov r8d, dword [rsp + 0xc0]
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x108], rax
test r8d, r8d
jle 0x692eb3d3
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x692eb3d3
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 0x692eb2f4
cmp r11d, 1
je 0x692eb2b5
cmp r11d, 2
je 0x692eb281
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 0x692eb39e
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 0x692eb300
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 0x692eb210
mov rcx, qword [rsp + 0x108]
call fcn.69253a20
mov esi, dword [rsp + 0x114]
add qword [rsp + 0xf8], rsi
sub dword [rsp + 0x110], esi
jmp 0x692eaff0
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rbp
jmp 0x692eab9f
cdqe
movzx ebp, byte [r14 + 0x38]
add rax, r9
jmp 0x692ea983
cdqe
movzx r11d, byte [r14 + 0x38]
add rax, rbp
jmp 0x692eab53
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r12d, byte [rax]
mov rax, rcx
jmp 0x692e9aa8
lea rax, str.invalid_PLTE
mov qword [0x69306440], rax
jmp 0x692e93a1
movzx r12d, byte [r14 + 0x38]
add rdx, r11
jmp 0x692e9b87
lea rbx, str.bad_ctype
xor r13d, r13d
mov qword [0x69306440], rbx
jmp 0x692e93a1
lea r14, str.0_pixel_image
xor r13d, r13d
mov qword [0x69306440], r14
jmp 0x692e93a1
mov rcx, qword [rsp + 0x8b0]
call fcn.69253a20
mov qword [r15 + 0x10], 0
jmp 0x692e93a1
mov r13, qword [r15]
mov r12, qword [r15 + 0x18]
mov ebp, dword [r13]
imul ebp, dword [r13 + 4]
cmp dword [r14 + 0xc], 2
je 0x692eb912
test ebp, ebp
je 0x692eac9f
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 0x692eb5e9
cmp rdx, 1
je 0x692eb56e
cmp rdx, 2
je 0x692eb560
cmp rdx, 3
je 0x692eb552
cmp rdx, 4
je 0x692eb544
cmp rdx, 5
je 0x692eb536
cmp rdx, 6
je 0x692eb528
cmp byte [r12], bl
je 0x692ec5bc
add r12, 4
cmp byte [r12], bl
je 0x692ebf16
add r12, 4
cmp byte [r12], bl
je 0x692ebef5
add r12, 4
cmp byte [r12], bl
je 0x692ebecc
add r12, 4
cmp byte [r12], bl
je 0x692ebeab
add r12, 4
cmp byte [r12], bl
je 0x692ebe54
add r12, 4
cmp byte [r12], bl
je 0x692ebe8a
add r12, 4
cmp r12, rsi
jne 0x692eb5e9
jmp 0x692eac9f
lea r8, [r12 + 4]
cmp byte [r12 + 4], bl
je 0x692ebe36
cmp byte [r8 + 4], bl
je 0x692ebe18
cmp byte [r8 + 8], bl
je 0x692ebdfa
cmp byte [r8 + 0xc], bl
je 0x692ebddc
cmp byte [r8 + 0x10], bl
je 0x692ebdbe
cmp byte [r8 + 0x14], bl
je 0x692ebda0
cmp byte [r8 + 0x18], bl
je 0x692ebd82
lea r12, [r8 + 0x1c]
cmp r12, rsi
je 0x692eac9f
cmp byte [r12], bl
jne 0x692eb590
cmp byte [r12 + 1], r9b
jne 0x692eb590
cmp byte [r12 + 2], dil
jne 0x692eb590
mov byte [r12 + 3], 0
jmp 0x692eb590
movzx r12d, byte [r14 + 0x38]
add rdx, r10
jmp 0x692e9b0d
mov edi, dword [rsp + 0x1930]
mov dword [r14 + 0xc], edi
mov ebp, edi
jmp 0x692eace7
lea r10, str.multiple_IHDR
mov qword [0x69306440], r10
jmp 0x692e93a1
lea r8, str.bad_IHDR_len
xor r13d, r13d
mov qword [0x69306440], r8
jmp 0x692e93a1
lea rdi, str.no_PLTE
mov qword [0x69306440], rdi
jmp 0x692e93a1
movzx r13d, byte [rsp + 0x58]
mov dword [r14 + 8], r13d
mov r13d, 1
jmp 0x692e93a1
lea r14, str.tRNS_after_IDAT
mov qword [0x69306440], r14
jmp 0x692e93a1
lea rsi, str.bad_tRNS_len
mov qword [0x69306440], rsi
jmp 0x692e93a1
lea rbp, str.XXXX_PNG_chunk_not_known
bswap eax
mov dword [str.XXXX_PNG_chunk_not_known], eax
mov qword [0x69306440], rbp
jmp 0x692e93a1
lea rsi, str.bad_filter_method
xor r13d, r13d
mov qword [0x69306440], rsi
jmp 0x692e93a1
lea rdi, str.bad_comp_method
xor r13d, r13d
mov qword [0x69306440], rdi
jmp 0x692e93a1
lea r15, str.bad_interlace_method
xor r13d, r13d
mov qword [0x69306440], r15
jmp 0x692e93a1
test esi, esi
je 0x692eaf25
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 0x692eb7f8
cmp rdi, 1
je 0x692eb7b3
cmp rdi, 2
je 0x692eb778
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 0x692eaf25
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 0x692eb7f8
jmp 0x692eaf25
movzx r12d, byte [r14 + 0x38]
add rdx, r8
jmp 0x692e9a92
lea rbx, str.tRNS_before_PLTE
mov qword [0x69306440], rbx
jmp 0x692e93a1
lea r15, str.tRNS_with_alpha
mov qword [0x69306440], r15
jmp 0x692e93a1
test ebp, ebp
je 0x692eac9f
lea eax, [rbp - 1]
movzx ecx, byte [rsp + 0x42d]
cmp eax, 0xf
jbe 0x692ebeed
movd xmm3, ecx
lea r13, [r12 + 1]
pxor xmm4, xmm4
mov r10d, eax
shr r10d, 4
punpcklbw xmm3, xmm3
movdqu xmm9, xmmword [0x6930bb50]
movdqu xmm5, xmmword [0x6930bbd0]
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 0x692eb96d
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 0x692eac9f
cmp byte [r12 + 2], cl
lea esi, [r11 + 2]
setne dl
neg edx
mov byte [r12 + 3], dl
cmp ebp, esi
jbe 0x692eac9f
cmp byte [r12 + 4], cl
lea r10d, [r11 + 3]
setne r8b
neg r8d
mov byte [r12 + 5], r8b
cmp ebp, r10d
jbe 0x692eac9f
cmp byte [r12 + 6], cl
lea edi, [r11 + 4]
setne r9b
neg r9d
mov byte [r12 + 7], r9b
cmp ebp, edi
jbe 0x692eac9f
cmp byte [r12 + 8], cl
lea r13d, [r11 + 5]
setne al
neg eax
mov byte [r12 + 9], al
cmp ebp, r13d
jbe 0x692eac9f
cmp byte [r12 + 0xa], cl
lea edx, [r11 + 6]
setne bl
neg ebx
mov byte [r12 + 0xb], bl
cmp ebp, edx
jbe 0x692eac9f
cmp byte [r12 + 0xc], cl
lea r8d, [r11 + 7]
setne sil
neg esi
mov byte [r12 + 0xd], sil
cmp ebp, r8d
jbe 0x692eac9f
cmp byte [r12 + 0xe], cl
lea r9d, [r11 + 8]
setne r10b
neg r10d
mov byte [r12 + 0xf], r10b
cmp ebp, r9d
jbe 0x692eac9f
cmp byte [r12 + 0x10], cl
lea eax, [r11 + 9]
setne dil
neg edi
mov byte [r12 + 0x11], dil
cmp ebp, eax
jbe 0x692eac9f
cmp byte [r12 + 0x12], cl
lea ebx, [r11 + 0xa]
setne r13b
neg r13d
mov byte [r12 + 0x13], r13b
cmp ebp, ebx
jbe 0x692eac9f
cmp byte [r12 + 0x14], cl
lea esi, [r11 + 0xb]
setne dl
neg edx
mov byte [r12 + 0x15], dl
cmp ebp, esi
jbe 0x692eac9f
cmp byte [r12 + 0x16], cl
lea r10d, [r11 + 0xc]
setne r8b
neg r8d
mov byte [r12 + 0x17], r8b
cmp ebp, r10d
jbe 0x692eac9f
cmp byte [r12 + 0x18], cl
lea edi, [r11 + 0xd]
setne r9b
neg r9d
mov byte [r12 + 0x19], r9b
cmp ebp, edi
jbe 0x692eac9f
cmp byte [r12 + 0x1a], cl
lea r13d, [r11 + 0xe]
setne al
neg eax
mov byte [r12 + 0x1b], al
cmp ebp, r13d
jbe 0x692eac9f
cmp byte [r12 + 0x1c], cl
setne bl
add r11d, 0xf
neg ebx
mov byte [r12 + 0x1d], bl
cmp ebp, r11d
jbe 0x692eac9f
cmp byte [r12 + 0x1e], cl
setne bpl
neg ebp
mov byte [r12 + 0x1f], bpl
jmp 0x692eac9f
mov dword [r14 + 8], 4
mov r13d, 1
jmp 0x692e93a1
mov r11, qword [r15]
mov rsi, qword [r15 + 0x18]
mov r8d, dword [r11]
imul r8d, dword [r11 + 4]
cmp dword [r11 + 0xc], 3
je 0x692ec42f
mov edx, dword [0x693064a0]
test edx, edx
je 0x692ebf37
test r8d, r8d
je 0x692eacc1
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 0x692ebd6c
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 0x692ebd1d
jmp 0x692eacc1
mov byte [rsi + 2], r11b
add rsi, 4
mov byte [rsi - 4], r9b
cmp rsi, rcx
jne 0x692ebd1d
jmp 0x692eacc1
cmp byte [r8 + 0x19], r9b
jne 0x692eb5dc
cmp byte [r8 + 0x1a], dil
jne 0x692eb5dc
mov byte [r8 + 0x1b], 0
jmp 0x692eb5dc
cmp byte [r8 + 0x15], r9b
jne 0x692eb5d2
cmp byte [r8 + 0x16], dil
jne 0x692eb5d2
mov byte [r8 + 0x17], 0
jmp 0x692eb5d2
cmp byte [r8 + 0x11], r9b
jne 0x692eb5c8
cmp byte [r8 + 0x12], dil
jne 0x692eb5c8
mov byte [r8 + 0x13], 0
jmp 0x692eb5c8
cmp byte [r8 + 0xd], r9b
jne 0x692eb5be
cmp byte [r8 + 0xe], dil
jne 0x692eb5be
mov byte [r8 + 0xf], 0
jmp 0x692eb5be
cmp byte [r8 + 9], r9b
jne 0x692eb5b4
cmp byte [r8 + 0xa], dil
jne 0x692eb5b4
mov byte [r8 + 0xb], 0
jmp 0x692eb5b4
cmp byte [r8 + 5], r9b
jne 0x692eb5aa
cmp byte [r8 + 6], dil
jne 0x692eb5aa
mov byte [r8 + 7], 0
jmp 0x692eb5aa
cmp byte [r8 + 1], r9b
jne 0x692eb5a0
cmp byte [r8 + 2], dil
jne 0x692eb5a0
mov byte [r8 + 3], 0
jmp 0x692eb5a0
cmp byte [r12 + 1], r9b
jne 0x692eb56a
cmp byte [r12 + 2], dil
jne 0x692eb56a
mov byte [r12 + 3], 0
jmp 0x692eb56a
mov rcx, qword [rsp + 0x100]
mov r13d, eax
call fcn.69253a20
jmp 0x692e93a1
cmp byte [r12 + 1], r9b
jne 0x692eb578
cmp byte [r12 + 2], dil
jne 0x692eb578
mov byte [r12 + 3], 0
jmp 0x692eb578
cmp byte [r12 + 1], r9b
jne 0x692eb55c
cmp byte [r12 + 2], dil
jne 0x692eb55c
mov byte [r12 + 3], 0
jmp 0x692eb55c
cmp byte [r12 + 1], r9b
jne 0x692eb54e
cmp byte [r12 + 2], dil
jne 0x692eb54e
mov byte [r12 + 3], 0
jmp 0x692eb54e
xor r11d, r11d
jmp 0x692ebb10
cmp byte [r12 + 1], r9b
jne 0x692eb540
cmp byte [r12 + 2], dil
jne 0x692eb540
mov byte [r12 + 3], 0
jmp 0x692eb540
cmp byte [r12 + 1], r9b
jne 0x692eb532
cmp byte [r12 + 2], dil
jne 0x692eb532
mov byte [r12 + 3], 0
jmp 0x692eb532
test r8d, r8d
je 0x692eacc1
lea edi, [r8 - 1]
cmp edi, 0xf
jbe 0x692ec5b4
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 0x692ebf64
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
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 0x692eacc1
movzx r8d, byte [rsi + 0x3c]
movzx r10d, byte [rsi + 0x3e]
mov byte [rsi + 0x3e], r8b
mov byte [rsi + 0x3c], r10b
jmp 0x692eacc1
test r8d, r8d
je 0x692eacc1
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 0x692ec521
cmp rbx, 1
je 0x692ec505
cmp rbx, 2
je 0x692ec4f0
cmp rbx, 3
je 0x692ec4dd
cmp rbx, 4
je 0x692ec4cc
cmp rbx, 5
je 0x692ec4b7
cmp rbx, 6
je 0x692ec4a5
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 0x692eacc1
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 0x692ec521
jmp 0x692eacc1
xor r10d, r10d
jmp 0x692ec268
cmp byte [r12 + 1], r9b
jne 0x692eb524
cmp byte [r12 + 2], dil
jne 0x692eb524
mov byte [r12 + 3], 0
jmp 0x692eb524
mov qword [r15 + 0x10], 0
jmp 0x692e93a1
lea r15, str.outofmem
mov qword [0x69306440], r15
jmp 0x692e997d