SlerpBonesSpeedy
0x00b91010 · 9966 bytes · __cdecl
_Z16SlerpBonesSpeedyPK10CStudioHdrP17QuaternionAlignedP6VectorR16mstudioseqdesc_tiPKS2_PKS4_fi
Decompiled
undefined (9 params)
/* SlerpBonesSpeedy(CStudioHdr const*, QuaternionAligned*, Vector*, mstudioseqdesc_t&, int,
QuaternionAligned const*, Vector const*, float, int) */
void SlerpBonesSpeedy(CStudioHdr *param_1,QuaternionAligned *param_2,Vector *param_3,
mstudioseqdesc_t *param_4,int param_5,QuaternionAligned *param_6,
Vector *param_7,float param_8,int param_9)
{
Vector *pVVar1;
Vector *pVVar2;
Vector *pVVar3;
Vector *pVVar4;
Vector *pVVar5;
Vector *pVVar6;
Vector *pVVar7;
QuaternionAligned *pQVar8;
undefined4 uVar9;
undefined4 uVar10;
undefined4 uVar11;
double dVar12;
mstudioseqdesc_t mVar13;
bool bVar14;
bool bVar15;
bool bVar16;
bool bVar17;
bool bVar18;
bool bVar19;
bool bVar20;
bool bVar21;
bool bVar22;
undefined1 auVar23 [12];
undefined1 auVar24 [12];
undefined1 auVar25 [12];
undefined1 auVar26 [12];
float fVar27;
Vector *pVVar28;
QuaternionAligned *pQVar29;
int iVar30;
Vector *pVVar31;
Vector *pVVar32;
uint uVar33;
QuaternionAligned *pQVar34;
float *pfVar35;
float *pfVar36;
int iVar37;
QuaternionAligned *pQVar38;
mstudioseqdesc_t *pmVar39;
QuaternionAligned *pQVar40;
QuaternionAligned *pQVar41;
int in_GS_OFFSET;
longdouble lVar42;
longdouble lVar43;
longdouble lVar44;
longdouble lVar45;
longdouble lVar46;
uint uVar47;
uint uVar48;
uint uVar49;
uint uVar50;
uint uVar51;
uint uVar52;
uint uVar53;
uint uVar54;
float fVar55;
uint uVar56;
float fVar62;
float fVar63;
float fVar66;
undefined1 auVar57 [16];
float fVar64;
uint uVar65;
float fVar67;
uint uVar68;
undefined1 auVar58 [16];
float fVar69;
float fVar70;
uint uVar71;
float fVar73;
uint uVar74;
uint uVar75;
undefined1 auVar72 [16];
uint uVar76;
float fVar77;
float fVar80;
float fVar81;
undefined1 auVar78 [16];
undefined1 auVar79 [16];
float fVar82;
uint uVar83;
uint uVar86;
float fVar87;
undefined1 auVar84 [16];
uint uVar88;
uint uVar89;
undefined1 auVar85 [16];
float fVar90;
undefined1 auVar91 [16];
undefined1 auVar94 [16];
undefined1 auVar95 [16];
undefined1 auVar96 [16];
undefined1 auVar97 [16];
float fVar102;
undefined1 auVar98 [16];
undefined1 auVar99 [16];
undefined1 auVar100 [16];
undefined1 auVar101 [16];
float fVar103;
float fVar104;
undefined8 uVar105;
undefined1 auVar106 [16];
undefined1 auVar107 [16];
undefined1 auVar108 [16];
uint uVar109;
uint uVar110;
uint uVar111;
undefined1 in_XMM7 [16];
float fVar112;
uint uVar113;
float local_2d0 [4];
float fStack_2c0;
undefined1 local_2bc [8];
float fStack_2b4;
float fStack_2b0;
undefined8 local_2ac;
float fStack_2a4;
float fStack_2a0;
undefined1 local_29c [8];
float fStack_294;
float fStack_290;
float local_28c;
float fStack_288;
float fStack_284;
float fStack_280;
undefined8 local_27c;
float fStack_274;
float fStack_270;
float local_26c;
float fStack_268;
float fStack_264;
float fStack_260;
undefined8 local_25c;
float fStack_254;
float fStack_250;
undefined1 local_24c [8];
float fStack_244;
float fStack_240;
QuaternionAligned *local_23c;
float fStack_238;
float fStack_234;
float fStack_230;
undefined1 local_22c [8];
float fStack_224;
float fStack_220;
undefined8 local_21c;
undefined8 uStack_214;
QuaternionAligned *local_20c;
Vector *local_208;
Vector *local_204;
Vector *local_200;
mstudioseqdesc_t *local_1fc;
float fStack_1f8;
undefined8 uStack_1f4;
float local_1ec;
float fStack_1e8;
undefined8 uStack_1e4;
float local_1dc;
float fStack_1d8;
float fStack_1d4;
float fStack_1d0;
QuaternionAligned *local_1cc;
float fStack_1c8;
float fStack_1c4;
float fStack_1c0;
QuaternionAligned *local_1bc;
float fStack_1b8;
float fStack_1b4;
float fStack_1b0;
float local_1ac;
float fStack_1a8;
float fStack_1a4;
float fStack_1a0;
float local_19c;
float fStack_198;
float fStack_194;
float fStack_190;
QuaternionAligned *local_18c;
Vector *local_188;
QuaternionAligned *local_184;
QuaternionAligned *local_180;
undefined8 local_17c;
float fStack_174;
float fStack_170;
float local_16c;
float fStack_168;
undefined8 uStack_164;
mstudioseqdesc_t *local_15c;
float fStack_158;
undefined8 uStack_154;
QuaternionAligned *local_14c;
float fStack_148;
float fStack_144;
float fStack_140;
undefined8 local_13c;
float fStack_134;
float fStack_130;
undefined8 local_12c;
float fStack_124;
float fStack_120;
undefined8 local_11c;
undefined8 uStack_114;
float local_10c;
float fStack_108;
float fStack_104;
float fStack_100;
Vector *local_fc;
float fStack_f8;
float fStack_f4;
float fStack_f0;
QuaternionAligned *local_ec;
float fStack_e8;
float fStack_e4;
float fStack_e0;
undefined8 local_dc;
float fStack_d4;
float fStack_d0;
undefined1 local_cc [16];
float local_bc;
float fStack_b8;
float fStack_b4;
float fStack_b0;
undefined1 local_ac [48];
float local_7c;
float fStack_78;
float fStack_74;
float fStack_70;
float local_6c;
float fStack_68;
float fStack_64;
float fStack_60;
float local_3c;
float fStack_38;
float fStack_34;
float fStack_30;
int local_20;
undefined1 auVar59 [16];
undefined1 auVar60 [16];
undefined1 auVar61 [16];
undefined1 auVar92 [16];
undefined1 auVar93 [16];
dVar12 = (double)CONCAT44(local_2ac._4_4_,(float)local_2ac);
local_180 = param_2;
local_18c = param_6;
local_20 = *(int *)(in_GS_OFFSET + 0x14);
local_200 = param_7;
local_188 = param_3;
local_1fc = param_4;
pfVar35 = (float *)&stack0xfffffd04;
if (param_8 <= 0.0) goto LAB_00b91fd0;
uVar56 = *(uint *)(param_4 + 0xc);
if (1.0 <= param_8) {
param_8 = 1.0;
}
if ((uVar56 & 0x4000) != 0) {
WorldSpaceSlerp(param_1,(Quaternion *)param_2,param_3,param_4,param_5,(Quaternion *)param_6,
param_7,param_8,param_9);
dVar12 = (double)CONCAT44(local_2ac._4_4_,(float)local_2ac);
pfVar35 = (float *)&stack0xfffffd04;
goto LAB_00b91fd0;
}
iVar37 = *(int *)(param_1 + 4);
if (iVar37 == 0) {
local_19c = *(float *)(*(int *)param_1 + 0x9c);
uVar33 = (int)*(float *)(*(int *)param_1 + 0x9c) * 4 + 0xfU & 0xfffffff0;
local_16c = (float)(uVar33 + 0x1e);
iVar37 = -(uVar33 + 0x10);
pfVar36 = (float *)(&stack0xfffffd04 + iVar37);
local_1ec = (float)((int)local_2d0 + iVar37);
LAB_00b93697:
fVar27 = 0.0;
if (0 < (int)local_19c) {
local_15c = param_4;
do {
if ((*(uint *)(*(int *)(param_1 + 0x2c) + (int)fVar27 * 4) & param_9) == 0) {
*(undefined4 *)((int)local_1ec + (int)fVar27 * 4) = 0;
}
else {
*(float *)((int)local_1ec + (int)fVar27 * 4) =
*(float *)(param_4 + *(int *)(param_4 + 0x9c) + (int)fVar27 * 4) * param_8;
}
fVar27 = (float)((int)fVar27 + 1);
} while (fVar27 != local_19c);
LAB_00b91141:
uVar56 = *(uint *)(param_4 + 0xc);
}
}
else {
local_19c = *(float *)(*(int *)param_1 + 0x9c);
uVar33 = (int)local_19c * 4 + 0xfU & 0xfffffff0;
local_16c = (float)(uVar33 + 0x1e);
iVar30 = -(uVar33 + 0x10);
pfVar36 = (float *)(&stack0xfffffd04 + iVar30);
local_1ec = (float)((int)local_2d0 + iVar30);
pmVar39 = (mstudioseqdesc_t *)
(*(int *)(param_5 * 0x10 + *(int *)(iVar37 + 8) + 8) * 0x90 + *(int *)(iVar37 + 0x58))
;
if (pmVar39 == (mstudioseqdesc_t *)0x0) goto LAB_00b93697;
fVar27 = 0.0;
pfVar36 = (float *)(&stack0xfffffd04 + iVar30);
if (0 < (int)local_19c) {
local_15c = pmVar39;
do {
while (((*(uint *)(*(int *)(param_1 + 0x2c) + (int)fVar27 * 4) & param_9) != 0 &&
(iVar37 = *(int *)(*(int *)(pmVar39 + 4) + (int)fVar27 * 4), -1 < iVar37))) {
*(float *)((int)local_1ec + (int)fVar27 * 4) =
*(float *)(param_4 + *(int *)(param_4 + 0x9c) + iVar37 * 4) * param_8;
fVar27 = (float)((int)fVar27 + 1);
pfVar36 = (float *)(&stack0xfffffd04 + iVar30);
if (fVar27 == local_19c) goto LAB_00b91141;
}
*(undefined4 *)((int)local_1ec + (int)fVar27 * 4) = 0;
fVar27 = (float)((int)fVar27 + 1);
pfVar36 = (float *)(&stack0xfffffd04 + iVar30);
} while (fVar27 != local_19c);
goto LAB_00b91141;
}
}
if ((uVar56 & 4) != 0) {
local_28c = (float)((uint)local_19c & 0xfffffffc);
if ((int)((uint)local_19c & 0xfffffffc) < 1) {
fVar27 = 0.0;
}
else {
local_1ac = 0.0;
local_1bc = param_2 + 0x10;
local_1dc = 0.999999;
fStack_1d8 = 0.999999;
fStack_1d4 = 0.999999;
fStack_1d0 = 0.999999;
local_1cc = param_2 + 0x20;
local_184 = param_2 + 0x30;
pVVar28 = param_3 + 4;
iVar37 = 0;
local_21c = CONCAT44(local_21c._4_4_,param_3 + 8);
local_26c = (float)uVar56;
while( true ) {
uVar56 = (uint)local_26c & 0x10;
pfVar35 = (float *)((int)local_1ec + (int)local_1ac * 4);
local_dc._0_4_ = *pfVar35;
local_dc._4_4_ = pfVar35[1];
fStack_d4 = pfVar35[2];
fStack_d0 = pfVar35[3];
pQVar40 = local_180 + iVar37;
local_11c._0_4_ = *(float *)pQVar40;
local_ec = *(QuaternionAligned **)(pQVar40 + 4);
local_15c = *(mstudioseqdesc_t **)(pQVar40 + 8);
local_16c = *(float *)(pQVar40 + 0xc);
_local_22c = *(undefined1 (*) [16])pQVar40;
local_23c = *(QuaternionAligned **)local_1bc;
fStack_238 = *(float *)(local_1bc + 4);
fStack_234 = *(float *)(local_1bc + 8);
fStack_230 = *(float *)(local_1bc + 0xc);
uStack_114._0_4_ = *(float *)local_1cc;
fStack_e4 = *(float *)(local_1cc + 4);
_local_24c = *(undefined1 (*) [16])local_1cc;
local_25c._0_4_ = *(float *)local_184;
local_25c._4_4_ = *(float *)(local_184 + 4);
fStack_254 = *(float *)(local_184 + 8);
fStack_250 = *(float *)(local_184 + 0xc);
uStack_164 = CONCAT44(fStack_250,*(undefined4 *)(local_1cc + 0xc));
pQVar40 = param_6 + iVar37;
local_2d0[1] = *(float *)pQVar40;
local_fc = *(Vector **)(pQVar40 + 4);
local_10c = *(float *)(pQVar40 + 8);
local_7c = *(float *)(pQVar40 + 0xc);
pQVar40 = param_6 + iVar37 + 0x20;
local_2d0[3] = *(float *)pQVar40;
fStack_f4 = *(float *)(pQVar40 + 4);
fStack_104 = *(float *)(pQVar40 + 8);
fStack_74 = *(float *)(pQVar40 + 0xc);
uStack_154 = CONCAT44(fStack_254,*(undefined4 *)(local_1cc + 8));
fStack_108 = *(float *)(param_6 + iVar37 + 0x18);
fStack_78 = *(float *)(param_6 + iVar37 + 0x1c);
local_2d0[2] = *(float *)(param_6 + iVar37 + 0x10);
fStack_f8 = *(float *)(param_6 + iVar37 + 0x10 + 4);
fStack_2c0 = *(float *)(param_6 + iVar37 + 0x30);
fStack_f0 = *(float *)(param_6 + iVar37 + 0x30 + 4);
fStack_100 = *(float *)(param_6 + iVar37 + 0x38);
fStack_70 = *(float *)(param_6 + iVar37 + 0x3c);
local_27c._0_4_ = (int *)-(uint)(local_1dc < local_7c);
local_27c._4_4_ = (float)-(uint)(fStack_1d8 < fStack_78);
fStack_274 = (float)-(uint)(fStack_1d4 < fStack_74);
fStack_270 = (float)-(uint)(fStack_1d0 < fStack_70);
local_26c = (float)0x80000000;
fStack_268 = (float)0x80000000;
fStack_264 = (float)0x80000000;
fStack_260 = (float)0x80000000;
local_20c = param_6;
local_208 = param_7;
local_204 = pVVar28;
fStack_168 = fStack_230;
fStack_158 = fStack_234;
fStack_e8 = fStack_238;
fStack_e0 = local_25c._4_4_;
local_11c._4_4_ = (float)local_23c;
uStack_114._4_4_ = (float)local_25c;
if (uVar56 == 0) {
local_2bc._4_4_ = fStack_78;
local_2bc._0_4_ = local_7c;
fStack_2b4 = fStack_74;
fStack_2b0 = fStack_70;
bVar14 = local_7c < (float)0;
bVar17 = fStack_78 < (float)0;
bVar21 = fStack_74 < (float)0;
bVar22 = fStack_70 < (float)0;
*pfVar36 = local_7c;
local_2ac._0_4_ = (float)-(uint)bVar14;
local_2ac._4_4_ = (float)-(uint)bVar17;
fStack_2a4 = (float)-(uint)bVar21;
fStack_2a0 = (float)-(uint)bVar22;
pfVar36[-1] = 1.6999219e-38;
lVar42 = (longdouble)__acosf_finite();
local_12c = CONCAT44(local_12c._4_4_,(float)lVar42);
local_29c._0_4_ = (float)lVar42;
*pfVar36 = fStack_78;
pfVar36[-1] = 1.6999271e-38;
lVar42 = (longdouble)__acosf_finite();
local_29c._0_4_ = (float)lVar42;
*pfVar36 = fStack_74;
local_12c._4_4_ = (float)lVar42;
pfVar36[-1] = 1.6999376e-38;
lVar42 = (longdouble)__acosf_finite();
fStack_124 = (float)lVar42;
local_29c._0_4_ = fStack_124;
*pfVar36 = fStack_70;
pfVar36[-1] = 1.699946e-38;
lVar43 = (longdouble)__acosf_finite();
fStack_120 = (float)lVar43;
uVar56 = -(uint)(local_1dc < (float)((uint)local_26c ^ local_2bc._0_4_)) |
(uint)(int *)local_27c;
uVar33 = -(uint)(fStack_1d8 < (float)((uint)fStack_268 ^ local_2bc._4_4_)) |
(uint)local_27c._4_4_;
uVar65 = -(uint)(fStack_1d4 < (float)((uint)fStack_264 ^ (uint)fStack_2b4)) |
(uint)fStack_274;
uVar68 = -(uint)(fStack_1d0 < (float)((uint)fStack_260 ^ (uint)fStack_2b0)) |
(uint)fStack_270;
auVar97._0_4_ =
local_10c * local_10c +
(float)local_fc * (float)local_fc + local_2d0[1] * local_2d0[1];
auVar97._4_4_ =
fStack_108 * fStack_108 + fStack_f8 * fStack_f8 + local_2d0[2] * local_2d0[2];
auVar97._8_4_ =
fStack_104 * fStack_104 + fStack_f4 * fStack_f4 + local_2d0[3] * local_2d0[3];
auVar97._12_4_ = fStack_100 * fStack_100 + fStack_f0 * fStack_f0 + fStack_2c0 * fStack_2c0
;
auVar84._0_4_ = (uint)(float)local_2ac & (uint)local_26c;
auVar84._4_4_ = (uint)local_2ac._4_4_ & (uint)fStack_268;
auVar84._8_4_ = (uint)fStack_2a4 & (uint)fStack_264;
auVar84._12_4_ = (uint)fStack_2a0 & (uint)fStack_260;
_local_29c = ZEXT816(0) | auVar84;
auVar94 = _local_29c;
auVar98 = rsqrtps(_local_29c,auVar97);
fVar27 = auVar98._0_4_;
fVar69 = auVar98._4_4_;
fVar64 = auVar98._8_4_;
fVar67 = auVar98._12_4_;
fVar55 = ((float)0x40400000 - fVar27 * fVar27 * auVar97._0_4_) * fVar27 *
(float)0x3f000000;
fVar62 = ((float)0x40400000 - fVar69 * fVar69 * auVar97._4_4_) * fVar69 *
(float)0x3f000000;
fVar64 = ((float)0x40400000 - fVar64 * fVar64 * auVar97._8_4_) * fVar64 *
(float)0x3f000000;
fVar67 = ((float)0x40400000 - fVar67 * fVar67 * auVar97._12_4_) * fVar67 *
(float)0x3f000000;
lVar42 = (longdouble)fcos((longdouble)((float)local_dc * (float)(undefined4 *)local_12c));
lVar44 = (longdouble)fsin((longdouble)((float)local_dc * (float)(undefined4 *)local_12c));
fVar69 = (float)lVar44;
local_3c = (float)lVar42;
lVar44 = (longdouble)fcos((longdouble)(local_dc._4_4_ * local_12c._4_4_));
lVar45 = (longdouble)fsin((longdouble)(local_dc._4_4_ * local_12c._4_4_));
dVar12 = (double)lVar45;
local_2ac._0_4_ = SUB84(dVar12,0);
local_2ac._4_4_ = (float)((ulonglong)dVar12 >> 0x20);
fVar104 = (float)lVar45;
fStack_38 = (float)lVar44;
lVar45 = (longdouble)fcos((longdouble)(fStack_d4 * fStack_124));
lVar46 = (longdouble)fsin((longdouble)(fStack_d4 * fStack_124));
fVar27 = (float)lVar46;
fStack_34 = (float)lVar45;
lVar46 = (longdouble)(fStack_d0 * (float)lVar43);
lVar43 = (longdouble)fcos(lVar46);
lVar46 = (longdouble)fsin(lVar46);
local_27c = (double)lVar46;
fVar90 = (float)lVar46;
fStack_30 = (float)lVar43;
fVar87 = (float)((uint)local_2d0[1] & uVar56 |
~uVar56 & ((uint)(local_2d0[1] * fVar55 * fVar69) ^ local_29c._0_4_));
fVar102 = (float)((uint)local_2d0[2] & uVar33 |
~uVar33 & ((uint)(local_2d0[2] * fVar62 * fVar104) ^ local_29c._4_4_));
fVar103 = (float)((uint)local_2d0[3] & uVar65 |
~uVar65 & ((uint)(local_2d0[3] * fVar64 * fVar27) ^ (uint)fStack_294));
fVar112 = (float)((uint)fStack_2c0 & uVar68 |
~uVar68 & ((uint)(fStack_2c0 * fVar67 * fVar90) ^ (uint)fStack_290));
fVar77 = (float)((uint)local_fc & uVar56 |
~uVar56 & ((uint)((float)local_fc * fVar55 * fVar69) ^ local_29c._0_4_));
fVar80 = (float)((uint)fStack_f8 & uVar33 |
~uVar33 & ((uint)(fStack_f8 * fVar62 * fVar104) ^ local_29c._4_4_));
fVar81 = (float)((uint)fStack_f4 & uVar65 |
~uVar65 & ((uint)(fStack_f4 * fVar64 * fVar27) ^ (uint)fStack_294));
fVar82 = (float)((uint)fStack_f0 & uVar68 |
~uVar68 & ((uint)(fStack_f0 * fVar67 * fVar90) ^ (uint)fStack_290));
fVar63 = (float)(uVar56 & local_2bc._0_4_ |
~uVar56 & (local_29c._0_4_ ^ (uint)(float)lVar42));
fVar66 = (float)(uVar33 & local_2bc._4_4_ |
~uVar33 & (local_29c._4_4_ ^ (uint)(float)lVar44));
fVar70 = (float)(uVar65 & (uint)fStack_2b4 |
~uVar65 & ((uint)fStack_294 ^ (uint)(float)lVar45));
fVar73 = (float)(uVar68 & (uint)fStack_2b0 |
~uVar68 & ((uint)fStack_290 ^ (uint)(float)lVar43));
local_17c = 0;
fStack_174 = 0.0;
fStack_170 = 0.0;
fVar69 = (float)((uint)local_10c & uVar56 |
~uVar56 & ((uint)(fVar55 * local_10c * fVar69) ^ local_29c._0_4_));
fVar55 = (float)((uint)fStack_108 & uVar33 |
~uVar33 & ((uint)(fVar62 * fStack_108 * fVar104) ^ local_29c._4_4_));
fVar27 = (float)((uint)fStack_104 & uVar65 |
~uVar65 & ((uint)(fVar64 * fStack_104 * fVar27) ^ (uint)fStack_294));
fVar62 = (float)((uint)fStack_100 & uVar68 |
~uVar68 & ((uint)(fVar67 * fStack_100 * fVar90) ^ (uint)fStack_290));
uVar56 = -(uint)((float)local_11c * fVar87 + local_16c * fVar63 + (float)local_ec * fVar77
+ (float)local_15c * fVar69 < (float)0) & (uint)local_26c;
uVar33 = -(uint)(local_11c._4_4_ * fVar102 + fStack_168 * fVar66 + fStack_e8 * fVar80 +
fStack_158 * fVar55 < (float)0) & (uint)fStack_268;
uVar65 = -(uint)((float)uStack_114 * fVar103 + (float)uStack_164 * fVar70 +
fStack_e4 * fVar81 + (float)uStack_154 * fVar27 < (float)0) &
(uint)fStack_264;
uVar68 = -(uint)(uStack_114._4_4_ * fVar112 + uStack_164._4_4_ * fVar73 +
fStack_e0 * fVar82 + uStack_154._4_4_ * fVar62 < (float)0) &
(uint)fStack_260;
uVar83 = (uint)(((local_16c * fVar63 - (float)local_11c * fVar87) -
(float)local_ec * fVar77) - (float)local_15c * fVar69) ^ uVar56;
uVar86 = (uint)(((fStack_168 * fVar66 - local_11c._4_4_ * fVar102) - fStack_e8 * fVar80) -
fStack_158 * fVar55) ^ uVar33;
uVar88 = (uint)((((float)uStack_164 * fVar70 - (float)uStack_114 * fVar103) -
fStack_e4 * fVar81) - (float)uStack_154 * fVar27) ^ uVar65;
uVar89 = (uint)(((uStack_164._4_4_ * fVar73 - uStack_114._4_4_ * fVar112) -
fStack_e0 * fVar82) - uStack_154._4_4_ * fVar62) ^ uVar68;
uVar109 = (uint)((float)local_11c * fVar69 +
local_16c * fVar77 +
((float)local_ec * fVar63 - (float)local_15c * fVar87)) ^ uVar56;
uVar110 = (uint)(local_11c._4_4_ * fVar55 +
fStack_168 * fVar80 + (fStack_e8 * fVar66 - fStack_158 * fVar102)) ^
uVar33;
uVar111 = (uint)((float)uStack_114 * fVar27 +
(float)uStack_164 * fVar81 +
(fStack_e4 * fVar70 - (float)uStack_154 * fVar103)) ^ uVar65;
uVar113 = (uint)(uStack_114._4_4_ * fVar62 +
uStack_164._4_4_ * fVar82 +
(fStack_e0 * fVar73 - uStack_154._4_4_ * fVar112)) ^ uVar68;
uVar71 = (uint)(((float)local_15c * fVar77 +
local_16c * fVar87 + (float)local_11c * fVar63) - (float)local_ec * fVar69
) ^ uVar56;
uVar74 = (uint)((fStack_158 * fVar80 + fStack_168 * fVar102 + local_11c._4_4_ * fVar66) -
fStack_e8 * fVar55) ^ uVar33;
uVar75 = (uint)(((float)uStack_154 * fVar81 +
(float)uStack_164 * fVar103 + (float)uStack_114 * fVar70) -
fStack_e4 * fVar27) ^ uVar65;
uVar76 = (uint)((uStack_154._4_4_ * fVar82 +
uStack_164._4_4_ * fVar112 + uStack_114._4_4_ * fVar73) -
fStack_e0 * fVar62) ^ uVar68;
uVar56 = (uint)(local_16c * fVar69 +
((fVar87 * (float)local_ec + fVar63 * (float)local_15c) -
fVar77 * (float)local_11c)) ^ uVar56;
uVar33 = (uint)(fStack_168 * fVar55 +
((fVar102 * fStack_e8 + fVar66 * fStack_158) - fVar80 * local_11c._4_4_)) ^
uVar33;
uVar65 = (uint)((float)uStack_164 * fVar27 +
((fVar103 * fStack_e4 + fVar70 * (float)uStack_154) -
fVar81 * (float)uStack_114)) ^ uVar65;
uVar68 = (uint)(uStack_164._4_4_ * fVar62 +
((fVar112 * fStack_e0 + fVar73 * uStack_154._4_4_) -
fVar82 * uStack_114._4_4_)) ^ uVar68;
param_7 = local_208;
_local_29c = auVar94;
}
else {
local_2bc._4_4_ = fStack_78;
local_2bc._0_4_ = local_7c;
fStack_2b4 = fStack_74;
fStack_2b0 = fStack_70;
bVar14 = local_7c < (float)0;
bVar17 = fStack_78 < (float)0;
bVar21 = fStack_74 < (float)0;
bVar22 = fStack_70 < (float)0;
local_26c = (float)0x80000000;
fStack_268 = (float)0x80000000;
fStack_264 = (float)0x80000000;
fStack_260 = (float)0x80000000;
*pfVar36 = local_7c;
local_2ac._0_4_ = (float)-(uint)bVar14;
local_2ac._4_4_ = (float)-(uint)bVar17;
fStack_2a4 = (float)-(uint)bVar21;
fStack_2a0 = (float)-(uint)bVar22;
pfVar36[-1] = 1.6996024e-38;
lVar42 = (longdouble)__acosf_finite();
local_14c = (QuaternionAligned *)(float)lVar42;
local_29c._0_4_ = local_14c;
*pfVar36 = fStack_78;
pfVar36[-1] = 1.6996076e-38;
lVar42 = (longdouble)__acosf_finite();
local_29c._0_4_ = (float)lVar42;
*pfVar36 = fStack_74;
fStack_148 = (float)lVar42;
pfVar36[-1] = 1.6996181e-38;
lVar42 = (longdouble)__acosf_finite();
fStack_144 = (float)lVar42;
local_29c._0_4_ = fStack_144;
*pfVar36 = fStack_70;
pfVar36[-1] = 1.6996265e-38;
lVar43 = (longdouble)__acosf_finite();
dVar12 = (double)CONCAT44(local_2ac._4_4_,(float)local_2ac);
fStack_140 = (float)lVar43;
uVar56 = (uint)(int *)local_27c |
-(uint)(local_1dc < (float)((uint)local_26c ^ local_2bc._0_4_));
uVar33 = (uint)local_27c._4_4_ |
-(uint)(fStack_1d8 < (float)((uint)fStack_268 ^ local_2bc._4_4_));
uVar65 = (uint)fStack_274 |
-(uint)(fStack_1d4 < (float)((uint)fStack_264 ^ (uint)fStack_2b4));
uVar68 = (uint)fStack_270 |
-(uint)(fStack_1d0 < (float)((uint)fStack_260 ^ (uint)fStack_2b0));
auVar94._0_4_ =
local_10c * local_10c +
(float)local_fc * (float)local_fc + local_2d0[1] * local_2d0[1];
auVar94._4_4_ =
fStack_108 * fStack_108 + fStack_f8 * fStack_f8 + local_2d0[2] * local_2d0[2];
auVar94._8_4_ =
fStack_104 * fStack_104 + fStack_f4 * fStack_f4 + local_2d0[3] * local_2d0[3];
auVar94._12_4_ = fStack_100 * fStack_100 + fStack_f0 * fStack_f0 + fStack_2c0 * fStack_2c0
;
auVar98._0_4_ = (uint)(float)local_2ac & (uint)local_26c;
auVar98._4_4_ = (uint)local_2ac._4_4_ & (uint)fStack_268;
auVar98._8_4_ = (uint)fStack_2a4 & (uint)fStack_264;
auVar98._12_4_ = (uint)fStack_2a0 & (uint)fStack_260;
auVar98 = auVar98 | ZEXT816(0);
auVar97 = rsqrtps(ZEXT816(0),auVar94);
fVar27 = auVar97._0_4_;
fVar55 = auVar97._4_4_;
fVar62 = auVar97._8_4_;
fVar64 = auVar97._12_4_;
fVar69 = ((float)0x40400000 - fVar27 * fVar27 * auVar94._0_4_) * fVar27 *
(float)0x3f000000;
fVar55 = ((float)0x40400000 - fVar55 * fVar55 * auVar94._4_4_) * fVar55 *
(float)0x3f000000;
fVar62 = ((float)0x40400000 - fVar62 * fVar62 * auVar94._8_4_) * fVar62 *
(float)0x3f000000;
fVar64 = ((float)0x40400000 - fVar64 * fVar64 * auVar94._12_4_) * fVar64 *
(float)0x3f000000;
lVar42 = (longdouble)fcos((longdouble)((float)local_dc * (float)local_14c));
lVar44 = (longdouble)fsin((longdouble)((float)local_dc * (float)local_14c));
local_29c._0_4_ = (undefined4)lVar44;
local_3c = (float)lVar42;
lVar44 = (longdouble)fcos((longdouble)(local_dc._4_4_ * fStack_148));
lVar45 = (longdouble)fsin((longdouble)(local_dc._4_4_ * fStack_148));
fVar103 = (float)lVar45;
local_29c._4_4_ = local_13c._4_4_;
fStack_294 = fStack_134;
fStack_290 = fStack_130;
fStack_38 = (float)lVar44;
lVar45 = (longdouble)fcos((longdouble)(fStack_d4 * fStack_144));
lVar46 = (longdouble)fsin((longdouble)(fStack_d4 * fStack_144));
fVar27 = (float)lVar46;
lVar46 = (longdouble)(fStack_d0 * (float)lVar43);
fStack_34 = (float)lVar45;
lVar43 = (longdouble)fcos(lVar46);
lVar46 = (longdouble)fsin(lVar46);
local_27c = (double)lVar46;
fVar73 = (float)lVar46;
fStack_30 = (float)lVar43;
uVar71 = auVar98._0_4_;
uVar74 = auVar98._4_4_;
uVar75 = auVar98._8_4_;
uVar76 = auVar98._12_4_;
fVar90 = (float)(~uVar56 & ((uint)(local_2d0[1] * fVar69 * (float)local_29c._0_4_) ^
uVar71) | (uint)local_2d0[1] & uVar56);
fVar80 = (float)(~uVar33 & ((uint)(local_2d0[2] * fVar55 * fVar103) ^ uVar74) |
(uint)local_2d0[2] & uVar33);
fVar82 = (float)(~uVar65 & ((uint)(local_2d0[3] * fVar62 * fVar27) ^ uVar75) |
(uint)local_2d0[3] & uVar65);
fVar87 = (float)(~uVar68 & ((uint)(fStack_2c0 * fVar64 * fVar73) ^ uVar76) |
(uint)fStack_2c0 & uVar68);
fVar77 = (float)(~uVar56 & ((uint)((float)local_fc * fVar69 * (float)local_29c._0_4_) ^
uVar71) | (uint)local_fc & uVar56);
fVar81 = (float)(~uVar33 & ((uint)(fStack_f8 * fVar55 * fVar103) ^ uVar74) |
(uint)fStack_f8 & uVar33);
fVar104 = (float)(~uVar65 & ((uint)(fStack_f4 * fVar62 * fVar27) ^ uVar75) |
(uint)fStack_f4 & uVar65);
fVar102 = (float)(~uVar68 & ((uint)(fStack_f0 * fVar64 * fVar73) ^ uVar76) |
(uint)fStack_f0 & uVar68);
fVar67 = (float)(local_2bc._0_4_ & uVar56 | ~uVar56 & (uVar71 ^ (uint)(float)lVar42));
fVar63 = (float)(local_2bc._4_4_ & uVar33 | ~uVar33 & (uVar74 ^ (uint)(float)lVar44));
fVar66 = (float)((uint)fStack_2b4 & uVar65 | ~uVar65 & (uVar75 ^ (uint)(float)lVar45));
fVar70 = (float)((uint)fStack_2b0 & uVar68 | ~uVar68 & (uVar76 ^ (uint)(float)lVar43));
fVar69 = (float)((uint)local_10c & uVar56 |
~uVar56 & ((uint)(fVar69 * local_10c * (float)local_29c._0_4_) ^ uVar71));
fVar55 = (float)((uint)fStack_108 & uVar33 |
~uVar33 & ((uint)(fVar55 * fStack_108 * fVar103) ^ uVar74));
fVar27 = (float)((uint)fStack_104 & uVar65 |
~uVar65 & ((uint)(fVar62 * fStack_104 * fVar27) ^ uVar75));
fVar62 = (float)((uint)fStack_100 & uVar68 |
~uVar68 & ((uint)(fVar64 * fStack_100 * fVar73) ^ uVar76));
local_13c = 0;
fStack_134 = 0.0;
fStack_130 = 0.0;
uVar56 = -(uint)((float)local_11c * fVar90 + local_16c * fVar67 + (float)local_ec * fVar77
+ fVar69 * (float)local_15c < (float)0) & (uint)local_26c;
uVar33 = -(uint)(local_11c._4_4_ * fVar80 + fStack_168 * fVar63 + fStack_e8 * fVar81 +
fVar55 * fStack_158 < (float)0) & (uint)fStack_268;
uVar65 = -(uint)((float)uStack_114 * fVar82 + (float)uStack_164 * fVar66 +
fStack_e4 * fVar104 + fVar27 * (float)uStack_154 < (float)0) &
(uint)fStack_264;
uVar68 = -(uint)(uStack_114._4_4_ * fVar87 + uStack_164._4_4_ * fVar70 +
fStack_e0 * fVar102 + fVar62 * uStack_154._4_4_ < (float)0) &
(uint)fStack_260;
uVar83 = (uint)(((local_16c * fVar67 - (float)local_11c * fVar90) -
(float)local_ec * fVar77) - fVar69 * (float)local_15c) ^ uVar56;
uVar86 = (uint)(((fStack_168 * fVar63 - local_11c._4_4_ * fVar80) - fStack_e8 * fVar81) -
fVar55 * fStack_158) ^ uVar33;
uVar88 = (uint)((((float)uStack_164 * fVar66 - (float)uStack_114 * fVar82) -
fStack_e4 * fVar104) - fVar27 * (float)uStack_154) ^ uVar65;
uVar89 = (uint)(((uStack_164._4_4_ * fVar70 - uStack_114._4_4_ * fVar87) -
fStack_e0 * fVar102) - fVar62 * uStack_154._4_4_) ^ uVar68;
uVar71 = (uint)(((float)local_ec * fVar69 + (float)local_11c * fVar67 + local_16c * fVar90
) - fVar77 * (float)local_15c) ^ uVar56;
uVar74 = (uint)((fStack_e8 * fVar55 + local_11c._4_4_ * fVar63 + fStack_168 * fVar80) -
fVar81 * fStack_158) ^ uVar33;
uVar75 = (uint)((fStack_e4 * fVar27 +
(float)uStack_114 * fVar66 + (float)uStack_164 * fVar82) -
fVar104 * (float)uStack_154) ^ uVar65;
uVar76 = (uint)((fStack_e0 * fVar62 +
uStack_114._4_4_ * fVar70 + uStack_164._4_4_ * fVar87) -
fVar102 * uStack_154._4_4_) ^ uVar68;
uVar109 = (uint)(fVar90 * (float)local_15c +
(float)local_ec * fVar67 +
(local_16c * fVar77 - (float)local_11c * fVar69)) ^ uVar56;
uVar110 = (uint)(fVar80 * fStack_158 +
fStack_e8 * fVar63 + (fStack_168 * fVar81 - local_11c._4_4_ * fVar55)) ^
uVar33;
uVar111 = (uint)(fVar82 * (float)uStack_154 +
fStack_e4 * fVar66 +
((float)uStack_164 * fVar104 - (float)uStack_114 * fVar27)) ^ uVar65;
uVar113 = (uint)(fVar87 * uStack_154._4_4_ +
fStack_e0 * fVar70 +
(uStack_164._4_4_ * fVar102 - uStack_114._4_4_ * fVar62)) ^ uVar68;
uVar56 = (uint)(fVar67 * (float)local_15c +
(((float)local_11c * fVar77 + local_16c * fVar69) -
(float)local_ec * fVar90)) ^ uVar56;
uVar33 = (uint)(fVar63 * fStack_158 +
((local_11c._4_4_ * fVar81 + fStack_168 * fVar55) - fStack_e8 * fVar80)) ^
uVar33;
uVar65 = (uint)(fVar66 * (float)uStack_154 +
(((float)uStack_114 * fVar104 + (float)uStack_164 * fVar27) -
fStack_e4 * fVar82)) ^ uVar65;
uVar68 = (uint)(fVar70 * uStack_154._4_4_ +
((uStack_114._4_4_ * fVar102 + uStack_164._4_4_ * fVar62) -
fStack_e0 * fVar87)) ^ uVar68;
}
pVVar28 = local_204 + 0x30;
uVar47 = -(uint)((float)local_dc <= (float)0);
uVar49 = -(uint)(local_dc._4_4_ <= (float)0);
uVar51 = -(uint)(fStack_d4 <= (float)0);
uVar53 = -(uint)(fStack_d0 <= (float)0);
uVar48 = -(uint)((float)0 < (float)local_dc);
uVar50 = -(uint)((float)0 < local_dc._4_4_);
uVar52 = -(uint)((float)0 < fStack_d4);
uVar54 = -(uint)((float)0 < fStack_d0);
pQVar40 = local_180 + iVar37;
*(uint *)pQVar40 =
((uint)(float)local_11c & uVar47 | ~uVar47 & uVar71) & uVar48 |
~uVar48 & local_22c._0_4_;
*(uint *)(pQVar40 + 4) =
((uint)local_ec & uVar47 | ~uVar47 & uVar109) & uVar48 | ~uVar48 & local_22c._4_4_;
*(uint *)(pQVar40 + 8) =
((uint)local_15c & uVar47 | ~uVar47 & uVar56) & uVar48 | ~uVar48 & (uint)fStack_224;
*(uint *)(pQVar40 + 0xc) =
(uVar47 & (uint)local_16c | ~uVar47 & uVar83) & uVar48 | ~uVar48 & (uint)fStack_220;
iVar37 = iVar37 + 0x40;
*(uint *)local_1bc =
((uint)local_11c._4_4_ & uVar49 | ~uVar49 & uVar74) & uVar50 |
~uVar50 & (uint)local_23c;
*(uint *)(local_1bc + 4) =
((uint)fStack_e8 & uVar49 | ~uVar49 & uVar110) & uVar50 | ~uVar50 & (uint)fStack_238;
*(uint *)(local_1bc + 8) =
((uint)fStack_158 & uVar49 | ~uVar49 & uVar33) & uVar50 | ~uVar50 & (uint)fStack_234;
*(uint *)(local_1bc + 0xc) =
(uVar49 & (uint)fStack_168 | ~uVar49 & uVar86) & uVar50 | ~uVar50 & (uint)fStack_230;
*(uint *)local_1cc =
((uint)(float)uStack_114 & uVar51 | ~uVar51 & uVar75) & uVar52 |
~uVar52 & local_24c._0_4_;
*(uint *)(local_1cc + 4) =
((uint)fStack_e4 & uVar51 | ~uVar51 & uVar111) & uVar52 | ~uVar52 & local_24c._4_4_;
*(uint *)(local_1cc + 8) =
((uint)(float)uStack_154 & uVar51 | ~uVar51 & uVar65) & uVar52 |
~uVar52 & (uint)fStack_244;
*(uint *)(local_1cc + 0xc) =
(uVar51 & (uint)(float)uStack_164 | ~uVar51 & uVar88) & uVar52 |
~uVar52 & (uint)fStack_240;
*(uint *)local_184 =
((uint)uStack_114._4_4_ & uVar53 | ~uVar53 & uVar76) & uVar54 |
~uVar54 & (uint)(float)local_25c;
*(uint *)(local_184 + 4) =
((uint)fStack_e0 & uVar53 | ~uVar53 & uVar113) & uVar54 |
~uVar54 & (uint)local_25c._4_4_;
*(uint *)(local_184 + 8) =
((uint)uStack_154._4_4_ & uVar53 | ~uVar53 & uVar68) & uVar54 |
~uVar54 & (uint)fStack_254;
*(uint *)(local_184 + 0xc) =
(uVar53 & (uint)uStack_164._4_4_ | ~uVar53 & uVar89) & uVar54 |
~uVar54 & (uint)fStack_250;
local_ec = *(QuaternionAligned **)param_3;
fStack_e8 = *(float *)(param_3 + 4);
fStack_e4 = *(float *)(param_3 + 8);
fStack_e0 = *(float *)(param_3 + 0xc);
local_fc = *(Vector **)(param_3 + 0xc);
fStack_f8 = *(float *)(param_3 + 0x10);
fStack_f4 = *(float *)(param_3 + 0x14);
fStack_f0 = *(float *)(param_3 + 0x18);
local_10c = *(float *)(param_3 + 0x18);
fStack_108 = *(float *)(param_3 + 0x1c);
fStack_104 = *(float *)(param_3 + 0x20);
fStack_100 = *(float *)(param_3 + 0x24);
fVar27 = *(float *)(param_3 + 0x24);
fVar69 = *(float *)(param_3 + 0x28);
fVar55 = *(float *)(param_3 + 0x2c);
fVar62 = *(float *)(param_3 + 0x30);
local_11c = *(undefined8 *)(param_3 + 0x24);
uStack_114 = *(undefined8 *)(param_3 + 0x2c);
fVar82 = *(float *)param_7 * (float)local_dc;
fVar104 = *(float *)(param_7 + 4) * (float)local_dc;
fVar87 = *(float *)(param_7 + 8) * (float)local_dc;
fVar77 = *(float *)(param_7 + 0xc) * local_dc._4_4_;
fVar80 = *(float *)(param_7 + 0x10) * local_dc._4_4_;
fVar81 = *(float *)(param_7 + 0x14) * local_dc._4_4_;
fVar70 = *(float *)(param_7 + 0x18) * fStack_d4;
fVar73 = *(float *)(param_7 + 0x1c) * fStack_d4;
fVar90 = *(float *)(param_7 + 0x20) * fStack_d4;
bVar14 = (float)0 < (float)local_dc;
bVar22 = (float)0 < (float)local_dc;
bVar18 = (float)0 < (float)local_dc;
fVar64 = *(float *)(param_7 + 0x24) * fStack_d0;
fVar67 = *(float *)(param_7 + 0x28) * fStack_d0;
fVar63 = *(float *)(param_7 + 0x2c) * fStack_d0;
fVar66 = *(float *)(param_7 + 0x30) * fStack_d0;
local_1ac = (float)((int)local_1ac + 4);
bVar17 = (float)0 < local_dc._4_4_;
bVar15 = (float)0 < local_dc._4_4_;
bVar19 = (float)0 < local_dc._4_4_;
local_1bc = local_1bc + 0x40;
bVar21 = (float)0 < fStack_d4;
bVar16 = (float)0 < fStack_d4;
bVar20 = (float)0 < fStack_d4;
uVar56 = -(uint)((float)0 < fStack_d0);
uVar33 = -(uint)((float)0 < fStack_d0);
fStack_d4 = (float)-(uint)((float)0 < fStack_d0);
fStack_d0 = (float)-(uint)((float)0 < fStack_d0);
local_dc = (double)CONCAT44(uVar33,uVar56);
*(uint *)param_3 =
(uint)(fVar82 + (float)local_ec) & -(uint)bVar14 | ~-(uint)bVar14 & (uint)local_ec;
*(uint *)local_204 =
(uint)(fVar104 + fStack_e8) & -(uint)bVar22 | ~-(uint)bVar22 & (uint)fStack_e8;
*(uint *)local_21c =
(uint)(fVar87 + fStack_e4) & -(uint)bVar18 | ~-(uint)bVar18 & (uint)fStack_e4;
*(uint *)(param_3 + 0xc) =
(uint)(fVar77 + (float)local_fc) & -(uint)bVar17 | ~-(uint)bVar17 & (uint)local_fc;
*(uint *)(local_204 + 0xc) =
(uint)(fVar80 + fStack_f8) & -(uint)bVar15 | ~-(uint)bVar15 & (uint)fStack_f8;
((uint *)local_21c)[3] =
(uint)(fVar81 + fStack_f4) & -(uint)bVar19 | ~-(uint)bVar19 & (uint)fStack_f4;
*(uint *)(param_3 + 0x18) =
(uint)(fVar70 + local_10c) & -(uint)bVar21 | ~-(uint)bVar21 & (uint)local_10c;
*(uint *)(local_204 + 0x18) =
(uint)(fVar73 + fStack_108) & -(uint)bVar16 | ~-(uint)bVar16 & (uint)fStack_108;
((uint *)local_21c)[6] =
(uint)(fVar90 + fStack_104) & -(uint)bVar20 | ~-(uint)bVar20 & (uint)fStack_104;
auVar57._0_4_ = (uint)(fVar64 + fVar27) & uVar56;
auVar57._4_4_ = (uint)(fVar67 + fVar69) & uVar33;
auVar57._8_4_ = (uint)(fVar63 + fVar55) & (uint)fStack_d4;
auVar57._12_4_ = (uint)(fVar66 + fVar62) & (uint)fStack_d0;
auVar72._0_4_ = ~uVar56 & (uint)fVar27;
auVar72._4_4_ = ~uVar33 & (uint)fVar69;
auVar72._8_4_ = ~(uint)fStack_d4 & (uint)fVar55;
auVar72._12_4_ = ~(uint)fStack_d0 & (uint)fVar62;
auVar57 = auVar57 | auVar72;
*(float *)(param_3 + 0x24) = auVar57._0_4_;
*(uint *)(local_204 + 0x24) = auVar57._4_4_;
((uint *)local_21c)[9] = auVar57._8_4_;
local_1cc = local_1cc + 0x40;
local_184 = local_184 + 0x40;
local_21c = CONCAT44(local_21c._4_4_,(uint *)local_21c + 0xc);
fVar27 = local_28c;
if ((int)local_28c <= (int)local_1ac) break;
local_26c = *(float *)(local_1fc + 0xc);
param_6 = local_20c;
param_7 = param_7 + 0x30;
param_3 = param_3 + 0x30;
}
}
pfVar35 = pfVar36;
if ((int)fVar27 < (int)local_19c) {
pQVar38 = local_180 + (int)fVar27 * 0x10;
pQVar40 = local_18c + (int)fVar27 * 0x10;
local_dc = (double)CONCAT44(local_dc._4_4_,pQVar38);
pVVar32 = local_188 + (int)fVar27 * 0xc;
pVVar28 = local_200 + (int)fVar27 * 0xc;
do {
fVar69 = *(float *)((int)local_1ec + (int)fVar27 * 4);
if (0.0 < fVar69) {
local_fc = pVVar28;
mVar13 = local_1fc[0xc];
local_2ac = dVar12;
pfVar36[3] = (float)pQVar38;
if (((byte)mVar13 & 0x10) == 0) {
pfVar36[2] = (float)pQVar38;
pfVar36[1] = (float)pQVar40;
*pfVar36 = fVar69;
local_ec = pQVar40;
local_dc = (double)CONCAT44(local_dc._4_4_,fVar69);
pfVar36[-1] = 1.7001423e-38;
QuaternionSM(*pfVar36,(Quaternion *)pfVar36[1],(Quaternion *)pfVar36[2],
(Quaternion *)pfVar36[3]);
dVar12 = local_2ac;
}
else {
pfVar36[2] = (float)pQVar40;
pfVar36[1] = fVar69;
*pfVar36 = (float)pQVar38;
local_ec = pQVar40;
local_dc = (double)CONCAT44(local_dc._4_4_,fVar69);
pfVar36[-1] = 1.7001181e-38;
QuaternionMA((Quaternion *)*pfVar36,pfVar36[1],(Quaternion *)pfVar36[2],
(Quaternion *)pfVar36[3]);
dVar12 = local_2ac;
}
*(float *)pVVar32 = (float)local_dc * *(float *)local_fc + *(float *)pVVar32;
*(float *)(pVVar32 + 4) =
*(float *)(local_fc + 4) * (float)local_dc + *(float *)(pVVar32 + 4);
*(float *)(pVVar32 + 8) =
(float)local_dc * *(float *)(local_fc + 8) + *(float *)(pVVar32 + 8);
pVVar28 = local_fc;
pQVar40 = local_ec;
}
fVar27 = (float)((int)fVar27 + 1);
pQVar38 = pQVar38 + 0x10;
pQVar40 = pQVar40 + 0x10;
pVVar32 = pVVar32 + 0xc;
pVVar28 = pVVar28 + 0xc;
} while (fVar27 != local_19c);
}
goto LAB_00b91fd0;
}
uVar56 = (uint)local_16c & 0xfffffff0;
local_208 = (Vector *)((int)pfVar36 + (0x33 - uVar56) & 0xfffffff0);
local_1bc = (QuaternionAligned *)((int)pfVar36 + uVar56 * -2 + 0x33 & 0xfffffff0);
local_20c = (QuaternionAligned *)((int)pfVar36 + uVar56 * -3 + 0x33 & 0xfffffff0);
local_184 = (QuaternionAligned *)((int)pfVar36 + uVar56 * -4 + 0x33 & 0xfffffff0);
if ((int)local_19c < 1) {
local_2d0[1] = 0.0;
LAB_00b93713:
fVar27 = 0.0;
}
else {
fVar27 = 0.0;
local_13c = CONCAT44(local_13c._4_4_,param_1);
local_2d0[1] = 0.0;
local_204 = (Vector *)0x0;
local_12c = CONCAT44(local_12c._4_4_,param_7);
pQVar40 = param_2;
do {
pVVar28 = local_204;
fVar55 = local_2d0[1];
fVar69 = *(float *)((int)local_1ec + (int)fVar27 * 4);
if (fVar69 == 1.0) {
uVar9 = *(undefined4 *)(param_6 + 0xc);
uVar10 = *(undefined4 *)(param_6 + 8);
uVar11 = *(undefined4 *)(param_6 + 4);
*(undefined4 *)pQVar40 = *(undefined4 *)param_6;
*(undefined4 *)(pQVar40 + 8) = uVar10;
*(undefined4 *)(pQVar40 + 4) = uVar11;
*(undefined4 *)(pQVar40 + 0xc) = uVar9;
*(undefined4 *)param_3 = *(undefined4 *)local_12c;
*(undefined4 *)(param_3 + 4) = ((undefined4 *)local_12c)[1];
*(undefined4 *)(param_3 + 8) = ((undefined4 *)local_12c)[2];
}
else if (0.0 < fVar69) {
if ((*(uint *)(*(int *)(param_1 + 0x2c) + (int)fVar27 * 4) & 0x100000) == 0) {
local_204 = local_204 + 1;
*(float *)(local_208 + (int)pVVar28 * 4) = fVar27;
*(float *)(local_1bc + (int)pVVar28 * 4) = fVar69;
}
else {
local_2d0[1] = (float)((int)local_2d0[1] + 1);
*(float *)(local_20c + (int)fVar55 * 4) = fVar27;
*(float *)(local_184 + (int)fVar55 * 4) = fVar69;
}
}
fVar27 = (float)((int)fVar27 + 1);
param_6 = param_6 + 0x10;
pQVar40 = pQVar40 + 0x10;
local_12c = CONCAT44(local_12c._4_4_,(undefined4 *)local_12c + 3);
param_3 = param_3 + 0xc;
} while (fVar27 != local_19c);
pVVar28 = (Vector *)((uint)local_204 & 0xfffffffc);
if ((int)pVVar28 < 1) {
pVVar28 = (Vector *)0x0;
local_2ac._0_4_ = (float)((uint)local_2d0[1] & 0xfffffffc);
}
else {
local_14c = (QuaternionAligned *)0x0;
local_1dc = 0.999999;
fStack_1d8 = 0.999999;
fStack_1d4 = 0.999999;
fStack_1d0 = 0.999999;
local_13c = CONCAT44(local_13c._4_4_,&local_6c);
pVVar32 = local_208 + 4;
do {
pQVar29 = local_18c;
_local_2bc = in_XMM7;
pQVar40 = local_1bc + (int)local_14c * 4;
fVar27 = *(float *)pQVar40;
fVar69 = *(float *)(pQVar40 + 4);
fVar55 = *(float *)(pQVar40 + 8);
fVar62 = *(float *)(pQVar40 + 0xc);
local_1ac = (float)0x3f800000 - fVar27;
fStack_1a8 = (float)0x3f800000 - fVar69;
fStack_1a4 = (float)0x3f800000 - fVar55;
fStack_1a0 = (float)0x3f800000 - fVar62;
pVVar31 = local_188 + (int)*(float *)(pVVar32 + -4) * 0xc;
pVVar1 = local_188 + (int)*(float *)pVVar32 * 0xc;
pVVar2 = local_188 + (int)*(float *)(pVVar32 + 4) * 0xc;
pVVar3 = local_188 + (int)*(float *)(pVVar32 + 8) * 0xc;
pVVar4 = local_200 + (int)*(float *)(pVVar32 + -4) * 0xc;
pVVar5 = local_200 + (int)*(float *)pVVar32 * 0xc;
local_12c = *(undefined8 *)pVVar5;
fStack_124 = *(float *)(pVVar5 + 8);
fStack_120 = *(float *)(pVVar5 + 0xc);
pVVar6 = local_200 + (int)*(float *)(pVVar32 + 4) * 0xc;
pVVar7 = local_200 + (int)*(float *)(pVVar32 + 8) * 0xc;
auVar99._0_4_ = fVar55 * *(float *)pVVar6;
auVar99._4_4_ = fVar55 * *(float *)(pVVar6 + 4);
auVar99._8_4_ = fVar55 * *(float *)(pVVar6 + 8);
auVar99._12_4_ = fVar55 * *(float *)(pVVar6 + 0xc);
local_1cc = (QuaternionAligned *)(fStack_1a8 * *(float *)pVVar1 + fVar69 * *(float *)pVVar5)
;
fStack_1c8 = fStack_1a8 * *(float *)(pVVar1 + 4) + fVar69 * *(float *)(pVVar5 + 4);
fStack_1c4 = fStack_1a8 * *(float *)(pVVar1 + 8) + fVar69 * *(float *)(pVVar5 + 8);
fStack_1c0 = fStack_1a8 * *(float *)(pVVar1 + 0xc) + fVar69 * *(float *)(pVVar5 + 0xc);
local_2ac._0_4_ = fVar27 * *(float *)pVVar4 + local_1ac * *(float *)pVVar31;
local_2ac._4_4_ = fVar27 * *(float *)(pVVar4 + 4) + local_1ac * *(float *)(pVVar31 + 4);
fStack_2a4 = fVar27 * *(float *)(pVVar4 + 8) + local_1ac * *(float *)(pVVar31 + 8);
fStack_2a0 = fVar27 * *(float *)(pVVar4 + 0xc) + local_1ac * *(float *)(pVVar31 + 0xc);
local_1ec = fStack_1a4 * *(float *)pVVar2 + auVar99._0_4_;
fStack_1e8 = fStack_1a4 * *(float *)(pVVar2 + 4) + auVar99._4_4_;
uStack_1e4 = CONCAT44(fStack_1a4 * *(float *)(pVVar2 + 0xc) + auVar99._12_4_,
fStack_1a4 * *(float *)(pVVar2 + 8) + auVar99._8_4_);
fVar27 = *(float *)(pVVar32 + -4);
pQVar40 = param_2 + (int)*(float *)pVVar32 * 0x10;
fVar69 = *(float *)pQVar40;
fVar55 = *(float *)(pQVar40 + 4);
uVar9 = *(undefined4 *)(pQVar40 + 8);
fVar64 = *(float *)(pQVar40 + 0xc);
pQVar40 = param_2 + (int)fVar27 * 0x10;
pmVar39 = *(mstudioseqdesc_t **)pQVar40;
fVar67 = *(float *)(pQVar40 + 4);
pQVar38 = param_2 + (int)*(float *)(pVVar32 + 4) * 0x10;
fVar63 = *(float *)(pQVar38 + 8);
fVar66 = *(float *)(pQVar38 + 0xc);
pQVar8 = param_2 + (int)*(float *)(pVVar32 + 8) * 0x10;
fVar70 = *(float *)(pQVar8 + 8);
fVar73 = *(float *)(pQVar8 + 0xc);
local_1fc = (mstudioseqdesc_t *)(*(float *)pVVar3 * fStack_1a0 + fVar62 * *(float *)pVVar7);
fStack_1f8 = *(float *)(pVVar3 + 4) * fStack_1a0 + fVar62 * *(float *)(pVVar7 + 4);
uStack_1f4 = CONCAT44(*(float *)(pVVar3 + 0xc) * fStack_1a0 +
fVar62 * *(float *)(pVVar7 + 0xc),
*(float *)(pVVar3 + 8) * fStack_1a0 + fVar62 * *(float *)(pVVar7 + 8))
;
uVar105 = CONCAT44(*(undefined4 *)pQVar8,*(undefined4 *)pQVar38);
auVar78._8_4_ = *(undefined4 *)(pQVar38 + 4);
auVar78._0_8_ = uVar105;
auVar78._12_4_ = *(undefined4 *)(pQVar8 + 4);
uVar10 = *(undefined4 *)(pQVar40 + 8);
fVar62 = *(float *)(pQVar40 + 0xc);
auVar23._4_8_ = auVar99._8_8_;
auVar23._0_4_ = *(undefined4 *)pQVar8;
auVar100._0_8_ = auVar23._0_8_ << 0x20;
auVar100._8_4_ = *(undefined4 *)(pQVar38 + 4);
auVar100._12_4_ = *(undefined4 *)(pQVar8 + 4);
pfVar36[2 - uVar56] = (float)local_cc;
pfVar36[1 - uVar56] = (float)(pQVar29 + (int)fVar27 * 0x10);
pfVar36[-uVar56] = (float)pQVar40;
local_15c = pmVar39;
fStack_158 = fVar69;
uStack_154 = uVar105;
local_16c = fVar67;
fStack_168 = fVar55;
uStack_164 = auVar100._8_8_;
local_17c = CONCAT44(uVar9,uVar10);
fStack_174 = fVar63;
fStack_170 = fVar70;
local_19c = fVar62;
fStack_198 = fVar64;
fStack_194 = fVar66;
fStack_190 = fVar73;
pfVar36[-1 - uVar56] = 1.7002794e-38;
QuaternionAlign((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
(Quaternion *)pfVar36[2 - uVar56]);
fVar27 = *(float *)pVVar32;
pfVar36[2 - uVar56] = (float)&local_bc;
pfVar36[1 - uVar56] = (float)(pQVar29 + (int)fVar27 * 0x10);
pfVar36[-uVar56] = (float)(param_2 + (int)fVar27 * 0x10);
pfVar36[-1 - uVar56] = 1.7002838e-38;
QuaternionAlign((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
(Quaternion *)pfVar36[2 - uVar56]);
fVar27 = *(float *)(pVVar32 + 4);
pfVar36[2 - uVar56] = (float)local_ac;
pfVar36[1 - uVar56] = (float)(pQVar29 + (int)fVar27 * 0x10);
pfVar36[-uVar56] = (float)(param_2 + (int)fVar27 * 0x10);
pfVar36[-1 - uVar56] = 1.7002885e-38;
QuaternionAlign((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
(Quaternion *)pfVar36[2 - uVar56]);
fVar27 = *(float *)(pVVar32 + 8);
pfVar36[2 - uVar56] = (float)(float *)local_13c;
pfVar36[1 - uVar56] = (float)(pQVar29 + (int)fVar27 * 0x10);
pfVar36[-uVar56] = (float)(param_2 + (int)fVar27 * 0x10);
pfVar36[-1 - uVar56] = 1.7002931e-38;
QuaternionAlign((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
(Quaternion *)pfVar36[2 - uVar56]);
fVar27 = local_cc._12_4_;
fVar69 = local_ac._12_4_;
local_23c = local_cc._8_4_;
auVar58._4_12_ = local_cc._4_12_;
auVar58._0_4_ = local_23c;
auVar60._0_8_ = auVar58._0_8_;
auVar60._8_4_ = fVar27;
auVar60._12_4_ = fVar27;
auVar59._8_8_ = auVar60._8_8_;
auVar59._4_4_ = fStack_b4;
auVar59._0_4_ = local_23c;
auVar61._0_12_ = auVar59._0_12_;
auVar61._12_4_ = fStack_b0;
fStack_234 = local_ac._8_4_;
local_21c = CONCAT44(local_bc,local_cc._0_4_);
auVar24._4_8_ = auVar78._8_8_;
auVar24._0_4_ = local_bc;
auVar79._0_8_ = auVar24._0_8_ << 0x20;
auVar79._8_4_ = local_cc._4_4_;
auVar79._12_4_ = fStack_b8;
fStack_244 = fVar69;
local_24c = (undefined1 [8])auVar61._8_8_;
fStack_240 = fStack_60;
auVar92._8_4_ = local_ac._4_4_;
auVar92._0_8_ = local_ac._0_8_;
auVar92._12_4_ = fVar69;
auVar91._8_8_ = auVar92._8_8_;
auVar91._0_8_ = CONCAT44(local_6c,local_ac._0_4_);
auVar93._0_12_ = auVar91._0_12_;
auVar93._12_4_ = fStack_68;
register0x00001308 = auVar93._8_8_;
local_22c = auVar79._8_8_;
fStack_238 = fStack_b4;
fStack_230 = fStack_64;
local_27c = (double)CONCAT44(fStack_1a8,local_1ac);
fStack_274 = fStack_1a4;
fStack_270 = fStack_1a0;
local_26c = local_19c * fVar27 +
(float)local_23c * (float)local_17c +
local_16c * local_cc._4_4_ + (float)local_15c * local_cc._0_4_;
fStack_268 = fStack_198 * fStack_b0 +
fStack_b4 * local_17c._4_4_ + fStack_168 * fStack_b8 + fStack_158 * local_bc;
fStack_264 = fStack_194 * fVar69 +
fStack_234 * fStack_174 +
(float)uStack_164 * local_ac._4_4_ + (float)uStack_154 * local_ac._0_4_;
fStack_260 = fStack_190 * fStack_60 +
fStack_64 * fStack_170 +
uStack_164._4_4_ * fStack_68 + uStack_154._4_4_ * local_6c;
local_29c._4_4_ = -(uint)(fStack_268 < fStack_1d8);
local_29c._0_4_ = -(uint)(local_26c < local_1dc);
fStack_294 = (float)-(uint)(fStack_264 < fStack_1d4);
fStack_290 = (float)-(uint)(fStack_260 < fStack_1d0);
auVar106._0_4_ = (float)0x3f800000 - local_26c * local_26c;
auVar106._4_4_ = (float)0x3f800000 - fStack_268 * fStack_268;
auVar106._8_4_ = (float)0x3f800000 - fStack_264 * fStack_264;
auVar106._12_4_ = (float)0x3f800000 - fStack_260 * fStack_260;
auVar94 = rsqrtps(_local_22c,auVar106);
fVar27 = auVar94._0_4_;
fVar69 = auVar94._4_4_;
fVar55 = auVar94._8_4_;
fVar62 = auVar94._12_4_;
uStack_214 = auVar91._0_8_;
local_1ac = (float)0x3f800000 - local_1ac;
fStack_1a8 = (float)0x3f800000 - fStack_1a8;
fStack_1a4 = (float)0x3f800000 - fStack_1a4;
fStack_1a0 = (float)0x3f800000 - fStack_1a0;
*(double *)(pfVar36 + (2 - uVar56)) = (double)local_26c;
local_28c = ((float)0x40400000 - fVar27 * fVar27 * auVar106._0_4_) * fVar27 *
(float)0x3f000000;
fStack_288 = ((float)0x40400000 - fVar69 * fVar69 * auVar106._4_4_) * fVar69 *
(float)0x3f000000;
fStack_284 = ((float)0x40400000 - fVar55 * fVar55 * auVar106._8_4_) * fVar55 *
(float)0x3f000000;
fStack_280 = ((float)0x40400000 - fVar62 * fVar62 * auVar106._12_4_) * fVar62 *
(float)0x3f000000;
local_12c._0_4_ = (undefined4 *)(auVar106._0_4_ * local_28c);
local_12c._4_4_ = auVar106._4_4_ * fStack_288;
fStack_124 = auVar106._8_4_ * fStack_284;
fStack_120 = auVar106._12_4_ * fStack_280;
*(double *)(pfVar36 + -uVar56) = (double)(float)(undefined4 *)local_12c;
pfVar36[-1 - uVar56] = 1.7003361e-38;
lVar42 = (longdouble)__atan2_finite();
fVar27 = local_12c._4_4_;
local_25c = (double)lVar42;
local_fc = (Vector *)(float)lVar42;
*(double *)(pfVar36 + (2 - uVar56)) = (double)fStack_268;
*(double *)(pfVar36 + -uVar56) = (double)fVar27;
pfVar36[-1 - uVar56] = 1.7003486e-38;
lVar42 = (longdouble)__atan2_finite();
local_25c = (double)lVar42;
fStack_f8 = (float)lVar42;
*(double *)(pfVar36 + (2 - uVar56)) = (double)fStack_264;
*(double *)(pfVar36 + -uVar56) = (double)fStack_124;
pfVar36[-1 - uVar56] = 1.7003661e-38;
lVar42 = (longdouble)__atan2_finite();
fVar27 = fStack_120;
local_25c = (double)lVar42;
fStack_f4 = (float)lVar42;
*(double *)(pfVar36 + (2 - uVar56)) = (double)fStack_260;
*(double *)(pfVar36 + -uVar56) = (double)fVar27;
pfVar36[-1 - uVar56] = 1.700381e-38;
lVar42 = (longdouble)__atan2_finite();
fStack_f0 = (float)lVar42;
fVar27 = local_1ac * (float)local_fc;
fVar69 = fStack_1a8 * fStack_f8;
fVar55 = fStack_1a4 * fStack_f4;
fVar62 = fStack_1a0 * fStack_f0;
fVar64 = (float)local_fc * (float)(int *)local_27c;
fVar67 = fStack_f8 * local_27c._4_4_;
fVar63 = fStack_f4 * fStack_274;
fVar66 = fStack_f0 * fStack_270;
pfVar36[-uVar56] = fVar27;
local_26c = fVar27;
fStack_268 = fVar69;
fStack_264 = fVar55;
fStack_260 = fVar62;
local_12c._0_4_ = (undefined4 *)fVar64;
local_12c._4_4_ = fVar67;
fStack_124 = fVar63;
fStack_120 = fVar66;
pfVar36[-1 - uVar56] = 1.700395e-38;
fVar27 = sinf(pfVar36[-uVar56]);
local_25c._0_4_ = fVar27;
local_dc = (double)CONCAT44(local_dc._4_4_,fVar27);
pfVar36[-uVar56] = fStack_268;
pfVar36[-1 - uVar56] = 1.7004014e-38;
local_25c._0_4_ = sinf(pfVar36[-uVar56]);
local_dc._0_4_ = (float)SUB84(local_dc,0);
local_dc._4_4_ = (float)local_25c;
pfVar36[-uVar56] = fStack_264;
pfVar36[-1 - uVar56] = 1.700413e-38;
fVar27 = sinf(pfVar36[-uVar56]);
local_25c._0_4_ = fVar27;
pfVar36[-uVar56] = fStack_260;
fStack_d4 = fVar27;
pfVar36[-1 - uVar56] = 1.7004223e-38;
local_25c._0_4_ = sinf(pfVar36[-uVar56]);
fStack_d0 = (float)local_25c;
pfVar36[-uVar56] = (float)(undefined4 *)local_12c;
pfVar36[-1 - uVar56] = 1.700431e-38;
local_25c._0_4_ = sinf(pfVar36[-uVar56]);
local_26c = (float)local_25c;
fStack_268 = (float)local_2bc._4_4_;
fStack_264 = fStack_2b4;
fStack_260 = fStack_2b0;
pfVar36[-uVar56] = local_12c._4_4_;
pfVar36[-1 - uVar56] = 1.7004388e-38;
local_25c._0_4_ = sinf(pfVar36[-uVar56]);
fStack_268 = (float)local_25c;
pfVar36[-uVar56] = fStack_124;
pfVar36[-1 - uVar56] = 1.700448e-38;
fStack_254 = sinf(pfVar36[-uVar56]);
local_25c._0_4_ = local_26c;
local_25c._4_4_ = fStack_268;
fStack_250 = fStack_260;
pfVar36[-uVar56] = fStack_120;
pfVar36[-1 - uVar56] = 1.7004568e-38;
fVar63 = sinf(pfVar36[-uVar56]);
in_XMM7._4_4_ = local_25c._4_4_;
in_XMM7._0_4_ = (float)local_25c;
in_XMM7._8_4_ = fStack_254;
local_12c = CONCAT44(local_12c._4_4_,fVar63);
in_XMM7._12_4_ = fVar63;
fVar27 = *(float *)(pVVar32 + 8);
fVar69 = *(float *)(pVVar32 + 4);
fVar66 = (float)((uint)((float)local_dc * local_28c) & local_29c._0_4_ |
~local_29c._0_4_ & (uint)local_1ac);
fVar70 = (float)((uint)(local_dc._4_4_ * fStack_288) & local_29c._4_4_ |
~local_29c._4_4_ & (uint)fStack_1a8);
fVar73 = (float)((uint)(fStack_d4 * fStack_284) & (uint)fStack_294 |
~(uint)fStack_294 & (uint)fStack_1a4);
fVar90 = (float)((uint)(fStack_d0 * fStack_280) & (uint)fStack_290 |
~(uint)fStack_290 & (uint)fStack_1a0);
fVar55 = *(float *)pVVar32;
fVar62 = (float)((uint)(local_28c * (float)local_25c) & local_29c._0_4_ |
~local_29c._0_4_ & (uint)(int *)local_27c);
fVar64 = (float)((uint)(fStack_288 * local_25c._4_4_) & local_29c._4_4_ |
~local_29c._4_4_ & (uint)local_27c._4_4_);
fVar67 = (float)((uint)(fStack_284 * fStack_254) & (uint)fStack_294 |
~(uint)fStack_294 & (uint)fStack_274);
fVar63 = (float)((uint)(fStack_280 * fVar63) & (uint)fStack_290 |
~(uint)fStack_290 & (uint)fStack_270);
pQVar40 = param_2 + (int)*(float *)(pVVar32 + -4) * 0x10;
*(float *)pQVar40 = (float)local_15c * fVar62 + (float)(uint *)local_21c * fVar66;
*(float *)(pQVar40 + 4) = local_16c * fVar62 + (float)local_22c._0_4_ * fVar66;
*(ulonglong *)(pQVar40 + 8) =
CONCAT44(fVar62 * local_19c + fVar66 * (float)local_24c._0_4_,
(float)local_17c * fVar62 + (float)local_23c * fVar66);
pQVar40 = param_2 + (int)fVar55 * 0x10;
*(float *)pQVar40 = fStack_158 * fVar64 + local_21c._4_4_ * fVar70;
*(float *)(pQVar40 + 4) = fStack_168 * fVar64 + (float)local_22c._4_4_ * fVar70;
*(float *)(pQVar40 + 8) = local_17c._4_4_ * fVar64 + fStack_238 * fVar70;
*(float *)(pQVar40 + 0xc) = fVar64 * fStack_198 + fVar70 * (float)local_24c._4_4_;
pQVar40 = param_2 + (int)fVar69 * 0x10;
*(float *)pQVar40 = (float)uStack_154 * fVar67 + (float)uStack_214 * fVar73;
*(float *)(pQVar40 + 4) = (float)uStack_164 * fVar67 + fStack_224 * fVar73;
*(float *)(pQVar40 + 8) = fStack_174 * fVar67 + fStack_234 * fVar73;
*(float *)(pQVar40 + 0xc) = fVar67 * fStack_194 + fVar73 * fStack_244;
pQVar40 = param_2 + (int)fVar27 * 0x10;
*(float *)pQVar40 = uStack_154._4_4_ * fVar63 + uStack_214._4_4_ * fVar90;
*(float *)(pQVar40 + 4) = uStack_164._4_4_ * fVar63 + fStack_220 * fVar90;
*(float *)(pQVar40 + 8) = fStack_170 * fVar63 + fStack_230 * fVar90;
*(float *)(pQVar40 + 0xc) = fVar63 * fStack_190 + fVar90 * fStack_240;
local_14c = local_14c + 4;
pVVar31 = local_188 + (int)*(float *)(pVVar32 + -4) * 0xc;
*(float *)pVVar31 = (float)local_2ac;
*(float *)(pVVar31 + 4) = local_2ac._4_4_;
*(float *)(pVVar31 + 8) = fStack_2a4;
pVVar31 = local_188 + (int)*(float *)pVVar32 * 0xc;
*(float *)(pVVar31 + 4) = fStack_1c8;
*(QuaternionAligned **)pVVar31 = local_1cc;
*(float *)(pVVar31 + 8) = fStack_1c4;
pVVar31 = local_188 + (int)*(float *)(pVVar32 + 4) * 0xc;
*(float *)(pVVar31 + 4) = fStack_1e8;
*(float *)pVVar31 = local_1ec;
*(float *)(pVVar31 + 8) = (float)uStack_1e4;
pVVar31 = local_188 + (int)*(float *)(pVVar32 + 8) * 0xc;
*(float *)(pVVar31 + 4) = fStack_1f8;
*(mstudioseqdesc_t **)pVVar31 = local_1fc;
*(float *)(pVVar31 + 8) = (float)uStack_1f4;
pVVar32 = pVVar32 + 0x10;
} while ((int)local_14c < (int)pVVar28);
local_2ac._0_4_ = (float)((uint)local_2d0[1] & 0xfffffffc);
}
if ((int)pVVar28 < (int)local_204) {
local_13c = CONCAT44(local_13c._4_4_,&local_6c);
do {
fVar27 = 1.0 - (float)*(Vector **)(local_1bc + (int)pVVar28 * 4);
local_fc = *(Vector **)(local_1bc + (int)pVVar28 * 4);
iVar37 = *(int *)(local_208 + (int)pVVar28 * 4);
pfVar36[2 - uVar56] = fVar27;
pVVar28 = pVVar28 + 1;
local_dc = (double)CONCAT44(local_dc._4_4_,fVar27);
iVar30 = iVar37 * 0x10;
pQVar40 = local_180 + iVar30;
pQVar38 = local_18c + iVar30;
fVar27 = (float)(float *)local_13c;
pfVar36[1 - uVar56] = (float)pQVar40;
pfVar36[-uVar56] = (float)pQVar38;
pfVar36[3 - uVar56] = fVar27;
pfVar36[-1 - uVar56] = 1.7005434e-38;
QuaternionSlerp((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
pfVar36[2 - uVar56],(Quaternion *)pfVar36[3 - uVar56]);
iVar37 = iVar37 * 0xc;
*(float *)pQVar40 = local_6c;
*(float *)(pQVar40 + 4) = fStack_68;
pVVar32 = local_188 + iVar37;
pVVar31 = local_200 + iVar37;
*(float *)(pQVar40 + 8) = fStack_64;
*(float *)(pQVar40 + 0xc) = fStack_60;
*(float *)pVVar32 =
*(float *)pVVar31 * (float)local_fc + *(float *)pVVar32 * (float)local_dc;
*(float *)(pVVar32 + 4) =
*(float *)(pVVar31 + 4) * (float)local_fc + *(float *)(pVVar32 + 4) * (float)local_dc;
*(float *)(pVVar32 + 8) =
(float)local_fc * *(float *)(pVVar31 + 8) + (float)local_dc * *(float *)(pVVar32 + 8);
} while (pVVar28 != local_204);
}
pVVar28 = local_188;
if ((int)(float)local_2ac < 1) goto LAB_00b93713;
local_12c = local_12c & 0xffffffff00000000;
local_1dc = 0.999999;
fStack_1d8 = 0.999999;
fStack_1d4 = 0.999999;
fStack_1d0 = 0.999999;
pQVar40 = local_20c;
do {
pQVar38 = local_184 + (int)(undefined4 *)local_12c * 4;
fVar27 = *(float *)pQVar38;
fVar69 = *(float *)(pQVar38 + 4);
fVar55 = *(float *)(pQVar38 + 8);
fVar62 = *(float *)(pQVar38 + 0xc);
local_fc = (Vector *)((float)0x3f800000 - fVar27);
fStack_f8 = (float)0x3f800000 - fVar69;
fStack_f4 = (float)0x3f800000 - fVar55;
fStack_f0 = (float)0x3f800000 - fVar62;
pVVar32 = pVVar28 + *(int *)pQVar40 * 0xc;
pVVar31 = pVVar28 + *(int *)(pQVar40 + 4) * 0xc;
pVVar1 = pVVar28 + *(int *)(pQVar40 + 8) * 0xc;
pVVar2 = pVVar28 + *(int *)(pQVar40 + 0xc) * 0xc;
pVVar3 = local_200 + *(int *)pQVar40 * 0xc;
fStack_134 = *(float *)(pVVar3 + 8);
fStack_130 = *(float *)(pVVar3 + 0xc);
pVVar4 = local_200 + *(int *)(pQVar40 + 8) * 0xc;
fStack_d4 = *(float *)(pVVar4 + 8);
fStack_d0 = *(float *)(pVVar4 + 0xc);
pVVar5 = local_200 + *(int *)(pQVar40 + 4) * 0xc;
pVVar6 = local_200 + *(int *)(pQVar40 + 0xc) * 0xc;
fStack_148 = *(float *)(pVVar6 + 4);
fStack_144 = *(float *)(pVVar6 + 8);
fStack_140 = *(float *)(pVVar6 + 0xc);
iVar37 = *(int *)(pQVar40 + 0xc) * 0x10;
local_28c = fVar69 * *(float *)pVVar5 + fStack_f8 * *(float *)pVVar31;
fStack_288 = fVar69 * *(float *)(pVVar5 + 4) + fStack_f8 * *(float *)(pVVar31 + 4);
fStack_284 = fVar69 * *(float *)(pVVar5 + 8) + fStack_f8 * *(float *)(pVVar31 + 8);
fStack_280 = fVar69 * *(float *)(pVVar5 + 0xc) + fStack_f8 * *(float *)(pVVar31 + 0xc);
pQVar29 = local_180 + iVar37;
local_dc = (double)CONCAT44(*(float *)(pVVar4 + 4),iVar37);
local_1bc = (QuaternionAligned *)(fStack_f4 * *(float *)pVVar1 + fVar55 * *(float *)pVVar4);
fStack_1b8 = fStack_f4 * *(float *)(pVVar1 + 4) + fVar55 * *(float *)(pVVar4 + 4);
fStack_1b4 = fStack_f4 * *(float *)(pVVar1 + 8) + fVar55 * fStack_d4;
fStack_1b0 = fStack_f4 * *(float *)(pVVar1 + 0xc) + fVar55 * fStack_d0;
local_29c._4_4_ = fVar27 * *(float *)(pVVar3 + 4) + (float)local_fc * *(float *)(pVVar32 + 4);
local_29c._0_4_ = fVar27 * *(float *)pVVar3 + (float)local_fc * *(float *)pVVar32;
fStack_294 = fVar27 * fStack_134 + (float)local_fc * *(float *)(pVVar32 + 8);
fStack_290 = fVar27 * fStack_130 + (float)local_fc * *(float *)(pVVar32 + 0xc);
local_1cc = (QuaternionAligned *)(fStack_f0 * *(float *)pVVar2 + fVar62 * *(float *)pVVar6);
fStack_1c8 = fStack_f0 * *(float *)(pVVar2 + 4) + fVar62 * fStack_148;
fStack_1c4 = fStack_f0 * *(float *)(pVVar2 + 8) + fVar62 * fStack_144;
fStack_1c0 = fStack_f0 * *(float *)(pVVar2 + 0xc) + fVar62 * fStack_140;
local_13c = CONCAT44(*(float *)(pVVar3 + 4),pQVar29);
local_27c = (double)CONCAT44(local_27c._4_4_,pQVar40);
local_14c = local_180 + *(int *)(pQVar40 + 8) * 0x10;
pQVar41 = local_180 + *(int *)(pQVar40 + 4) * 0x10;
fStack_174 = *(float *)(local_14c + 4);
fStack_194 = *(float *)(local_14c + 8);
fStack_1a4 = *(float *)(local_14c + 0xc);
pQVar34 = local_180 + *(int *)pQVar40 * 0x10;
local_16c = *(float *)pQVar34;
local_19c = *(float *)(pQVar34 + 8);
local_1ac = *(float *)(pQVar34 + 0xc);
fStack_198 = *(float *)(pQVar41 + 8);
fStack_1a8 = *(float *)(pQVar41 + 0xc);
fStack_170 = *(float *)(pQVar29 + 4);
fStack_190 = *(float *)(pQVar29 + 8);
fStack_1a0 = *(float *)(pQVar29 + 0xc);
fStack_168 = *(float *)pQVar41;
uStack_164 = CONCAT44(*(float *)pQVar29,*(float *)local_14c);
local_17c = CONCAT44(*(float *)(pQVar41 + 4),*(float *)(pQVar34 + 4));
pQVar38 = local_18c + *(int *)pQVar40 * 0x10;
local_1ec = *(float *)pQVar38;
local_1fc = *(mstudioseqdesc_t **)(pQVar38 + 4);
pQVar8 = local_18c + *(int *)(pQVar40 + 8) * 0x10;
auVar94 = *(undefined1 (*) [16])(local_18c + *(int *)(pQVar40 + 4) * 0x10);
fStack_1e8 = auVar94._0_4_;
pQVar40 = local_18c + iVar37;
fVar27 = *(float *)pQVar40;
fStack_1f8 = auVar94._4_4_;
auVar101._0_8_ = CONCAT44(auVar94._8_4_,*(float *)(pQVar38 + 8));
auVar101._8_4_ = *(float *)(pQVar38 + 0xc);
auVar101._12_4_ = auVar94._12_4_;
uStack_1e4 = CONCAT44(fVar27,*(float *)pQVar8);
auVar25._4_8_ = auVar94._8_8_;
auVar25._0_4_ = fVar27;
auVar95._0_8_ = auVar25._0_8_ << 0x20;
auVar95._8_4_ = *(float *)(pQVar8 + 4);
auVar95._12_4_ = *(float *)(pQVar40 + 4);
uStack_214 = CONCAT44(*(float *)(pQVar40 + 8),*(float *)(pQVar8 + 8));
uStack_1f4 = auVar95._8_8_;
fStack_224 = *(float *)(pQVar8 + 0xc);
local_22c = auVar101._8_8_;
fStack_220 = *(float *)(pQVar40 + 0xc);
auVar96._0_4_ = local_19c * *(float *)(pQVar38 + 8);
auVar96._4_4_ = fStack_198 * auVar94._8_4_;
auVar96._8_4_ = fStack_194 * *(float *)(pQVar8 + 8);
auVar96._12_4_ = fStack_190 * *(float *)(pQVar40 + 8);
local_15c = (mstudioseqdesc_t *)((float)0x3f800000 - (float)local_fc);
fStack_158 = (float)0x3f800000 - fStack_f8;
uStack_154 = CONCAT44((float)0x3f800000 - fStack_f0,(float)0x3f800000 - fStack_f4);
local_24c._0_4_ =
local_1ac * *(float *)(pQVar38 + 0xc) +
auVar96._0_4_ + *(float *)(pQVar34 + 4) * (float)local_1fc + local_16c * local_1ec;
local_24c._4_4_ =
fStack_1a8 * auVar94._12_4_ +
auVar96._4_4_ + *(float *)(pQVar41 + 4) * fStack_1f8 + fStack_168 * fStack_1e8;
fStack_244 = fStack_1a4 * *(float *)(pQVar8 + 0xc) +
auVar96._8_4_ +
fStack_174 * *(float *)(pQVar8 + 4) + *(float *)local_14c * *(float *)pQVar8;
fStack_240 = fStack_1a0 * *(float *)(pQVar40 + 0xc) +
auVar96._12_4_ +
fStack_170 * *(float *)(pQVar40 + 4) + *(float *)pQVar29 * fVar27;
local_26c = (float)-(uint)((float)local_24c._0_4_ < local_1dc);
fStack_268 = (float)-(uint)((float)local_24c._4_4_ < fStack_1d8);
fStack_264 = (float)-(uint)(fStack_244 < fStack_1d4);
fStack_260 = (float)-(uint)(fStack_240 < fStack_1d0);
auVar85._0_4_ = (float)0x3f800000 - (float)local_24c._0_4_ * (float)local_24c._0_4_;
auVar85._4_4_ = (float)0x3f800000 - (float)local_24c._4_4_ * (float)local_24c._4_4_;
auVar85._8_4_ = (float)0x3f800000 - fStack_244 * fStack_244;
auVar85._12_4_ = (float)0x3f800000 - fStack_240 * fStack_240;
auVar94 = rsqrtps(auVar96,auVar85);
fVar27 = auVar94._0_4_;
fVar69 = auVar94._4_4_;
fVar55 = auVar94._8_4_;
fVar62 = auVar94._12_4_;
local_21c = auVar101._0_8_;
*(double *)(pfVar36 + (2 - uVar56)) = (double)(float)local_24c._0_4_;
local_25c._0_4_ =
((float)0x40400000 - fVar27 * fVar27 * auVar85._0_4_) * fVar27 * (float)0x3f000000;
local_25c._4_4_ =
((float)0x40400000 - fVar69 * fVar69 * auVar85._4_4_) * fVar69 * (float)0x3f000000;
fStack_254 = ((float)0x40400000 - fVar55 * fVar55 * auVar85._8_4_) * fVar55 *
(float)0x3f000000;
fStack_250 = ((float)0x40400000 - fVar62 * fVar62 * auVar85._12_4_) * fVar62 *
(float)0x3f000000;
local_23c = (QuaternionAligned *)(auVar85._0_4_ * (float)local_25c);
fStack_238 = auVar85._4_4_ * local_25c._4_4_;
fStack_234 = auVar85._8_4_ * fStack_254;
fStack_230 = auVar85._12_4_ * fStack_250;
*(double *)(pfVar36 + -uVar56) = (double)(float)local_23c;
pfVar36[-1 - uVar56] = 1.7006776e-38;
lVar42 = (longdouble)__atan2_finite();
fVar27 = fStack_238;
local_dc = (double)lVar42;
local_11c = CONCAT44(local_11c._4_4_,(float)lVar42);
*(double *)(pfVar36 + (2 - uVar56)) = (double)(float)local_24c._4_4_;
*(double *)(pfVar36 + -uVar56) = (double)fVar27;
pfVar36[-1 - uVar56] = 1.7006897e-38;
lVar42 = (longdouble)__atan2_finite();
local_dc = (double)lVar42;
*(double *)(pfVar36 + (2 - uVar56)) = (double)fStack_244;
*(double *)(pfVar36 + -uVar56) = (double)fStack_234;
local_11c._4_4_ = (float)lVar42;
pfVar36[-1 - uVar56] = 1.7007068e-38;
lVar42 = (longdouble)__atan2_finite();
fVar27 = fStack_230;
local_dc = (double)lVar42;
*(double *)(pfVar36 + (2 - uVar56)) = (double)fStack_240;
*(double *)(pfVar36 + -uVar56) = (double)fVar27;
uStack_114 = CONCAT44(uStack_114._4_4_,(float)lVar42);
pfVar36[-1 - uVar56] = 1.7007212e-38;
lVar42 = (longdouble)__atan2_finite();
fVar27 = (float)lVar42;
uStack_114 = CONCAT44(fVar27,(float)uStack_114);
fVar69 = (float)local_15c * (float)local_11c;
fVar55 = fStack_158 * local_11c._4_4_;
fVar62 = (float)uStack_154 * (float)uStack_114;
fVar64 = uStack_154._4_4_ * fVar27;
local_dc._0_4_ = (float)local_11c * (float)local_fc;
local_dc._4_4_ = local_11c._4_4_ * fStack_f8;
fStack_d4 = (float)uStack_114 * fStack_f4;
fStack_d0 = fVar27 * fStack_f0;
pfVar36[-uVar56] = fVar69;
local_24c._4_4_ = fVar55;
local_24c._0_4_ = fVar69;
fStack_244 = fVar62;
fStack_240 = fVar64;
pfVar36[-1 - uVar56] = 1.7007344e-38;
local_23c = (QuaternionAligned *)sinf(pfVar36[-uVar56]);
local_ec = local_23c;
pfVar36[-uVar56] = (float)local_24c._4_4_;
pfVar36[-1 - uVar56] = 1.7007408e-38;
local_23c = (QuaternionAligned *)sinf(pfVar36[-uVar56]);
fStack_e8 = (float)local_23c;
pfVar36[-uVar56] = fStack_244;
pfVar36[-1 - uVar56] = 1.7007524e-38;
fVar27 = sinf(pfVar36[-uVar56]);
local_23c = (QuaternionAligned *)fVar27;
pfVar36[-uVar56] = fStack_240;
fStack_e4 = fVar27;
pfVar36[-1 - uVar56] = 1.7007617e-38;
fVar27 = sinf(pfVar36[-uVar56]);
local_23c = (QuaternionAligned *)fVar27;
pfVar36[-uVar56] = (float)local_dc;
fStack_e0 = fVar27;
pfVar36[-1 - uVar56] = 1.7007704e-38;
local_23c = (QuaternionAligned *)sinf(pfVar36[-uVar56]);
local_10c = (float)local_23c;
pfVar36[-uVar56] = local_dc._4_4_;
pfVar36[-1 - uVar56] = 1.7007768e-38;
local_23c = (QuaternionAligned *)sinf(pfVar36[-uVar56]);
fStack_108 = (float)local_23c;
pfVar36[-uVar56] = fStack_d4;
pfVar36[-1 - uVar56] = 1.7007885e-38;
local_23c = (QuaternionAligned *)sinf(pfVar36[-uVar56]);
fStack_104 = (float)local_23c;
pfVar36[-uVar56] = fStack_d0;
pfVar36[-1 - uVar56] = 1.7007981e-38;
fStack_100 = sinf(pfVar36[-uVar56]);
local_dc = (double)CONCAT44(local_dc._4_4_,fStack_100);
fVar67 = (float)((uint)((float)local_ec * (float)local_25c) & (uint)local_26c |
~(uint)local_26c & (uint)local_15c);
fVar63 = (float)((uint)(fStack_e8 * local_25c._4_4_) & (uint)fStack_268 |
~(uint)fStack_268 & (uint)fStack_158);
fVar66 = (float)((uint)(fStack_e4 * fStack_254) & (uint)fStack_264 |
~(uint)fStack_264 & (uint)(float)uStack_154);
fVar70 = (float)((uint)(fStack_e0 * fStack_250) & (uint)fStack_260 |
~(uint)fStack_260 & (uint)uStack_154._4_4_);
fVar27 = (float)((uint)((float)local_25c * local_10c) & (uint)local_26c |
~(uint)local_26c & (uint)local_fc);
fVar69 = (float)((uint)(local_25c._4_4_ * fStack_108) & (uint)fStack_268 |
~(uint)fStack_268 & (uint)fStack_f8);
fVar55 = (float)((uint)(fStack_254 * fStack_104) & (uint)fStack_264 |
~(uint)fStack_264 & (uint)fStack_f4);
fVar64 = (float)((uint)(fStack_250 * fStack_100) & (uint)fStack_260 |
~(uint)fStack_260 & (uint)fStack_f0);
auVar107._0_4_ = local_19c * fVar27;
auVar107._4_4_ = fStack_198 * fVar69;
auVar107._8_4_ = fStack_194 * fVar55;
auVar107._12_4_ = fStack_190 * fVar64;
fVar62 = fVar55 * fStack_1a4 + fVar66 * fStack_224;
auVar26._4_8_ = auVar107._8_8_;
auVar26._0_4_ = fVar62;
auVar108._0_8_ = auVar26._0_8_ << 0x20;
auVar108._8_4_ = auVar107._12_4_ + uStack_214._4_4_ * fVar70;
auVar108._12_4_ = fVar64 * fStack_1a0 + fVar70 * fStack_220;
*(ulonglong *)pQVar34 =
CONCAT44((float)local_17c * fVar27 + (float)local_1fc * fVar67,
local_16c * fVar27 + local_1ec * fVar67);
*(ulonglong *)(pQVar34 + 8) =
CONCAT44(fVar27 * local_1ac + fVar67 * (float)local_22c._0_4_,
auVar107._0_4_ + (float)(uint *)local_21c * fVar67);
*(float *)pQVar41 = fStack_168 * fVar69 + fStack_1e8 * fVar63;
*(float *)(pQVar41 + 4) = local_17c._4_4_ * fVar69 + fStack_1f8 * fVar63;
*(float *)(pQVar41 + 8) = auVar107._4_4_ + local_21c._4_4_ * fVar63;
*(float *)(pQVar41 + 0xc) = fVar69 * fStack_1a8 + fVar63 * (float)local_22c._4_4_;
*(float *)local_14c = (float)uStack_164 * fVar55 + (float)uStack_1e4 * fVar66;
*(float *)(local_14c + 4) = fStack_174 * fVar55 + (float)uStack_1f4 * fVar66;
*(ulonglong *)(local_14c + 8) = CONCAT44(fVar62,auVar107._8_4_ + (float)uStack_214 * fVar66);
*(float *)local_13c = uStack_164._4_4_ * fVar64 + uStack_1e4._4_4_ * fVar70;
((float *)local_13c)[1] = fStack_170 * fVar64 + uStack_1f4._4_4_ * fVar70;
*(longlong *)((float *)local_13c + 2) = auVar108._8_8_;
pQVar40 = (QuaternionAligned *)((int *)local_27c + 4);
pVVar32 = pVVar28 + *(int *)local_27c * 0xc;
*(undefined4 *)pVVar32 = local_29c._0_4_;
*(undefined4 *)(pVVar32 + 4) = local_29c._4_4_;
*(float *)(pVVar32 + 8) = fStack_294;
iVar37 = (int)(undefined4 *)local_12c + 4;
local_12c = CONCAT44(local_12c._4_4_,iVar37);
pVVar32 = pVVar28 + ((int *)local_27c)[1] * 0xc;
*(float *)pVVar32 = local_28c;
*(float *)(pVVar32 + 4) = fStack_288;
*(float *)(pVVar32 + 8) = fStack_284;
pVVar32 = pVVar28 + ((int *)local_27c)[2] * 0xc;
*(float *)(pVVar32 + 4) = fStack_1b8;
*(QuaternionAligned **)pVVar32 = local_1bc;
*(float *)(pVVar32 + 8) = fStack_1b4;
pVVar32 = pVVar28 + ((int *)local_27c)[3] * 0xc;
*(float *)(pVVar32 + 4) = fStack_1c8;
*(QuaternionAligned **)pVVar32 = local_1cc;
*(float *)(pVVar32 + 8) = fStack_1c4;
fVar27 = (float)local_2ac;
} while (iVar37 < (int)(float)local_2ac);
}
dVar12 = (double)CONCAT44(local_2ac._4_4_,(float)local_2ac);
pfVar35 = pfVar36 + -uVar56;
if ((int)fVar27 < (int)local_2d0[1]) {
local_13c = CONCAT44(local_13c._4_4_,&local_6c);
do {
fVar69 = 1.0 - (float)*(QuaternionAligned **)(local_184 + (int)fVar27 * 4);
local_ec = *(QuaternionAligned **)(local_184 + (int)fVar27 * 4);
iVar37 = *(int *)(local_20c + (int)fVar27 * 4);
pfVar36[2 - uVar56] = fVar69;
fVar27 = (float)((int)fVar27 + 1);
local_dc = (double)CONCAT44(local_dc._4_4_,fVar69);
iVar30 = iVar37 * 0x10;
pQVar40 = local_180 + iVar30;
pQVar38 = local_18c + iVar30;
fVar69 = (float)(float *)local_13c;
pfVar36[1 - uVar56] = (float)pQVar40;
pfVar36[-uVar56] = (float)pQVar38;
pfVar36[3 - uVar56] = fVar69;
pfVar36[-1 - uVar56] = 1.700883e-38;
QuaternionSlerpNoAlign
((Quaternion *)pfVar36[-uVar56],(Quaternion *)pfVar36[1 - uVar56],
pfVar36[2 - uVar56],(Quaternion *)pfVar36[3 - uVar56]);
dVar12 = (double)CONCAT44(local_2ac._4_4_,(float)local_2ac);
iVar37 = iVar37 * 0xc;
*(float *)pQVar40 = local_6c;
*(float *)(pQVar40 + 4) = fStack_68;
pVVar28 = local_188 + iVar37;
pVVar32 = local_200 + iVar37;
*(float *)(pQVar40 + 8) = fStack_64;
*(float *)(pQVar40 + 0xc) = fStack_60;
*(float *)pVVar28 = *(float *)pVVar32 * (float)local_ec + *(float *)pVVar28 * (float)local_dc;
*(float *)(pVVar28 + 4) =
*(float *)(pVVar32 + 4) * (float)local_ec + *(float *)(pVVar28 + 4) * (float)local_dc;
*(float *)(pVVar28 + 8) =
(float)local_ec * *(float *)(pVVar32 + 8) + (float)local_dc * *(float *)(pVVar28 + 8);
pfVar35 = pfVar36 + -uVar56;
} while (fVar27 != local_2d0[1]);
}
LAB_00b91fd0:
if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
/* WARNING: Subroutine does not return */
local_2ac = dVar12;
*(undefined4 *)((int)pfVar35 + -4) = 0xb9371f;
__stack_chk_fail();
}
return;
}
SourceMod gamedata
paste intoaddons/sourcemod/gamedata/<your_plugin>.txt
Just a Signatures{} block, ready to drop into a gamedata
file. Wire it up in your plugin however you like - SDKCall, DHooks,
raw memory ops, or anything else.
Signatures + Functions block. The plugin uses
DHookCreateFromConf - DHooks reads return type, this-type,
calling convention, and argument types straight from the gamedata. Less
boilerplate in the plugin, types travel with the gamedata.
Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.