The binary was a very simple OpenGL application. It uses a vertex and a fragment shader and passes to the vertex shader a huge VertexArray of 4d points.  The shaders were in the SPIR-V format, so i dumped them to a binary file and the used spirv-cross to "decompile" them to glsl:  - Vertex shader:```#version 460
const float _17[5] = float[](0.09700000286102294921875, 0.865999996662139892578125, 0.99199998378753662109375, 0.522000014781951904296875, 0.3670000135898590087890625);
layout(location = 0) in vec4 position;layout(location = 1) out float zuppa;
void main(){    float k = 0.0;    int p = int(floor(position.w));    switch (p)    {        case 0:        {            k = _17[0];            break;        }        case 1:        {            k = _17[1];            break;        }        case 2:        {            k = _17[2];            break;        }        case 3:        {            k = _17[3];            break;        }        case 4:        {            k = _17[4];            break;        }    }    vec4 pos = vec4((position.x * position.z) * k, (position.y * position.z) * k, 0.0, 1.0);    zuppa = position.w - float(p);    float w = 1.0;    if (float(p) != position.w)    {        w = 10.0;        pos *= mat4(vec4(6.1232342629258392722318982137608e-17, 0.0, 1.0, 0.0), vec4(0.0, 1.0, 0.0, 0.0), vec4(-1.0, 0.0, 6.1232342629258392722318982137608e-17, 0.0), vec4(0.0, 0.0, 0.0, 1.0));    }    gl_Position = vec4(pos.x, pos.y, 0.0, w);}```- Fragment shader:```#version 460
layout(location = 1) in float zuppa;layout(location = 0) out vec4 outColor;
void main(){    float r = 0.0;    if (zuppa != 0.0)    {        r = 1.0;    }    outColor = vec4(r, 1.0, r, 1.0);}```I noticed that it was doing different stuff whether `position.w` was a round number or not, so I tried to do random stuff, plotting only the points with a non round `w`, and it worked:```from PIL import Image, ImageDrawimport numpy as np# this contais the VertexArray dumped from the binary as an array of floatsfrom arr import arrayy
arrayy = np.array(arrayy, dtype=np.float32).reshape((len(arrayy)/4, 4))
im = Image.new('RGB', (600, 400), (255,)*3)d = ImageDraw.Draw(im)
zz = [0.09700000286102294921875, 0.865999996662139892578125, 0.99199998378753662109375, 0.522000014781951904296875, 0.3670000135898590087890625]
aa = []for x, y, z, w in arrayy:	if float(int(w)) != w:		k = zz[int(w)] * 600		x, y = (x * z) * k + 300, (y * z) * k + 300		x, y = x, 600-y		aa.append((x, y))
d.line(aa, fill=(0, 0, 0), width=2)im.save("draw.png")```Running this script generated an image with the flag: `{FLG:ToRenderOrNotToRender?}`.