Function at 0x631feb80
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.63012d50
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 0x631fec98
mov r9d, dword [r14 + 0x30]
test r9d, r9d
jne 0x631fec50
nop dword [rax]
lea r12, str.bad_png_sig
xor r13d, r13d
mov qword [0x63273660], 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 0x631fff08
nop
movq xmm6, rcx
mov dword [r14 + 0x30], 0
punpcklqdq xmm6, xmm6
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm6
jmp 0x631fec00
lea rdx, [rcx + 1]
mov qword [r14 + 0xb8], rdx
movzx esi, byte [rcx]
cmp sil, 0x89
jne 0x631fec00
mov rdi, qword [r14 + 0xb8]
cmp rdi, qword [r14 + 0xc0]
jb 0x631fed10
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x631fec00
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 0x631fec70
cdqe
movq xmm2, rcx
movzx r11d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x631fed1f
lea r10, [rdi + 1]
mov qword [r14 + 0xb8], r10
movzx r11d, byte [rdi]
cmp r11b, 0x50
jne 0x631fec00
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jb 0x631fed90
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x631fec00
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 0x631fec70
cdqe
movq xmm4, rcx
movzx r9d, byte [r14 + 0x38]
add rax, rbx
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x631feda1
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx r9d, byte [r12]
cmp r9b, 0x4e
jne 0x631fec00
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x631fee10
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x631fec00
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 0x631fec70
cdqe
movq xmm6, rcx
movzx r8d, byte [r14 + 0x38]
add rax, rsi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x631fee1f
lea rdi, [rcx + 1]
mov qword [r14 + 0xb8], rdi
movzx r8d, byte [rcx]
cmp r8b, 0x47
jne 0x631fec00
mov rbp, qword [r14 + 0xb8]
cmp rbp, qword [r14 + 0xc0]
jb 0x631fee90
mov r10d, dword [r14 + 0x30]
test r10d, r10d
je 0x631fec00
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 0x631fec70
cdqe
movq xmm9, rcx
movzx r13d, byte [r14 + 0x38]
add rax, r12
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x631feea0
lea r11, [rbp + 1]
mov qword [r14 + 0xb8], r11
movzx r13d, byte [rbp]
cmp r13b, 0xd
jne 0x631fec00
mov rbx, qword [r14 + 0xb8]
cmp rbx, qword [r14 + 0xc0]
jb 0x631fef10
mov eax, dword [r14 + 0x30]
test eax, eax
je 0x631fec00
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 0x631fec70
cdqe
movq xmm1, rcx
movzx edx, byte [r14 + 0x38]
add rax, rsi
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x631fef1e
lea r9, [rbx + 1]
mov qword [r14 + 0xb8], r9
movzx edx, byte [rbx]
cmp dl, 0xa
jne 0x631fec00
mov rcx, qword [r14 + 0xb8]
cmp rcx, qword [r14 + 0xc0]
jb 0x631fef88
mov edi, dword [r14 + 0x30]
test edi, edi
je 0x631fec00
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 0x631fec70
cdqe
movq xmm2, rcx
movzx r10d, byte [r14 + 0x38]
add rax, rbp
movq xmm3, rax
punpcklqdq xmm2, xmm3
movups xmmword [r14 + 0xb8], xmm2
jmp 0x631fef97
lea r8, [rcx + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [rcx]
cmp r10b, 0x1a
jne 0x631fec00
mov r12, qword [r14 + 0xb8]
cmp r12, qword [r14 + 0xc0]
jae 0x631ffbe0
lea rax, [r12 + 1]
mov qword [r14 + 0xb8], rax
movzx ebx, byte [r12]
cmp bl, 0xa
jne 0x631fec00
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.631ef160
mov rcx, r14
mov r12d, eax
call fcn.631ef160
cmp eax, 0x49484452
je 0x631ff910
ja 0x631ff1f8
cmp eax, 0x49444154
je 0x631ff580
cmp eax, 0x49454e44
jne 0x631ff558
test r13d, r13d
jne 0x631ffc38
mov esi, dword [rsp + 0x1928]
test esi, esi
jne 0x631fff90
mov rdi, qword [r15 + 8]
test rdi, rdi
je 0x63200210
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 0x63201e4d
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.63201e70
mov r13d, eax
test eax, eax
je 0x63200cfb
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 0x631ff1ed
mov rcx, qword [r15 + 8]
call fcn.63020868
mov edx, dword [r14 + 8]
mov qword [r15 + 8], 0
lea eax, [rdx + 1]
cmp eax, dword [rsp + 0x1930]
je 0x632004b8
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 0x632007bd
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.631e6d00
test eax, eax
jne 0x63200501
xor r13d, r13d
jmp 0x631fec11
cmp eax, 0x504c5445
je 0x631ff640
cmp eax, 0x74524e53
jne 0x631ff618
test r13d, r13d
jne 0x631ffc38
cmp qword [r15 + 8], 0
jne 0x63200ee8
cmp byte [rsp + 0x58], 0
je 0x631ffc50
cmp dword [rsp + 0x1928], 2
je 0x63201540
test ebx, ebx
je 0x6320115c
cmp ebx, r12d
jb 0x63200efb
test r12d, r12d
je 0x631ff53f
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 0x631ff41d
cmp r11, 1
je 0x631ff39a
cmp r11, 2
je 0x631ff31f
cmp rax, rdx
jb 0x63200c98
mov r10d, dword [r14 + 0x30]
xor r12d, r12d
test r10d, r10d
je 0x631ff318
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 0x6320114f
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 0x632004a1
mov r11d, dword [r14 + 0x30]
xor r12d, r12d
test r11d, r11d
je 0x631ff393
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 0x63200e78
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 0x63200228
mov ecx, dword [r14 + 0x30]
xor r12d, r12d
test ecx, ecx
je 0x631ff40d
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 0x63200cc2
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 0x631ff53f
mov r12, r9
cmp rax, rdx
jae 0x632000e8
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 0x63200080
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r11d, byte [rax]
mov rax, rcx
mov byte [r12], r11b
cmp rax, rdx
jb 0x63200060
mov r10d, dword [r14 + 0x30]
xor ecx, ecx
test r10d, r10d
je 0x631ff4c4
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 0x63200448
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 0x63200030
mov r11d, dword [r14 + 0x30]
xor r9d, r9d
test r11d, r11d
je 0x631ff52d
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 0x6320042a
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 0x631ff420
mov byte [rsp + 0x58], 4
nop dword [rax]
mov rcx, r14
call fcn.631ef160
jmp 0x631ff028
cmp eax, 0x43674249
jne 0x631ff618
mov edx, r12d
mov rcx, r14
call fcn.63206a80
mov dword [rsp + 0x90], 1
jmp 0x631ff548
test r13d, r13d
jne 0x631ffc38
cmp byte [rsp + 0x58], 0
je 0x631ff598
test ebx, ebx
je 0x63200ec0
cmp dword [rsp + 0x1928], 2
je 0x63200ed3
mov ecx, dword [rsp + 0x70]
lea ebp, [rcx + r12]
cmp ebp, ecx
jl 0x631ff1ed
mov rcx, qword [r15 + 8]
cmp ebp, esi
ja 0x631fffd0
mov r11d, dword [rsp + 0x70]
mov r10, qword [r14 + 0xc0]
mov rdx, qword [r14 + 0xb8]
add rcx, r11
cmp qword [r14 + 0x10], 0
je 0x631ff5ee
mov r9, r10
sub r9, rdx
cmp r12d, r9d
jg 0x6320023f
movsxd r12, r12d
lea r8, [rdx + r12]
cmp r10, r8
jae 0x63200150
lea r15, str.outofdata
mov qword [0x63273660], r15
jmp 0x631fec11
test r13d, r13d
jne 0x631ffc38
test eax, 0x20000000
je 0x63200f0e
mov edx, r12d
mov rcx, r14
call fcn.63206a80
jmp 0x631ff548
test r13d, r13d
jne 0x631ffc38
cmp r12d, 0x300
ja 0x63200caf
mov ebx, r12d
mov r11d, 0xaaaaaaab
imul rbx, r11
shr rbx, 0x21
lea ecx, [rbx + rbx*2]
cmp ecx, r12d
jne 0x63200caf
cmp ecx, 2
jbe 0x632004de
mov r11, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
xor ebp, ebp
lea r12, [rsp + 0x490]
test bl, 1
jne 0x631ffe90
mov dword [rsp + 0xb0], esi
mov dword [rsp + 0xb8], r13d
jmp 0x631ff779
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx ecx, byte [r11]
mov byte [r12 + rbp*4], cl
cmp rax, r10
jbe 0x631ff7db
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx edx, byte [r10]
mov byte [r12 + rbp*4 + 1], dl
cmp rax, r11
jbe 0x631ff834
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 0x631ff890
lea r11, [r10 + 1]
mov qword [r14 + 0xb8], r11
movzx r10d, byte [r10]
mov byte [r12 + rbp*4], r10b
cmp rax, r11
jbe 0x631ff8a4
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 0x631ff8b7
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 0x63200018
cmp r11, rax
jb 0x631ff6b8
mov r13d, dword [r14 + 0x30]
test r13d, r13d
je 0x631ffb30
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 0x631ffe78
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 0x631ff6d4
mov r8d, dword [r14 + 0x30]
test r8d, r8d
je 0x631ffb45
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 0x631ffe40
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 0x631ff6f1
mov r10, r11
mov r9d, dword [r14 + 0x30]
xor esi, esi
test r9d, r9d
je 0x631ff700
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 0x631ffe10
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm2, rdi
movq xmm4, rax
punpcklqdq xmm2, xmm4
movups xmmword [r14 + 0xb8], xmm2
jmp 0x631ff700
mov ecx, dword [r14 + 0x30]
test ecx, ecx
jne 0x631ffb98
mov byte [r12 + rbp*4], 0
mov r11, r10
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x631ffb50
mov byte [r12 + rbp*4 + 1], 0
mov ecx, dword [r14 + 0x30]
xor esi, esi
test ecx, ecx
je 0x631ff762
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 0x631ffe60
cdqe
movzx esi, byte [r14 + 0x38]
add rax, r13
movq xmm9, rdi
movq xmm0, rax
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x631ff762
test r13d, r13d
je 0x63200e97
cmp r12d, 0xd
jne 0x63200eaa
mov rcx, r14
call fcn.631ef160
mov dword [r14], eax
cmp eax, 0x1000000
ja 0x631fffba
mov rcx, r14
call fcn.631ef160
mov dword [r14 + 4], eax
cmp eax, 0x1000000
ja 0x631fffba
mov r9, qword [r14 + 0xb8]
mov rax, qword [r14 + 0xc0]
cmp r9, rax
jae 0x631ffac0
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 0x631ffb10
cmp r12, rax
jae 0x631ffcf0
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 0x63200ccf
cmp dword [rsp + 0x60], 3
je 0x631fff80
test bpl, 1
jne 0x63200ccf
cmp r11, rax
jae 0x631ffd02
lea r8, [r11 + 1]
mov qword [r14 + 0xb8], r8
movzx r10d, byte [r11]
test r10b, r10b
jne 0x63200f3f
cmp r8, rax
jae 0x631ffd4a
lea r11, [r8 + 1]
mov qword [r14 + 0xb8], r11
movzx ecx, byte [r8]
test cl, cl
jne 0x63200f29
cmp r11, rax
jae 0x631ffd93
lea r10, [r11 + 1]
mov qword [r14 + 0xb8], r10
movzx eax, byte [r11]
mov dword [rsp + 0x80], eax
cmp dword [rsp + 0x80], 1
jg 0x63200f55
mov r11d, dword [r14]
test r11d, r11d
je 0x63200ce5
mov ecx, dword [r14 + 4]
test ecx, ecx
je 0x63200ce5
cmp byte [rsp + 0x58], 0
jne 0x631fffa0
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 0x631fffba
cmp dword [rsp + 0x1928], 2
je 0x631fff90
xor r13d, r13d
jmp 0x631ff548
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x631ffb10
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 0x63200298
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 [0x63273660], r9
jmp 0x631fec11
mov r8d, dword [r14 + 0x30]
mov byte [r12 + rbp*4], 0
mov r10, r11
test r8d, r8d
jne 0x631ff7e8
mov byte [r12 + rbp*4 + 1], 0
jmp 0x631ff837
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 0x631ffe28
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rsi
movq xmm6, rdi
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x631ff743
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 0x631ffdf0
cdqe
movzx r10d, byte [r14 + 0x38]
add rax, r13
movq xmm5, rdi
movq xmm3, rax
punpcklqdq xmm5, xmm3
movups xmmword [r14 + 0xb8], xmm5
jmp 0x631ff727
mov r11d, dword [r14 + 0x30]
test r11d, r11d
je 0x631fec00
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 0x631fec70
cdqe
movq xmm4, rcx
movzx ebx, byte [r14 + 0x38]
add rax, r13
movq xmm5, rax
punpcklqdq xmm4, xmm5
movups xmmword [r14 + 0xb8], xmm4
jmp 0x631fefc6
lea r13, str.first_not_IHDR
mov qword [0x63273660], r13
xor r13d, r13d
jmp 0x631fec11
mov eax, dword [r14 + 8]
test al, 1
je 0x6320116f
lea ebp, [rax + rax]
cmp ebp, r12d
jne 0x63200efb
mov byte [rsp + 0xa4], 1
test eax, eax
jle 0x631ff548
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, [0x632bdeb0]
mov r14, rdi
mov rbx, r10
mov rdi, r11
mov rcx, rsi
call fcn.631eef00
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 0x631ffcac
mov rdi, r14
mov ebx, dword [rsp + 0xb0]
mov r14, rsi
mov esi, dword [rsp + 0xa4]
mov byte [rsp + 0xa4], 1
jmp 0x631ff548
mov eax, dword [r14 + 0x30]
mov dword [rsp + 0x60], eax
test eax, eax
jne 0x631fff30
xor ebp, ebp
mov edx, dword [r14 + 0x30]
test edx, edx
je 0x63200170
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 0x63200314
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 0x63200170
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 0x63200339
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 0x631ffa54
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 0x6320035f
movq xmm7, rdi
mov dword [r14 + 0x30], 0
punpcklqdq xmm7, xmm7
mov byte [r14 + 0x38], 0
movups xmmword [r14 + 0xb8], xmm7
jmp 0x631ffa54
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r10d, r10d
mov byte [r14 + 0x38], 0
jmp 0x631ffbc0
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x631ff86e
mov dword [r14 + 0x30], 0
mov rax, rdi
xor r9d, r9d
mov byte [r14 + 0x38], 0
jmp 0x631ffb78
mov dword [r14 + 0x30], 0
mov rax, rdi
xor edx, edx
mov byte [r14 + 0x38], 0
jmp 0x631ff810
mov dword [r14 + 0x30], 0
mov rax, rdi
mov byte [r14 + 0x38], 0
jmp 0x631ff8ed
mov dword [r14 + 0x30], 0
mov rax, rdi
xor ecx, ecx
mov byte [r14 + 0x38], 0
jmp 0x631ff7b7
cmp r11, rax
jae 0x63200180
lea rdx, [r11 + 1]
mov qword [r14 + 0xb8], rdx
movzx r9d, byte [r11]
mov byte [r12], r9b
cmp rax, rdx
jbe 0x63200194
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 0x632001aa
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 0x631ff69d
jmp 0x631ff548
cdqe
movq xmm1, rcx
movzx esi, byte [r14 + 0x38]
add rax, rbx
movq xmm7, rax
punpcklqdq xmm1, xmm7
movups xmmword [r14 + 0xb8], xmm1
jmp 0x631feca6
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 0x632002e6
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 0x631ffd02
mov byte [rsp + 0x58], 3
jmp 0x631ff9e6
mov r13d, 1
jmp 0x631fec11
mov eax, 0x10000000
xor edx, edx
mov dword [r14 + 8], 1
div r11d
cmp ecx, eax
jbe 0x631ffab8
lea r12, str.too_large
xor r13d, r13d
mov qword [0x63273660], r12
jmp 0x631fec11
test esi, esi
jne 0x631ffff0
cmp r12d, 0x1000
mov esi, 0x1000
cmovae esi, r12d
cmp ebp, esi
jbe 0x631ffff6
nop dword [rax + rax]
add esi, esi
cmp ebp, esi
ja 0x631ffff0
mov edx, esi
call sub.msvcrt.dll_realloc
mov rcx, rax
test rax, rax
je 0x63201e5a
mov qword [r15 + 8], rax
jmp 0x631ff5c2
mov esi, dword [rsp + 0xb0]
mov r13d, dword [rsp + 0xb8]
jmp 0x631ff548
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 0x631ff420
jmp 0x631ff53f
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx ecx, byte [rax]
mov rax, r8
jmp 0x631ff4c4
mov r10d, dword [r14 + 0x30]
xor r11d, r11d
test r10d, r10d
je 0x631ff45e
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 0x63200465
movzx r11d, byte [r14 + 0x38]
add rdx, r8
movq xmm9, rdi
movq xmm0, rdx
punpcklqdq xmm9, xmm0
movups xmmword [r14 + 0xb8], xmm9
jmp 0x631ff45e
mov r8d, dword [r14 + 0x30]
xor r11d, r11d
test r8d, r8d
je 0x631ff43b
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 0x63200483
movzx r11d, byte [r14 + 0x38]
add rdx, rcx
movq xmm6, rdi
movq xmm8, rdx
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x631ff43b
mov r8, r12
call sub.msvcrt.dll_memcpy
add qword [r14 + 0xb8], r12
mov dword [rsp + 0x70], ebp
jmp 0x631ff548
mov dword [rsp + 0x80], 0
jmp 0x631ffa54
mov ebp, dword [r14 + 0x30]
test ebp, ebp
jne 0x632003de
mov byte [r12], 0
mov rdx, r11
mov r8d, dword [r14 + 0x30]
test r8d, r8d
jne 0x63200392
mov byte [r12 + 1], 0
mov r11, rdx
mov edx, dword [r14 + 0x30]
xor ebp, ebp
test edx, edx
je 0x631ffee4
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 0x63200c7a
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 0x631ffee4
lea rbx, str.no_IDAT
mov qword [0x63273660], rbx
jmp 0x631fec11
lea r10, [rax + 1]
mov qword [r14 + 0xb8], r10
movzx r12d, byte [rax]
mov rax, r10
jmp 0x631ff40d
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 0x6320015f
jmp 0x631ff5fe
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 0x631ff99b
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 0x631ff9c6
cdqe
movq xmm4, rdi
movzx r10d, byte [r14 + 0x38]
add rax, r12
movq xmm3, rax
punpcklqdq xmm4, xmm3
movups xmmword [r14 + 0xb8], xmm4
jmp 0x631ff9fe
cdqe
movq xmm6, rdi
movzx ecx, byte [r14 + 0x38]
add rax, r12
movq xmm8, rax
punpcklqdq xmm6, xmm8
movups xmmword [r14 + 0xb8], xmm6
jmp 0x631ffa1f
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 0x631ffa46
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 0x63200c89
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 0x631ffec4
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 0x63200c6b
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 0x631ffea8
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r9d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x631ff517
mov byte [r14 + 0x38], 0
movzx ecx, byte [rsp + 0xb0]
mov rdx, rdi
mov dword [r14 + 0x30], 0
jmp 0x631ff4ae
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x632000c9
mov dword [r14 + 0x30], 0
mov rdx, rdi
movzx r11d, byte [rsp + 0xb0]
mov byte [r14 + 0x38], 0
jmp 0x63200130
lea r8, [rax + 1]
mov qword [r14 + 0xb8], r8
movzx r12d, byte [rax]
mov rax, r8
jmp 0x631ff393
cmp dword [rsp + 0x1930], 3
je 0x631ff178
cmp byte [rsp + 0x58], 0
mov r12d, dword [rsp + 0x1930]
je 0x631ff186
jmp 0x631ff178
xor ebx, ebx
jmp 0x631ff548
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 0x63200d15
mov r12d, dword [rsp + 0x90]
test r12d, r12d
je 0x63200531
mov ecx, dword [0x632734f0]
test ecx, ecx
je 0x63200531
cmp dword [r14 + 0xc], 2
jg 0x63201553
cmp byte [rsp + 0x58], 0
je 0x632007a1
movzx ebp, byte [rsp + 0x58]
cmp dword [rsp + 0x1930], 2
mov dword [r14 + 8], ebp
jg 0x63200e85
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 0x63201e5a
cmp ebp, 3
je 0x63200f6b
test esi, esi
je 0x63200795
lea r10d, [rsi - 1]
mov rbp, r13
mov rdi, rax
lea r8, [rax + r10*4 + 4]
add r10, 1
and r10d, 3
je 0x63200690
cmp r10, 1
je 0x63200642
cmp r10, 2
je 0x632005fb
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 0x63200795
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 0x63200690
mov rcx, r13
call fcn.63020868
mov qword [r15 + 0x18], rbx
mov rcx, qword [r15 + 0x10]
mov r13d, 1
call fcn.63020868
mov qword [r15 + 0x10], 0
jmp 0x631fec11
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 [0x63278e20]
mov qword [rsp + 0xe0], rbx
movdqu xmm6, xmmword [0x63278e30]
mov qword [rsp + 0xf0], r10
mov r8d, dword [rsp + 0x70]
mov qword [rsp + 0xa8], 0
movdqu xmm9, xmmword [0x63278e00]
mov qword [rsp + 0xe8], r9
movdqu xmm8, xmmword [0x63278e10]
mov qword [rsp + 0x118], r14
mov qword [rsp + 0x1920], r15
jmp 0x6320088c
add qword [rsp + 0xa8], 4
mov rbp, qword [rsp + 0xa8]
cmp rbp, 0x1c
je 0x632004e5
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 0x63200860
test eax, eax
je 0x63200860
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.631e6d00
test eax, eax
je 0x632016e5
mov rcx, qword [rsp + 0x1920]
mov r8d, dword [rsp + 0xc0]
mov rax, qword [rcx + 0x18]
mov qword [rsp + 0x108], rax
test r8d, r8d
jle 0x63200c43
mov eax, dword [rsp + 0x70]
test eax, eax
jle 0x63200c43
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 0x63200b64
cmp r11d, 1
je 0x63200b25
cmp r11d, 2
je 0x63200af1
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 0x63200c0e
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 0x63200b70
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 0x63200a80
mov rcx, qword [rsp + 0x108]
call fcn.63020868
mov esi, dword [rsp + 0x114]
add qword [rsp + 0xf8], rsi
sub dword [rsp + 0x110], esi
jmp 0x63200860
cdqe
movzx r9d, byte [r14 + 0x38]
add rax, rbp
jmp 0x6320040f
cdqe
movzx ebp, byte [r14 + 0x38]
add rax, r9
jmp 0x632001f3
cdqe
movzx r11d, byte [r14 + 0x38]
add rax, rbp
jmp 0x632003c3
lea rcx, [rax + 1]
mov qword [r14 + 0xb8], rcx
movzx r12d, byte [rax]
mov rax, rcx
jmp 0x631ff318
lea rax, str.invalid_PLTE
mov qword [0x63273660], rax
jmp 0x631fec11
movzx r12d, byte [r14 + 0x38]
add rdx, r11
jmp 0x631ff3f7
lea rbx, str.bad_ctype
xor r13d, r13d
mov qword [0x63273660], rbx
jmp 0x631fec11
lea r14, str.0_pixel_image
xor r13d, r13d
mov qword [0x63273660], r14
jmp 0x631fec11
mov rcx, qword [rsp + 0x8b0]
call fcn.63020868
mov qword [r15 + 0x10], 0
jmp 0x631fec11
mov r13, qword [r15]
mov r12, qword [r15 + 0x18]
mov ebp, dword [r13]
imul ebp, dword [r13 + 4]
cmp dword [r14 + 0xc], 2
je 0x63201182
test ebp, ebp
je 0x6320050f
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 0x63200e59
cmp rdx, 1
je 0x63200dde
cmp rdx, 2
je 0x63200dd0
cmp rdx, 3
je 0x63200dc2
cmp rdx, 4
je 0x63200db4
cmp rdx, 5
je 0x63200da6
cmp rdx, 6
je 0x63200d98
cmp byte [r12], bl
je 0x63201e2c
add r12, 4
cmp byte [r12], bl
je 0x63201786
add r12, 4
cmp byte [r12], bl
je 0x63201765
add r12, 4
cmp byte [r12], bl
je 0x6320173c
add r12, 4
cmp byte [r12], bl
je 0x6320171b
add r12, 4
cmp byte [r12], bl
je 0x632016c4
add r12, 4
cmp byte [r12], bl
je 0x632016fa
add r12, 4
cmp r12, rsi
jne 0x63200e59
jmp 0x6320050f
lea r8, [r12 + 4]
cmp byte [r12 + 4], bl
je 0x632016a6
cmp byte [r8 + 4], bl
je 0x63201688
cmp byte [r8 + 8], bl
je 0x6320166a
cmp byte [r8 + 0xc], bl
je 0x6320164c
cmp byte [r8 + 0x10], bl
je 0x6320162e
cmp byte [r8 + 0x14], bl
je 0x63201610
cmp byte [r8 + 0x18], bl
je 0x632015f2
lea r12, [r8 + 0x1c]
cmp r12, rsi
je 0x6320050f
cmp byte [r12], bl
jne 0x63200e00
cmp byte [r12 + 1], r9b
jne 0x63200e00
cmp byte [r12 + 2], dil
jne 0x63200e00
mov byte [r12 + 3], 0
jmp 0x63200e00
movzx r12d, byte [r14 + 0x38]
add rdx, r10
jmp 0x631ff37d
mov edi, dword [rsp + 0x1930]
mov dword [r14 + 0xc], edi
mov ebp, edi
jmp 0x63200557
lea r10, str.multiple_IHDR
mov qword [0x63273660], r10
jmp 0x631fec11
lea r8, str.bad_IHDR_len
xor r13d, r13d
mov qword [0x63273660], r8
jmp 0x631fec11
lea rdi, str.no_PLTE
mov qword [0x63273660], rdi
jmp 0x631fec11
movzx r13d, byte [rsp + 0x58]
mov dword [r14 + 8], r13d
mov r13d, 1
jmp 0x631fec11
lea r14, str.tRNS_after_IDAT
mov qword [0x63273660], r14
jmp 0x631fec11
lea rsi, str.bad_tRNS_len
mov qword [0x63273660], rsi
jmp 0x631fec11
lea rbp, str.XXXX_PNG_chunk_not_known
bswap eax
mov dword [str.XXXX_PNG_chunk_not_known], eax
mov qword [0x63273660], rbp
jmp 0x631fec11
lea rsi, str.bad_filter_method
xor r13d, r13d
mov qword [0x63273660], rsi
jmp 0x631fec11
lea rdi, str.bad_comp_method
xor r13d, r13d
mov qword [0x63273660], rdi
jmp 0x631fec11
lea r15, str.bad_interlace_method
xor r13d, r13d
mov qword [0x63273660], r15
jmp 0x631fec11
test esi, esi
je 0x63200795
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 0x63201068
cmp rdi, 1
je 0x63201023
cmp rdi, 2
je 0x63200fe8
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 0x63200795
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 0x63201068
jmp 0x63200795
movzx r12d, byte [r14 + 0x38]
add rdx, r8
jmp 0x631ff302
lea rbx, str.tRNS_before_PLTE
mov qword [0x63273660], rbx
jmp 0x631fec11
lea r15, str.tRNS_with_alpha
mov qword [0x63273660], r15
jmp 0x631fec11
test ebp, ebp
je 0x6320050f
lea eax, [rbp - 1]
movzx ecx, byte [rsp + 0x42d]
cmp eax, 0xf
jbe 0x6320175d
movd xmm3, ecx
lea r13, [r12 + 1]
pxor xmm4, xmm4
mov r10d, eax
shr r10d, 4
punpcklbw xmm3, xmm3
movdqu xmm9, xmmword [0x63278cd0]
movdqu xmm5, xmmword [0x63278d50]
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 0x632011dd
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 0x6320050f
cmp byte [r12 + 2], cl
lea esi, [r11 + 2]
setne dl
neg edx
mov byte [r12 + 3], dl
cmp ebp, esi
jbe 0x6320050f
cmp byte [r12 + 4], cl
lea r10d, [r11 + 3]
setne r8b
neg r8d
mov byte [r12 + 5], r8b
cmp ebp, r10d
jbe 0x6320050f
cmp byte [r12 + 6], cl
lea edi, [r11 + 4]
setne r9b
neg r9d
mov byte [r12 + 7], r9b
cmp ebp, edi
jbe 0x6320050f
cmp byte [r12 + 8], cl
lea r13d, [r11 + 5]
setne al
neg eax
mov byte [r12 + 9], al
cmp ebp, r13d
jbe 0x6320050f
cmp byte [r12 + 0xa], cl
lea edx, [r11 + 6]
setne bl
neg ebx
mov byte [r12 + 0xb], bl
cmp ebp, edx
jbe 0x6320050f
cmp byte [r12 + 0xc], cl
lea r8d, [r11 + 7]
setne sil
neg esi
mov byte [r12 + 0xd], sil
cmp ebp, r8d
jbe 0x6320050f
cmp byte [r12 + 0xe], cl
lea r9d, [r11 + 8]
setne r10b
neg r10d
mov byte [r12 + 0xf], r10b
cmp ebp, r9d
jbe 0x6320050f
cmp byte [r12 + 0x10], cl
lea eax, [r11 + 9]
setne dil
neg edi
mov byte [r12 + 0x11], dil
cmp ebp, eax
jbe 0x6320050f
cmp byte [r12 + 0x12], cl
lea ebx, [r11 + 0xa]
setne r13b
neg r13d
mov byte [r12 + 0x13], r13b
cmp ebp, ebx
jbe 0x6320050f
cmp byte [r12 + 0x14], cl
lea esi, [r11 + 0xb]
setne dl
neg edx
mov byte [r12 + 0x15], dl
cmp ebp, esi
jbe 0x6320050f
cmp byte [r12 + 0x16], cl
lea r10d, [r11 + 0xc]
setne r8b
neg r8d
mov byte [r12 + 0x17], r8b
cmp ebp, r10d
jbe 0x6320050f
cmp byte [r12 + 0x18], cl
lea edi, [r11 + 0xd]
setne r9b
neg r9d
mov byte [r12 + 0x19], r9b
cmp ebp, edi
jbe 0x6320050f
cmp byte [r12 + 0x1a], cl
lea r13d, [r11 + 0xe]
setne al
neg eax
mov byte [r12 + 0x1b], al
cmp ebp, r13d
jbe 0x6320050f
cmp byte [r12 + 0x1c], cl
setne bl
add r11d, 0xf
neg ebx
mov byte [r12 + 0x1d], bl
cmp ebp, r11d
jbe 0x6320050f
cmp byte [r12 + 0x1e], cl
setne bpl
neg ebp
mov byte [r12 + 0x1f], bpl
jmp 0x6320050f
mov dword [r14 + 8], 4
mov r13d, 1
jmp 0x631fec11
mov r11, qword [r15]
mov rsi, qword [r15 + 0x18]
mov r8d, dword [r11]
imul r8d, dword [r11 + 4]
cmp dword [r11 + 0xc], 3
je 0x63201c9f
mov edx, dword [0x632736c0]
test edx, edx
je 0x632017a7
test r8d, r8d
je 0x63200531
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 0x632015dc
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 0x6320158d
jmp 0x63200531
mov byte [rsi + 2], r11b
add rsi, 4
mov byte [rsi - 4], r9b
cmp rsi, rcx
jne 0x6320158d
jmp 0x63200531
cmp byte [r8 + 0x19], r9b
jne 0x63200e4c
cmp byte [r8 + 0x1a], dil
jne 0x63200e4c
mov byte [r8 + 0x1b], 0
jmp 0x63200e4c
cmp byte [r8 + 0x15], r9b
jne 0x63200e42
cmp byte [r8 + 0x16], dil
jne 0x63200e42
mov byte [r8 + 0x17], 0
jmp 0x63200e42
cmp byte [r8 + 0x11], r9b
jne 0x63200e38
cmp byte [r8 + 0x12], dil
jne 0x63200e38
mov byte [r8 + 0x13], 0
jmp 0x63200e38
cmp byte [r8 + 0xd], r9b
jne 0x63200e2e
cmp byte [r8 + 0xe], dil
jne 0x63200e2e
mov byte [r8 + 0xf], 0
jmp 0x63200e2e
cmp byte [r8 + 9], r9b
jne 0x63200e24
cmp byte [r8 + 0xa], dil
jne 0x63200e24
mov byte [r8 + 0xb], 0
jmp 0x63200e24
cmp byte [r8 + 5], r9b
jne 0x63200e1a
cmp byte [r8 + 6], dil
jne 0x63200e1a
mov byte [r8 + 7], 0
jmp 0x63200e1a
cmp byte [r8 + 1], r9b
jne 0x63200e10
cmp byte [r8 + 2], dil
jne 0x63200e10
mov byte [r8 + 3], 0
jmp 0x63200e10
cmp byte [r12 + 1], r9b
jne 0x63200dda
cmp byte [r12 + 2], dil
jne 0x63200dda
mov byte [r12 + 3], 0
jmp 0x63200dda
mov rcx, qword [rsp + 0x100]
mov r13d, eax
call fcn.63020868
jmp 0x631fec11
cmp byte [r12 + 1], r9b
jne 0x63200de8
cmp byte [r12 + 2], dil
jne 0x63200de8
mov byte [r12 + 3], 0
jmp 0x63200de8
cmp byte [r12 + 1], r9b
jne 0x63200dcc
cmp byte [r12 + 2], dil
jne 0x63200dcc
mov byte [r12 + 3], 0
jmp 0x63200dcc
cmp byte [r12 + 1], r9b
jne 0x63200dbe
cmp byte [r12 + 2], dil
jne 0x63200dbe
mov byte [r12 + 3], 0
jmp 0x63200dbe
xor r11d, r11d
jmp 0x63201380
cmp byte [r12 + 1], r9b
jne 0x63200db0
cmp byte [r12 + 2], dil
jne 0x63200db0
mov byte [r12 + 3], 0
jmp 0x63200db0
cmp byte [r12 + 1], r9b
jne 0x63200da2
cmp byte [r12 + 2], dil
jne 0x63200da2
mov byte [r12 + 3], 0
jmp 0x63200da2
test r8d, r8d
je 0x63200531
lea edi, [r8 - 1]
cmp edi, 0xf
jbe 0x63201e24
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 0x632017d4
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
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 0x63200531
movzx r8d, byte [rsi + 0x3c]
movzx r10d, byte [rsi + 0x3e]
mov byte [rsi + 0x3e], r8b
mov byte [rsi + 0x3c], r10b
jmp 0x63200531
test r8d, r8d
je 0x63200531
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 0x63201d91
cmp rbx, 1
je 0x63201d75
cmp rbx, 2
je 0x63201d60
cmp rbx, 3
je 0x63201d4d
cmp rbx, 4
je 0x63201d3c
cmp rbx, 5
je 0x63201d27
cmp rbx, 6
je 0x63201d15
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 0x63200531
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 0x63201d91
jmp 0x63200531
xor r10d, r10d
jmp 0x63201ad8
cmp byte [r12 + 1], r9b
jne 0x63200d94
cmp byte [r12 + 2], dil
jne 0x63200d94
mov byte [r12 + 3], 0
jmp 0x63200d94
mov qword [r15 + 0x10], 0
jmp 0x631fec11
lea r15, str.outofmem
mov qword [0x63273660], r15
jmp 0x631ff1ed