L L4D2node

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 into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

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.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)