Function at 0x10084f20
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1430
call fcn.100b68e0
mov eax, dword [0x103dda04]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
push esi
push edi
mov esi, dword [eax]
push esi
mov dword [ebp - 0x1400], eax
mov byte [ebp - 0x13f9], 0
mov byte [ebp - 0x1401], 0
mov word [ebp - 0x410], cx
mov byte [ebp - 0x40e], cl
mov dword [ebp - 0x141c], ecx
mov dword [ebp - 0x1420], ecx
mov dword [ebp - 0x1418], ecx
mov dword [ebp - 0x1414], 1
mov dword [ebp - 0x1408], ecx
mov dword [ebp - 0x1424], ecx
mov dword [ebp - 0x140c], ecx
mov dword [ebp - 0x1428], esi
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
call fcn.1007d9b0
add esp, 4
test eax, eax
je 0x10085c01
cmp dword [ebp + 0xc], 1
je 0x10085f13
nop word [eax + eax]
push esi
call fcn.1007feb0
push esi
mov ebx, eax
call fcn.1007feb0
shl ebx, 0x10
push esi
add ebx, eax
call fcn.1007feb0
push esi
mov edi, eax
call fcn.1007feb0
shl edi, 0x10
add esp, 0x10
lea ecx, [edi + eax]
mov dword [ebp - 0x142c], ecx
cmp ecx, 0x49484452
ja 0x100853e1
je 0x1008515b
cmp ecx, 0x43674249
je 0x10085123
cmp ecx, 0x49444154
je 0x1008505b
cmp ecx, 0x49454e44
jne 0x100853f9
cmp dword [ebp - 0x1414], 0
je 0x10085733
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.first_not_IHDR
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1414], 0
jne 0x1008502f
mov al, byte [ebp - 0x13f9]
test al, al
je 0x1008507b
cmp dword [ebp - 0x1418], 0
je 0x10085c7c
cmp dword [ebp + 0xc], 2
je 0x10085ce8
mov eax, dword [ebp - 0x141c]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x10085c01
mov eax, dword [ebp - 0x1420]
cmp edi, eax
jbe 0x100850e7
test eax, eax
jne 0x100850b4
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x1420], eax
cmp edi, eax
jbe 0x100850c4
add eax, eax
cmp edi, eax
ja 0x100850b8
mov dword [ebp - 0x1420], eax
push eax
mov eax, dword [ebp - 0x1400]
push dword [eax + 4]
call fcn.100bbf31
add esp, 8
test eax, eax
je 0x10085ca8
mov ecx, dword [ebp - 0x1400]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x1400]
push ebx
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x141c]
push eax
push esi
call fcn.100800d0
add esp, 0xc
test eax, eax
je 0x10085cbc
push esi
mov dword [ebp - 0x141c], edi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
mov dword [ebp - 0x140c], 1
test ebx, ebx
je 0x1008571f
jns 0x1008543c
mov eax, dword [esi + 0xb0]
push esi
mov dword [esi + 0xac], eax
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
cmp dword [ebp - 0x1414], 0
je 0x10085e38
mov dword [ebp - 0x1414], 0
cmp ebx, 0xd
jne 0x10085e0c
push esi
call fcn.1007feb0
push esi
mov edi, eax
call fcn.1007feb0
shl edi, 0x10
add eax, edi
push esi
mov dword [esi], eax
call fcn.1007feb0
push esi
mov edi, eax
call fcn.1007feb0
shl edi, 0x10
add esp, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x100853b5
cmp dword [esi], 0x1000000
ja 0x100853b5
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x100851d9
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100851fb
cmp dword [esi + 0x20], 0
je 0x100851f9
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100851fb
xor cl, cl
mov ebx, dword [ebp - 0x1400]
mov eax, esi
mov edx, 0x20
lea edi, [edx + eax]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x1008522e
cmp eax, 2
je 0x1008522e
cmp eax, 4
je 0x1008522e
cmp eax, 8
je 0x1008522e
cmp eax, 0x10
jne 0x10085d04
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x10085247
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085268
cmp dword [edi], 0
je 0x10085266
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085268
xor cl, cl
movzx ecx, cl
mov dword [ebp - 0x1424], ecx
cmp ecx, 6
ja 0x10085d30
cmp ecx, 3
jne 0x10085293
cmp dword [ebx + 0x10], 0x10
je 0x10085d30
mov bl, cl
mov byte [ebp - 0x13f9], bl
jmp 0x100852a2
test cl, 1
jne 0x10085d30
mov bl, byte [ebp - 0x13f9]
cmp eax, dword [esi + 0xb0]
jb 0x100852be
cmp dword [edi], 0
je 0x100852cf
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test cl, cl
jne 0x10085d5c
cmp eax, dword [esi + 0xb0]
jb 0x100852eb
cmp dword [edi], 0
je 0x100852fc
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test cl, cl
jne 0x10085d88
cmp eax, dword [esi + 0xb0]
jae 0x1008530f
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085330
cmp dword [edi], 0
je 0x1008532e
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085330
xor cl, cl
movzx eax, cl
mov dword [ebp - 0x1408], eax
cmp eax, 1
ja 0x10085de0
mov ecx, dword [esi]
test ecx, ecx
je 0x10085db4
mov edi, dword [esi + 4]
test edi, edi
je 0x10085db4
xor edx, edx
mov eax, 0x40000000
div ecx
test bl, bl
jne 0x100853a3
mov ecx, dword [ebp - 0x1424]
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 0x100853b5
cmp dword [ebp + 0xc], 2
je 0x10085f13
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jae 0x1008571f
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.too_large
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
cmp ecx, 0x504c5445
je 0x100855ea
cmp ecx, 0x74524e53
je 0x10085496
cmp dword [ebp - 0x1414], 0
jne 0x1008502f
test ecx, 0x20000000
je 0x10085e64
test ebx, ebx
je 0x1008571f
jns 0x1008543c
mov eax, dword [esi + 0xb0]
push esi
mov dword [esi + 0xac], eax
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
cmp dword [esi + 0x10], 0
je 0x1008547c
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x1008547c
sub ebx, eax
mov dword [esi + 0xac], ecx
mov eax, dword [esi + 0x14]
push ebx
push dword [esi + 0x1c]
call eax
add esp, 8
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
add dword [esi + 0xac], ebx
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
cmp dword [ebp - 0x1414], 0
jne 0x1008502f
mov eax, dword [ebp - 0x1400]
cmp dword [eax + 4], 0
jne 0x10085f55
cmp byte [ebp - 0x13f9], 0
je 0x1008554c
cmp dword [ebp + 0xc], 2
je 0x10085f0c
mov eax, dword [ebp - 0x1418]
test eax, eax
je 0x10085ee0
cmp ebx, eax
ja 0x10085eb4
xor edi, edi
mov byte [ebp - 0x13f9], 4
test ebx, ebx
je 0x1008571f
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x1008550a
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1008552c
cmp dword [esi + 0x20], 0
je 0x1008552a
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1008552c
xor cl, cl
mov byte [ebp + edi*4 - 0x409], cl
inc edi
cmp edi, ebx
jb 0x100854f1
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
mov ecx, dword [esi + 8]
test cl, 1
je 0x10085f29
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x10085eb4
mov ebx, dword [ebp - 0x1400]
xor edi, edi
mov byte [ebp - 0x1401], 1
cmp dword [ebx + 0x10], 0x10
jne 0x100855a8
test ecx, ecx
jle 0x1008571f
push esi
call fcn.1007feb0
mov word [ebp + edi*2 - 0xc], ax
add esp, 4
inc edi
cmp edi, dword [esi + 8]
jl 0x10085580
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
test ecx, ecx
jle 0x1008571f
push esi
call fcn.1007feb0
mov ecx, dword [ebx + 0x10]
add esp, 4
movzx eax, al
movzx ecx, byte [ecx + 0x10297ca4]
imul eax, ecx
mov byte [ebp + edi - 0x410], al
inc edi
cmp edi, dword [esi + 8]
jl 0x100855b0
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
cmp dword [ebp - 0x1414], 0
jne 0x1008502f
cmp ebx, 0x300
ja 0x10085f81
mov eax, 0xaaaaaaab
mul ebx
mov ecx, edx
shr ecx, 1
mov dword [ebp - 0x1418], ecx
lea eax, [ecx + ecx*2]
cmp eax, ebx
jne 0x10085f81
xor edx, edx
mov dword [ebp - 0x142c], edx
test ecx, ecx
je 0x1008571f
lea edi, [esi + 0x20]
mov eax, dword [esi + 0xac]
mov ebx, edi
cmp eax, dword [esi + 0xb0]
jae 0x1008564d
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085674
cmp dword [ebx], 0
je 0x10085672
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x10085674
xor cl, cl
mov byte [ebp + edx*4 - 0x40c], cl
cmp eax, dword [esi + 0xb0]
jae 0x10085691
mov cl, byte [eax]
lea edi, [esi + 0x20]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100856ba
cmp dword [ebx], 0
mov edi, ebx
je 0x100856b8
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100856ba
xor cl, cl
mov byte [ebp + edx*4 - 0x40b], cl
cmp eax, dword [esi + 0xb0]
jae 0x100856d4
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100856fd
cmp dword [ebx], 0
mov edi, ebx
je 0x100856fb
push esi
call fcn.10088d60
mov eax, dword [esi + 0xac]
add esp, 4
mov edx, dword [ebp - 0x142c]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x100856fd
xor cl, cl
mov byte [ebp + edx*4 - 0x40a], cl
mov byte [ebp + edx*4 - 0x409], 0xff
inc edx
mov dword [ebp - 0x142c], edx
cmp edx, dword [ebp - 0x1418]
jb 0x10085632
push esi
call fcn.1007feb0
push esi
call fcn.1007feb0
add esp, 8
jmp 0x10084fc0
cmp dword [ebp + 0xc], 0
jne 0x10085f13
mov eax, dword [ebp - 0x1400]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x10085776
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.no_IDAT
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov edi, dword [esi]
imul edi, dword [eax + 0x10]
add edi, 7
shr edi, 3
imul edi, dword [esi + 8]
inc edi
imul edi, dword [esi + 4]
push edi
call fcn.100bbf26
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10085c5c
mov eax, dword [ebp - 0x141c]
add eax, ebx
mov dword [ebp - 0x13f8], ebx
mov dword [ebp - 0x13f4], eax
lea eax, [ecx + edi]
mov dword [ebp - 0x13e0], eax
xor eax, eax
cmp dword [ebp - 0x140c], eax
mov dword [ebp - 0x13e4], ecx
sete al
mov dword [ebp - 0x13e8], ecx
push eax
lea eax, [ebp - 0x13f8]
mov dword [ebp - 0x13dc], 1
push eax
call fcn.100860e0
add esp, 8
test eax, eax
je 0x10085c4e
mov eax, dword [ebp - 0x13e4]
mov ebx, dword [ebp - 0x1400]
mov edi, dword [ebp - 0x13e8]
sub edi, eax
mov dword [ebx + 8], eax
test eax, eax
je 0x10085c01
push dword [ebx + 4]
call fcn.100bbf0b
mov edx, dword [ebp + 0x10]
add esp, 4
mov dword [ebx + 4], 0
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp edx, eax
jne 0x10085840
cmp edx, 3
je 0x10085840
cmp byte [ebp - 0x13f9], 0
je 0x1008584b
cmp byte [ebp - 0x1401], 0
jne 0x1008584b
mov eax, ecx
mov ecx, dword [ebp - 0x1408]
push ecx
mov ecx, dword [ebp - 0x1424]
push ecx
mov dword [esi + 0xc], eax
push dword [ebx + 0x10]
push eax
push edi
push dword [ebx + 8]
push ebx
call fcn.1007e660
add esp, 0x1c
test eax, eax
je 0x10085c01
cmp byte [ebp - 0x1401], 0
je 0x10085960
mov eax, dword [ebx]
mov ecx, dword [ebx + 0xc]
mov edx, dword [eax + 4]
imul edx, dword [eax]
cmp dword [ebx + 0x10], 0x10
jne 0x10085907
test edx, edx
je 0x10085960
cmp dword [esi + 0xc], 2
jne 0x100858cf
mov di, word [ebp - 0xc]
cmp word [ecx], di
lea ecx, [ecx + 4]
mov eax, 0xffff
mov dword [ebp - 0x1408], 0
cmove eax, dword [ebp - 0x1408]
mov word [ecx - 2], ax
sub edx, 1
jne 0x100858a5
jmp 0x10085960
mov ax, word [ebp - 8]
mov edi, dword [ebp - 0xa]
mov bx, word [ebp - 0xc]
nop word [eax + eax]
cmp word [ecx], bx
jne 0x100858f7
cmp word [ecx + 2], di
jne 0x100858f7
cmp word [ecx + 4], ax
jne 0x100858f7
xor esi, esi
mov word [ecx + 6], si
add ecx, 8
sub edx, 1
jne 0x100858e0
mov esi, dword [ebp - 0x1428]
jmp 0x1008595a
test edx, edx
je 0x10085960
cmp dword [esi + 0xc], 2
jne 0x1008592b
mov bl, byte [ebp - 0x410]
cmp byte [ecx], bl
lea ecx, [ecx + 2]
sete al
dec al
mov byte [ecx - 1], al
sub edx, 1
jne 0x10085917
jmp 0x1008595a
mov al, byte [ebp - 0x40e]
mov bl, byte [ebp - 0x40f]
mov ah, byte [ebp - 0x410]
nop dword [eax]
cmp byte [ecx], ah
jne 0x10085952
cmp byte [ecx + 1], bl
jne 0x10085952
cmp byte [ecx + 2], al
jne 0x10085952
mov byte [ecx + 3], 0
add ecx, 4
sub edx, 1
jne 0x10085940
mov ebx, dword [ebp - 0x1400]
cmp dword [ebp - 0x140c], 0
je 0x10085aa5
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
mov ecx, dword [eax + ecx*4]
cmp dword [ecx + 0x10], 0
je 0x1008598d
mov eax, dword [ecx + 0x14]
jmp 0x10085992
mov eax, dword [0x103e893c]
test eax, eax
je 0x10085aa5
cmp dword [esi + 0xc], 2
mov edi, dword [ebp - 0x1400]
jle 0x10085aab
mov eax, dword [ebx]
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x140c], edx
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
cmp dword [eax + 0xc], 3
mov dword [ebp - 0x1408], ebx
jne 0x100859e8
test ebx, ebx
je 0x10085aab
nop
mov cl, byte [edx]
lea edx, [edx + 3]
mov al, byte [edx - 1]
mov byte [edx - 3], al
mov byte [edx - 1], cl
sub ebx, 1
jne 0x100859d0
jmp 0x10085aab
cmp dword [ecx + 0x18], 0
je 0x100859f9
mov eax, dword [ecx + 0x1c]
jmp 0x100859fe
mov eax, dword [0x103e8938]
test ebx, ebx
je 0x10085aab
test eax, eax
je 0x10085b00
nop
mov ah, byte [edx + 3]
mov al, byte [edx]
mov cl, byte [edx + 2]
mov byte [ebp - 0x1402], al
mov byte [ebp - 0x140d], cl
test ah, ah
je 0x10085a88
movzx ebx, ah
movzx eax, byte [edx + 1]
mov edi, ebx
imul eax, eax, 0xff
xor edx, edx
shr edi, 1
mov ecx, dword [ebp - 0x140c]
add eax, edi
div ebx
xor edx, edx
mov byte [ecx + 1], al
movzx eax, byte [ebp - 0x1402]
imul eax, eax, 0xff
movzx ecx, byte [ebp - 0x140d]
add eax, edi
div ebx
xor edx, edx
mov byte [ebp - 0x1402], al
imul eax, ecx, 0xff
add eax, edi
div ebx
mov edx, dword [ebp - 0x140c]
mov ebx, dword [ebp - 0x1408]
mov cl, al
mov al, byte [ebp - 0x1402]
mov byte [edx], cl
mov byte [edx + 2], al
add edx, 4
sub ebx, 1
mov dword [ebp - 0x140c], edx
mov dword [ebp - 0x1408], ebx
jne 0x10085a10
mov edi, dword [ebp - 0x1400]
mov al, byte [ebp - 0x13f9]
test al, al
je 0x10085c14
movzx edi, al
mov eax, dword [ebp + 0x10]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
cmp eax, 3
jl 0x10085acf
mov dword [esi + 0xc], eax
mov edi, eax
mov ecx, dword [ebp - 0x1400]
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1408], eax
test ebx, ebx
js 0x10085be8
test edi, edi
js 0x10085be8
mov ecx, edi
jne 0x10085b15
imul ecx, ebx
jmp 0x10085b28
mov cl, byte [edx]
lea edx, [edx + 4]
mov al, byte [edx - 2]
mov byte [edx - 4], al
mov byte [edx - 2], cl
sub ebx, 1
jne 0x10085b00
jmp 0x10085aab
mov eax, SysReAllocString
imul ecx, ebx
cdq
idiv edi
cmp ebx, eax
jg 0x10085be8
push ecx
call fcn.100bbf26
add esp, 4
mov dword [ebp - 0x140c], eax
test eax, eax
je 0x10085be8
cmp edi, 3
jne 0x10085b83
xor edi, edi
test ebx, ebx
je 0x10085bcc
mov esi, dword [ebp - 0x1408]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 3]
inc edi
mov al, byte [ebp + ecx*4 - 0x40c]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x40b]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x40a]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10085b57
jmp 0x10085bc6
xor edi, edi
test ebx, ebx
je 0x10085bcc
mov esi, dword [ebp - 0x1408]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
mov al, byte [ebp + ecx*4 - 0x40c]
mov byte [edx - 6], al
mov al, byte [ebp + ecx*4 - 0x40b]
mov byte [edx - 5], al
mov al, byte [ebp + ecx*4 - 0x40a]
mov byte [edx - 4], al
mov al, byte [ebp + ecx*4 - 0x409]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x10085b92
mov esi, dword [ebp - 0x1428]
mov edi, dword [ebp - 0x1400]
push dword [edi + 0xc]
call fcn.100bbf0b
mov eax, dword [ebp - 0x140c]
add esp, 4
mov dword [edi + 0xc], eax
jmp 0x10085c20
mov eax, dword [0x103e91b0]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov dword [eax + 0xc], str.outofmem
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x1401], 0
je 0x10085c20
inc dword [esi + 8]
push dword [edi + 8]
call fcn.100bbf0b
push esi
mov dword [edi + 8], 0
call fcn.1007ffd0
add esp, 8
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x13e4]
call fcn.100bbf0b
add esp, 4
mov eax, dword [ebp - 0x1400]
pop edi
pop esi
pop ebx
mov dword [eax + 8], 0
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.no_PLTE
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
jmp 0x10085bf7
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.outofdata
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
movzx eax, al
pop edi
mov dword [esi + 8], eax
mov eax, 1
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.1_2_4_8_16_bit_only
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_ctype
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_comp_method
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_filter_method
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.0_pixel_image
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_interlace_method
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_IHDR_len
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.multiple_IHDR
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x103dd893], cl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x103dd891], al
mov eax, ecx
mov ecx, dword [0x103e91b0]
shr eax, 8
mov byte [0x103dd892], al
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.XXXX_PNG_chunk_not_known
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.bad_tRNS_len
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.tRNS_before_PLTE
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov dword [esi + 8], 4
pop edi
pop esi
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.tRNS_with_alpha
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov dword [eax + 0xc], str.tRNS_after_IDAT
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100b684e
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x103e91b0]
mov eax, dword fs:[0x2c]
pop edi
pop esi
pop ebx
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov dword [eax + 0xc], str.invalid_PLTE
xor eax, eax
call fcn.100b684e
mov esp, ebp
pop ebp
ret