Function at 0x14004d150
Capabilities:
Inspect section memory permissions

Disassembly:
push r15
mov eax, 0x1888
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.140080f70
sub rsp, rax
movaps xmmword [rsp + 0x1800], xmm6
movaps xmmword [rsp + 0x1810], xmm7
movaps xmmword [rsp + 0x1820], xmm8
movaps xmmword [rsp + 0x1830], xmm9
movaps xmmword [rsp + 0x1840], xmm10
movaps xmmword [rsp + 0x1850], xmm11
movaps xmmword [rsp + 0x1860], xmm12
movaps xmmword [rsp + 0x1870], xmm13
pxor xmm0, xmm0
xor r9d, r9d
mov rbx, qword [rcx]
mov qword [rcx + 0x18], 0
mov r12, rcx
movups xmmword [rcx + 8], xmm0
mov rcx, qword [rbx + 0xc0]
mov rax, qword [rbx + 0xc8]
mov dword [rsp + 0x18d8], edx
mov dword [rsp + 0x18e0], r8d
mov word [rsp + 0x397], r9w
mov byte [rsp + 0x399], 0
cmp rcx, rax
jb 0x14004d288
mov r8d, dword [rbx + 0x30]
test r8d, r8d
jne 0x14004df38
nop dword [rax]
lea rcx, [0x140158020]
lea rdi, str.Not_a_PNG
call sym.__emutls_get_address
mov qword [rax], rdi
xor eax, eax
movaps xmm6, xmmword [rsp + 0x1800]
movaps xmm7, xmmword [rsp + 0x1810]
movaps xmm8, xmmword [rsp + 0x1820]
movaps xmm9, xmmword [rsp + 0x1830]
movaps xmm10, xmmword [rsp + 0x1840]
movaps xmm11, xmmword [rsp + 0x1850]
movaps xmm12, xmmword [rsp + 0x1860]
movaps xmm13, xmmword [rsp + 0x1870]
add rsp, 0x1888
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rcx]
cmp cl, 0x89
jne 0x14004d210
cmp rdx, rax
jb 0x14004d300
mov ecx, dword [rbx + 0x30]
test ecx, ecx
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea rcx, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
je 0x14004dff0
cdqe
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d30e
lea rcx, [rdx + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rdx]
cmp dl, 0x50
jne 0x14004d210
cmp rcx, rax
jb 0x14004d378
mov edx, dword [rbx + 0x30]
test edx, edx
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
je 0x14004dfd0
cdqe
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d386
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rcx]
cmp cl, 0x4e
jne 0x14004d210
cmp rdx, rax
jb 0x14004d3f0
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea rcx, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
je 0x14004dff0
cdqe
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d3fe
lea rcx, [rdx + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rdx]
cmp dl, 0x47
jne 0x14004d210
cmp rcx, rax
jb 0x14004d468
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
je 0x14004dfd0
cdqe
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d476
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rcx]
cmp cl, 0xd
jne 0x14004d210
cmp rdx, rax
jb 0x14004d4e0
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea rcx, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
je 0x14004dff0
cdqe
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d4ee
lea rcx, [rdx + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rdx]
cmp dl, 0xa
jne 0x14004d210
cmp rcx, rax
jb 0x14004d558
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
je 0x14004dfd0
cdqe
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d566
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rcx]
cmp cl, 0x1a
jne 0x14004d210
cmp rdx, rax
jae 0x14004de18
lea rax, [rdx + 1]
mov qword [rbx + 0xc0], rax
movzx edx, byte [rdx]
cmp dl, 0xa
jne 0x14004d210
mov dword [rsp + 0x68], 0
mov r13d, 1
xor edi, edi
xor ebp, ebp
mov dword [rsp + 0x5c], 0
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x48], 0
mov byte [rsp + 0x6f], 0
mov byte [rsp + 0x58], 0
nop dword [rax + rax]
mov rcx, rbx
call sym.stbi__get16be_stbi__context_
mov rcx, rbx
mov esi, eax
call sym.stbi__get16be_stbi__context_
shl esi, 0x10
mov rcx, rbx
lea r14d, [rsi + rax]
call sym.stbi__get16be_stbi__context_
mov rcx, rbx
mov esi, eax
call sym.stbi__get16be_stbi__context_
shl esi, 0x10
add eax, esi
cmp eax, 0x49484452
je 0x14004d9d8
ja 0x14004d658
cmp eax, 0x49444154
je 0x14004d708
cmp eax, 0x49454e44
je 0x14004db68
cmp eax, 0x43674249
jne 0x14004d9a0
test r14d, r14d
je 0x14004d63c
js 0x14004e1a8
mov edx, r14d
mov rcx, rbx
call sym.stbi__skip_stbi__context__int___clone_part0_
mov dword [rsp + 0x68], 1
nop dword [rax]
mov rcx, rbx
call sym.stbi__get32be_stbi__context_
jmp 0x14004d5c8
cmp eax, 0x504c5445
je 0x14004d7a8
cmp eax, 0x74524e53
jne 0x14004d9a0
test r13d, r13d
jne 0x14004d788
cmp qword [r12 + 8], 0
jne 0x14004d788
cmp byte [rsp + 0x58], 0
jne 0x14004e0b0
mov eax, dword [rbx + 8]
test al, 1
je 0x14004d788
lea edx, [rax + rax]
cmp edx, r14d
jne 0x14004d788
cmp dword [rsp + 0x18d8], 2
je 0x14004ed7e
cmp dword [r12 + 0x20], 0x10
je 0x14004dfa0
xor r14d, r14d
lea r15, [rsp + 0x397]
lea rsi, [0x140164fc8]
test eax, eax
jle 0x14004d6f9
mov rcx, rbx
call sym.stbi__get16be_stbi__context_
movsxd rcx, dword [r12 + 0x20]
mov edx, eax
movzx eax, byte [rsi + rcx]
imul eax, edx
mov byte [r15 + r14], al
add r14, 1
cmp dword [rbx + 8], r14d
jg 0x14004d6d5
mov byte [rsp + 0x6f], 1
jmp 0x14004d648
test r13d, r13d
jne 0x14004d788
cmp byte [rsp + 0x58], 0
je 0x14004d718
test edi, edi
je 0x14004d788
cmp dword [rsp + 0x18d8], 2
je 0x14004ece7
cmp r14d, 0x40000000
ja 0x14004eccc
mov eax, dword [rsp + 0x48]
lea esi, [rax + r14]
cmp esi, eax
jl 0x14004d226
mov rcx, qword [r12 + 8]
cmp ebp, esi
jb 0x14004e050
mov eax, dword [rsp + 0x48]
mov rdx, qword [rbx + 0xc0]
add rcx, rax
cmp qword [rbx + 0x10], 0
mov rax, qword [rbx + 0xc8]
je 0x14004d77b
mov r9, rax
sub r9, rdx
cmp r14d, r9d
jg 0x14004e39e
lea r8, [rdx + r14]
cmp rax, r8
jae 0x14004df88
lea rcx, [0x140158020]
lea rdi, str.Corrupt_PNG
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
test r13d, r13d
jne 0x14004d788
cmp r14d, 0x300
ja 0x14004d788
mov eax, 0xaaaaaaab
mov edi, r14d
imul rdi, rax
shr rdi, 0x21
lea eax, [rdi + rdi*2]
cmp eax, r14d
jne 0x14004d788
cmp eax, 2
jbe 0x14004e4ba
lea r15, [rbx + 0x39]
lea rcx, [rbx + 0x38]
mov dword [rsp + 0x60], ebp
xor r14d, r14d
mov rdx, qword [rbx + 0xc0]
mov qword [rsp + 0x18d0], r12
mov ebp, edi
mov r12, r15
mov rax, qword [rbx + 0xc8]
lea rsi, [rsp + 0x400]
mov r15, rcx
jmp 0x14004d86b
lea r8, [rdx + 1]
mov qword [rbx + 0xc0], r8
movzx edx, byte [rdx]
mov byte [rsi], dl
cmp r8, rax
jae 0x14004def0
lea rcx, [r8 + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [r8]
mov byte [rsi + 1], dl
cmp rcx, rax
jae 0x14004dea0
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx edi, byte [rcx]
add r14d, 1
mov byte [rsi + 2], dil
add rsi, 4
mov byte [rsi - 1], 0xff
cmp r14d, ebp
jae 0x14004de00
cmp rdx, rax
jb 0x14004d810
mov r9d, dword [rbx + 0x30]
test r9d, r9d
jne 0x14004d8e8
mov byte [rsi], 0
mov r8d, dword [rbx + 0x30]
test r8d, r8d
jne 0x14004d948
mov byte [rsi + 1], 0
mov ecx, dword [rbx + 0x30]
xor edi, edi
test ecx, ecx
je 0x14004d852
mov rdx, r15
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
mov rdx, r12
test eax, eax
jne 0x14004deb0
mov dword [rbx + 0x30], 0
mov rax, r12
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rax
mov qword [rbx + 0xc0], r12
jmp 0x14004d852
mov rdx, r15
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
call qword [rbx + 0x10]
mov edx, eax
mov rax, qword [rbx + 0xc0]
sub rax, qword [rbx + 0xd0]
add dword [rbx + 0xb8], eax
mov rax, r12
test edx, edx
jne 0x14004dec0
mov dword [rbx + 0x30], 0
mov r8d, dword [rbx + 0x30]
mov rdx, r12
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], r12
mov qword [rbx + 0xc0], r12
mov byte [rsi], 0
test r8d, r8d
je 0x14004d889
nop dword [rax + rax]
mov rdx, r15
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
mov rdx, r12
test eax, eax
jne 0x14004de78
mov dword [rbx + 0x30], 0
mov rax, r12
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], r12
mov qword [rbx + 0xc0], r12
mov byte [rsi + 1], 0
jmp 0x14004d88d
test r13d, r13d
jne 0x14004d788
test eax, 0x20000000
je 0x14004ecfc
test r14d, r14d
je 0x14004d648
js 0x14004e1c8
mov edx, r14d
mov rcx, rbx
call sym.stbi__skip_stbi__context__int___clone_part0_
jmp 0x14004d648
test r13d, r13d
je 0x14004d788
cmp r14d, 0xd
jne 0x14004d788
mov rcx, rbx
call sym.stbi__get32be_stbi__context_
mov rcx, rbx
mov dword [rbx], eax
call sym.stbi__get32be_stbi__context_
mov dword [rbx + 4], eax
cmp eax, 0x1000000
ja 0x14004ebf3
cmp dword [rbx], 0x1000000
ja 0x14004ebf3
mov rax, qword [rbx + 0xc0]
cmp rax, qword [rbx + 0xc8]
jae 0x14004df00
lea rdx, [rax + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rax]
mov edx, ecx
mov dword [r12 + 0x20], ecx
cmp dl, 0x10
ja 0x14004df16
mov eax, 0x10116
bt rax, rdx
jae 0x14004df16
mov rdx, qword [rbx + 0xc0]
mov rax, qword [rbx + 0xc8]
cmp rdx, rax
jae 0x14004e010
lea rcx, [rdx + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rdx]
mov dword [rsp + 0x5c], edx
mov esi, edx
cmp dword [rsp + 0x5c], 6
jg 0x14004d788
cmp dword [rsp + 0x5c], 3
je 0x14004e090
test sil, 1
jne 0x14004d788
cmp rcx, rax
jae 0x14004e291
lea rdx, [rcx + 1]
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rcx]
test cl, cl
jne 0x14004d788
cmp rdx, rax
jae 0x14004e2e9
lea rcx, [rdx + 1]
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rdx]
test dl, dl
jne 0x14004d788
cmp rcx, rax
jae 0x14004e341
lea rax, [rcx + 1]
mov qword [rbx + 0xc0], rax
movzx eax, byte [rcx]
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 1
jg 0x14004d788
mov r9d, dword [rbx]
test r9d, r9d
je 0x14004d788
mov ecx, dword [rbx + 4]
test ecx, ecx
je 0x14004d788
cmp byte [rsp + 0x58], 0
jne 0x14004e030
and esi, 2
mov eax, 3
mov r8d, dword [rsp + 0x5c]
cmovne r13d, eax
mov eax, 0x40000000
xor edx, edx
sar r8d, 2
div r9d
add r8d, r13d
xor edx, edx
mov dword [rbx + 8], r8d
div r8d
cmp eax, ecx
jb 0x14004ed89
xor r13d, r13d
jmp 0x14004d648
test r13d, r13d
jne 0x14004d788
mov esi, dword [rsp + 0x18d8]
test esi, esi
jne 0x14004ddf4
mov rdi, qword [r12 + 8]
test rdi, rdi
je 0x14004d788
mov eax, dword [rbx + 4]
mov ebp, dword [rbx]
mov edx, dword [rbx + 8]
imul ebp, dword [r12 + 0x20]
mov esi, dword [rsp + 0x68]
imul edx, eax
add ebp, 7
xor esi, 1
shr ebp, 3
imul ebp, edx
add ebp, eax
movsxd rbp, ebp
mov rcx, rbp
call sym.malloc
movq xmm1, rax
punpcklqdq xmm1, xmm1
test rax, rax
je 0x14004ec6d
movsxd r13, dword [rsp + 0x48]
add rax, rbp
movq xmm0, rdi
mov edx, esi
mov qword [rsp + 0x828], rax
lea rax, [rsp + 0x800]
add r13, rdi
mov rcx, rax
mov r15, rax
mov dword [rsp + 0x830], 1
movq xmm5, r13
movups xmmword [rsp + 0x818], xmm1
punpcklqdq xmm0, xmm5
movaps xmmword [rsp + 0x800], xmm0
call sym.stbi__parse_zlib_stbi__zbuf__int_
test eax, eax
je 0x14004ec60
mov rax, qword [rsp + 0x820]
mov rbp, qword [rsp + 0x818]
sub rbp, rax
mov qword [r12 + 0x10], rax
mov dword [rsp + 0xac], ebp
test rax, rax
je 0x14004d226
mov rcx, qword [r12 + 8]
call sym.free
mov qword [r12 + 8], 0
mov eax, dword [rbx + 8]
mov dword [rsp + 0xa0], eax
add eax, 1
cmp eax, dword [rsp + 0x18e0]
je 0x14004e48b
cmp byte [rsp + 0x6f], 0
cmove eax, dword [rsp + 0xa0]
mov dword [rsp + 0xa0], eax
mov r9d, eax
mov dword [rbx + 0xc], r9d
mov ecx, dword [r12 + 0x20]
lea eax, [r9 + r9]
mov rsi, qword [r12]
mov rdx, qword [r12 + 0x10]
cmp ecx, 0x10
mov r11d, dword [rsp + 0x50]
mov dword [rsp + 0xb8], ecx
cmovne eax, r9d
mov r10d, dword [rsi + 4]
mov edi, dword [rsi]
mov qword [rsp + 0xb0], rdx
mov r13d, eax
test r11d, r11d
jne 0x14004e4c1
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x30], ecx
mov r8d, ebp
mov rcx, r12
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x20], edi
call sym.stbi__create_png_image_raw_stbi__png__unsigned_char__unsigned_int__int__unsigned_int__unsigned_int__int__int_
test eax, eax
je 0x14004d226
cmp byte [rsp + 0x6f], 0
jne 0x14004e849
mov r10d, dword [rsp + 0x68]
test r10d, r10d
jne 0x14004ec0e
cmp byte [rsp + 0x58], 0
je 0x14004ddd9
movzx r13d, byte [rsp + 0x58]
cmp dword [rsp + 0x18e0], 3
mov dword [rbx + 8], r13d
cmovge r13d, dword [rsp + 0x18e0]
mov dword [rbx + 0xc], r13d
mov rax, qword [r12]
mov rsi, qword [r12 + 0x18]
mov ebp, dword [rax]
imul ebp, dword [rax + 4]
test ebp, ebp
js 0x14004ecb1
mov eax, 0x7fffffff
xor edx, edx
idiv r13d
cmp ebp, eax
jg 0x14004ecb1
mov ecx, r13d
imul ecx, ebp
movsxd rcx, ecx
call sym.malloc
mov rdi, rax
test rax, rax
je 0x14004ecb1
cmp r13d, 3
jne 0x14004ec7b
test ebp, ebp
je 0x14004ddcc
mov r8d, ebp
mov rcx, rsi
mov rdx, rax
add r8, rsi
movzx eax, byte [rcx]
add rcx, 1
add rdx, 3
shl eax, 2
cdqe
movzx r9d, word [rsp + rax + 0x400]
movzx eax, byte [rsp + rax + 0x402]
mov word [rdx - 3], r9w
mov byte [rdx - 1], al
cmp rcx, r8
jne 0x14004dd9e
mov rcx, rsi
call sym.free
mov qword [r12 + 0x18], rdi
mov rcx, qword [r12 + 0x10]
call sym.free
mov rcx, rbx
mov qword [r12 + 0x10], 0
call sym.stbi__get32be_stbi__context_
mov eax, 1
jmp 0x14004d228
mov edi, ebp
mov r12, qword [rsp + 0x18d0]
mov ebp, dword [rsp + 0x60]
jmp 0x14004d648
mov eax, dword [rbx + 0x30]
test eax, eax
je 0x14004d210
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea rcx, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
je 0x14004dff0
cdqe
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rbx + 0x38]
add rsi, rax
mov qword [rbx + 0xc8], rsi
jmp 0x14004d586
movzx edx, byte [rbx + 0x38]
cdqe
mov rcx, r12
mov qword [rbx + 0xc0], r12
add rax, r15
mov qword [rbx + 0xc8], rax
mov byte [rsi + 1], dl
cmp rcx, rax
jb 0x14004d844
nop
mov rdx, rcx
jmp 0x14004d88d
cdqe
movzx edi, byte [rbx + 0x38]
add rax, r15
jmp 0x14004d8d1
movsxd rax, edx
movzx edx, byte [rbx + 0x38]
mov r8, r12
mov qword [rbx + 0xc0], r12
add rax, r15
mov qword [rbx + 0xc8], rax
mov byte [rsi], dl
cmp r8, rax
jb 0x14004d829
nop word cs:[rax + rax]
mov rdx, r8
jmp 0x14004d87c
mov r15d, dword [rbx + 0x30]
test r15d, r15d
jne 0x14004e1f0
mov dword [r12 + 0x20], 0
lea rcx, [0x140158020]
lea rdi, str.PNG_not_supported:_1_2_4_8_16_bit_only
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
lea rsi, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
je 0x14004dfd0
cdqe
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rbx + 0x38]
add rax, rsi
mov qword [rbx + 0xc8], rax
jmp 0x14004d296
mov r8, r14
call sym.memcpy
add qword [rbx + 0xc0], r14
mov dword [rsp + 0x48], esi
jmp 0x14004d648
test eax, eax
jle 0x14004d6f9
xor r14d, r14d
lea rsi, [rsp + 0x39a]
mov rcx, rbx
call sym.stbi__get16be_stbi__context_
mov word [rsi + r14*2], ax
add r14, 1
cmp dword [rbx + 8], r14d
jg 0x14004dfb3
jmp 0x14004d6f9
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rdx
mov qword [rbx + 0xc0], rdx
jmp 0x14004d210
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rcx
mov qword [rbx + 0xc0], rcx
jmp 0x14004d210
mov eax, dword [rbx + 0x30]
xor esi, esi
mov dword [rsp + 0x5c], eax
test eax, eax
jne 0x14004e240
mov dword [rsp + 0x50], 0
jmp 0x14004db07
mov eax, 0x10000000
xor edx, edx
mov dword [rbx + 8], 1
div r9d
cmp eax, ecx
jae 0x14004db5c
jmp 0x14004d788
test ebp, ebp
jne 0x14004e068
mov ebp, 0x1000
cmp r14d, ebp
cmovae ebp, r14d
cmp ebp, esi
jae 0x14004e06e
nop dword [rax]
add ebp, ebp
cmp ebp, esi
jb 0x14004e068
mov edx, ebp
call sym.realloc
mov rcx, rax
test rax, rax
je 0x14004ecb1
mov qword [r12 + 8], rax
jmp 0x14004d750
cmp dword [r12 + 0x20], 0x10
je 0x14004d788
mov byte [rsp + 0x58], 3
mov esi, 3
jmp 0x14004daa3
cmp dword [rsp + 0x18d8], 2
je 0x14004f252
test edi, edi
je 0x14004d788
cmp edi, r14d
jb 0x14004d788
test r14d, r14d
je 0x14004e198
lea rsi, [rsp + 0x400]
lea rdx, [rbx + 0x38]
mov dword [rsp + 0x58], ebp
mov rax, qword [rbx + 0xc0]
lea r15, [rsi + r14*4]
lea r9, [rbx + 0x39]
mov dword [rsp + 0x60], edi
mov rcx, qword [rbx + 0xc8]
mov rdi, r15
mov rbp, r9
mov r15, rdx
jmp 0x14004e12f
lea rdx, [rax + 1]
mov qword [rbx + 0xc0], rdx
movzx r14d, byte [rax]
mov rax, rdx
mov byte [rsi + 3], r14b
add rsi, 4
cmp rsi, rdi
je 0x14004e190
cmp rax, rcx
jb 0x14004e110
mov edx, dword [rbx + 0x30]
xor r14d, r14d
test edx, edx
je 0x14004e122
mov rdx, r15
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
call qword [rbx + 0x10]
movsxd rdx, eax
mov rax, qword [rbx + 0xc0]
sub rax, qword [rbx + 0xd0]
add dword [rbx + 0xb8], eax
mov rax, rbp
test edx, edx
jne 0x14004e1e0
mov dword [rbx + 0x30], 0
mov rcx, rbp
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rcx
mov qword [rbx + 0xc0], rbp
jmp 0x14004e122
mov ebp, dword [rsp + 0x58]
mov edi, dword [rsp + 0x60]
mov byte [rsp + 0x58], 4
jmp 0x14004d648
mov rax, qword [rbx + 0xc8]
mov dword [rsp + 0x68], 1
mov qword [rbx + 0xc0], rax
jmp 0x14004d648
mov rax, qword [rbx + 0xc8]
mov qword [rbx + 0xc0], rax
jmp 0x14004d648
movzx r14d, byte [rbx + 0x38]
lea rcx, [r15 + rdx]
jmp 0x14004e178
lea rsi, [rbx + 0x38]
mov r8d, dword [rbx + 0x34]
mov rcx, qword [rbx + 0x28]
mov rdx, rsi
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea r8, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
jne 0x14004e3f0
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], r8
mov qword [rbx + 0xc0], r8
jmp 0x14004df0d
lea r14, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, r14
call qword [rbx + 0x10]
lea rcx, [rbx + 0x39]
mov edx, eax
mov dword [rsp + 0x5c], eax
mov rax, qword [rbx + 0xc0]
sub rax, qword [rbx + 0xd0]
add dword [rbx + 0xb8], eax
test edx, edx
jne 0x14004e40e
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rcx
mov qword [rbx + 0xc0], rcx
mov r14d, dword [rbx + 0x30]
test r14d, r14d
je 0x14004e021
lea r14, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, r14
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
jne 0x14004e433
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rdx
mov qword [rbx + 0xc0], rdx
mov r11d, dword [rbx + 0x30]
test r11d, r11d
je 0x14004e021
lea r14, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, r14
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
lea rcx, [rbx + 0x39]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
test eax, eax
jne 0x14004e44f
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rcx
mov qword [rbx + 0xc0], rcx
mov r10d, dword [rbx + 0x30]
test r10d, r10d
je 0x14004e021
lea r14, [rbx + 0x38]
mov rcx, qword [rbx + 0x28]
mov r8d, dword [rbx + 0x34]
mov rdx, r14
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc0]
sub rdx, qword [rbx + 0xd0]
add dword [rbx + 0xb8], edx
lea rdx, [rbx + 0x39]
test eax, eax
jne 0x14004e46b
mov dword [rbx + 0x30], 0
mov byte [rbx + 0x38], 0
mov qword [rbx + 0xc8], rdx
mov qword [rbx + 0xc0], rdx
jmp 0x14004e021
movsxd r8, r9d
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x48], r8
call sym.memcpy
mov r9, qword [rsp + 0x60]
mov r8, qword [rsp + 0x48]
mov rcx, qword [rbx + 0x28]
sub r14d, r9d
lea rdx, [rax + r8]
mov r8d, r14d
call qword [rbx + 0x10]
mov rdx, qword [rbx + 0xc8]
mov qword [rbx + 0xc0], rdx
cmp r14d, eax
je 0x14004df97
jmp 0x14004d788
movzx ecx, byte [rbx + 0x38]
cdqe
mov qword [rbx + 0xc0], r8
add rsi, rax
mov qword [rbx + 0xc8], rsi
mov edx, ecx
jmp 0x14004da3b
movsxd rax, dword [rsp + 0x5c]
movzx edx, byte [rbx + 0x38]
mov qword [rbx + 0xc0], rcx
add rax, r14
mov dword [rsp + 0x5c], edx
mov esi, edx
mov qword [rbx + 0xc8], rax
jmp 0x14004da83
cdqe
mov qword [rbx + 0xc0], rdx
movzx ecx, byte [rbx + 0x38]
add rax, r14
mov qword [rbx + 0xc8], rax
jmp 0x14004daba
cdqe
mov qword [rbx + 0xc0], rcx
movzx edx, byte [rbx + 0x38]
add rax, r14
mov qword [rbx + 0xc8], rax
jmp 0x14004dad9
movzx ecx, byte [rbx + 0x38]
cdqe
mov qword [rbx + 0xc0], rdx
add r14, rax
mov dword [rsp + 0x50], ecx
mov qword [rbx + 0xc8], r14
jmp 0x14004dafc
cmp dword [rsp + 0x18e0], 3
je 0x14004dc7c
cmp byte [rsp + 0x58], 0
jne 0x14004dc7c
mov eax, dword [rsp + 0x18e0]
mov dword [rsp + 0xa0], eax
mov r9d, eax
jmp 0x14004dc93
xor edi, edi
jmp 0x14004d648
xor r9d, r9d
mov edx, r10d
mov r8d, eax
mov ecx, edi
mov dword [rsp + 0x50], r10d
call sym.stbi__malloc_mad3_int__int__int__int_
mov r10d, dword [rsp + 0x50]
test rax, rax
mov qword [rsp + 0x48], rax
je 0x14004ecb1
lea rax, [rsp + 0x3a0]
mov rcx, rsi
mov qword [rsp + 0xc0], rbx
movdqa xmm13, xmmword [0x1401657a0]
mov qword [rsp + 0x88], rax
xor r14d, r14d
mov rsi, r15
lea rax, [rsp + 0x3e0]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x3c0]
movq xmm12, qword [0x1401657b0]
mov qword [rsp + 0x90], rax
movdqa xmm11, xmmword [0x1401657c0]
mov qword [rsp + 0x18d0], r12
movq xmm10, qword [0x1401657d0]
movdqa xmm9, xmmword [0x1401657e0]
movq xmm8, qword [0x140165730]
movdqa xmm7, xmmword [0x1401657f0]
movq xmm6, qword [0x140165838]
jmp 0x14004e59f
add r14, 4
cmp r14, 0x1c
je 0x14004e82a
mov rax, qword [rsp + 0x18d0]
mov rcx, qword [rax]
mov edi, dword [rcx]
mov r10d, dword [rcx + 4]
mov rax, qword [rsp + 0x88]
xor edx, edx
mov dword [rsp + 0x3b8], 0
movaps xmmword [rsp + 0x3a0], xmm13
movq qword [rsp + 0x3b0], xmm12
mov ebx, dword [rax + r14]
mov rax, qword [rsp + 0x98]
mov dword [rsp + 0x3f8], 1
movaps xmmword [rsp + 0x3e0], xmm9
movq qword [rsp + 0x3f0], xmm8
mov ebp, dword [rax + r14]
mov dword [rsp + 0x818], 2
lea eax, [rbp + rdi - 1]
movaps xmmword [rsp + 0x800], xmm7
movq qword [rsp + 0x810], xmm6
sub eax, ebx
mov r11d, dword [rsi + r14]
div ebp
mov dword [rsp + 0x3d8], 1
movaps xmmword [rsp + 0x3c0], xmm11
movq qword [rsp + 0x3d0], xmm10
xor edx, edx
mov edi, eax
mov rax, qword [rsp + 0x90]
mov r12d, dword [rax + r14]
lea eax, [r11 + r10 - 1]
sub eax, r12d
div r11d
mov r10d, eax
test edi, edi
je 0x14004e580
test eax, eax
je 0x14004e580
mov eax, dword [rcx + 8]
mov edx, dword [rsp + 0xb8]
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], edi
mov r9d, dword [rsp + 0xa0]
imul eax, edi
mov dword [rsp + 0x30], edx
mov r8d, dword [rsp + 0xac]
mov rcx, qword [rsp + 0x18d0]
mov dword [rsp + 0x60], r11d
mov dword [rsp + 0x50], r10d
imul eax, edx
mov rdx, qword [rsp + 0xb0]
add eax, 7
sar eax, 3
add eax, 1
imul eax, r10d
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x38], eax
call sym.stbi__create_png_image_raw_stbi__png__unsigned_char__unsigned_int__int__unsigned_int__unsigned_int__int__int_
test eax, eax
je 0x14004f430
mov rax, qword [rsp + 0x18d0]
mov r10d, dword [rsp + 0x50]
mov rcx, qword [rax + 0x18]
test r10d, r10d
jle 0x14004e80a
test edi, edi
jle 0x14004e80a
mov eax, edi
imul ebx, r13d
mov r11d, dword [rsp + 0x60]
mov dword [rsp + 0x50], edi
imul eax, r13d
mov qword [rsp + 0xc8], rcx
movsxd r15, r13d
imul ebp, r13d
mov dword [rsp + 0xa4], r11d
mov dword [rsp + 0xa8], r10d
cdqe
mov qword [rsp + 0xd0], r14
mov r14, r15
mov qword [rsp + 0x80], rax
movsxd rax, ebx
movsxd r8, ebp
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0xd8], rsi
mov edx, eax
mov rsi, r8
mov rax, rcx
nop
mov rdi, qword [rsp + 0x18d0]
mov dword [rsp + 0x60], edx
xor r15d, r15d
mov rbp, rax
mov qword [rsp + 0x70], rax
mov rax, r14
mov r14d, r15d
mov rbx, qword [rdi]
mov rdi, qword [rsp + 0x78]
mov r15, rdi
mov rdi, rbx
mov rbx, rax
nop
mov ecx, dword [rdi]
mov rax, qword [rsp + 0x48]
mov rdx, rbp
mov r8, rbx
add r14d, 1
add rbp, rbx
imul ecx, r13d
imul ecx, r12d
add rcx, r15
add r15, rsi
add rcx, rax
call sym.memcpy
cmp dword [rsp + 0x50], r14d
jne 0x14004e790
mov rdi, qword [rsp + 0x80]
mov rax, qword [rsp + 0x70]
mov r14, rbx
mov edx, dword [rsp + 0x60]
add rax, rdi
mov edi, dword [rsp + 0xa4]
add edx, 1
add r12d, edi
cmp dword [rsp + 0xa8], edx
jne 0x14004e760
mov rcx, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
call sym.free
mov eax, dword [rsp + 0xbc]
add qword [rsp + 0xb0], rax
sub dword [rsp + 0xac], eax
jmp 0x14004e580
mov r12, qword [rsp + 0x18d0]
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0xc0]
mov qword [r12 + 0x18], rax
jmp 0x14004dcfe
mov rdx, qword [r12]
mov r8d, dword [rbx + 0xc]
mov rax, qword [r12 + 0x18]
mov ecx, dword [rdx]
imul ecx, dword [rdx + 4]
cmp dword [r12 + 0x20], 0x10
je 0x14004ed22
cmp r8d, 2
je 0x14004e8bb
test ecx, ecx
je 0x14004ebd5
movzx r8d, byte [rsp + 0x397]
lea rdx, [rax + rcx*4]
movzx r9d, byte [rsp + 0x398]
movzx r10d, byte [rsp + 0x399]
jmp 0x14004e8a4
add rax, 4
cmp rdx, rax
je 0x14004ebd5
cmp byte [rax], r8b
jne 0x14004e897
cmp byte [rax + 1], r9b
jne 0x14004e897
cmp byte [rax + 2], r10b
jne 0x14004e897
mov byte [rax + 3], 0
jmp 0x14004e897
test ecx, ecx
je 0x14004ebd5
movzx r8d, byte [rsp + 0x397]
lea r10d, [rcx - 1]
cmp r10d, 0xf
jbe 0x14004f43f
movd xmm0, r8d
mov r9d, r10d
pxor xmm4, xmm4
mov rdx, rax
punpcklbw xmm0, xmm0
shr r9d, 4
movdqa xmm3, xmmword [0x140165470]
punpcklwd xmm0, xmm0
shl r9, 5
pshufd xmm1, xmm0, 0
add r9, rax
movdqu xmm0, xmmword [rdx]
movdqu xmm2, xmmword [rdx + 0x10]
add rdx, 0x20
pand xmm0, xmm3
pand xmm2, xmm3
packuswb xmm0, xmm2
pcmpeqb xmm0, xmm1
pcmpeqb xmm0, xmm4
movd r11d, xmm0
mov byte [rdx - 0x1f], r11b
movaps xmmword [rsp + 0x380], xmm0
movzx r11d, byte [rsp + 0x381]
mov byte [rdx - 0x1d], r11b
movaps xmmword [rsp + 0x370], xmm0
movzx r11d, byte [rsp + 0x372]
mov byte [rdx - 0x1b], r11b
movaps xmmword [rsp + 0x360], xmm0
movzx r11d, byte [rsp + 0x363]
mov byte [rdx - 0x19], r11b
movaps xmmword [rsp + 0x350], xmm0
movzx r11d, byte [rsp + 0x354]
mov byte [rdx - 0x17], r11b
movaps xmmword [rsp + 0x340], xmm0
movzx r11d, byte [rsp + 0x345]
mov byte [rdx - 0x15], r11b
movaps xmmword [rsp + 0x330], xmm0
movzx r11d, byte [rsp + 0x336]
mov byte [rdx - 0x13], r11b
movaps xmmword [rsp + 0x320], xmm0
movzx r11d, byte [rsp + 0x327]
mov byte [rdx - 0x11], r11b
movaps xmmword [rsp + 0x310], xmm0
movzx r11d, byte [rsp + 0x318]
mov byte [rdx - 0xf], r11b
movaps xmmword [rsp + 0x300], xmm0
movzx r11d, byte [rsp + 0x309]
mov byte [rdx - 0xd], r11b
movaps xmmword [rsp + 0x2f0], xmm0
movzx r11d, byte [rsp + 0x2fa]
mov byte [rdx - 0xb], r11b
movaps xmmword [rsp + 0x2e0], xmm0
movzx r11d, byte [rsp + 0x2eb]
mov byte [rdx - 9], r11b
movaps xmmword [rsp + 0x2d0], xmm0
movzx r11d, byte [rsp + 0x2dc]
mov byte [rdx - 7], r11b
movaps xmmword [rsp + 0x2c0], xmm0
movzx r11d, byte [rsp + 0x2cd]
mov byte [rdx - 5], r11b
movaps xmmword [rsp + 0x2b0], xmm0
movzx r11d, byte [rsp + 0x2be]
mov byte [rdx - 3], r11b
movaps xmmword [rsp + 0x2a0], xmm0
movzx r11d, byte [rsp + 0x2af]
mov byte [rdx - 1], r11b
cmp r9, rdx
jne 0x14004e909
mov r9d, r10d
and r9d, 0xfffffff0
mov edx, r9d
lea rdi, [rax + rdx*2]
sub r10d, r9d
cmp r10d, 7
jbe 0x14004eb3a
movq xmm1, qword [0x140165470]
mov r11d, r9d
and r10d, 0xfffffff8
add r11, r11
add r9d, r10d
lea rsi, [rax + r11]
lea r11, [rax + r11 + 1]
movzx eax, r8b
movq xmm0, qword [rsi]
movq xmm2, qword [rsi + 8]
mov ah, al
movd xmm4, eax
pand xmm0, xmm1
pand xmm1, xmm2
packuswb xmm0, xmm1
pshuflw xmm1, xmm4, 0
pshufd xmm0, xmm0, 8
pcmpeqb xmm0, xmm1
pxor xmm1, xmm1
pcmpeqb xmm0, xmm1
movq rax, xmm0
mov rsi, rax
movzx edx, ah
mov byte [r11], al
shr rsi, 0x10
mov byte [r11 + 2], dl
mov byte [r11 + 4], sil
mov rsi, rax
shr rsi, 0x18
mov byte [r11 + 6], sil
mov rsi, rax
shr rsi, 0x20
mov byte [r11 + 8], sil
mov rsi, rax
shr rsi, 0x28
mov byte [r11 + 0xa], sil
mov rsi, rax
shr rax, 0x38
shr rsi, 0x30
mov byte [r11 + 0xe], al
mov eax, r10d
mov byte [r11 + 0xc], sil
lea rdi, [rdi + rax*2]
cmp byte [rdi], r8b
setne al
neg eax
mov byte [rdi + 1], al
lea eax, [r9 + 1]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 2], r8b
setne al
neg eax
mov byte [rdi + 3], al
lea eax, [r9 + 2]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 4], r8b
setne al
neg eax
mov byte [rdi + 5], al
lea eax, [r9 + 3]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 6], r8b
setne al
neg eax
mov byte [rdi + 7], al
lea eax, [r9 + 4]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 8], r8b
setne al
neg eax
mov byte [rdi + 9], al
lea eax, [r9 + 5]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 0xa], r8b
setne al
neg eax
mov byte [rdi + 0xb], al
lea eax, [r9 + 6]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 0xc], r8b
setne al
neg eax
mov byte [rdi + 0xd], al
lea eax, [r9 + 7]
cmp eax, ecx
jae 0x14004ebd5
cmp byte [rdi + 0xe], r8b
setne al
neg eax
mov byte [rdi + 0xf], al
mov r8d, dword [rsp + 0x68]
test r8d, r8d
jne 0x14004ec0e
cmp byte [rsp + 0x58], 0
jne 0x14004dd22
add dword [rbx + 8], 1
jmp 0x14004ddd9
lea rcx, [0x140158020]
lea rdi, str.Very_large_image__corrupt__
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
lea rcx, [0x1401580e0]
call sym.__emutls_get_address
mov r9d, dword [rax]
test r9d, r9d
je 0x14004ed17
lea rcx, [0x1401580c0]
call sym.__emutls_get_address
mov eax, dword [rax]
test eax, eax
je 0x14004ec42
cmp dword [rbx + 0xc], 2
jg 0x14004eda4
cmp byte [rsp + 0x58], 0
jne 0x14004dd22
cmp byte [rsp + 0x6f], 0
jne 0x14004ebea
jmp 0x14004ddd9
mov rcx, qword [rsp + 0x820]
call sym.free
mov qword [r12 + 0x10], 0
jmp 0x14004d226
mov ecx, ebp
xor edx, edx
test ebp, ebp
je 0x14004ddcc
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
shl eax, 2
cdqe
mov eax, dword [rsp + rax + 0x400]
mov dword [rdi + rdx*4], eax
add rdx, 1
cmp rdx, rcx
jne 0x14004ec90
jmp 0x14004ddcc
lea rcx, [0x140158020]
lea rdi, str.Out_of_memory
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
lea rcx, [0x140158020]
lea rdi, str.IDAT_section_larger_than_230_bytes
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
movzx eax, byte [rsp + 0x58]
test al, al
je 0x14004ddf4
mov dword [rbx + 8], eax
jmp 0x14004ddf4
lea rcx, [0x140158020]
lea rdi, str.PNG_not_supported:_unknown_PNG_chunk_type
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
mov eax, dword [0x1401a51a0]
jmp 0x14004ec34
cmp r8d, 2
je 0x14004f25e
test ecx, ecx
je 0x14004ebd5
movzx r8d, word [rsp + 0x39a]
lea rdx, [rax + rcx*8]
movzx r10d, word [rsp + 0x39c]
movzx r9d, word [rsp + 0x39e]
jmp 0x14004ed62
add rax, 8
cmp rax, rdx
je 0x14004ebd5
cmp word [rax], r8w
jne 0x14004ed55
cmp word [rax + 2], r10w
jne 0x14004ed55
cmp word [rax + 4], r9w
jne 0x14004ed55
xor ecx, ecx
mov word [rax + 6], cx
jmp 0x14004ed55
add eax, 1
mov dword [rbx + 8], eax
jmp 0x14004ddf4
lea rcx, [0x140158020]
lea rdi, str.Image_too_large_to_decode
call sym.__emutls_get_address
mov qword [rax], rdi
jmp 0x14004d226
mov rax, qword [r12]
mov rdi, qword [r12 + 0x18]
mov esi, dword [rax]
imul esi, dword [rax + 4]
cmp dword [rax + 0xc], 3
je 0x14004f4cd
lea rcx, [0x1401580a0]
call sym.__emutls_get_address
mov rdx, rax
mov eax, dword [0x1401a51a4]
mov edx, dword [rdx]
test edx, edx
je 0x14004ede6
lea rcx, [0x140158080]
call sym.__emutls_get_address
mov eax, dword [rax]
test eax, eax
jne 0x14004f44a
test esi, esi
je 0x14004ec42
lea ecx, [rsi - 1]
mov rax, rdi
cmp ecx, 0xf
jbe 0x14004f504
mov edx, ecx
shr edx, 4
shl rdx, 6
add rdx, rdi
movdqu xmm3, xmmword [rax]
movdqu xmm2, xmmword [rax + 0x10]
add rax, 0x40
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rax - 0x20]
movaps xmmword [rsp + 0x290], xmm3
movzx r8d, byte [rsp + 0x292]
mov byte [rax - 0x40], r8b
movaps xmmword [rsp + 0x280], xmm3
movzx r8d, byte [rsp + 0x286]
mov byte [rax - 0x3c], r8b
movaps xmmword [rsp + 0x270], xmm3
movzx r8d, byte [rsp + 0x27a]
mov byte [rax - 0x38], r8b
movaps xmmword [rsp + 0x260], xmm3
movzx r8d, byte [rsp + 0x26e]
mov byte [rax - 0x34], r8b
movaps xmmword [rsp + 0x250], xmm2
movzx r8d, byte [rsp + 0x252]
mov byte [rax - 0x30], r8b
movaps xmmword [rsp + 0x240], xmm2
movzx r8d, byte [rsp + 0x246]
mov byte [rax - 0x2c], r8b
movaps xmmword [rsp + 0x230], xmm2
movzx r8d, byte [rsp + 0x23a]
mov byte [rax - 0x28], r8b
movaps xmmword [rsp + 0x220], xmm2
movzx r8d, byte [rsp + 0x22e]
mov byte [rax - 0x24], r8b
movaps xmmword [rsp + 0x210], xmm1
movzx r8d, byte [rsp + 0x212]
mov byte [rax - 0x20], r8b
movaps xmmword [rsp + 0x200], xmm1
movzx r8d, byte [rsp + 0x206]
mov byte [rax - 0x1c], r8b
movaps xmmword [rsp + 0x1f0], xmm1
movzx r8d, byte [rsp + 0x1fa]
mov byte [rax - 0x18], r8b
movaps xmmword [rsp + 0x1e0], xmm1
movzx r8d, byte [rsp + 0x1ee]
mov byte [rax - 0x14], r8b
movaps xmmword [rsp + 0x1d0], xmm0
movzx r8d, byte [rsp + 0x1d2]
mov byte [rax - 0x10], r8b
movaps xmmword [rsp + 0x1c0], xmm0
movzx r8d, byte [rsp + 0x1c6]
mov byte [rax - 0xc], r8b
movaps xmmword [rsp + 0x1b0], xmm0
movzx r8d, byte [rsp + 0x1ba]
mov byte [rax - 8], r8b
movaps xmmword [rsp + 0x1a0], xmm0
movzx r8d, byte [rsp + 0x1ae]
mov byte [rax - 4], r8b
movd r8d, xmm3
mov byte [rax - 0x3e], r8b
movaps xmmword [rsp + 0x190], xmm3
movzx r8d, byte [rsp + 0x194]
mov byte [rax - 0x3a], r8b
movaps xmmword [rsp + 0x180], xmm3
movzx r8d, byte [rsp + 0x188]
mov byte [rax - 0x36], r8b
movaps xmmword [rsp + 0x170], xmm3
movzx r8d, byte [rsp + 0x17c]
mov byte [rax - 0x32], r8b
movd r8d, xmm2
mov byte [rax - 0x2e], r8b
movaps xmmword [rsp + 0x160], xmm2
movzx r8d, byte [rsp + 0x164]
mov byte [rax - 0x2a], r8b
movaps xmmword [rsp + 0x150], xmm2
movzx r8d, byte [rsp + 0x158]
mov byte [rax - 0x26], r8b
movaps xmmword [rsp + 0x140], xmm2
movzx r8d, byte [rsp + 0x14c]
mov byte [rax - 0x22], r8b
movd r8d, xmm1
mov byte [rax - 0x1e], r8b
movaps xmmword [rsp + 0x130], xmm1
movzx r8d, byte [rsp + 0x134]
mov byte [rax - 0x1a], r8b
movaps xmmword [rsp + 0x120], xmm1
movzx r8d, byte [rsp + 0x128]
mov byte [rax - 0x16], r8b
movaps xmmword [rsp + 0x110], xmm1
movzx r8d, byte [rsp + 0x11c]
mov byte [rax - 0x12], r8b
movd r8d, xmm0
mov byte [rax - 0xe], r8b
movaps xmmword [rsp + 0x100], xmm0
movzx r8d, byte [rsp + 0x104]
mov byte [rax - 0xa], r8b
movaps xmmword [rsp + 0xf0], xmm0
movzx r8d, byte [rsp + 0xf8]
mov byte [rax - 6], r8b
movaps xmmword [rsp + 0xe0], xmm0
movzx r8d, byte [rsp + 0xec]
mov byte [rax - 2], r8b
cmp rdx, rax
jne 0x14004ee11
mov edx, ecx
and edx, 0xfffffff0
mov eax, edx
lea rax, [rdi + rax*4]
sub ecx, edx
mov r13d, ecx
cmp ecx, 7
jbe 0x14004f184
mov r8d, edx
shl r8, 2
lea rcx, [rdi + r8]
lea r8, [rdi + r8 + 2]
mov rdi, qword [rcx]
mov r11, qword [rcx + 8]
mov r10, qword [rcx + 0x10]
mov r9, qword [rcx + 0x18]
mov rbp, rdi
shr rbp, 0x10
mov qword [rsp + 0x48], r10
mov byte [rcx], bpl
mov rbp, rdi
shr rbp, 0x30
mov qword [rsp + 0x50], r9
mov byte [rcx + 4], bpl
mov rbp, r11
shr rbp, 0x10
mov byte [rcx + 8], bpl
mov rbp, r11
shr rbp, 0x30
mov byte [rcx + 0xc], bpl
mov rbp, r10
shr rbp, 0x10
mov byte [rcx + 0x10], bpl
mov rbp, r10
shr r10, 0x20
shr rbp, 0x30
mov byte [rcx + 0x14], bpl
mov rbp, r9
shr rbp, 0x10
mov byte [rcx + 0x18], bpl
mov rbp, r9
shr r9, 0x20
shr rbp, 0x30
mov byte [rcx + 0x1c], bpl
mov byte [r8], dil
shr rdi, 0x20
mov byte [r8 + 4], dil
movzx edi, byte [rsp + 0x48]
mov byte [r8 + 8], r11b
shr r11, 0x20
mov byte [r8 + 0x10], dil
movzx edi, byte [rsp + 0x50]
mov byte [r8 + 0xc], r11b
mov byte [r8 + 0x14], r10b
mov byte [r8 + 0x18], dil
mov byte [r8 + 0x1c], r9b
mov r8d, r13d
and r8d, 0xfffffff8
mov ecx, r8d
add edx, r8d
lea rax, [rax + rcx*4]
movzx ecx, byte [rax]
movzx r8d, byte [rax + 2]
mov byte [rax + 2], cl
lea ecx, [rdx + 1]
mov byte [rax], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 4]
movzx r8d, byte [rax + 6]
mov byte [rax + 6], cl
lea ecx, [rdx + 2]
mov byte [rax + 4], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 8]
movzx r8d, byte [rax + 0xa]
mov byte [rax + 0xa], cl
lea ecx, [rdx + 3]
mov byte [rax + 8], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 0xc]
movzx r8d, byte [rax + 0xe]
mov byte [rax + 0xe], cl
lea ecx, [rdx + 4]
mov byte [rax + 0xc], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 0x10]
movzx r8d, byte [rax + 0x12]
mov byte [rax + 0x12], cl
lea ecx, [rdx + 5]
mov byte [rax + 0x10], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 0x14]
movzx r8d, byte [rax + 0x16]
mov byte [rax + 0x16], cl
lea ecx, [rdx + 6]
mov byte [rax + 0x14], r8b
cmp ecx, esi
jae 0x14004ec42
movzx ecx, byte [rax + 0x18]
movzx r8d, byte [rax + 0x1a]
add edx, 7
mov byte [rax + 0x18], r8b
mov byte [rax + 0x1a], cl
cmp edx, esi
jae 0x14004ec42
movzx edx, byte [rax + 0x1c]
movzx ecx, byte [rax + 0x1e]
mov byte [rax + 0x1e], dl
mov byte [rax + 0x1c], cl
jmp 0x14004ec42
mov dword [rbx + 8], 4
jmp 0x14004ddf4
test ecx, ecx
je 0x14004ebd5
movzx r10d, word [rsp + 0x39a]
lea r9d, [rcx - 1]
cmp r9d, 7
jbe 0x14004f4f9
mov r8d, r9d
movd xmm0, r10d
pxor xmm3, xmm3
mov rdx, rax
shr r8d, 3
punpcklwd xmm0, xmm0
shl r8, 5
pshufd xmm1, xmm0, 0
add r8, rax
movdqu xmm4, xmmword [rdx + 0x10]
movdqu xmm0, xmmword [rdx]
add rdx, 0x20
movdqa xmm2, xmm0
punpcklwd xmm0, xmm4
punpckhwd xmm2, xmm4
movdqa xmm4, xmm0
punpckhwd xmm4, xmm2
punpcklwd xmm0, xmm2
punpcklwd xmm0, xmm4
pcmpeqw xmm0, xmm1
pcmpeqw xmm0, xmm3
movd r11d, xmm0
mov word [rdx - 0x1e], r11w
pextrw r11d, xmm0, 1
mov word [rdx - 0x1a], r11w
pextrw r11d, xmm0, 2
mov word [rdx - 0x16], r11w
pextrw r11d, xmm0, 3
mov word [rdx - 0x12], r11w
pextrw r11d, xmm0, 4
mov word [rdx - 0xe], r11w
pextrw r11d, xmm0, 5
mov word [rdx - 0xa], r11w
pextrw r11d, xmm0, 6
mov word [rdx - 6], r11w
pextrw r11d, xmm0, 7
mov word [rdx - 2], r11w
cmp rdx, r8
jne 0x14004f2a0
mov r8d, r9d
and r8d, 0xfffffff8
mov edx, r8d
lea rdx, [rax + rdx*4]
sub r9d, r8d
cmp r9d, 3
jbe 0x14004f3c7
mov esi, r8d
movd xmm4, r10d
and r9d, 0xfffffffc
shl rsi, 2
add r8d, r9d
lea r11, [rax + rsi]
lea rax, [rax + rsi + 2]
movq xmm0, qword [r11]
movq xmm1, qword [r11 + 8]
movdqa xmm2, xmm0
punpcklwd xmm0, xmm1
punpcklwd xmm2, xmm1
pshuflw xmm1, xmm4, 0
pshufd xmm2, xmm2, 0x4e
punpcklwd xmm0, xmm2
pcmpeqw xmm0, xmm1
pxor xmm1, xmm1
pcmpeqw xmm0, xmm1
pextrw r11d, xmm0, 0
mov word [rax], r11w
pextrw r11d, xmm0, 1
mov word [rax + 4], r11w
pextrw r11d, xmm0, 2
mov word [rax + 8], r11w
pextrw r11d, xmm0, 3
mov word [rax + 0xc], r11w
mov eax, r9d
lea rdx, [rdx + rax*4]
xor eax, eax
cmp word [rdx], r10w
setne al
neg eax
mov word [rdx + 2], ax
lea eax, [r8 + 1]
cmp eax, ecx
jae 0x14004ebd5
xor eax, eax
cmp word [rdx + 4], r10w
setne al
neg eax
mov word [rdx + 6], ax
lea eax, [r8 + 2]
cmp eax, ecx
jae 0x14004ebd5
xor eax, eax
cmp word [rdx + 8], r10w
setne al
add r8d, 3
neg eax
mov word [rdx + 0xa], ax
cmp r8d, ecx
jae 0x14004ebd5
xor eax, eax
cmp word [rdx + 0xc], r10w
setne al
neg eax
mov word [rdx + 0xe], ax
jmp 0x14004ebd5
mov rcx, qword [rsp + 0x48]
call sym.free
jmp 0x14004d226
mov rdi, rax
xor r9d, r9d
jmp 0x14004ea85
test esi, esi
je 0x14004ec42
lea r8, [rdi + rsi*4]
movzx ecx, byte [rdi + 3]
movzx r11d, byte [rdi]
movzx r10d, byte [rdi + 2]
test cl, cl
je 0x14004f4b7
movzx edx, byte [rdi + 1]
mov r9d, ecx
add rdi, 4
shr r9b, 1
mov eax, edx
movzx r9d, r9b
shl eax, 8
sub eax, edx
add eax, r9d
cdq
idiv ecx
mov byte [rdi - 3], al
mov eax, r11d
shl eax, 8
sub eax, r11d
add eax, r9d
cdq
idiv ecx
mov byte [rdi - 2], al
mov eax, r10d
shl eax, 8
sub eax, r10d
add eax, r9d
cdq
idiv ecx
mov byte [rdi - 4], al
cmp rdi, r8
jne 0x14004f456
jmp 0x14004ec42
mov byte [rdi + 2], r11b
add rdi, 4
mov byte [rdi - 4], r10b
cmp rdi, r8
jne 0x14004f456
jmp 0x14004ec42
test esi, esi
je 0x14004ec42
mov eax, esi
lea rax, [rax + rax*2]
add rax, rdi
movzx edx, byte [rdi]
movzx ecx, byte [rdi + 2]
add rdi, 3
mov byte [rdi - 3], cl
mov byte [rdi - 1], dl
cmp rdi, rax
jne 0x14004f4de
jmp 0x14004ec42
mov rdx, rax
xor r8d, r8d
jmp 0x14004f33f
xor edx, edx
jmp 0x14004f0ac