Function at 0x1005a454
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [0x100e30c0]
xor eax, ebp
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x418], 1
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov dword [ebp - 0x43c], ebx
mov esi, dword [ebx]
push esi
mov byte [ebp - 0x40d], al
mov byte [ebp - 0x40e], al
mov word [ebp - 0x428], ax
mov byte [ebp - 0x426], al
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x42c], eax
mov dword [ebp - 0x430], eax
mov dword [ebx + 8], eax
mov dword [ebx + 4], eax
mov dword [ebx + 0xc], eax
call fcn.10054664
pop ecx
test eax, eax
je 0x1005ac7f
cmp dword [ebp + 0xc], 1
je 0x1005aac7
push esi
call fcn.1005657b
mov edi, eax
pop ecx
cmp edx, 0x43674249
je 0x1005aa93
cmp edx, 0x49444154
je 0x1005a9ea
cmp edx, 0x49454e44
je 0x1005ab2c
cmp edx, 0x49484452
je 0x1005a7cd
cmp edx, 0x504c5445
je 0x1005a69b
cmp edx, 0x74524e53
je 0x1005a574
cmp dword [ebp - 0x418], 0
jne 0x1005aae4
test edx, 0x20000000
jne 0x1005aa9d
mov eax, edx
mov byte [0x100e3043], dl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, edx
shr eax, 0x10
mov byte [0x100e3041], al
mov eax, edx
shr eax, 8
mov byte [0x100e3042], al
push str.XXXX_PNG_chunk_not_known
jmp 0x1005ab21
cmp dword [ebp - 0x418], 0
jne 0x1005aae4
cmp dword [ebx + 4], 0
jne 0x1005aad6
cmp byte [ebp - 0x40d], 0
je 0x1005a625
cmp dword [ebp + 0xc], 2
je 0x1005aac0
mov eax, dword [ebp - 0x424]
test eax, eax
je 0x1005aab9
cmp edi, eax
ja 0x1005aab2
xor edx, edx
mov byte [ebp - 0x40d], 4
mov dword [ebp - 0x414], edx
test edi, edi
je 0x1005aaa6
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x1005a5e8
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a60e
cmp dword [esi + 0x20], 0
je 0x1005a60c
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
mov edx, dword [ebp - 0x414]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a60e
xor cl, cl
mov byte [ebp + edx*4 - 0x409], cl
inc edx
mov dword [ebp - 0x414], edx
cmp edx, edi
jb 0x1005a5cf
jmp 0x1005aaa6
mov ecx, dword [esi + 8]
test cl, 1
je 0x1005aacf
lea eax, [ecx + ecx]
cmp edi, eax
jne 0x1005aab2
xor edi, edi
mov byte [ebp - 0x40e], 1
cmp dword [ebx + 0x10], 0x10
jne 0x1005a66a
test ecx, ecx
jle 0x1005aaa6
push esi
call fcn.10056447
mov word [ebp + edi*2 - 0xc], ax
inc edi
pop ecx
cmp edi, dword [esi + 8]
jl 0x1005a653
jmp 0x1005aaa6
test ecx, ecx
jle 0x1005aaa6
push esi
call fcn.10056447
pop ecx
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x100bc270]
imul eax, ecx
mov byte [ebp + edi - 0x428], al
inc edi
cmp edi, dword [esi + 8]
jl 0x1005a672
jmp 0x1005aaa6
cmp dword [ebp - 0x418], 0
jne 0x1005aae4
cmp edi, 0x300
ja 0x1005aadd
push 3
xor edx, edx
mov eax, edi
pop ecx
div ecx
imul ecx, eax, 3
mov dword [ebp - 0x424], eax
cmp ecx, edi
jne 0x1005aadd
and dword [ebp - 0x414], 0
test eax, eax
je 0x1005aaa6
lea edi, [esi + 0x20]
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x1005a6f9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a712
lea edi, [esi + 0x20]
cmp dword [edi], 0
je 0x1005a710
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x1005a6ee
xor cl, cl
mov edx, edi
mov edi, dword [ebp - 0x414]
mov dword [ebp - 0x438], edx
mov byte [ebp + edi*4 - 0x40c], cl
cmp eax, dword [esi + 0xac]
jae 0x1005a73d
mov cl, byte [eax]
lea edi, [esi + 0x20]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a764
cmp dword [edx], 0
mov edi, edx
je 0x1005a762
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
mov edx, dword [ebp - 0x438]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a764
xor cl, cl
mov ebx, dword [ebp - 0x414]
mov byte [ebp + ebx*4 - 0x40b], cl
cmp eax, dword [esi + 0xac]
jae 0x1005a784
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a79a
cmp dword [edx], 0
je 0x1005a798
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x1005a779
xor cl, cl
mov edx, dword [ebp - 0x414]
mov byte [ebp + edx*4 - 0x40a], cl
mov byte [ebp + edx*4 - 0x409], 0xff
inc edx
mov dword [ebp - 0x414], edx
cmp edx, dword [ebp - 0x424]
jb 0x1005a6e0
mov ebx, dword [ebp - 0x43c]
jmp 0x1005aaa6
cmp dword [ebp - 0x418], 0
je 0x1005ab1c
and dword [ebp - 0x418], 0
cmp edi, 0xd
jne 0x1005ab15
push esi
call fcn.1005653b
mov edi, 0x1000000
mov dword [esi], eax
pop ecx
cmp eax, edi
ja 0x1005a9e0
push esi
call fcn.1005653b
mov dword [esi + 4], eax
pop ecx
cmp eax, edi
ja 0x1005a9e0
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x1005a82b
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a842
cmp dword [esi + 0x20], 0
je 0x1005a840
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x1005a820
xor cl, cl
push 0x20
movzx eax, cl
mov edi, esi
mov dword [ebx + 0x10], eax
pop edx
mov dword [ebp - 0x414], edx
cmp eax, 1
je 0x1005a870
cmp eax, 2
je 0x1005a870
cmp eax, 4
je 0x1005a870
cmp eax, 8
je 0x1005a870
cmp eax, 0x10
jne 0x1005aaeb
mov eax, dword [esi + 0xa8]
cmp eax, dword [esi + 0xac]
jae 0x1005a889
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a8a0
cmp dword [edi + edx], 0
je 0x1005a89e
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x1005a87e
xor cl, cl
movzx ecx, cl
mov dword [ebp - 0x42c], ecx
cmp ecx, 6
ja 0x1005ab0e
push 3
pop edx
cmp ecx, edx
jne 0x1005a8cb
cmp dword [ebx + 0x10], 0x10
je 0x1005ab0e
mov byte [ebp - 0x40d], dl
jmp 0x1005a8d4
test cl, 1
jne 0x1005ab0e
cmp eax, dword [esi + 0xac]
jb 0x1005a8f5
mov ecx, dword [ebp - 0x414]
cmp dword [edi + ecx], 0
je 0x1005a90c
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
test cl, cl
jne 0x1005aaf2
mov ecx, dword [ebp - 0x414]
cmp eax, dword [esi + 0xac]
jb 0x1005a927
cmp dword [edi + ecx], 0
je 0x1005a93e
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
test cl, cl
jne 0x1005aaf9
mov ecx, dword [ebp - 0x414]
cmp eax, dword [esi + 0xac]
jae 0x1005a951
mov cl, byte [eax]
inc eax
mov dword [esi + 0xa8], eax
jmp 0x1005a968
cmp dword [edi + ecx], 0
je 0x1005a966
push esi
call fcn.1005d025
mov eax, dword [esi + 0xa8]
pop ecx
jmp 0x1005a946
xor cl, cl
movzx eax, cl
xor ecx, ecx
inc ecx
mov dword [ebp - 0x434], eax
cmp eax, ecx
ja 0x1005ab07
cmp dword [esi], 0
je 0x1005ab00
mov edi, dword [esi + 4]
test edi, edi
je 0x1005ab00
xor edx, edx
mov eax, 0x40000000
div dword [esi]
cmp byte [ebp - 0x40d], 0
jne 0x1005a9d2
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, edi
jb 0x1005a9e0
cmp dword [ebp + 0xc], 2
je 0x1005aac7
jmp 0x1005aaa6
shr eax, 2
mov dword [esi + 8], ecx
cmp eax, edi
jae 0x1005aaa6
push str.too_large
jmp 0x1005ab21
cmp dword [ebp - 0x418], 0
jne 0x1005aae4
mov al, byte [ebp - 0x40d]
test al, al
je 0x1005aa0e
cmp dword [ebp - 0x424], 0
je 0x1005acb5
cmp dword [ebp + 0xc], 2
je 0x1005acd3
mov ecx, dword [ebp - 0x420]
lea eax, [edi + ecx]
cmp eax, ecx
jl 0x1005ac7f
mov ecx, dword [ebp - 0x41c]
cmp eax, ecx
jbe 0x1005aa6f
test ecx, ecx
jne 0x1005aa49
mov edx, 0x1000
cmp edi, edx
mov ecx, edx
cmova ecx, edi
mov dword [ebp - 0x41c], ecx
cmp eax, ecx
jbe 0x1005aa59
add ecx, ecx
cmp eax, ecx
ja 0x1005aa4d
mov dword [ebp - 0x41c], ecx
push ecx
push dword [ebx + 4]
call fcn.1009bbdb
pop ecx
pop ecx
test eax, eax
je 0x1005acbf
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
add eax, dword [ebp - 0x420]
push edi
push eax
push esi
call fcn.10056625
add esp, 0xc
test eax, eax
je 0x1005acc9
add dword [ebp - 0x420], edi
jmp 0x1005aaa6
mov dword [ebp - 0x430], 1
push edi
push esi
call fcn.1005d457
pop ecx
pop ecx
push esi
call fcn.1005653b
pop ecx
jmp 0x1005a4e0
push str.bad_tRNS_len
jmp 0x1005ab21
push str.tRNS_before_PLTE
jmp 0x1005ab21
mov dword [esi + 8], 4
xor eax, eax
inc eax
jmp 0x1005ac81
push str.tRNS_with_alpha
jmp 0x1005ab21
push str.tRNS_after_IDAT
jmp 0x1005ab21
push str.invalid_PLTE
jmp 0x1005ab21
push str.first_not_IHDR
jmp 0x1005ab21
push str.1_2_4_8_16_bit_only
jmp 0x1005ab21
push str.bad_comp_method
jmp 0x1005ab21
push str.bad_filter_method
jmp 0x1005ab21
push str.0_pixel_image
jmp 0x1005ab21
push str.bad_interlace_method
jmp 0x1005ab21
push str.bad_ctype
jmp 0x1005ab21
push str.bad_IHDR_len
jmp 0x1005ab21
push str.multiple_IHDR
call fcn.100562d0
pop ecx
jmp 0x1005ac81
cmp dword [ebp - 0x418], 0
jne 0x1005aae4
cmp dword [ebp + 0xc], 0
jne 0x1005aac7
cmp dword [ebx + 4], 0
jne 0x1005ab48
push str.no_IDAT
jmp 0x1005ab21
mov ecx, dword [esi]
xor eax, eax
imul ecx, dword [ebx + 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 [ebx + 4]
call fcn.1005e222
add esp, 0x14
mov dword [ebx + 8], eax
test eax, eax
je 0x1005ac7f
push dword [ebx + 4]
call fcn.10093a72
and dword [ebx + 4], 0
mov edi, dword [ebp + 0x10]
pop ecx
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edi, eax
jne 0x1005abbb
cmp edi, 3
je 0x1005abbb
cmp byte [ebp - 0x40d], 0
je 0x1005abc6
cmp byte [ebp - 0x40e], 0
jne 0x1005abc6
mov eax, ecx
mov ecx, dword [ebp - 0x434]
push ecx
push dword [ebp - 0x42c]
mov dword [esi + 0xc], eax
push dword [ebx + 0x10]
push eax
push dword [ebp - 0x41c]
push dword [ebx + 8]
push ebx
call fcn.10055160
add esp, 0x1c
test eax, eax
je 0x1005ac7f
cmp byte [ebp - 0x40e], 0
je 0x1005ac26
cmp dword [ebx + 0x10], 0x10
push dword [esi + 0xc]
jne 0x1005ac12
lea eax, [ebp - 0xc]
push eax
push ebx
call fcn.1005496e
jmp 0x1005ac1f
lea eax, [ebp - 0x428]
push eax
push ebx
call fcn.100549e2
add esp, 0xc
test eax, eax
je 0x1005ac7f
cmp dword [ebp - 0x430], 0
je 0x1005ac45
cmp dword [0x100e5bc4], 0
je 0x1005ac45
cmp dword [esi + 0xc], 2
jle 0x1005ac45
push ebx
call fcn.10055ec7
pop ecx
mov al, byte [ebp - 0x40d]
test al, al
je 0x1005ac90
push 3
movzx eax, al
pop ecx
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
cmp edi, ecx
jl 0x1005ac64
mov dword [esi + 0xc], edi
mov eax, edi
push eax
push dword [ebp - 0x424]
lea eax, [ebp - 0x40c]
push eax
push ebx
call fcn.100562ef
add esp, 0x10
test eax, eax
jne 0x1005ac9c
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1008702a
leave
ret
cmp byte [ebp - 0x40e], 0
je 0x1005ac9c
inc dword [esi + 8]
push dword [ebx + 8]
call fcn.10093a72
and dword [ebx + 8], 0
push esi
call fcn.1005653b
pop ecx
pop ecx
jmp 0x1005aac7
push str.no_PLTE
jmp 0x1005ab21
push str.outofmem
jmp 0x1005ab21
push str.outofdata
jmp 0x1005ab21
movzx eax, al
mov dword [esi + 8], eax
jmp 0x1005aac7