Function at 0x1004e630
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1440
call fcn.100ce850
mov eax, dword [0x1019d128]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, ecx
mov byte [ebp - 0x1405], 0
xor ecx, ecx
mov dword [ebp - 0x140c], eax
push ebx
push esi
mov esi, dword [eax]
mov word [ebp - 0x418], cx
mov byte [ebp - 0x416], cl
mov dword [ebp - 0x1428], ecx
mov dword [ebp - 0x142c], ecx
mov dword [ebp - 0x1424], ecx
mov dword [ebp - 0x1418], ecx
mov dword [ebp - 0x1438], ecx
mov dword [ebp - 0x141c], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], ecx
mov dword [eax + 0xc], ecx
mov ecx, esi
push edi
mov byte [ebp - 0x140d], 0
mov dword [ebp - 0x1414], 1
mov dword [ebp - 0x143c], esi
call fcn.1004d240
test eax, eax
je 0x1004fa63
nop dword [eax]
mov ecx, esi
call fcn.100461b0
mov ecx, esi
mov ebx, eax
call fcn.100461b0
shl ebx, 0x10
mov ecx, esi
add ebx, eax
call fcn.100461b0
mov ecx, esi
mov edi, eax
call fcn.100461b0
shl edi, 0x10
lea ecx, [edi + eax]
mov dword [ebp - 0x1430], ecx
cmp ecx, 0x49484452
ja 0x1004ec32
je 0x1004e853
cmp ecx, 0x43674249
je 0x1004e81c
cmp ecx, 0x49444154
je 0x1004e75c
cmp ecx, 0x49454e44
jne 0x1004ec4a
cmp dword [ebp - 0x1414], 0
je 0x1004f0bd
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149308
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1414], 0
jne 0x1004f632
cmp byte [ebp - 0x1405], 0
je 0x1004e77f
cmp dword [ebp - 0x1424], 0
je 0x1004f5ae
mov eax, dword [ebp - 0x1428]
lea edi, [ebx + eax]
cmp edi, eax
jl 0x1004fa63
mov eax, dword [ebp - 0x142c]
cmp edi, eax
jbe 0x1004e7e1
test eax, eax
jne 0x1004e7ae
mov eax, 0x1000
cmp ebx, eax
cmova eax, ebx
mov dword [ebp - 0x142c], eax
cmp edi, eax
jbe 0x1004e7be
add eax, eax
cmp edi, eax
ja 0x1004e7b2
mov dword [ebp - 0x142c], eax
push eax
mov eax, dword [ebp - 0x140c]
push dword [eax + 4]
call fcn.100da61c
add esp, 8
test eax, eax
je 0x1004f5da
mov ecx, dword [ebp - 0x140c]
mov dword [ecx + 4], eax
mov eax, dword [ebp - 0x140c]
mov ecx, esi
push ebx
mov edx, dword [eax + 4]
add edx, dword [ebp - 0x1428]
call fcn.10046110
add esp, 4
test eax, eax
je 0x1004f606
mov ecx, esi
mov dword [ebp - 0x1428], edi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
mov dword [ebp - 0x141c], 1
test ebx, ebx
je 0x1004f0aa
jns 0x1004ec8c
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
cmp dword [ebp - 0x1414], 0
je 0x1004f842
mov dword [ebp - 0x1414], 0
cmp ebx, 0xd
jne 0x1004f816
mov ecx, esi
call fcn.100461b0
mov ecx, esi
mov edi, eax
call fcn.100461b0
shl edi, 0x10
mov ecx, esi
add eax, edi
mov dword [esi], eax
call fcn.100461b0
mov ecx, esi
mov edi, eax
call fcn.100461b0
shl edi, 0x10
add eax, edi
mov dword [esi + 4], eax
cmp eax, 0x1000000
ja 0x1004f7ea
cmp dword [esi], 0x1000000
ja 0x1004f7be
mov eax, dword [esi + 0xac]
lea edi, [esi + 0x20]
cmp eax, dword [esi + 0xb0]
jae 0x1004e8d5
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004e937
cmp dword [edi], 0
je 0x1004e935
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x1004e91d
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [ebx + 1]
mov byte [ebx], 0
mov cl, byte [ebx]
mov dword [esi + 0xac], eax
jmp 0x1004e937
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [ebx + 1]
mov cl, byte [ebx]
mov dword [esi + 0xac], eax
jmp 0x1004e937
xor cl, cl
mov ebx, dword [ebp - 0x140c]
movzx eax, cl
mov dword [ebx + 0x10], eax
cmp eax, 1
je 0x1004e960
cmp eax, 2
je 0x1004e960
cmp eax, 4
je 0x1004e960
cmp eax, 8
je 0x1004e960
cmp eax, 0x10
jne 0x1004f65e
mov eax, dword [esi + 0xac]
mov ecx, dword [esi + 0xb0]
cmp eax, ecx
jae 0x1004e97b
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004e9e1
cmp dword [edi], 0
je 0x1004e9df
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1004e9bd
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1004e9c8
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [ebp - 0x140c]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004e9e1
xor dl, dl
movzx edx, dl
mov dword [ebp - 0x1438], edx
cmp edx, 6
ja 0x1004f792
cmp edx, 3
jne 0x1004ea0a
cmp dword [ebx + 0x10], 0x10
je 0x1004f68a
mov byte [ebp - 0x1405], dl
jmp 0x1004ea13
test dl, 1
jne 0x1004f766
cmp eax, ecx
jb 0x1004ea6e
cmp dword [edi], 0
je 0x1004eb68
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1004ea5d
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1004ea68
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x1004f6b6
cmp eax, ecx
jb 0x1004eada
cmp dword [edi], 0
je 0x1004eb68
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1004eac9
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1004ead4
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
test dl, dl
jne 0x1004f6e2
cmp eax, ecx
jae 0x1004eafa
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004eb6a
cmp dword [edi], 0
je 0x1004eb68
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1004eb4c
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ebx], 0
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004eb6a
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004eb6a
xor cl, cl
movzx eax, cl
mov dword [ebp - 0x1418], eax
cmp eax, 1
ja 0x1004f73a
mov ecx, dword [esi]
test ecx, ecx
je 0x1004f70e
mov edi, dword [esi + 4]
test edi, edi
je 0x1004f70e
xor edx, edx
mov eax, 0x40000000
div ecx
cmp byte [ebp - 0x1405], 0
jne 0x1004ebf4
mov ecx, dword [ebp - 0x1438]
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
jae 0x1004f0aa
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149224
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
shr eax, 2
mov dword [esi + 8], 1
cmp eax, edi
jae 0x1004f0aa
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x1014927c
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
cmp ecx, 0x504c5445
je 0x1004ee8a
cmp ecx, 0x74524e53
je 0x1004ece4
cmp dword [ebp - 0x1414], 0
jne 0x1004f8be
test ecx, 0x20000000
je 0x1004f86e
test ebx, ebx
je 0x1004f0aa
jns 0x1004ec8c
mov eax, dword [esi + 0xb0]
mov ecx, esi
mov dword [esi + 0xac], eax
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
cmp dword [esi + 0x10], 0
je 0x1004eccb
mov ecx, dword [esi + 0xb0]
mov eax, ecx
sub eax, dword [esi + 0xac]
cmp eax, ebx
jge 0x1004eccb
sub ebx, eax
mov dword [esi + 0xac], ecx
mov eax, dword [esi + 0x14]
push ebx
push dword [esi + 0x1c]
call eax
add esp, 8
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
add dword [esi + 0xac], ebx
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
cmp dword [ebp - 0x1414], 0
jne 0x1004f9c6
mov eax, dword [ebp - 0x140c]
cmp dword [eax + 4], 0
jne 0x1004f99a
cmp byte [ebp - 0x1405], 0
je 0x1004edf2
mov edi, dword [ebp - 0x1424]
test edi, edi
je 0x1004f916
cmp ebx, edi
ja 0x1004f8ea
xor edx, edx
mov byte [ebp - 0x1405], 4
mov dword [ebp - 0x1430], edx
test ebx, ebx
je 0x1004f0aa
nop dword [eax + eax]
mov eax, dword [esi + 0xac]
cmp eax, dword [esi + 0xb0]
jae 0x1004ed59
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
jmp 0x1004edc9
cmp dword [esi + 0x20], 0
je 0x1004edc7
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea edi, [esi + 0x28]
push edi
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
test eax, eax
jne 0x1004eda9
mov edx, dword [ebp - 0x1430]
mov dword [esi + 0x20], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
lea eax, [edi + 1]
mov byte [edi], 0
mov cl, byte [edi]
mov dword [esi + 0xac], eax
jmp 0x1004edc9
mov edx, dword [ebp - 0x1430]
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
lea eax, [edi + 1]
mov cl, byte [edi]
mov dword [esi + 0xac], eax
jmp 0x1004edc9
xor cl, cl
mov byte [ebp + edx*4 - 0x411], cl
inc edx
mov dword [ebp - 0x1430], edx
cmp edx, ebx
jb 0x1004ed40
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
mov ecx, dword [esi + 8]
test cl, 1
je 0x1004f96e
lea eax, [ecx + ecx]
cmp ebx, eax
jne 0x1004f942
mov ebx, dword [ebp - 0x140c]
xor edi, edi
mov byte [ebp - 0x140d], 1
cmp dword [ebx + 0x10], 0x10
jne 0x1004ee4b
test ecx, ecx
jle 0x1004f0aa
mov ecx, esi
call fcn.100461b0
mov word [ebp + edi*2 - 0x10], ax
inc edi
cmp edi, dword [esi + 8]
jl 0x1004ee26
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
test ecx, ecx
jle 0x1004f0aa
mov ecx, esi
call fcn.100461b0
mov ecx, dword [ebx + 0x10]
movzx eax, al
movzx ecx, byte [ecx + 0x10149c0c]
imul eax, ecx
mov byte [ebp + edi - 0x418], al
inc edi
cmp edi, dword [esi + 8]
jl 0x1004ee53
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
cmp dword [ebp - 0x1414], 0
jne 0x1004fa4a
cmp ebx, 0x300
ja 0x1004fa1e
mov eax, 0xaaaaaaab
mul ebx
mov edi, edx
shr edi, 1
mov dword [ebp - 0x1424], edi
lea eax, [edi + edi*2]
cmp eax, ebx
jne 0x1004f9f2
xor edx, edx
mov dword [ebp - 0x1430], edx
test edi, edi
je 0x1004f0aa
lea eax, [esi + 0x20]
mov ecx, dword [esi + 0xb0]
mov edi, eax
mov eax, dword [esi + 0xac]
cmp eax, ecx
jb 0x1004ef3b
cmp dword [edi], 0
je 0x1004ef71
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x28]
push ebx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], ebx
test eax, eax
jne 0x1004ef2a
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [ebx], al
jmp 0x1004ef35
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov ebx, dword [ebp - 0x1430]
mov dl, byte [eax]
inc eax
shl ebx, 2
mov dword [esi + 0xac], eax
mov byte [ebp + ebx - 0x414], dl
cmp eax, ecx
jae 0x1004ef80
mov dl, byte [eax]
mov byte [ebp - 0x140e], dl
lea edx, [esi + 0x20]
mov dword [ebp - 0x1420], edx
mov dl, byte [ebp - 0x140e]
jmp 0x1004efe2
lea ebx, [edx*4]
mov byte [ebp + ebx - 0x414], 0
cmp dword [edi], 0
mov dword [ebp - 0x1420], edi
je 0x1004f008
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x28]
push ecx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
lea edx, [esi + 0x28]
sub ecx, dword [esi + 0xb4]
add esp, 0xc
add dword [esi + 0xa8], ecx
mov dword [esi + 0xac], edx
test eax, eax
jne 0x1004efcf
lea ecx, [esi + 0x29]
mov dword [edi], eax
mov dword [esi + 0xb0], ecx
mov byte [edx], al
jmp 0x1004efda
lea ecx, [esi + 0x28]
add ecx, eax
mov dword [esi + 0xb0], ecx
mov eax, dword [esi + 0xac]
mov dl, byte [eax]
inc eax
mov byte [ebp + ebx - 0x413], dl
mov dword [esi + 0xac], eax
cmp eax, ecx
jae 0x1004f010
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov eax, dword [ebp - 0x1420]
jmp 0x1004f082
mov byte [ebp + ebx - 0x413], 0
cmp dword [edi], 0
mov eax, edi
mov dword [ebp - 0x1420], eax
je 0x1004f080
push dword [esi + 0x24]
mov eax, dword [esi + 0x10]
lea ecx, [esi + 0x28]
push ecx
push dword [esi + 0x1c]
call eax
mov ecx, dword [esi + 0xac]
add esp, 0xc
sub ecx, dword [esi + 0xb4]
add dword [esi + 0xa8], ecx
lea ecx, [esi + 0x28]
mov dword [esi + 0xac], ecx
test eax, eax
jne 0x1004f05e
mov dword [edi], eax
lea eax, [esi + 0x29]
mov dword [esi + 0xb0], eax
mov byte [ecx], 0
jmp 0x1004f069
add eax, 0x28
add eax, esi
mov dword [esi + 0xb0], eax
mov eax, dword [esi + 0xac]
mov cl, byte [eax]
inc eax
mov dword [esi + 0xac], eax
mov eax, dword [ebp - 0x1420]
jmp 0x1004f082
xor cl, cl
mov edx, dword [ebp - 0x1430]
inc edx
mov byte [ebp + ebx - 0x412], cl
mov byte [ebp + ebx - 0x411], 0xff
mov dword [ebp - 0x1430], edx
cmp edx, dword [ebp - 0x1424]
jb 0x1004eed2
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
jmp 0x1004e6c0
mov eax, dword [ebp - 0x140c]
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x1004f0f6
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.no_IDAT
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
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.100d9e2b
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x1004f58e
mov eax, dword [ebp - 0x1428]
xor edx, edx
add eax, ebx
mov dword [ebp - 0x13f0], ecx
cmp dword [ebp - 0x141c], edx
mov dword [ebp - 0x1400], eax
lea eax, [ecx + edi]
mov dword [ebp - 0x13f4], ecx
sete dl
lea ecx, [ebp - 0x1404]
mov dword [ebp - 0x1404], ebx
mov dword [ebp - 0x13ec], eax
mov dword [ebp - 0x13e8], 1
call fcn.1004d0a0
test eax, eax
je 0x1004f580
mov eax, dword [ebp - 0x13f0]
mov ebx, dword [ebp - 0x140c]
mov edi, dword [ebp - 0x13f4]
sub edi, eax
mov dword [ebx + 8], eax
test eax, eax
je 0x1004fa63
push dword [ebx + 4]
call fcn.100d2aca
mov dword [ebx + 4], 0
add esp, 4
mov ecx, dword [esi + 8]
lea eax, [ecx + 1]
cmp eax, 4
jne 0x1004f1b4
cmp byte [ebp - 0x1405], 0
je 0x1004f1bf
cmp byte [ebp - 0x140d], 0
jne 0x1004f1bf
mov eax, ecx
mov ecx, dword [ebp - 0x1418]
push ecx
mov ecx, dword [ebp - 0x1438]
push ecx
mov dword [esi + 0xc], eax
mov ecx, ebx
push dword [ebx + 0x10]
mov edx, dword [ebx + 8]
push eax
push edi
call fcn.1004e370
add esp, 0x14
test eax, eax
je 0x1004fa63
cmp byte [ebp - 0x140d], 0
je 0x1004f31e
mov ecx, dword [ebx]
mov eax, dword [esi + 0xc]
mov edi, dword [ecx + 4]
imul edi, dword [ecx]
cmp dword [ebx + 0x10], 0x10
mov ebx, dword [ebx + 0xc]
jne 0x1004f29f
cmp eax, 2
je 0x1004f270
cmp eax, 4
je 0x1004f230
push 0x12dc
push 0x10148f30
push 0x10148efc
call fcn.100d84e4
add esp, 0xc
test edi, edi
je 0x1004f318
mov cx, word [ebp - 0xc]
lea eax, [ebx + 4]
mov edx, dword [ebp - 0xe]
mov bx, word [ebp - 0x10]
cmp word [eax - 4], bx
jne 0x1004f25d
cmp word [eax - 2], dx
jne 0x1004f25d
cmp word [eax], cx
jne 0x1004f25d
xor esi, esi
mov word [eax + 2], si
add eax, 8
sub edi, 1
jne 0x1004f246
mov esi, dword [ebp - 0x143c]
jmp 0x1004f318
test edi, edi
je 0x1004f318
mov cx, word [ebp - 0x10]
nop dword [eax]
xor edx, edx
lea ebx, [ebx + 4]
cmp word [ebx - 4], cx
mov eax, 0xffff
cmove eax, edx
mov word [ebx - 2], ax
sub edi, 1
jne 0x1004f280
jmp 0x1004f318
cmp eax, 2
je 0x1004f2fc
cmp eax, 4
je 0x1004f2c0
push 0x12c3
push 0x10148fc8
push str.out_n__2__out_n__4
call fcn.100d84e4
add esp, 0xc
test edi, edi
je 0x1004f318
mov cl, byte [ebp - 0x416]
lea eax, [ebx + 2]
mov dl, byte [ebp - 0x417]
mov bl, byte [ebp - 0x418]
nop dword [eax]
cmp byte [eax - 2], bl
jne 0x1004f2f2
cmp byte [eax - 1], dl
jne 0x1004f2f2
cmp byte [eax], cl
jne 0x1004f2f2
mov byte [eax + 1], 0
add eax, 4
sub edi, 1
jne 0x1004f2e0
jmp 0x1004f318
test edi, edi
je 0x1004f318
mov cl, byte [ebp - 0x418]
cmp byte [ebx], cl
lea ebx, [ebx + 2]
sete al
dec al
mov byte [ebx - 1], al
sub edi, 1
jne 0x1004f306
mov ebx, dword [ebp - 0x140c]
cmp dword [ebp - 0x141c], 0
je 0x1004f443
cmp dword [0x101a1710], 0
je 0x1004f443
cmp dword [esi + 0xc], 2
jle 0x1004f443
mov eax, dword [ebx]
mov ecx, dword [ebp - 0x140c]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
mov eax, dword [eax + 0xc]
mov edi, dword [ecx + 0xc]
mov dword [ebp - 0x1418], ebx
cmp eax, 3
jne 0x1004f388
test ebx, ebx
je 0x1004f443
nop dword [eax]
mov cl, byte [edi]
lea edi, [edi + 3]
mov al, byte [edi - 1]
mov byte [edi - 3], al
mov byte [edi - 1], cl
sub ebx, 1
jne 0x1004f370
jmp 0x1004f443
cmp eax, 4
je 0x1004f3a4
push 0x132d
push 0x10149088
push str.s__img_out_n__4
call fcn.100d84e4
add esp, 0xc
test ebx, ebx
je 0x1004f443
cmp dword [0x101a170c], 0
je 0x1004f430
lea esi, [edi + 2]
mov al, byte [esi + 1]
mov cl, byte [esi - 2]
mov ch, byte [esi]
test al, al
je 0x1004f410
movzx ebx, al
xor edx, edx
movzx eax, byte [esi - 1]
mov edi, ebx
imul eax, eax, 0xff
shr edi, 1
add eax, edi
div ebx
xor edx, edx
mov byte [esi - 1], al
movzx eax, cl
imul eax, eax, 0xff
movzx ecx, ch
add eax, edi
div ebx
xor edx, edx
mov byte [ebp - 0x140e], al
imul eax, ecx, 0xff
mov cl, byte [ebp - 0x140e]
add eax, edi
div ebx
mov ebx, dword [ebp - 0x1418]
mov ch, al
mov byte [esi - 2], ch
mov byte [esi], cl
add esi, 4
sub ebx, 1
mov dword [ebp - 0x1418], ebx
jne 0x1004f3b8
mov esi, dword [ebp - 0x143c]
jmp 0x1004f443
mov cl, byte [edi]
lea edi, [edi + 4]
mov al, byte [edi - 2]
mov byte [edi - 4], al
mov byte [edi - 2], cl
sub ebx, 1
jne 0x1004f430
mov al, byte [ebp - 0x1405]
test al, al
je 0x1004f538
mov ecx, dword [ebp - 0x140c]
movzx eax, al
mov dword [esi + 8], eax
mov dword [esi + 0xc], 4
mov eax, dword [ecx]
mov ebx, dword [eax + 4]
imul ebx, dword [eax]
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0x1418], eax
test ebx, ebx
js 0x1004f50c
lea eax, [ebx*4]
cmp ebx, 0x1fffffff
jg 0x1004f50c
push eax
call fcn.100d9e2b
add esp, 4
mov dword [ebp - 0x141c], eax
test eax, eax
je 0x1004f50c
xor edi, edi
test ebx, ebx
je 0x1004f4f0
mov esi, dword [ebp - 0x1418]
lea edx, [eax + 2]
movzx ecx, byte [edi + esi]
lea edx, [edx + 4]
inc edi
movzx eax, byte [ebp + ecx*4 - 0x414]
mov byte [edx - 6], al
movzx eax, byte [ebp + ecx*4 - 0x413]
mov byte [edx - 5], al
movzx eax, byte [ebp + ecx*4 - 0x412]
mov byte [edx - 4], al
movzx eax, byte [ebp + ecx*4 - 0x411]
mov byte [edx - 3], al
cmp edi, ebx
jb 0x1004f4b2
mov esi, dword [ebp - 0x143c]
mov ebx, dword [ebp - 0x140c]
push dword [ebx + 0xc]
call fcn.100d2aca
mov eax, dword [ebp - 0x141c]
add esp, 4
mov dword [ebx + 0xc], eax
jmp 0x1004f54a
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149060
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
cmp byte [ebp - 0x140d], 0
mov ebx, dword [ebp - 0x140c]
je 0x1004f54a
inc dword [esi + 8]
push dword [ebx + 8]
call fcn.100d2aca
add esp, 4
mov dword [ebx + 8], 0
mov ecx, esi
call fcn.100461b0
mov ecx, esi
call fcn.100461b0
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x13f0]
call fcn.100d2aca
add esp, 4
mov eax, dword [ebp - 0x140c]
mov dword [eax + 8], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.no_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149320
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.outofdata
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.first_not_IHDR
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.1_2_4_8_16_bit_only
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_ctype
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_comp_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_filter_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.0_pixel_image
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_interlace_method
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101492d4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101492f0
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149298
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101492c8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_IHDR_len
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.multiple_IHDR
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov eax, ecx
mov byte [0x1019dda3], cl
shr eax, 0x18
mov byte [str.XXXX_PNG_chunk_not_known], al
mov eax, ecx
shr eax, 0x10
mov byte [0x1019dda1], al
mov eax, ecx
mov ecx, dword [0x101a0f04]
shr eax, 8
mov byte [0x1019dda2], al
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.XXXX_PNG_chunk_not_known
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101493b4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101493e8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.tRNS_before_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.bad_tRNS_len
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.tRNS_with_alpha
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.tRNS_after_IDAT
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x101493f8
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], str.invalid_PLTE
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x1014925c
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.100cd51f
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x101a0f04]
mov eax, dword fs:[0x2c]
mov eax, dword [eax + ecx*4]
mov dword [eax + 0x10], 0x10149288
mov ecx, dword [ebp - 8]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100cd51f
mov esp, ebp
pop ebp
ret