Ghidra decompilation of all inner functions called by transformMatrix4x4, plus the full 2263-line main function decompilation.
87 lines
2.6 KiB
C
87 lines
2.6 KiB
C
|
|
void __thiscall rotateMatrixByQuaternion(void *this,float *param_1)
|
|
|
|
{
|
|
float fVar1;
|
|
float fVar2;
|
|
float fVar3;
|
|
Matrix4x4 *pMVar4;
|
|
int iVar5;
|
|
undefined *local_7c;
|
|
undefined *local_78;
|
|
undefined *local_74;
|
|
undefined *local_70;
|
|
undefined *local_6c;
|
|
undefined *local_68;
|
|
undefined *local_64;
|
|
undefined *local_60;
|
|
undefined *local_5c;
|
|
undefined *local_58;
|
|
undefined *local_54;
|
|
undefined *local_50;
|
|
undefined *local_4c;
|
|
undefined *local_48;
|
|
undefined *local_44;
|
|
undefined *local_40;
|
|
undefined *local_3c;
|
|
undefined *local_38;
|
|
undefined *local_34;
|
|
undefined *local_30;
|
|
undefined *local_2c;
|
|
undefined *local_28;
|
|
undefined *local_24;
|
|
undefined *local_20;
|
|
undefined *local_1c;
|
|
undefined *local_18;
|
|
undefined *local_14;
|
|
undefined *local_10;
|
|
undefined *local_c;
|
|
undefined *local_8;
|
|
|
|
fVar1 = *param_1 + *param_1;
|
|
local_54 = (undefined *)0x0;
|
|
fVar3 = param_1[1] + param_1[1];
|
|
local_44 = (undefined *)0x0;
|
|
fVar2 = param_1[2] + param_1[2];
|
|
local_10 = (undefined *)(fVar1 * param_1[3]);
|
|
local_20 = (undefined *)(fVar3 * param_1[3]);
|
|
local_1c = (undefined *)(fVar2 * param_1[3]);
|
|
local_18 = (undefined *)(fVar1 * *param_1);
|
|
local_c = (undefined *)(fVar3 * *param_1);
|
|
local_14 = (undefined *)(fVar2 * *param_1);
|
|
local_8 = (undefined *)(fVar2 * param_1[1]);
|
|
local_60 = (undefined *)(StaticFloat1_0 - (fVar2 * param_1[2] + fVar3 * param_1[1]));
|
|
local_5c = (undefined *)((float)local_c + (float)local_1c);
|
|
local_7c = (undefined *)((float)local_14 - (float)local_20);
|
|
local_78 = (undefined *)((float)local_c - (float)local_1c);
|
|
local_74 = (undefined *)(StaticFloat1_0 - (fVar2 * param_1[2] + (float)local_18));
|
|
local_70 = (undefined *)((float)local_8 + (float)local_10);
|
|
local_6c = (undefined *)((float)local_14 + (float)local_20);
|
|
local_68 = (undefined *)((float)local_8 - (float)local_10);
|
|
local_64 = (undefined *)(StaticFloat1_0 - (fVar3 * param_1[1] + (float)local_18));
|
|
local_34 = (undefined *)0x0;
|
|
local_30 = (undefined *)0x0;
|
|
local_2c = (undefined *)0x0;
|
|
local_28 = (undefined *)0x0;
|
|
local_24 = (undefined *)0x3f800000;
|
|
local_58 = local_7c;
|
|
local_50 = local_78;
|
|
local_4c = local_74;
|
|
local_48 = local_70;
|
|
local_40 = local_6c;
|
|
local_3c = local_68;
|
|
local_38 = local_64;
|
|
pMVar4 = multiplyMatrix4x4_SSE_Optimized
|
|
((Matrix4x4 *)&stack0xffffff60,(Matrix4x4 *)&local_60,(Matrix4x4 *)this);
|
|
iVar5 = 8;
|
|
do {
|
|
*(float *)this = pMVar4->m00;
|
|
*(float *)((int)this + 4) = pMVar4->m01;
|
|
this = (void *)((int)this + 8);
|
|
pMVar4 = (Matrix4x4 *)&pMVar4->m02;
|
|
iVar5 = iVar5 + -1;
|
|
} while (iVar5 != 0);
|
|
return;
|
|
}
|
|
|