Код:
int __thiscall sub_982340(UnkFloats *this, int *a2)
{
long double v2; // st5@1
long double v4; // st6@1 wtf is v4?
int result; // eax@2
this->float0 = 0.0;
this->float4 = 0.0;
this->float8 = 0.0;
this->floatC = 0.0;
this->float0 = (double)(signed int)(*(_QWORD *)a2 >> 42) * 0.000000476837158203125;
this->float4 = (double)((signed int)(*(_QWORD *)a2 << 22 >> 32) >> 11) * 0.00000095367431640625;
this->float8 = (double)(signed int)(*(_QWORD *)a2 << 43 >> 43) * v4; // * 0.00000095367431640625 ?
v2 = this->float8 * this->float8 + this->float0 * this->float0 + this->float4 * this->float4;
if ( fabs(v2 - 1.0) >= v4 ) // ???
{
result = (int)this;
this->floatC = sqrt(1.0 - v2);
}
else
{
result = (int)this;
this->floatC = 0.0;
}
return result;
}