This is something related, just for reference purposes
PHP Code:
v49 = MatrixFunction_001((int)&v131, (int)&v154, _ESI + 0x50);
Matrix4_Multiply_Vector((int)v113, (int)&v148, v49);
v109 = atan2(v113[1], -v113[0]);
ScaleScreenValues((int)v113, (int)&v113[1], 0.800000011920929);
if ( sub_CF6190(v50) )
{
if ( *(_DWORD *)(sub_CF6190(*(_DWORD *)_ESI) + 0xC) )
{
v51 = *(_DWORD *)_ESI;
*(float *)&v114 = (v113[0] + 1.0) * 0.5 * *(float *)(*(_DWORD *)_ESI + 0x273B4);
Outvector = v114;
*(float *)&v115 = 0.5 * (1.0 - v113[1]) * *(float *)(v51 + 0x273B8);
LODWORD(ScreenY) = v115;
}
}