Function at 0x499f2a
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [0x530400]
xor eax, ebp
mov dword [ebp - 4], eax
xor edx, edx
mov dword [ebp - 0x418], 1
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x43c], edi
mov byte [ebp - 0x40d], dl
mov byte [ebp - 0x40e], dl
mov esi, dword [edi]
push esi
mov word [ebp - 0x428], dx
mov byte [ebp - 0x426], dl
mov dword [ebp - 0x420], edx
mov dword [ebp - 0x41c], edx
mov dword [ebp - 0x424], edx
mov dword [ebp - 0x434], edx
mov dword [ebp - 0x42c], edx
mov dword [ebp - 0x430], edx
mov dword [edi + 8], edx
mov dword [edi + 4], edx
mov dword [edi + 0xc], edx
call fcn.004940fd
pop ecx
test eax, eax
je 0x49a761
cmp dword [ebp + 0xc], 1
je 0x49a5a9
push esi
call fcn.0049603c
mov ebx, eax
pop ecx
cmp edx, 0x43674249
je 0x49a575
cmp edx, 0x49444154
je 0x49a4cc
cmp edx, 0x49454e44
je 0x49a60e
cmp edx, 0x49484452
je 0x49a2af
cmp edx, 0x504c5445
je 0x49a171
cmp edx, 0x74524e53
je 0x49a04a
cmp dword [ebp - 0x418], 0
jne 0x49a5c6
test edx, 0x20000000
jne 0x49a57f
mov eax, edx
mov byte [0x530373], dl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, edx
shr eax, 0x10
mov byte [0x530371], al
mov eax, edx
shr eax, 8
mov byte [0x530372], al
push str.XXXX_PNG_chunk_not_known
jmp 0x49a603
cmp dword [ebp - 0x418], 0
jne 0x49a5c6
cmp dword [edi + 4], 0
jne 0x49a5b8
cmp byte [ebp - 0x40d], 0
je 0x49a0fb
cmp dword [ebp + 0xc], 2
je 0x49a5a2
mov eax, dword [ebp - 0x424]
test eax, eax
je 0x49a59b
cmp ebx, eax
ja 0x49a594
xor edx, edx
mov byte [ebp - 0x40d], 4
mov dword [ebp - 0x414], edx
test ebx, ebx
je 0x49a588
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x49a0be
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a0e4
cmp dword [esi + 0x20], 0
je 0x49a0e2
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
mov edx, dword [ebp - 0x414]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a0e4
xor cl, cl
mov byte [ebp + edx*4 - 0x409], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, ebx
jb 0x49a0a5
jmp 0x49a588
mov ecx, dword [esi + 8]
test cl, 1
je 0x49a5b1
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x49a594
xor ebx, ebx
mov byte [ebp - 0x40e], 1
cmp dword [edi + 0x10], 0x10
jne 0x49a140
test ecx, ecx
jle 0x49a588
push esi
call fcn.00495f08
mov word [ebp + ebx*2 - 0xc], ax
inc ebx
pop ecx
cmp ebx, dword [esi + 8]
jl 0x49a129
jmp 0x49a588
test ecx, ecx
jle 0x49a588
push esi
call fcn.00495f08
pop ecx
mov ecx, dword [edi + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x50efb8]
imul eax, ecx
mov byte [ebp + ebx - 0x428], al
inc ebx
cmp ebx, dword [esi + 8]
jl 0x49a148
jmp 0x49a588
cmp dword [ebp - 0x418], 0
jne 0x49a5c6
cmp ebx, 0x300
ja 0x49a5bf
push 3
xor edx, edx
mov eax, ebx
pop ecx
div ecx
imul ecx, eax, 3
mov dword [ebp - 0x424], eax
cmp ecx, ebx
jne 0x49a5bf
and dword [ebp - 0x414], 0
test eax, eax
je 0x49a588
lea edi, [ebp - 0x40c]
lea ebx, [esi + 0x20]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x49a1d5
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a1ee
lea ebx, [esi + 0x20]
cmp dword [ebx], 0
je 0x49a1ec
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x49a1ca
xor cl, cl
mov edx, ebx
mov ebx, dword [ebp - 0x414]
mov dword [ebp - 0x438], edx
mov byte [edi + ebx*4], cl
cmp eax, dword [esi + 0xac]
jae 0x49a215
mov cl, byte [eax]
lea ebx, [esi + 0x20]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a23c
cmp dword [edx], 0
mov ebx, edx
je 0x49a23a
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
mov edx, dword [ebp - 0x438]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a23c
xor cl, cl
mov edi, dword [ebp - 0x414]
mov byte [ebp + edi*4 - 0x40b], cl
cmp eax, dword [esi + 0xac]
jae 0x49a25c
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a272
cmp dword [edx], 0
je 0x49a270
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x49a251
xor cl, cl
mov edx, dword [ebp - 0x414]
lea eax, [ebp - 0x40a]
lea edi, [ebp - 0x40c]
mov byte [eax + edx*4], cl
lea eax, [ebp - 0x409]
mov byte [eax + edx*4], 0xff
inc edx
mov dword [ebp - 0x414], edx
cmp edx, dword [ebp - 0x424]
jb 0x49a1bc
mov edi, dword [ebp - 0x43c]
jmp 0x49a588
cmp dword [ebp - 0x418], 0
je 0x49a5fe
and dword [ebp - 0x418], 0
cmp ebx, 0xd
jne 0x49a5f7
push esi
call fcn.00495ffc
mov ebx, 0x1000000
mov dword [esi], eax
pop ecx
cmp eax, ebx
ja 0x49a4c2
push esi
call fcn.00495ffc
mov dword [esi + 4], eax
pop ecx
cmp eax, ebx
ja 0x49a4c2
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x49a30d
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a324
cmp dword [esi + 0x20], 0
je 0x49a322
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x49a302
xor cl, cl
push 0x20
movzx eax, cl
mov ebx, esi
mov dword [edi + 0x10], eax
pop edx
mov dword [ebp - 0x414], edx
cmp eax, 1
je 0x49a352
cmp eax, 2
je 0x49a352
cmp eax, 4
je 0x49a352
cmp eax, 8
je 0x49a352
cmp eax, 0x10
jne 0x49a5cd
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x49a36b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a382
cmp dword [edx + ebx], 0
je 0x49a380
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x49a360
xor cl, cl
movzx ecx, cl
mov dword [ebp - 0x42c], ecx
cmp ecx, 6
ja 0x49a5f0
push 3
pop edx
cmp ecx, edx
jne 0x49a3ad
cmp dword [edi + 0x10], 0x10
je 0x49a5f0
mov byte [ebp - 0x40d], dl
jmp 0x49a3b6
test cl, 1
jne 0x49a5f0
cmp eax, dword [esi + 0xac]
jb 0x49a3d7
mov ecx, dword [ebp - 0x414]
cmp dword [ecx + ebx], 0
je 0x49a3ee
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
test cl, cl
jne 0x49a5d4
mov ecx, dword [ebp - 0x414]
cmp eax, dword [esi + 0xac]
jb 0x49a409
cmp dword [ecx + ebx], 0
je 0x49a420
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
test cl, cl
jne 0x49a5db
mov ecx, dword [ebp - 0x414]
cmp eax, dword [esi + 0xac]
jae 0x49a433
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x49a44a
cmp dword [ecx + ebx], 0
je 0x49a448
push esi
call fcn.0049caf3
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x49a428
xor cl, cl
movzx eax, cl
xor ecx, ecx
inc ecx
mov dword [ebp - 0x434], eax
cmp eax, ecx
ja 0x49a5e9
cmp dword [esi], 0
je 0x49a5e2
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x49a5e2
xor edx, edx
mov eax, 0x40000000
div dword [esi]
cmp byte [ebp - 0x40d], 0
jne 0x49a4b4
mov ecx, dword [ebp - 0x42c]
mov edx, ecx
shr edx, 2
and ecx, 2
and edx, 1
or ecx, 1
add ecx, edx
xor edx, edx
div ecx
mov dword [esi + 8], ecx
cmp eax, ebx
jb 0x49a4c2
cmp dword [ebp + 0xc], 2
je 0x49a5a9
jmp 0x49a588
shr eax, 2
mov dword [esi + 8], ecx
cmp eax, ebx
jae 0x49a588
push str.too_large
jmp 0x49a603
cmp dword [ebp - 0x418], 0
jne 0x49a5c6
mov al, byte [ebp - 0x40d]
test al, al
je 0x49a4f0
cmp dword [ebp - 0x424], 0
je 0x49a792
cmp dword [ebp + 0xc], 2
je 0x49a7b0
mov ecx, dword [ebp - 0x420]
lea eax, [ebx + ecx]
cmp eax, ecx
jl 0x49a761
mov ecx, dword [ebp - 0x41c]
cmp eax, ecx
jbe 0x49a551
test ecx, ecx
jne 0x49a52b
mov edx, 0x1000
cmp ebx, edx
mov ecx, edx
cmova ecx, ebx
mov dword [ebp - 0x41c], ecx
cmp eax, ecx
jbe 0x49a53b
add ecx, ecx
cmp eax, ecx
ja 0x49a52f
mov dword [ebp - 0x41c], ecx
push ecx
push dword [edi + 4]
call fcn.004dad5c
pop ecx
pop ecx
test eax, eax
je 0x49a79c
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
add eax, dword [ebp - 0x420]
push ebx
push eax
push esi
call fcn.004960e6
add esp, 0xc
test eax, eax
je 0x49a7a6
add dword [ebp - 0x420], ebx
jmp 0x49a588
mov dword [ebp - 0x430], 1
push ebx
push esi
call fcn.0049cf25
pop ecx
pop ecx
push esi
call fcn.00495ffc
pop ecx
jmp 0x499fb6
push str.bad_tRNS_len
jmp 0x49a603
push str.tRNS_before_PLTE
jmp 0x49a603
mov dword [esi + 8], 4
xor eax, eax
inc eax
jmp 0x49a763
push str.tRNS_with_alpha
jmp 0x49a603
push str.tRNS_after_IDAT
jmp 0x49a603
push str.invalid_PLTE
jmp 0x49a603
push str.first_not_IHDR
jmp 0x49a603
push str.1_2_4_8_16_bit_only
jmp 0x49a603
push str.bad_comp_method
jmp 0x49a603
push str.bad_filter_method
jmp 0x49a603
push str.0_pixel_image
jmp 0x49a603
push str.bad_interlace_method
jmp 0x49a603
push str.bad_ctype
jmp 0x49a603
push str.bad_IHDR_len
jmp 0x49a603
push str.multiple_IHDR
call fcn.00495d91
pop ecx
jmp 0x49a763
cmp dword [ebp - 0x418], 0
jne 0x49a5c6
cmp dword [ebp + 0xc], 0
jne 0x49a5a9
cmp dword [edi + 4], 0
jne 0x49a62a
push str.no_IDAT
jmp 0x49a603
mov ecx, dword [esi]
xor eax, eax
imul ecx, dword [edi + 0x10]
add ecx, 7
shr ecx, 3
imul ecx, dword [esi + 8]
inc ecx
imul ecx, dword [esi + 4]
cmp dword [ebp - 0x430], eax
sete al
push eax
lea eax, [ebp - 0x41c]
mov dword [ebp - 0x41c], ecx
push eax
push ecx
push dword [ebp - 0x420]
push dword [edi + 4]
call fcn.0049dcf5
add esp, 0x14
mov dword [edi + 8], eax
test eax, eax
je 0x49a761
push dword [edi + 4]
call fcn.004cdd14
and dword [edi + 4], 0
mov edx, dword [ebp + 0x10]
mov bl, byte [ebp - 0x40d]
pop ecx
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x49a69e
cmp edx, 3
je 0x49a69e
test bl, bl
je 0x49a6f1
mov bh, byte [ebp - 0x40e]
test bh, bh
jne 0x49a6aa
mov eax, ecx
mov ecx, dword [ebp - 0x434]
push ecx
push dword [ebp - 0x42c]
mov dword [esi + 0xc], eax
push dword [edi + 0x10]
push eax
push dword [ebp - 0x41c]
push dword [edi + 8]
push edi
call fcn.00494bf7
add esp, 0x1c
test eax, eax
je 0x49a761
test bh, bh
je 0x49a70d
cmp dword [edi + 0x10], 0x10
push dword [esi + 0xc]
jne 0x49a6f9
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.00494407
jmp 0x49a706
mov bh, byte [ebp - 0x40e]
jmp 0x49a6aa
lea eax, [ebp - 0x428]
push eax
push edi
call fcn.0049447b
add esp, 0xc
test eax, eax
je 0x49a761
cmp dword [ebp - 0x430], 0
je 0x49a72c
cmp dword [0x532e60], 0
je 0x49a72c
cmp dword [esi + 0xc], 2
jle 0x49a72c
push edi
call fcn.00495988
pop ecx
test bl, bl
je 0x49a772
mov ecx, dword [ebp + 0x10]
movzx eax, bl
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
cmp ecx, 3
jl 0x49a746
mov dword [esi + 0xc], ecx
mov eax, ecx
push eax
push dword [ebp - 0x424]
lea eax, [ebp - 0x40c]
push eax
push edi
call fcn.00495db0
add esp, 0x10
test eax, eax
jne 0x49a779
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004c6ee6
leave
ret
test bh, bh
je 0x49a779
inc dword [esi + 8]
push dword [edi + 8]
call fcn.004cdd14
and dword [edi + 8], 0
push esi
call fcn.00495ffc
pop ecx
pop ecx
jmp 0x49a5a9
push str.no_PLTE
jmp 0x49a603
push str.outofmem
jmp 0x49a603
push str.outofdata
jmp 0x49a603
movzx eax, al
mov dword [esi + 8], eax
jmp 0x49a5a9