Complete decompilation of the retail Asheron's Call client using Ghidra 12.0.4 + pyghidra headless. 22,225 of 22,226 functions successfully decompiled in 75 seconds. Output: docs/research/decompiled/ (54 files, 688,567 lines of C) Key findings already identified: - CLandBlockStruct::ConstructPolygons at chunk_00530000.c:2270 (split direction formula with 0x0CCAC033 constants) - Motion command handlers at chunk_00510000.c (0x45000005 etc) - Motion interpreter at chunk_00520000.c - Portal space UI at chunk_004D0000.c and chunk_00560000.c Next: identify CPhysicsObj, CMotionInterp, collision, and movement functions by cross-referencing against ACE's C# port. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
18921 lines
863 KiB
C
18921 lines
863 KiB
C
// Decompiled from acclient.exe — chunk 0x00650000
|
|
// Ghidra 12.0.4 + pyghidra headless
|
|
|
|
// --- FUN_00650070 at 0x00650070 (size: 2699) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
void FUN_00650070(undefined1 (*param_1) [16],undefined8 param_2,undefined8 param_3,
|
|
|
|
undefined8 param_4,undefined8 param_5,undefined8 param_6,undefined8 param_7,
|
|
|
|
undefined8 param_8,undefined8 param_9,undefined8 param_10,undefined8 param_11,
|
|
|
|
undefined8 param_12,undefined8 param_13,undefined8 param_14,undefined8 param_15,
|
|
|
|
undefined8 param_16)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined1 (*pauVar1) [16];
|
|
|
|
undefined1 auVar2 [16];
|
|
|
|
undefined1 auVar3 [16];
|
|
|
|
undefined1 auVar4 [16];
|
|
|
|
undefined1 auVar6 [16];
|
|
|
|
undefined1 auVar7 [16];
|
|
|
|
undefined1 auVar8 [16];
|
|
|
|
undefined1 auVar10 [16];
|
|
|
|
undefined1 auVar11 [16];
|
|
|
|
undefined1 auVar12 [16];
|
|
|
|
undefined1 auVar14 [16];
|
|
|
|
undefined1 auVar15 [16];
|
|
|
|
undefined1 auVar16 [16];
|
|
|
|
undefined1 auVar18 [16];
|
|
|
|
undefined1 auVar19 [16];
|
|
|
|
undefined1 auVar20 [16];
|
|
|
|
undefined1 auVar22 [16];
|
|
|
|
undefined1 auVar23 [16];
|
|
|
|
undefined1 auVar24 [16];
|
|
|
|
undefined1 auVar26 [16];
|
|
|
|
undefined1 auVar27 [16];
|
|
|
|
undefined1 auVar28 [16];
|
|
|
|
undefined1 auVar29 [16];
|
|
|
|
undefined1 auVar30 [16];
|
|
|
|
undefined1 auVar31 [16];
|
|
|
|
undefined1 auVar32 [16];
|
|
|
|
undefined1 auVar33 [16];
|
|
|
|
undefined1 auVar34 [16];
|
|
|
|
undefined1 auVar35 [16];
|
|
|
|
undefined1 auVar36 [16];
|
|
|
|
undefined1 auVar37 [16];
|
|
|
|
undefined1 auVar38 [16];
|
|
|
|
undefined1 auVar39 [16];
|
|
|
|
undefined1 auVar40 [16];
|
|
|
|
undefined1 auVar41 [16];
|
|
|
|
undefined1 auVar42 [16];
|
|
|
|
undefined1 auVar43 [16];
|
|
|
|
undefined1 auVar44 [16];
|
|
|
|
undefined1 auVar45 [16];
|
|
|
|
undefined1 auVar46 [16];
|
|
|
|
undefined1 auVar47 [16];
|
|
|
|
undefined1 auVar48 [16];
|
|
|
|
undefined1 auVar49 [16];
|
|
|
|
undefined1 auVar50 [16];
|
|
|
|
undefined1 auVar51 [16];
|
|
|
|
undefined1 auVar52 [16];
|
|
|
|
undefined1 auVar53 [16];
|
|
|
|
undefined1 auVar54 [16];
|
|
|
|
undefined1 auVar55 [16];
|
|
|
|
undefined1 auVar56 [16];
|
|
|
|
undefined1 auVar57 [16];
|
|
|
|
undefined1 auVar58 [16];
|
|
|
|
undefined1 auVar59 [16];
|
|
|
|
undefined1 auVar60 [16];
|
|
|
|
undefined1 auVar61 [16];
|
|
|
|
undefined1 auVar62 [16];
|
|
|
|
undefined1 auVar63 [16];
|
|
|
|
undefined1 auVar64 [16];
|
|
|
|
undefined1 auVar65 [16];
|
|
|
|
undefined1 auVar66 [16];
|
|
|
|
undefined1 auVar67 [16];
|
|
|
|
undefined1 auVar68 [16];
|
|
|
|
undefined1 auVar69 [16];
|
|
|
|
undefined1 auVar70 [16];
|
|
|
|
undefined1 auVar71 [16];
|
|
|
|
undefined1 auVar72 [16];
|
|
|
|
undefined1 auVar73 [16];
|
|
|
|
undefined1 auVar74 [16];
|
|
|
|
undefined1 auVar75 [16];
|
|
|
|
undefined1 auVar76 [16];
|
|
|
|
undefined1 auVar77 [16];
|
|
|
|
undefined1 auVar78 [16];
|
|
|
|
undefined1 auVar79 [16];
|
|
|
|
undefined1 auVar80 [16];
|
|
|
|
undefined1 auVar81 [16];
|
|
|
|
undefined1 auVar82 [16];
|
|
|
|
undefined1 auVar83 [16];
|
|
|
|
undefined1 auVar84 [16];
|
|
|
|
undefined1 auVar85 [16];
|
|
|
|
undefined1 auVar86 [16];
|
|
|
|
undefined1 auVar87 [16];
|
|
|
|
undefined1 auVar88 [16];
|
|
|
|
undefined1 auVar89 [16];
|
|
|
|
undefined4 unaff_retaddr;
|
|
|
|
undefined1 local_80 [128];
|
|
|
|
undefined1 auVar5 [16];
|
|
|
|
undefined1 auVar9 [16];
|
|
|
|
undefined1 auVar13 [16];
|
|
|
|
undefined1 auVar17 [16];
|
|
|
|
undefined1 auVar21 [16];
|
|
|
|
undefined1 auVar25 [16];
|
|
|
|
|
|
|
|
pauVar1 = param_1;
|
|
|
|
if (((uint)param_1 & 0xf) != 0) {
|
|
|
|
pauVar1 = (undefined1 (*) [16])local_80;
|
|
|
|
}
|
|
|
|
if (((uint)param_1 & 0xf) == 0) {
|
|
|
|
auVar2 = paddsw(param_1[1],param_1[6]);
|
|
|
|
auVar2 = psllw(auVar2,3);
|
|
|
|
auVar52 = paddsw(param_1[5],param_1[2]);
|
|
|
|
auVar70 = paddsw(*param_1,param_1[7]);
|
|
|
|
auVar35 = psubsw(param_1[1],param_1[6]);
|
|
|
|
auVar53 = psllw(auVar52,3);
|
|
|
|
auVar52 = psubsw(auVar2,auVar53);
|
|
|
|
auVar81 = paddsw(auVar2,auVar53);
|
|
|
|
auVar53 = paddsw(param_1[3],param_1[4]);
|
|
|
|
auVar2 = pmulhw(_DAT_00833400,auVar52);
|
|
|
|
auVar71 = psubsw(auVar70,auVar53);
|
|
|
|
auVar53 = paddsw(auVar70,auVar53);
|
|
|
|
auVar71 = psllw(auVar71,3);
|
|
|
|
auVar2 = paddsw(auVar2,auVar71);
|
|
|
|
auVar70 = psllw(auVar53,3);
|
|
|
|
auVar35 = psllw(auVar35,4);
|
|
|
|
auVar72 = pmulhw(auVar71,_DAT_00833400);
|
|
|
|
auVar53 = psubsw(param_1[2],param_1[5]);
|
|
|
|
auVar71 = psubsw(auVar70,auVar81);
|
|
|
|
auVar2 = pshufhw(auVar2 | _DAT_008333d0,auVar2 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[2] = auVar2;
|
|
|
|
auVar81 = paddsw(auVar70,auVar81);
|
|
|
|
auVar70 = psllw(auVar53,4);
|
|
|
|
auVar2 = psubsw(param_1[3],param_1[4]);
|
|
|
|
auVar53 = pshufhw(auVar71,auVar71,0x1b);
|
|
|
|
pauVar1[4] = auVar53;
|
|
|
|
auVar53 = paddsw(auVar35,auVar70);
|
|
|
|
auVar53 = pmulhw(auVar53,_DAT_00833430);
|
|
|
|
auVar35 = psubsw(auVar35,auVar70);
|
|
|
|
auVar70 = pmulhw(auVar35,_DAT_00833430);
|
|
|
|
auVar71 = psubsw(auVar72,auVar52);
|
|
|
|
auVar2 = psllw(auVar2,3);
|
|
|
|
auVar52 = paddsw(auVar2,auVar70);
|
|
|
|
auVar35 = psubsw(*param_1,param_1[7]);
|
|
|
|
auVar70 = psubsw(auVar2,auVar70);
|
|
|
|
auVar35 = psllw(auVar35,3);
|
|
|
|
auVar2 = pmulhw(_DAT_008333f0,auVar52);
|
|
|
|
auVar72 = pshufhw(auVar81,auVar81,0x1b);
|
|
|
|
*pauVar1 = auVar72;
|
|
|
|
auVar72 = pmulhw(_DAT_00833410,auVar70);
|
|
|
|
auVar71 = pshufhw(auVar71 | _DAT_008333d0,auVar71 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[6] = auVar71;
|
|
|
|
auVar81 = psubsw(auVar35,auVar53 | _DAT_008333d0);
|
|
|
|
auVar35 = paddsw(auVar35,auVar53 | _DAT_008333d0);
|
|
|
|
auVar53 = pmulhw(_DAT_00833410,auVar81);
|
|
|
|
auVar2 = paddsw(auVar2,auVar35);
|
|
|
|
auVar71 = paddsw(auVar72,auVar70);
|
|
|
|
auVar35 = pmulhw(auVar35,_DAT_008333f0);
|
|
|
|
auVar53 = paddsw(auVar53,auVar81);
|
|
|
|
auVar71 = psubsw(auVar81,auVar71);
|
|
|
|
auVar2 = pshufhw(auVar2 | _DAT_008333d0,auVar2 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[1] = auVar2;
|
|
|
|
auVar53 = paddsw(auVar53,auVar70);
|
|
|
|
auVar2 = pshufhw(auVar71,auVar71,0x1b);
|
|
|
|
pauVar1[3] = auVar2;
|
|
|
|
auVar2 = psubsw(auVar35,auVar52);
|
|
|
|
auVar52 = pshufhw(auVar53,auVar53,0x1b);
|
|
|
|
pauVar1[5] = auVar52;
|
|
|
|
auVar2 = pshufhw(auVar2,auVar2,0x1b);
|
|
|
|
pauVar1[7] = auVar2;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
auVar2 = param_1[2];
|
|
|
|
auVar52 = paddsw(param_1[1],param_1[6]);
|
|
|
|
auVar52 = psllw(auVar52,3);
|
|
|
|
auVar35 = paddsw(param_1[5],auVar2);
|
|
|
|
auVar71 = paddsw(*param_1,param_1[7]);
|
|
|
|
auVar53 = psubsw(param_1[1],param_1[6]);
|
|
|
|
auVar70 = psllw(auVar35,3);
|
|
|
|
auVar35 = psubsw(auVar52,auVar70);
|
|
|
|
auVar81 = paddsw(auVar52,auVar70);
|
|
|
|
auVar70 = paddsw(param_1[3],param_1[4]);
|
|
|
|
auVar52 = pmulhw(_DAT_00833400,auVar35);
|
|
|
|
auVar72 = psubsw(auVar71,auVar70);
|
|
|
|
auVar70 = paddsw(auVar71,auVar70);
|
|
|
|
auVar71 = psllw(auVar72,3);
|
|
|
|
auVar52 = paddsw(auVar52,auVar71);
|
|
|
|
auVar70 = psllw(auVar70,3);
|
|
|
|
auVar53 = psllw(auVar53,4);
|
|
|
|
auVar72 = pmulhw(auVar71,_DAT_00833400);
|
|
|
|
auVar52 = pshufhw(auVar52 | _DAT_008333d0,auVar52 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[2] = auVar52;
|
|
|
|
auVar52 = psubsw(auVar70,auVar81);
|
|
|
|
auVar2 = psubsw(auVar2,param_1[5]);
|
|
|
|
auVar81 = paddsw(auVar70,auVar81);
|
|
|
|
auVar71 = psllw(auVar2,4);
|
|
|
|
auVar2 = psubsw(param_1[3],param_1[4]);
|
|
|
|
auVar52 = pshufhw(auVar52,auVar52,0x1b);
|
|
|
|
pauVar1[4] = auVar52;
|
|
|
|
auVar52 = paddsw(auVar53,auVar71);
|
|
|
|
auVar70 = pmulhw(auVar52,_DAT_00833430);
|
|
|
|
auVar52 = psubsw(auVar53,auVar71);
|
|
|
|
auVar53 = pmulhw(auVar52,_DAT_00833430);
|
|
|
|
auVar71 = psubsw(auVar72,auVar35);
|
|
|
|
auVar2 = psllw(auVar2,3);
|
|
|
|
auVar52 = paddsw(auVar2,auVar53);
|
|
|
|
auVar35 = psubsw(*param_1,param_1[7]);
|
|
|
|
auVar53 = psubsw(auVar2,auVar53);
|
|
|
|
auVar35 = psllw(auVar35,3);
|
|
|
|
auVar2 = pmulhw(_DAT_008333f0,auVar52);
|
|
|
|
auVar72 = pshufhw(auVar81,auVar81,0x1b);
|
|
|
|
*pauVar1 = auVar72;
|
|
|
|
auVar72 = pmulhw(_DAT_00833410,auVar53);
|
|
|
|
auVar71 = pshufhw(auVar71 | _DAT_008333d0,auVar71 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[6] = auVar71;
|
|
|
|
auVar81 = psubsw(auVar35,auVar70 | _DAT_008333d0);
|
|
|
|
auVar35 = paddsw(auVar35,auVar70 | _DAT_008333d0);
|
|
|
|
auVar70 = pmulhw(_DAT_00833410,auVar81);
|
|
|
|
auVar2 = paddsw(auVar2,auVar35);
|
|
|
|
auVar71 = paddsw(auVar72,auVar53);
|
|
|
|
auVar35 = pmulhw(auVar35,_DAT_008333f0);
|
|
|
|
auVar70 = paddsw(auVar70,auVar81);
|
|
|
|
auVar71 = psubsw(auVar81,auVar71);
|
|
|
|
auVar2 = pshufhw(auVar2 | _DAT_008333d0,auVar2 | _DAT_008333d0,0x1b);
|
|
|
|
pauVar1[1] = auVar2;
|
|
|
|
auVar53 = paddsw(auVar70,auVar53);
|
|
|
|
auVar2 = pshufhw(auVar71,auVar71,0x1b);
|
|
|
|
pauVar1[3] = auVar2;
|
|
|
|
auVar2 = psubsw(auVar35,auVar52);
|
|
|
|
auVar52 = pshufhw(auVar53,auVar53,0x1b);
|
|
|
|
pauVar1[5] = auVar52;
|
|
|
|
auVar2 = pshufhw(auVar2,auVar2,0x1b);
|
|
|
|
pauVar1[7] = auVar2;
|
|
|
|
}
|
|
|
|
if (pauVar1 != (undefined1 (*) [16])&stack0x00000000) {
|
|
|
|
auVar36._8_8_ = *(undefined8 *)(pauVar1[4] + 8);
|
|
|
|
auVar36._0_8_ = *(undefined8 *)(*pauVar1 + 8);
|
|
|
|
auVar3._8_8_ = *(undefined8 *)pauVar1[4];
|
|
|
|
auVar3._0_8_ = *(undefined8 *)*pauVar1;
|
|
|
|
auVar2 = paddsw(auVar3,auVar36);
|
|
|
|
auVar52 = psubsw(auVar3,auVar36);
|
|
|
|
auVar5._0_8_ = auVar2._0_8_;
|
|
|
|
auVar5._8_4_ = auVar2._4_4_;
|
|
|
|
auVar5._12_4_ = auVar52._4_4_;
|
|
|
|
auVar4._8_8_ = auVar5._8_8_;
|
|
|
|
auVar4._0_4_ = auVar2._0_4_;
|
|
|
|
auVar4._4_4_ = auVar52._0_4_;
|
|
|
|
auVar54._4_4_ = auVar52._8_4_;
|
|
|
|
auVar54._0_4_ = auVar2._8_4_;
|
|
|
|
auVar54._8_4_ = auVar2._12_4_;
|
|
|
|
auVar54._12_4_ = auVar52._12_4_;
|
|
|
|
auVar37._4_4_ = auVar52._4_4_;
|
|
|
|
auVar37._0_4_ = auVar2._4_4_;
|
|
|
|
auVar37._8_4_ = auVar4._0_4_;
|
|
|
|
auVar37._12_4_ = auVar52._0_4_;
|
|
|
|
auVar82._4_4_ = auVar52._12_4_;
|
|
|
|
auVar82._0_4_ = auVar2._12_4_;
|
|
|
|
auVar82._8_4_ = auVar2._8_4_;
|
|
|
|
auVar82._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833540,auVar4);
|
|
|
|
auVar53 = pmaddwd(_DAT_00833550,auVar37);
|
|
|
|
auVar2 = pmaddwd(auVar4,_DAT_00833560);
|
|
|
|
auVar35 = pmaddwd(auVar37,_DAT_00833570);
|
|
|
|
auVar27._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar27._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar27._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar27._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar6._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar6._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar6._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar6._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar27,auVar6);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833540,auVar54);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833550,auVar82);
|
|
|
|
auVar52 = pmaddwd(auVar54,_DAT_00833560);
|
|
|
|
auVar53 = pmaddwd(auVar82,_DAT_00833570);
|
|
|
|
auVar73._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar73._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar73._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar73._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar55._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar55._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar55._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar55._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar73,auVar55);
|
|
|
|
*pauVar1 = auVar2;
|
|
|
|
pauVar1[4] = auVar52;
|
|
|
|
auVar38._8_8_ = *(undefined8 *)(pauVar1[7] + 8);
|
|
|
|
auVar38._0_8_ = *(undefined8 *)(pauVar1[1] + 8);
|
|
|
|
auVar7._8_8_ = *(undefined8 *)pauVar1[7];
|
|
|
|
auVar7._0_8_ = *(undefined8 *)pauVar1[1];
|
|
|
|
auVar2 = paddsw(auVar7,auVar38);
|
|
|
|
auVar52 = psubsw(auVar7,auVar38);
|
|
|
|
auVar9._0_8_ = auVar2._0_8_;
|
|
|
|
auVar9._8_4_ = auVar2._4_4_;
|
|
|
|
auVar9._12_4_ = auVar52._4_4_;
|
|
|
|
auVar8._8_8_ = auVar9._8_8_;
|
|
|
|
auVar8._0_4_ = auVar2._0_4_;
|
|
|
|
auVar8._4_4_ = auVar52._0_4_;
|
|
|
|
auVar56._4_4_ = auVar52._8_4_;
|
|
|
|
auVar56._0_4_ = auVar2._8_4_;
|
|
|
|
auVar56._8_4_ = auVar2._12_4_;
|
|
|
|
auVar56._12_4_ = auVar52._12_4_;
|
|
|
|
auVar39._4_4_ = auVar52._4_4_;
|
|
|
|
auVar39._0_4_ = auVar2._4_4_;
|
|
|
|
auVar39._8_4_ = auVar8._0_4_;
|
|
|
|
auVar39._12_4_ = auVar52._0_4_;
|
|
|
|
auVar83._4_4_ = auVar52._12_4_;
|
|
|
|
auVar83._0_4_ = auVar2._12_4_;
|
|
|
|
auVar83._8_4_ = auVar2._8_4_;
|
|
|
|
auVar83._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833580,auVar8);
|
|
|
|
auVar53 = pmaddwd(_DAT_00833590,auVar39);
|
|
|
|
auVar2 = pmaddwd(auVar8,_DAT_008335a0);
|
|
|
|
auVar35 = pmaddwd(auVar39,_DAT_008335b0);
|
|
|
|
auVar28._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar28._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar28._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar28._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar10._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar10._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar10._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar10._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar28,auVar10);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833580,auVar56);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833590,auVar83);
|
|
|
|
auVar52 = pmaddwd(auVar56,_DAT_008335a0);
|
|
|
|
auVar53 = pmaddwd(auVar83,_DAT_008335b0);
|
|
|
|
auVar74._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar74._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar74._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar74._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar57._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar57._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar57._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar57._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar74,auVar57);
|
|
|
|
pauVar1[1] = auVar2;
|
|
|
|
pauVar1[7] = auVar52;
|
|
|
|
auVar40._8_8_ = *(undefined8 *)(pauVar1[6] + 8);
|
|
|
|
auVar40._0_8_ = *(undefined8 *)(pauVar1[2] + 8);
|
|
|
|
auVar11._8_8_ = *(undefined8 *)pauVar1[6];
|
|
|
|
auVar11._0_8_ = *(undefined8 *)pauVar1[2];
|
|
|
|
auVar2 = paddsw(auVar11,auVar40);
|
|
|
|
auVar52 = psubsw(auVar11,auVar40);
|
|
|
|
auVar13._0_8_ = auVar2._0_8_;
|
|
|
|
auVar13._8_4_ = auVar2._4_4_;
|
|
|
|
auVar13._12_4_ = auVar52._4_4_;
|
|
|
|
auVar12._8_8_ = auVar13._8_8_;
|
|
|
|
auVar12._0_4_ = auVar2._0_4_;
|
|
|
|
auVar12._4_4_ = auVar52._0_4_;
|
|
|
|
auVar58._4_4_ = auVar52._8_4_;
|
|
|
|
auVar58._0_4_ = auVar2._8_4_;
|
|
|
|
auVar58._8_4_ = auVar2._12_4_;
|
|
|
|
auVar58._12_4_ = auVar52._12_4_;
|
|
|
|
auVar41._4_4_ = auVar52._4_4_;
|
|
|
|
auVar41._0_4_ = auVar2._4_4_;
|
|
|
|
auVar41._8_4_ = auVar12._0_4_;
|
|
|
|
auVar41._12_4_ = auVar52._0_4_;
|
|
|
|
auVar84._4_4_ = auVar52._12_4_;
|
|
|
|
auVar84._0_4_ = auVar2._12_4_;
|
|
|
|
auVar84._8_4_ = auVar2._8_4_;
|
|
|
|
auVar84._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_008335c0,auVar12);
|
|
|
|
auVar53 = pmaddwd(_DAT_008335d0,auVar41);
|
|
|
|
auVar2 = pmaddwd(auVar12,_DAT_008335e0);
|
|
|
|
auVar35 = pmaddwd(auVar41,_DAT_008335f0);
|
|
|
|
auVar29._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar29._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar29._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar29._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar14._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar14._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar14._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar14._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar29,auVar14);
|
|
|
|
auVar35 = pmaddwd(_DAT_008335c0,auVar58);
|
|
|
|
auVar70 = pmaddwd(_DAT_008335d0,auVar84);
|
|
|
|
auVar52 = pmaddwd(auVar58,_DAT_008335e0);
|
|
|
|
auVar53 = pmaddwd(auVar84,_DAT_008335f0);
|
|
|
|
auVar75._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar75._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar75._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar75._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar59._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar59._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar59._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar59._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar75,auVar59);
|
|
|
|
pauVar1[2] = auVar2;
|
|
|
|
pauVar1[6] = auVar52;
|
|
|
|
auVar42._8_8_ = *(undefined8 *)(pauVar1[5] + 8);
|
|
|
|
auVar42._0_8_ = *(undefined8 *)(pauVar1[3] + 8);
|
|
|
|
auVar15._8_8_ = *(undefined8 *)pauVar1[5];
|
|
|
|
auVar15._0_8_ = *(undefined8 *)pauVar1[3];
|
|
|
|
auVar2 = paddsw(auVar15,auVar42);
|
|
|
|
auVar52 = psubsw(auVar15,auVar42);
|
|
|
|
auVar17._0_8_ = auVar2._0_8_;
|
|
|
|
auVar17._8_4_ = auVar2._4_4_;
|
|
|
|
auVar17._12_4_ = auVar52._4_4_;
|
|
|
|
auVar16._8_8_ = auVar17._8_8_;
|
|
|
|
auVar16._0_4_ = auVar2._0_4_;
|
|
|
|
auVar16._4_4_ = auVar52._0_4_;
|
|
|
|
auVar60._4_4_ = auVar52._8_4_;
|
|
|
|
auVar60._0_4_ = auVar2._8_4_;
|
|
|
|
auVar60._8_4_ = auVar2._12_4_;
|
|
|
|
auVar60._12_4_ = auVar52._12_4_;
|
|
|
|
auVar43._4_4_ = auVar52._4_4_;
|
|
|
|
auVar43._0_4_ = auVar2._4_4_;
|
|
|
|
auVar43._8_4_ = auVar16._0_4_;
|
|
|
|
auVar43._12_4_ = auVar52._0_4_;
|
|
|
|
auVar85._4_4_ = auVar52._12_4_;
|
|
|
|
auVar85._0_4_ = auVar2._12_4_;
|
|
|
|
auVar85._8_4_ = auVar2._8_4_;
|
|
|
|
auVar85._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833600,auVar16);
|
|
|
|
auVar53 = pmaddwd(_DAT_00833610,auVar43);
|
|
|
|
auVar2 = pmaddwd(auVar16,_DAT_00833620);
|
|
|
|
auVar35 = pmaddwd(auVar43,_DAT_00833630);
|
|
|
|
auVar30._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar30._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar30._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar30._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar18._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar18._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar18._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar18._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar30,auVar18);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833600,auVar60);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833610,auVar85);
|
|
|
|
auVar52 = pmaddwd(auVar60,_DAT_00833620);
|
|
|
|
auVar53 = pmaddwd(auVar85,_DAT_00833630);
|
|
|
|
auVar76._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar76._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar76._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar76._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar61._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar61._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar61._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar61._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar76,auVar61);
|
|
|
|
pauVar1[3] = auVar2;
|
|
|
|
pauVar1[5] = auVar52;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
auVar2._4_4_ = param_1;
|
|
|
|
auVar2._0_4_ = unaff_retaddr;
|
|
|
|
auVar44._8_8_ = param_10;
|
|
|
|
auVar44._0_8_ = param_2;
|
|
|
|
auVar2._8_8_ = param_9;
|
|
|
|
auVar52 = paddsw(auVar2,auVar44);
|
|
|
|
auVar2 = psubsw(auVar2,auVar44);
|
|
|
|
auVar35._0_8_ = auVar52._0_8_;
|
|
|
|
auVar35._8_4_ = auVar52._4_4_;
|
|
|
|
auVar35._12_4_ = auVar2._4_4_;
|
|
|
|
auVar53._8_8_ = auVar35._8_8_;
|
|
|
|
auVar53._0_4_ = auVar52._0_4_;
|
|
|
|
auVar53._4_4_ = auVar2._0_4_;
|
|
|
|
auVar62._4_4_ = auVar2._8_4_;
|
|
|
|
auVar62._0_4_ = auVar52._8_4_;
|
|
|
|
auVar62._8_4_ = auVar52._12_4_;
|
|
|
|
auVar62._12_4_ = auVar2._12_4_;
|
|
|
|
auVar45._4_4_ = auVar2._4_4_;
|
|
|
|
auVar45._0_4_ = auVar52._4_4_;
|
|
|
|
auVar45._8_4_ = auVar53._0_4_;
|
|
|
|
auVar45._12_4_ = auVar2._0_4_;
|
|
|
|
auVar86._4_4_ = auVar2._12_4_;
|
|
|
|
auVar86._0_4_ = auVar52._12_4_;
|
|
|
|
auVar86._8_4_ = auVar52._8_4_;
|
|
|
|
auVar86._12_4_ = auVar2._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833540,auVar53);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833550,auVar45);
|
|
|
|
auVar2 = pmaddwd(auVar53,_DAT_00833560);
|
|
|
|
auVar35 = pmaddwd(auVar45,_DAT_00833570);
|
|
|
|
auVar31._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar31._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar31._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar31._12_4_ = auVar52._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar52._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar52._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar52._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar52._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar31,auVar52);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833540,auVar62);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833550,auVar86);
|
|
|
|
auVar52 = pmaddwd(auVar62,_DAT_00833560);
|
|
|
|
auVar53 = pmaddwd(auVar86,_DAT_00833570);
|
|
|
|
auVar77._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar77._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar77._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar77._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar63._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar63._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar63._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar63._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar77,auVar63);
|
|
|
|
*(longlong *)*param_1 = auVar2._0_8_;
|
|
|
|
*(longlong *)(*param_1 + 8) = auVar2._8_8_;
|
|
|
|
*(longlong *)param_1[4] = auVar52._0_8_;
|
|
|
|
*(longlong *)(param_1[4] + 8) = auVar52._8_8_;
|
|
|
|
auVar46._8_8_ = param_16;
|
|
|
|
auVar46._0_8_ = param_4;
|
|
|
|
auVar70._8_8_ = param_15;
|
|
|
|
auVar70._0_8_ = param_3;
|
|
|
|
auVar2 = paddsw(auVar70,auVar46);
|
|
|
|
auVar52 = psubsw(auVar70,auVar46);
|
|
|
|
auVar72._0_8_ = auVar2._0_8_;
|
|
|
|
auVar72._8_4_ = auVar2._4_4_;
|
|
|
|
auVar72._12_4_ = auVar52._4_4_;
|
|
|
|
auVar71._8_8_ = auVar72._8_8_;
|
|
|
|
auVar71._0_4_ = auVar2._0_4_;
|
|
|
|
auVar71._4_4_ = auVar52._0_4_;
|
|
|
|
auVar64._4_4_ = auVar52._8_4_;
|
|
|
|
auVar64._0_4_ = auVar2._8_4_;
|
|
|
|
auVar64._8_4_ = auVar2._12_4_;
|
|
|
|
auVar64._12_4_ = auVar52._12_4_;
|
|
|
|
auVar47._4_4_ = auVar52._4_4_;
|
|
|
|
auVar47._0_4_ = auVar2._4_4_;
|
|
|
|
auVar47._8_4_ = auVar71._0_4_;
|
|
|
|
auVar47._12_4_ = auVar52._0_4_;
|
|
|
|
auVar87._4_4_ = auVar52._12_4_;
|
|
|
|
auVar87._0_4_ = auVar2._12_4_;
|
|
|
|
auVar87._8_4_ = auVar2._8_4_;
|
|
|
|
auVar87._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833580,auVar71);
|
|
|
|
auVar53 = pmaddwd(_DAT_00833590,auVar47);
|
|
|
|
auVar2 = pmaddwd(auVar71,_DAT_008335a0);
|
|
|
|
auVar35 = pmaddwd(auVar47,_DAT_008335b0);
|
|
|
|
auVar32._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar32._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar32._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar32._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar81._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar81._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar81._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar81._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar32,auVar81);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833580,auVar64);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833590,auVar87);
|
|
|
|
auVar52 = pmaddwd(auVar64,_DAT_008335a0);
|
|
|
|
auVar53 = pmaddwd(auVar87,_DAT_008335b0);
|
|
|
|
auVar78._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar78._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar78._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar78._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar65._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar65._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar65._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar65._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar78,auVar65);
|
|
|
|
*(longlong *)param_1[1] = auVar2._0_8_;
|
|
|
|
*(longlong *)(param_1[1] + 8) = auVar2._8_8_;
|
|
|
|
*(longlong *)param_1[7] = auVar52._0_8_;
|
|
|
|
*(longlong *)(param_1[7] + 8) = auVar52._8_8_;
|
|
|
|
auVar48._8_8_ = param_14;
|
|
|
|
auVar48._0_8_ = param_6;
|
|
|
|
auVar19._8_8_ = param_13;
|
|
|
|
auVar19._0_8_ = param_5;
|
|
|
|
auVar2 = paddsw(auVar19,auVar48);
|
|
|
|
auVar52 = psubsw(auVar19,auVar48);
|
|
|
|
auVar21._0_8_ = auVar2._0_8_;
|
|
|
|
auVar21._8_4_ = auVar2._4_4_;
|
|
|
|
auVar21._12_4_ = auVar52._4_4_;
|
|
|
|
auVar20._8_8_ = auVar21._8_8_;
|
|
|
|
auVar20._0_4_ = auVar2._0_4_;
|
|
|
|
auVar20._4_4_ = auVar52._0_4_;
|
|
|
|
auVar66._4_4_ = auVar52._8_4_;
|
|
|
|
auVar66._0_4_ = auVar2._8_4_;
|
|
|
|
auVar66._8_4_ = auVar2._12_4_;
|
|
|
|
auVar66._12_4_ = auVar52._12_4_;
|
|
|
|
auVar49._4_4_ = auVar52._4_4_;
|
|
|
|
auVar49._0_4_ = auVar2._4_4_;
|
|
|
|
auVar49._8_4_ = auVar20._0_4_;
|
|
|
|
auVar49._12_4_ = auVar52._0_4_;
|
|
|
|
auVar88._4_4_ = auVar52._12_4_;
|
|
|
|
auVar88._0_4_ = auVar2._12_4_;
|
|
|
|
auVar88._8_4_ = auVar2._8_4_;
|
|
|
|
auVar88._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_008335c0,auVar20);
|
|
|
|
auVar53 = pmaddwd(_DAT_008335d0,auVar49);
|
|
|
|
auVar2 = pmaddwd(auVar20,_DAT_008335e0);
|
|
|
|
auVar35 = pmaddwd(auVar49,_DAT_008335f0);
|
|
|
|
auVar33._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar33._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar33._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar33._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar22._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar22._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar22._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar22._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar33,auVar22);
|
|
|
|
auVar35 = pmaddwd(_DAT_008335c0,auVar66);
|
|
|
|
auVar70 = pmaddwd(_DAT_008335d0,auVar88);
|
|
|
|
auVar52 = pmaddwd(auVar66,_DAT_008335e0);
|
|
|
|
auVar53 = pmaddwd(auVar88,_DAT_008335f0);
|
|
|
|
auVar79._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar79._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar79._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar79._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar67._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar67._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar67._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar67._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar79,auVar67);
|
|
|
|
*(longlong *)param_1[2] = auVar2._0_8_;
|
|
|
|
*(longlong *)(param_1[2] + 8) = auVar2._8_8_;
|
|
|
|
*(longlong *)param_1[6] = auVar52._0_8_;
|
|
|
|
*(longlong *)(param_1[6] + 8) = auVar52._8_8_;
|
|
|
|
auVar50._8_8_ = param_12;
|
|
|
|
auVar50._0_8_ = param_8;
|
|
|
|
auVar23._8_8_ = param_11;
|
|
|
|
auVar23._0_8_ = param_7;
|
|
|
|
auVar2 = paddsw(auVar23,auVar50);
|
|
|
|
auVar52 = psubsw(auVar23,auVar50);
|
|
|
|
auVar25._0_8_ = auVar2._0_8_;
|
|
|
|
auVar25._8_4_ = auVar2._4_4_;
|
|
|
|
auVar25._12_4_ = auVar52._4_4_;
|
|
|
|
auVar24._8_8_ = auVar25._8_8_;
|
|
|
|
auVar24._0_4_ = auVar2._0_4_;
|
|
|
|
auVar24._4_4_ = auVar52._0_4_;
|
|
|
|
auVar68._4_4_ = auVar52._8_4_;
|
|
|
|
auVar68._0_4_ = auVar2._8_4_;
|
|
|
|
auVar68._8_4_ = auVar2._12_4_;
|
|
|
|
auVar68._12_4_ = auVar52._12_4_;
|
|
|
|
auVar51._4_4_ = auVar52._4_4_;
|
|
|
|
auVar51._0_4_ = auVar2._4_4_;
|
|
|
|
auVar51._8_4_ = auVar24._0_4_;
|
|
|
|
auVar51._12_4_ = auVar52._0_4_;
|
|
|
|
auVar89._4_4_ = auVar52._12_4_;
|
|
|
|
auVar89._0_4_ = auVar2._12_4_;
|
|
|
|
auVar89._8_4_ = auVar2._8_4_;
|
|
|
|
auVar89._12_4_ = auVar52._8_4_;
|
|
|
|
auVar52 = pmaddwd(_DAT_00833600,auVar24);
|
|
|
|
auVar53 = pmaddwd(_DAT_00833610,auVar51);
|
|
|
|
auVar2 = pmaddwd(auVar24,_DAT_00833620);
|
|
|
|
auVar35 = pmaddwd(auVar51,_DAT_00833630);
|
|
|
|
auVar34._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar34._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar34._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar34._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar26._0_4_ = auVar2._0_4_ + (int)DAT_008333e0 + auVar35._0_4_ >> 0x14;
|
|
|
|
auVar26._4_4_ = auVar2._4_4_ + DAT_008333e0._4_4_ + auVar35._4_4_ >> 0x14;
|
|
|
|
auVar26._8_4_ = auVar2._8_4_ + iRam008333e8 + auVar35._8_4_ >> 0x14;
|
|
|
|
auVar26._12_4_ = auVar2._12_4_ + iRam008333ec + auVar35._12_4_ >> 0x14;
|
|
|
|
auVar2 = packssdw(auVar34,auVar26);
|
|
|
|
auVar35 = pmaddwd(_DAT_00833600,auVar68);
|
|
|
|
auVar70 = pmaddwd(_DAT_00833610,auVar89);
|
|
|
|
auVar52 = pmaddwd(auVar68,_DAT_00833620);
|
|
|
|
auVar53 = pmaddwd(auVar89,_DAT_00833630);
|
|
|
|
auVar80._0_4_ = auVar35._0_4_ + (int)DAT_008333e0 + auVar70._0_4_ >> 0x14;
|
|
|
|
auVar80._4_4_ = auVar35._4_4_ + DAT_008333e0._4_4_ + auVar70._4_4_ >> 0x14;
|
|
|
|
auVar80._8_4_ = auVar35._8_4_ + iRam008333e8 + auVar70._8_4_ >> 0x14;
|
|
|
|
auVar80._12_4_ = auVar35._12_4_ + iRam008333ec + auVar70._12_4_ >> 0x14;
|
|
|
|
auVar69._0_4_ = auVar52._0_4_ + (int)DAT_008333e0 + auVar53._0_4_ >> 0x14;
|
|
|
|
auVar69._4_4_ = auVar52._4_4_ + DAT_008333e0._4_4_ + auVar53._4_4_ >> 0x14;
|
|
|
|
auVar69._8_4_ = auVar52._8_4_ + iRam008333e8 + auVar53._8_4_ >> 0x14;
|
|
|
|
auVar69._12_4_ = auVar52._12_4_ + iRam008333ec + auVar53._12_4_ >> 0x14;
|
|
|
|
auVar52 = packssdw(auVar80,auVar69);
|
|
|
|
*(longlong *)param_1[3] = auVar2._0_8_;
|
|
|
|
*(longlong *)(param_1[3] + 8) = auVar2._8_8_;
|
|
|
|
*(longlong *)param_1[5] = auVar52._0_8_;
|
|
|
|
*(longlong *)(param_1[5] + 8) = auVar52._8_8_;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00650b00 at 0x00650B00 (size: 76) ---
|
|
|
|
|
|
longlong __fastcall FUN_00650b00(undefined4 param_1,uint param_2,int param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
int local_8;
|
|
|
|
|
|
|
|
iVar3 = *(int *)(param_3 + 0x14);
|
|
|
|
iVar2 = *(int *)(param_3 + 0x10) - iVar3;
|
|
|
|
iVar1 = FUN_00619550(*(undefined4 *)(param_3 + 0x3c),iVar3,iVar2,&local_8);
|
|
|
|
if ((iVar1 != 0) && (iVar2 == local_8)) {
|
|
|
|
*(int *)(param_3 + 0x10) = iVar3;
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
return CONCAT44(param_2,0xffffffe9);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00650b50 at 0x00650B50 (size: 841) ---
|
|
|
|
|
|
longlong __fastcall FUN_00650b50(undefined4 param_1,uint param_2,undefined4 param_3,int param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint *puVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint uVar3;
|
|
|
|
int iVar4;
|
|
|
|
int unaff_ESI;
|
|
|
|
int iVar5;
|
|
|
|
ulonglong uVar6;
|
|
|
|
undefined8 in_MM7;
|
|
|
|
|
|
|
|
do {
|
|
|
|
iVar4 = param_4 + *(int *)(unaff_ESI + 0xc);
|
|
|
|
if (iVar4 < 0x41) {
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
iVar4 = iVar4 - param_4;
|
|
|
|
puVar1 = *(uint **)(unaff_ESI + 0x10);
|
|
|
|
if (3 < *(int *)(unaff_ESI + 0x18) - (int)(puVar1 + 1)) {
|
|
|
|
uVar6 = psllw(in_MM7,8);
|
|
|
|
uVar6 = uVar6 | CONCAT26((ushort)((ulonglong)in_MM7 >> 0x38),
|
|
|
|
CONCAT24((ushort)((ulonglong)in_MM7 >> 0x20) >> 8,
|
|
|
|
CONCAT22((ushort)((ulonglong)in_MM7 >> 0x10) >> 8,
|
|
|
|
(ushort)in_MM7 >> 8)));
|
|
|
|
uVar6 = pshufw(uVar6,uVar6,0x1b);
|
|
|
|
iVar5 = CONCAT13(-((char)(uVar6 >> 0x18) == -1),
|
|
|
|
CONCAT12(-((char)(uVar6 >> 0x10) == -1),
|
|
|
|
CONCAT11(-((char)(uVar6 >> 8) == -1),-((char)uVar6 == -1))));
|
|
|
|
uVar2 = (uint)uVar6;
|
|
|
|
if (iVar5 == 0) {
|
|
|
|
*puVar1 = uVar2;
|
|
|
|
iVar4 = iVar4 + -0x20;
|
|
|
|
*(uint **)(unaff_ESI + 0x10) = puVar1 + 1;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == -0x1000000) {
|
|
|
|
*puVar1 = uVar2;
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == 0xff0000) {
|
|
|
|
*puVar1 = uVar2 & (uint)DAT_00833b78;
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == 0xff00) {
|
|
|
|
*puVar1 = uVar2 & (uint)DAT_00833b80 | (uint)((uVar6 & DAT_00833b88) << 8);
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar3 = (uint)DAT_00833b40;
|
|
|
|
if ((iVar5 == 0xff) || (iVar5 == -0xffff01)) {
|
|
|
|
*puVar1 = (uint)((uVar6 & DAT_00833b60) << 8) | uVar3;
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == -0xff0100) {
|
|
|
|
*puVar1 = (uint)(ushort)uVar6 | (uint)((uVar6 & DAT_00833b88) << 8);
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == 0xff00ff) {
|
|
|
|
*puVar1 = (uint)((uVar6 & DAT_00833b60) << 8) | uVar3;
|
|
|
|
iVar4 = iVar4 + -0x10;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == 0xffff00) {
|
|
|
|
*puVar1 = uVar2 & (uint)DAT_00833b80 | (uint)DAT_00833b90;
|
|
|
|
iVar4 = iVar4 + -0x10;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if (iVar5 == -0x10000) {
|
|
|
|
*puVar1 = uVar2 & (uint)DAT_00833b78;
|
|
|
|
iVar4 = iVar4 + -0x18;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else if ((iVar5 == 0xffff) || (iVar5 == -0xff0001)) {
|
|
|
|
*puVar1 = (uint)DAT_00833b50;
|
|
|
|
iVar4 = iVar4 + -0x10;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (iVar5 != -0xff01) {
|
|
|
|
return CONCAT44(param_2,0xffffffe8);
|
|
|
|
}
|
|
|
|
*puVar1 = (uint)((uVar6 & DAT_00833b60) << 8) | uVar3;
|
|
|
|
iVar4 = iVar4 + -0x10;
|
|
|
|
*(int *)(unaff_ESI + 0x1c) = *(int *)(unaff_ESI + 0x1c) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0x10) = *(int *)(unaff_ESI + 0x10) + 4;
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*(int *)(unaff_ESI + 0xc) = iVar4 + param_4;
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
if (*(int *)(unaff_ESI + 0x3c) == 0) {
|
|
|
|
return CONCAT44(param_2,0xffffffe4);
|
|
|
|
}
|
|
|
|
iVar4 = FUN_00650b00();
|
|
|
|
} while (iVar4 == 0);
|
|
|
|
return CONCAT44(param_2,iVar4);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00650eb0 at 0x00650EB0 (size: 385) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00650eb0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,int param_5,
|
|
|
|
short *param_6,short *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
undefined4 extraout_ECX;
|
|
|
|
undefined4 extraout_ECX_00;
|
|
|
|
int iVar5;
|
|
|
|
undefined8 uVar6;
|
|
|
|
undefined8 uVar7;
|
|
|
|
int local_18;
|
|
|
|
int local_14;
|
|
|
|
|
|
|
|
sVar1 = *param_7;
|
|
|
|
sVar2 = *param_6;
|
|
|
|
*param_6 = sVar1;
|
|
|
|
iVar3 = (int)sVar1 - (int)sVar2;
|
|
|
|
if ((int)sVar1 < (int)sVar2) {
|
|
|
|
iVar3 = -iVar3;
|
|
|
|
}
|
|
|
|
iVar4 = iVar3;
|
|
|
|
if (0xff < iVar3) {
|
|
|
|
iVar4 = iVar3 >> 8;
|
|
|
|
}
|
|
|
|
iVar5 = *(int *)(&DAT_00833740 + iVar4 * 4);
|
|
|
|
if (0xff < iVar3) {
|
|
|
|
iVar5 = *(int *)(&DAT_00833740 + iVar4 * 4) + 8;
|
|
|
|
}
|
|
|
|
uVar6 = *param_3;
|
|
|
|
uVar7 = FUN_00650b50(*(undefined2 *)(param_4 + 0x408 + iVar5 * 2),
|
|
|
|
*(undefined4 *)(param_4 + 8 + iVar5 * 4));
|
|
|
|
iVar3 = (int)uVar7;
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
iVar3 = FUN_00650b50((int)((ulonglong)uVar7 >> 0x20),extraout_ECX);
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
local_14 = 0;
|
|
|
|
local_18 = 1;
|
|
|
|
do {
|
|
|
|
iVar4 = (int)param_7[(&DAT_00833640)[local_18]];
|
|
|
|
if (iVar4 == 0) {
|
|
|
|
local_14 = local_14 + 1;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
for (; 0xf < local_14; local_14 = local_14 + -0x10) {
|
|
|
|
iVar3 = FUN_00650b50(*(undefined2 *)(param_5 + 0x5e8),*(undefined4 *)(param_5 + 0x3c8));
|
|
|
|
if (iVar3 != 0) goto LAB_00651027;
|
|
|
|
}
|
|
|
|
if (iVar4 < 0) {
|
|
|
|
iVar4 = -iVar4;
|
|
|
|
}
|
|
|
|
iVar3 = iVar4;
|
|
|
|
if (0xff < iVar4) {
|
|
|
|
iVar3 = iVar4 >> 8;
|
|
|
|
}
|
|
|
|
iVar5 = *(int *)(&DAT_00833740 + iVar3 * 4);
|
|
|
|
if (0xff < iVar4) {
|
|
|
|
iVar5 = *(int *)(&DAT_00833740 + iVar3 * 4) + 8;
|
|
|
|
}
|
|
|
|
iVar5 = local_14 * 0x10 + iVar5;
|
|
|
|
uVar7 = FUN_00650b50(*(undefined2 *)(param_5 + 0x408 + iVar5 * 2),
|
|
|
|
*(undefined4 *)(param_5 + 8 + iVar5 * 4));
|
|
|
|
iVar3 = (int)uVar7;
|
|
|
|
if (iVar3 != 0) goto LAB_00651027;
|
|
|
|
iVar3 = FUN_00650b50((int)((ulonglong)uVar7 >> 0x20),extraout_ECX_00);
|
|
|
|
if (iVar3 != 0) goto LAB_00651027;
|
|
|
|
local_14 = 0;
|
|
|
|
}
|
|
|
|
local_18 = local_18 + 1;
|
|
|
|
} while (local_18 < 0x40);
|
|
|
|
if (local_14 != 0) {
|
|
|
|
iVar3 = FUN_00650b50(*(undefined2 *)(param_5 + 0x408),*(undefined4 *)(param_5 + 8));
|
|
|
|
if (iVar3 != 0) goto LAB_00651027;
|
|
|
|
}
|
|
|
|
iVar3 = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
LAB_00651027:
|
|
|
|
*param_3 = uVar6;
|
|
|
|
return CONCAT44(param_2,iVar3);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00651040 at 0x00651040 (size: 607) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00651040(undefined4 param_1,undefined4 param_2,int param_3,ulonglong *param_4,uint *param_5,
|
|
|
|
uint *param_6)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint uVar3;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
uint uVar4;
|
|
|
|
uint uVar5;
|
|
|
|
uint uVar6;
|
|
|
|
ulonglong *puVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
ulonglong uVar9;
|
|
|
|
short sVar14;
|
|
|
|
ulonglong uVar10;
|
|
|
|
ulonglong uVar11;
|
|
|
|
uint uVar15;
|
|
|
|
ulonglong uVar16;
|
|
|
|
ulonglong uVar20;
|
|
|
|
ulonglong uVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
int *piStack_2c;
|
|
|
|
int local_10;
|
|
|
|
uint local_c;
|
|
|
|
ulonglong *local_8;
|
|
|
|
ushort uVar17;
|
|
|
|
ushort uVar18;
|
|
|
|
ushort uVar19;
|
|
|
|
|
|
|
|
local_8 = param_4;
|
|
|
|
piStack_2c = &DAT_00833640;
|
|
|
|
local_10 = 0x10;
|
|
|
|
local_c = 0;
|
|
|
|
do {
|
|
|
|
uVar3 = local_c;
|
|
|
|
uVar5 = *(uint *)(param_3 + *piStack_2c * 2);
|
|
|
|
uVar1 = *(uint *)(param_3 + piStack_2c[1] * 2);
|
|
|
|
uVar15 = *(uint *)(param_3 + piStack_2c[2] * 2);
|
|
|
|
uVar2 = *(uint *)(param_3 + piStack_2c[3] * 2);
|
|
|
|
uVar4 = uVar5 & 0xffff | uVar1 << 0x10;
|
|
|
|
uVar6 = uVar15 & 0xffff | uVar2 << 0x10;
|
|
|
|
if (uVar4 == 0 && uVar6 == 0) {
|
|
|
|
local_c = local_c + 4;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar5 = CONCAT22(-(ushort)((short)uVar1 == 0),-(ushort)((short)uVar5 == 0));
|
|
|
|
uVar15 = CONCAT22(-(ushort)((short)uVar2 == 0),-(ushort)((short)uVar15 == 0));
|
|
|
|
if (uVar5 != 0 || uVar15 != 0) {
|
|
|
|
uVar5 = ~uVar5 & 0x20001 | ~uVar15 & 0x80004;
|
|
|
|
/* WARNING: Could not recover jumptable at 0x006510fe. Too many branches */
|
|
|
|
/* WARNING: Treating indirect jump as call */
|
|
|
|
uVar22 = (*(code *)(&DAT_00651100 + ((uVar5 >> 0x10 | uVar5 & 0xffff) - 1) * 8))();
|
|
|
|
return uVar22;
|
|
|
|
}
|
|
|
|
local_c = 0;
|
|
|
|
*(uint *)((int)local_8 + 0x104) = 0;
|
|
|
|
*(uint *)local_8 = uVar4;
|
|
|
|
*(uint *)((int)local_8 + 4) = uVar1 & 0xffff;
|
|
|
|
*(uint *)(local_8 + 0x21) = 0;
|
|
|
|
*(uint *)(local_8 + 0x20) = uVar3;
|
|
|
|
*(uint *)(local_8 + 1) = uVar6;
|
|
|
|
*(uint *)((int)local_8 + 0x10c) = 0;
|
|
|
|
*(uint *)((int)local_8 + 0xc) = uVar2 & 0xffff;
|
|
|
|
local_8 = local_8 + 2;
|
|
|
|
}
|
|
|
|
piStack_2c = piStack_2c + 4;
|
|
|
|
local_10 = local_10 + -1;
|
|
|
|
} while (local_10 != 0);
|
|
|
|
uVar5 = (uint)((int)local_8 - (int)param_4) >> 2;
|
|
|
|
*param_6 = uVar5;
|
|
|
|
uVar5 = uVar5 + 4 & 0xfc;
|
|
|
|
puVar7 = param_4;
|
|
|
|
do {
|
|
|
|
uVar9 = packssdw(CONCAT44((int)(short)(*param_4 >> 0x20),(int)(short)*param_4),
|
|
|
|
CONCAT44((int)(short)(param_4[1] >> 0x20),(int)(short)param_4[1]));
|
|
|
|
sVar8 = (short)uVar9;
|
|
|
|
sVar12 = (short)(uVar9 >> 0x10);
|
|
|
|
sVar13 = (short)(uVar9 >> 0x20);
|
|
|
|
sVar14 = (short)(uVar9 >> 0x30);
|
|
|
|
uVar11 = CONCAT26(-(ushort)(0 < sVar14),
|
|
|
|
CONCAT24(-(ushort)(0 < sVar13),
|
|
|
|
CONCAT22(-(ushort)(0 < sVar12),-(ushort)(0 < sVar8))));
|
|
|
|
uVar10 = ~uVar11 & CONCAT26(-sVar14,CONCAT24(-sVar13,CONCAT22(-sVar12,-sVar8))) | uVar9 & uVar11
|
|
|
|
;
|
|
|
|
uVar17 = (ushort)(uVar10 >> 0x10);
|
|
|
|
uVar18 = (ushort)(uVar10 >> 0x20);
|
|
|
|
uVar19 = (ushort)(uVar10 >> 0x30);
|
|
|
|
uVar16 = CONCAT26(-(ushort)((short)((ulonglong)DAT_00833bc8 >> 0x30) < (short)uVar19),
|
|
|
|
CONCAT24(-(ushort)((short)((ulonglong)DAT_00833bc8 >> 0x20) < (short)uVar18),
|
|
|
|
CONCAT22(-(ushort)((short)((ulonglong)DAT_00833bc8 >> 0x10) <
|
|
|
|
(short)uVar17),
|
|
|
|
-(ushort)((short)DAT_00833bc8 < (short)(ushort)uVar10))));
|
|
|
|
*puVar7 = ~uVar11 & CONCAT26(sVar14 - (short)(DAT_00833b98 >> 0x30),
|
|
|
|
CONCAT24(sVar13 - (short)(DAT_00833b98 >> 0x20),
|
|
|
|
CONCAT22(sVar12 - (short)(DAT_00833b98 >> 0x10),
|
|
|
|
sVar8 - (short)DAT_00833b98))) | uVar9 & uVar11;
|
|
|
|
uVar9 = CONCAT26(uVar19 >> 8,CONCAT24(uVar18 >> 8,CONCAT22(uVar17 >> 8,(ushort)uVar10 >> 8))) &
|
|
|
|
uVar16;
|
|
|
|
uVar11 = uVar9 | ~uVar16 & uVar10;
|
|
|
|
uVar9 = uVar9 | ~uVar16 & uVar10;
|
|
|
|
uVar21 = CONCAT26(-(ushort)((short)((ulonglong)DAT_00833bc0 >> 0x30) < (short)(uVar9 >> 0x30)),
|
|
|
|
CONCAT24(-(ushort)((short)((ulonglong)DAT_00833bc0 >> 0x20) <
|
|
|
|
(short)(uVar9 >> 0x20)),
|
|
|
|
CONCAT22(-(ushort)((short)((ulonglong)DAT_00833bc0 >> 0x10) <
|
|
|
|
(short)(uVar9 >> 0x10)),
|
|
|
|
-(ushort)((short)DAT_00833bc0 < (short)uVar9))));
|
|
|
|
uVar9 = CONCAT26((ushort)(uVar11 >> 0x34),
|
|
|
|
CONCAT24((ushort)(uVar11 >> 0x20) >> 4,
|
|
|
|
CONCAT22((ushort)(uVar11 >> 0x10) >> 4,(ushort)uVar11 >> 4))) & uVar21
|
|
|
|
;
|
|
|
|
uVar10 = uVar9 | ~uVar21 & uVar11;
|
|
|
|
uVar9 = uVar9 | ~uVar21 & uVar11;
|
|
|
|
uVar20 = CONCAT26(-(ushort)((short)((ulonglong)DAT_00833ba8 >> 0x30) < (short)(uVar9 >> 0x30)),
|
|
|
|
CONCAT24(-(ushort)((short)((ulonglong)DAT_00833ba8 >> 0x20) <
|
|
|
|
(short)(uVar9 >> 0x20)),
|
|
|
|
CONCAT22(-(ushort)((short)((ulonglong)DAT_00833ba8 >> 0x10) <
|
|
|
|
(short)(uVar9 >> 0x10)),
|
|
|
|
-(ushort)((short)DAT_00833ba8 < (short)uVar9))));
|
|
|
|
uVar9 = CONCAT26((ushort)(uVar10 >> 0x32),
|
|
|
|
CONCAT24((ushort)(uVar10 >> 0x20) >> 2,
|
|
|
|
CONCAT22((ushort)(uVar10 >> 0x10) >> 2,(ushort)uVar10 >> 2))) & uVar20
|
|
|
|
;
|
|
|
|
uVar11 = uVar9 | ~uVar20 & uVar10;
|
|
|
|
uVar9 = uVar9 | ~uVar20 & uVar10;
|
|
|
|
uVar10 = CONCAT26(-(ushort)((short)(DAT_00833b98 >> 0x30) < (short)(uVar9 >> 0x30)),
|
|
|
|
CONCAT24(-(ushort)((short)(DAT_00833b98 >> 0x20) < (short)(uVar9 >> 0x20)),
|
|
|
|
CONCAT22(-(ushort)((short)(DAT_00833b98 >> 0x10) <
|
|
|
|
(short)(uVar9 >> 0x10)),
|
|
|
|
-(ushort)((short)DAT_00833b98 < (short)uVar9))));
|
|
|
|
uVar9 = CONCAT26((ushort)(uVar11 >> 0x31),
|
|
|
|
CONCAT24((ushort)(uVar11 >> 0x20) >> 1,
|
|
|
|
CONCAT22((ushort)(uVar11 >> 0x10) >> 1,(ushort)uVar11 >> 1))) & uVar10
|
|
|
|
| ~uVar10 & uVar11;
|
|
|
|
uVar11 = uVar16 & _DAT_00833bb8 | uVar21 & _DAT_00833bb0 |
|
|
|
|
uVar10 & DAT_00833b98 | uVar20 & _DAT_00833ba0;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
puVar7[0x40] = CONCAT26((short)(uVar9 >> 0x30) + (short)(uVar11 >> 0x30),
|
|
|
|
CONCAT24((short)(uVar9 >> 0x20) + (short)(uVar11 >> 0x20),
|
|
|
|
CONCAT22((short)(uVar9 >> 0x10) + (short)(uVar11 >> 0x10),
|
|
|
|
(short)uVar9 + (short)uVar11)));
|
|
|
|
uVar5 = uVar5 - 4;
|
|
|
|
puVar7 = puVar7 + 1;
|
|
|
|
} while (uVar5 != 0);
|
|
|
|
*param_5 = local_c;
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006515a0 at 0x006515A0 (size: 109) ---
|
|
|
|
|
|
undefined4 FUN_006515a0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
undefined4 local_14 [4];
|
|
|
|
|
|
|
|
iVar1 = FUN_00619530(*(undefined4 *)(param_1 + 0x3c),param_1 + 0x40,0x1000,local_14);
|
|
|
|
*(undefined4 *)(param_1 + 0x24) = local_14[0];
|
|
|
|
if ((iVar1 != 0) && (*(int *)(param_1 + 0x24) == 0)) {
|
|
|
|
return 0xfffffff5;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x10) = param_1 + 0x40;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00651610 at 0x00651610 (size: 645) ---
|
|
|
|
|
|
undefined4 FUN_00651610(ulonglong *param_1,int param_2,int param_3,short *param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
ulonglong uVar3;
|
|
|
|
ulonglong uVar4;
|
|
|
|
uint uVar5;
|
|
|
|
int iVar6;
|
|
|
|
int iVar7;
|
|
|
|
uint uVar8;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
ulonglong extraout_MM1_00;
|
|
|
|
ulonglong extraout_MM1_01;
|
|
|
|
ulonglong extraout_MM1_02;
|
|
|
|
ulonglong extraout_MM1_03;
|
|
|
|
ulonglong extraout_MM1_04;
|
|
|
|
ulonglong uVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
ulonglong uVar13;
|
|
|
|
|
|
|
|
uVar1 = *(undefined4 *)((int)param_1 + 0x1c);
|
|
|
|
uVar2 = *(undefined4 *)((int)param_1 + 0x24);
|
|
|
|
uVar3 = param_1[6];
|
|
|
|
uVar10 = *param_1;
|
|
|
|
iVar9 = *(int *)((int)param_1 + 0xc);
|
|
|
|
uVar4 = param_1[2];
|
|
|
|
uVar12 = 0x40;
|
|
|
|
if (iVar9 < 8) {
|
|
|
|
iVar6 = FUN_00651895();
|
|
|
|
uVar10 = extraout_MM1;
|
|
|
|
if (iVar6 == 0) goto LAB_00651861;
|
|
|
|
if (7 < iVar9) goto LAB_00651669;
|
|
|
|
LAB_006517c3:
|
|
|
|
uVar5 = FUN_006519f3();
|
|
|
|
uVar10 = extraout_MM1_01;
|
|
|
|
if ((int)uVar5 < 0) goto LAB_00651861;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_00651669:
|
|
|
|
uVar5 = *(uint *)(param_2 + 8 + (uint)(byte)(uVar10 >> 0x38) * 4);
|
|
|
|
if ((int)uVar5 < 0x10000) goto LAB_006517c3;
|
|
|
|
iVar9 = iVar9 - (uVar5 >> 0x10);
|
|
|
|
uVar10 = uVar10 << (ulonglong)(uVar5 >> 0x10);
|
|
|
|
uVar5 = uVar5 & 0xffff;
|
|
|
|
}
|
|
|
|
if (((int)uVar5 <= iVar9) || (iVar6 = FUN_00651895(), uVar10 = extraout_MM1_00, iVar6 != 0)) {
|
|
|
|
iVar9 = iVar9 - uVar5;
|
|
|
|
iVar6 = (int)(uVar10 >> CONCAT44((int)((ulonglong)uVar12 >> 0x20),(int)uVar12 - uVar5));
|
|
|
|
uVar10 = uVar10 << (ulonglong)uVar5;
|
|
|
|
if (iVar6 < *(int *)(&DAT_00908100 + uVar5 * 4)) {
|
|
|
|
iVar6 = iVar6 + *(int *)(&DAT_009080c0 + uVar5 * 4);
|
|
|
|
}
|
|
|
|
iVar7 = 1;
|
|
|
|
*param_4 = *param_4 + (short)iVar6;
|
|
|
|
LAB_006516ea:
|
|
|
|
do {
|
|
|
|
if (iVar9 < 8) {
|
|
|
|
uVar12 = FUN_00651895();
|
|
|
|
iVar7 = (int)((ulonglong)uVar12 >> 0x20);
|
|
|
|
uVar10 = extraout_MM1_03;
|
|
|
|
if ((int)uVar12 == 0) break;
|
|
|
|
if (7 < iVar9) goto LAB_006516ea;
|
|
|
|
LAB_00651842:
|
|
|
|
uVar13 = FUN_006519f3();
|
|
|
|
uVar10 = extraout_MM1_04;
|
|
|
|
if ((int)uVar13 < 0) break;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar5 = *(uint *)(param_3 + 8 + (uint)(byte)(uVar10 >> 0x38) * 4);
|
|
|
|
uVar8 = uVar5 >> 0x10;
|
|
|
|
uVar13 = CONCAT44(iVar7,uVar5) & 0xffffffff0000ffff;
|
|
|
|
if (uVar8 == 0) goto LAB_00651842;
|
|
|
|
iVar9 = iVar9 - uVar8;
|
|
|
|
uVar10 = uVar10 << (ulonglong)uVar8;
|
|
|
|
}
|
|
|
|
iVar7 = (int)(uVar13 >> 0x20);
|
|
|
|
uVar5 = (uint)uVar13;
|
|
|
|
uVar8 = uVar5 & 0xf;
|
|
|
|
uVar11 = (ulonglong)uVar8;
|
|
|
|
if ((uVar13 & 0xf) == 0) {
|
|
|
|
if ((int)uVar5 < 0xf0) goto LAB_00651754;
|
|
|
|
iVar7 = iVar7 + 0x10;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar7 = iVar7 + (uVar5 >> 4);
|
|
|
|
if (iVar9 < (int)uVar8) {
|
|
|
|
uVar12 = FUN_00651895();
|
|
|
|
iVar7 = (int)((ulonglong)uVar12 >> 0x20);
|
|
|
|
uVar10 = extraout_MM1_02;
|
|
|
|
if ((int)uVar12 == 0) break;
|
|
|
|
}
|
|
|
|
iVar9 = iVar9 - uVar8;
|
|
|
|
uVar10 = uVar10 << uVar11;
|
|
|
|
iVar7 = iVar7 + 1;
|
|
|
|
}
|
|
|
|
if (0x3f < iVar7) {
|
|
|
|
LAB_00651754:
|
|
|
|
*param_1 = uVar10;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar9;
|
|
|
|
*(int *)(param_1 + 2) = (int)uVar4;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x24) = uVar2;
|
|
|
|
*(char *)(param_1 + 6) = (char)uVar3;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x1c) = uVar1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
LAB_00651861:
|
|
|
|
*param_1 = uVar10;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar9;
|
|
|
|
*(int *)(param_1 + 2) = (int)uVar4;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x24) = uVar2;
|
|
|
|
*(char *)(param_1 + 6) = (char)uVar3;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x1c) = uVar1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00651895 at 0x00651895 (size: 350) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_00651895(undefined4 param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
byte bVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
uint in_EAX;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
undefined4 unaff_EBX;
|
|
|
|
int unaff_EBP;
|
|
|
|
byte *unaff_ESI;
|
|
|
|
int unaff_EDI;
|
|
|
|
|
|
|
|
iVar4 = *(int *)(unaff_EBP + -0x24);
|
|
|
|
if (*(char *)(unaff_EBP + -0x20) == '\0') {
|
|
|
|
if (3 < iVar4) {
|
|
|
|
uVar2 = *(undefined4 *)unaff_ESI;
|
|
|
|
in_EAX = CONCAT13(-((char)uVar2 == -1),
|
|
|
|
CONCAT12(-((char)((uint)uVar2 >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uint)uVar2 >> 0x10) == -1),
|
|
|
|
-((char)((uint)uVar2 >> 0x18) == -1))));
|
|
|
|
if (in_EAX == 0) {
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 4;
|
|
|
|
*(int *)(unaff_EBP + -0x24) = iVar4 + -4;
|
|
|
|
return 0xff;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar4 = *(int *)(unaff_EBP + -0x24);
|
|
|
|
do {
|
|
|
|
for (; iVar4 < 1; iVar4 = *(int *)(iVar4 + 0x24)) {
|
|
|
|
iVar4 = *(int *)(unaff_EBP + 8);
|
|
|
|
if ((*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) ||
|
|
|
|
(iVar3 = FUN_006515a0(iVar4,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar4,in_EAX), iVar3 != 0)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar4 + 0x10);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
in_EAX = (uint)*unaff_ESI;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar3 = iVar4 + -1;
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
if (in_EAX == 0xff) {
|
|
|
|
do {
|
|
|
|
while (iVar4 = iVar3 + -1, iVar3 < 1) {
|
|
|
|
iVar4 = *(int *)(unaff_EBP + 8);
|
|
|
|
if (*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar3 = FUN_006515a0(iVar4,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar4,in_EAX);
|
|
|
|
if (iVar3 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar4 + 0x10);
|
|
|
|
iVar3 = *(int *)(iVar4 + 0x24);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
bVar1 = *unaff_ESI;
|
|
|
|
in_EAX = (uint)bVar1;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar3 = iVar4;
|
|
|
|
} while (in_EAX == 0xff);
|
|
|
|
if (in_EAX != 0) {
|
|
|
|
*(byte *)(unaff_EBP + -0x20) = bVar1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
in_EAX = 0xff;
|
|
|
|
}
|
|
|
|
unaff_EDI = unaff_EDI + 8;
|
|
|
|
} while (unaff_EDI < 0x39);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x24) = iVar4;
|
|
|
|
return 0xff;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006519f3 at 0x006519F3 (size: 215) ---
|
|
|
|
|
|
longlong __fastcall FUN_006519f3(undefined4 param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint unaff_EBX;
|
|
|
|
uint uVar3;
|
|
|
|
int unaff_EBP;
|
|
|
|
int unaff_EDI;
|
|
|
|
int iVar4;
|
|
|
|
ulonglong in_MM1;
|
|
|
|
longlong lVar5;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
longlong extraout_MM1_00;
|
|
|
|
undefined8 in_MM4;
|
|
|
|
|
|
|
|
*(uint *)(unaff_EBP + -0x10) = unaff_EBX;
|
|
|
|
if (unaff_EDI < (int)unaff_EBX) {
|
|
|
|
iVar4 = FUN_00651895();
|
|
|
|
if (iVar4 == 0) goto LAB_00651ac3;
|
|
|
|
unaff_EBX = *(uint *)(unaff_EBP + -0x10);
|
|
|
|
in_MM1 = extraout_MM1;
|
|
|
|
}
|
|
|
|
iVar4 = unaff_EDI - unaff_EBX;
|
|
|
|
uVar2 = (uint)(in_MM1 >> CONCAT44((int)((ulonglong)in_MM4 >> 0x20),(int)in_MM4 - unaff_EBX));
|
|
|
|
lVar5 = in_MM1 << (ulonglong)unaff_EBX;
|
|
|
|
while( true ) {
|
|
|
|
iVar1 = *(int *)(unaff_EBP + -0x10);
|
|
|
|
uVar3 = (uint)*(short *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
if (uVar3 != 0xffffffff) {
|
|
|
|
uVar3 = (uint)*(ushort *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
}
|
|
|
|
if ((int)uVar2 <= (int)uVar3) {
|
|
|
|
if (iVar1 < 0x11) {
|
|
|
|
iVar4 = *(int *)(unaff_EBP + -0x14);
|
|
|
|
return CONCAT44(param_2,(int)*(short *)(iVar4 + 0x408 +
|
|
|
|
CONCAT22((short)(uVar2 >> 0x10),
|
|
|
|
((short)uVar2 -
|
|
|
|
*(short *)(iVar4 + 0x608 +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2))
|
|
|
|
+ *(short *)(iVar4 + 0x64e +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2)
|
|
|
|
) * 2));
|
|
|
|
}
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
if ((iVar4 < 1) && (iVar1 = FUN_00651895(), lVar5 = extraout_MM1_00, iVar1 == 0)) break;
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + 1;
|
|
|
|
uVar2 = uVar2 << 1 | (uint)((ulonglong)lVar5 >> 0x3f);
|
|
|
|
lVar5 = lVar5 << 1;
|
|
|
|
}
|
|
|
|
LAB_00651ac3:
|
|
|
|
return CONCAT44(param_2,1);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00651ae0 at 0x00651AE0 (size: 1192) ---
|
|
|
|
|
|
undefined4 FUN_00651ae0(ulonglong *param_1,int param_2,int param_3,ushort *param_4,uint *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
short sVar2;
|
|
|
|
uint uVar3;
|
|
|
|
ushort uVar4;
|
|
|
|
int iVar5;
|
|
|
|
int iVar6;
|
|
|
|
uint uVar7;
|
|
|
|
uint *puVar8;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
ulonglong uVar11;
|
|
|
|
ulonglong uVar12;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
ulonglong extraout_MM1_00;
|
|
|
|
ulonglong extraout_MM1_01;
|
|
|
|
ulonglong extraout_MM1_02;
|
|
|
|
ulonglong extraout_MM1_03;
|
|
|
|
ulonglong extraout_MM1_04;
|
|
|
|
longlong lVar13;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
int local_2c;
|
|
|
|
int local_24;
|
|
|
|
undefined4 uVar14;
|
|
|
|
|
|
|
|
uVar11 = *param_1;
|
|
|
|
iVar9 = *(int *)((int)param_1 + 0xc);
|
|
|
|
puVar8 = *(uint **)(param_1 + 2);
|
|
|
|
local_2c = *(int *)((int)param_1 + 0x1c);
|
|
|
|
local_24 = *(int *)((int)param_1 + 0x24);
|
|
|
|
cVar1 = (char)param_1[6];
|
|
|
|
uVar15 = 0x40;
|
|
|
|
param_5[0] = 0;
|
|
|
|
param_5[1] = 0;
|
|
|
|
param_5[2] = 0;
|
|
|
|
param_5[3] = 0;
|
|
|
|
param_5[4] = 0;
|
|
|
|
param_5[5] = 0;
|
|
|
|
param_5[6] = 0;
|
|
|
|
param_5[7] = 0;
|
|
|
|
param_5[8] = 0;
|
|
|
|
param_5[9] = 0;
|
|
|
|
param_5[10] = 0;
|
|
|
|
param_5[0xb] = 0;
|
|
|
|
param_5[0xc] = 0;
|
|
|
|
param_5[0xd] = 0;
|
|
|
|
param_5[0xe] = 0;
|
|
|
|
param_5[0xf] = 0;
|
|
|
|
param_5[0x10] = 0;
|
|
|
|
param_5[0x11] = 0;
|
|
|
|
param_5[0x12] = 0;
|
|
|
|
param_5[0x13] = 0;
|
|
|
|
param_5[0x14] = 0;
|
|
|
|
param_5[0x15] = 0;
|
|
|
|
param_5[0x16] = 0;
|
|
|
|
param_5[0x17] = 0;
|
|
|
|
param_5[0x18] = 0;
|
|
|
|
param_5[0x19] = 0;
|
|
|
|
param_5[0x1a] = 0;
|
|
|
|
param_5[0x1b] = 0;
|
|
|
|
param_5[0x1c] = 0;
|
|
|
|
param_5[0x1d] = 0;
|
|
|
|
param_5[0x1e] = 0;
|
|
|
|
param_5[0x1f] = 0;
|
|
|
|
if (iVar9 < 8) {
|
|
|
|
uVar11 = uVar11 >> (ulonglong)(0x40 - iVar9);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
if (3 < local_24) {
|
|
|
|
uVar3 = *puVar8;
|
|
|
|
if (CONCAT13(-((char)uVar3 == -1),
|
|
|
|
CONCAT12(-((char)((uVar3 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar3 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar3 >> 0x18) == -1)))) == 0) {
|
|
|
|
puVar8 = puVar8 + 1;
|
|
|
|
iVar9 = iVar9 + 0x20;
|
|
|
|
uVar11 = uVar11 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)
|
|
|
|
;
|
|
|
|
local_24 = local_24 + -4;
|
|
|
|
local_2c = local_2c + 4;
|
|
|
|
goto LAB_00651d0e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar5 = FUN_00651f88();
|
|
|
|
uVar11 = extraout_MM1;
|
|
|
|
if (iVar5 == 0) goto LAB_00651f54;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_00651d0e:
|
|
|
|
uVar11 = uVar11 << (ulonglong)(0x40 - iVar9);
|
|
|
|
}
|
|
|
|
if (7 < iVar9) goto LAB_00651b76;
|
|
|
|
LAB_00651dd2:
|
|
|
|
uVar3 = FUN_00652085();
|
|
|
|
uVar11 = extraout_MM1_01;
|
|
|
|
if ((int)uVar3 < 0) goto LAB_00651f54;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_00651b76:
|
|
|
|
uVar3 = (uint)(byte)(uVar11 >> 0x38);
|
|
|
|
uVar7 = (uint)*(ushort *)(param_2 + 10 + uVar3 * 4);
|
|
|
|
uVar3 = (uint)*(ushort *)(param_2 + 8 + uVar3 * 4);
|
|
|
|
if (uVar7 == 0) goto LAB_00651dd2;
|
|
|
|
iVar9 = iVar9 - uVar7;
|
|
|
|
uVar11 = uVar11 << (ulonglong)uVar7;
|
|
|
|
}
|
|
|
|
if ((int)uVar3 <= iVar9) goto LAB_00651ba7;
|
|
|
|
uVar14 = (undefined4)((ulonglong)uVar15 >> 0x20);
|
|
|
|
uVar11 = uVar11 >> CONCAT44(uVar14,(int)uVar15 - iVar9);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
if (3 < local_24) {
|
|
|
|
uVar7 = *puVar8;
|
|
|
|
if (CONCAT13(-((char)uVar7 == -1),
|
|
|
|
CONCAT12(-((char)((uVar7 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar7 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar7 >> 0x18) == -1)))) == 0) {
|
|
|
|
puVar8 = puVar8 + 1;
|
|
|
|
iVar9 = iVar9 + 0x20;
|
|
|
|
uVar11 = uVar11 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 | uVar7 << 0x18);
|
|
|
|
local_24 = local_24 + -4;
|
|
|
|
local_2c = local_2c + 4;
|
|
|
|
goto LAB_00651da3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar5 = FUN_00651f88();
|
|
|
|
uVar11 = extraout_MM1_00;
|
|
|
|
if (iVar5 == 0) {
|
|
|
|
LAB_00651f54:
|
|
|
|
*param_1 = uVar11;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar9;
|
|
|
|
*(uint **)(param_1 + 2) = puVar8;
|
|
|
|
*(int *)((int)param_1 + 0x24) = local_24;
|
|
|
|
*(char *)(param_1 + 6) = cVar1;
|
|
|
|
*(int *)((int)param_1 + 0x1c) = local_2c;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_00651da3:
|
|
|
|
uVar11 = uVar11 << CONCAT44(uVar14,(int)uVar15 - iVar9);
|
|
|
|
}
|
|
|
|
LAB_00651ba7:
|
|
|
|
iVar9 = iVar9 - uVar3;
|
|
|
|
uVar10 = uVar11 >> CONCAT44((int)((ulonglong)uVar15 >> 0x20),(int)uVar15 - uVar3);
|
|
|
|
uVar11 = uVar11 << (ulonglong)uVar3;
|
|
|
|
sVar2 = 0;
|
|
|
|
if ((int)uVar10 < *(int *)(&DAT_00908100 + uVar3 * 4)) {
|
|
|
|
sVar2 = (short)*(undefined4 *)(&DAT_009080c0 + uVar3 * 4);
|
|
|
|
}
|
|
|
|
iVar5 = 1;
|
|
|
|
uVar4 = (short)uVar10 + sVar2 + *param_4;
|
|
|
|
*param_4 = uVar4;
|
|
|
|
*param_5 = (uint)uVar4;
|
|
|
|
do {
|
|
|
|
uVar10 = uVar11 >> 0x38;
|
|
|
|
do {
|
|
|
|
while( true ) {
|
|
|
|
if (7 < iVar9) {
|
|
|
|
uVar12 = CONCAT44(iVar5,(uint)*(ushort *)(param_3 + 8 + (int)uVar10 * 4));
|
|
|
|
uVar3 = (uint)*(ushort *)(param_3 + 10 + (int)uVar10 * 4);
|
|
|
|
if (uVar3 != 0) {
|
|
|
|
iVar9 = iVar9 - uVar3;
|
|
|
|
uVar11 = uVar11 << (ulonglong)uVar3;
|
|
|
|
goto LAB_00651c27;
|
|
|
|
}
|
|
|
|
goto LAB_00651f35;
|
|
|
|
}
|
|
|
|
uVar14 = (undefined4)((ulonglong)uVar15 >> 0x20);
|
|
|
|
uVar11 = uVar11 >> CONCAT44(uVar14,(int)uVar15 - iVar9);
|
|
|
|
if (cVar1 == '\0') break;
|
|
|
|
LAB_00651eda:
|
|
|
|
uVar11 = uVar11 << CONCAT44(uVar14,(int)uVar15 - iVar9);
|
|
|
|
uVar10 = uVar11 >> 0x38;
|
|
|
|
if (iVar9 < 8) goto LAB_00651f35;
|
|
|
|
}
|
|
|
|
if (3 < local_24) {
|
|
|
|
uVar3 = *puVar8;
|
|
|
|
if (CONCAT13(-((char)uVar3 == -1),
|
|
|
|
CONCAT12(-((char)((uVar3 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar3 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar3 >> 0x18) == -1)))) == 0) {
|
|
|
|
puVar8 = puVar8 + 1;
|
|
|
|
iVar9 = iVar9 + 0x20;
|
|
|
|
uVar11 = uVar11 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18)
|
|
|
|
;
|
|
|
|
local_24 = local_24 + -4;
|
|
|
|
local_2c = local_2c + 4;
|
|
|
|
goto LAB_00651eda;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar16 = FUN_00651f88();
|
|
|
|
iVar5 = (int)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar11 = extraout_MM1_03;
|
|
|
|
if ((int)uVar16 == 0) goto LAB_00651f54;
|
|
|
|
uVar10 = extraout_MM1_03 >> 0x38;
|
|
|
|
} while (7 < iVar9);
|
|
|
|
LAB_00651f35:
|
|
|
|
uVar12 = FUN_00652085();
|
|
|
|
uVar11 = extraout_MM1_04;
|
|
|
|
if ((int)uVar12 < 0) goto LAB_00651f54;
|
|
|
|
LAB_00651c27:
|
|
|
|
iVar6 = (int)(uVar12 >> 0x20);
|
|
|
|
uVar3 = (uint)uVar12;
|
|
|
|
uVar7 = uVar3 & 0xf;
|
|
|
|
uVar10 = (ulonglong)uVar7;
|
|
|
|
iVar5 = (int)uVar15;
|
|
|
|
uVar14 = (undefined4)((ulonglong)uVar15 >> 0x20);
|
|
|
|
lVar13 = CONCAT44(uVar14,iVar5 - uVar7);
|
|
|
|
if ((uVar12 & 0xf) == 0) {
|
|
|
|
if ((int)uVar3 < 0xf0) break;
|
|
|
|
iVar5 = iVar6 + 0x10;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar6 = iVar6 + (uVar3 >> 4);
|
|
|
|
if (iVar9 < (int)uVar7) {
|
|
|
|
uVar11 = uVar11 >> CONCAT44(uVar14,iVar5 - iVar9);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
if (3 < local_24) {
|
|
|
|
uVar3 = *puVar8;
|
|
|
|
if (CONCAT13(-((char)uVar3 == -1),
|
|
|
|
CONCAT12(-((char)((uVar3 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar3 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar3 >> 0x18) == -1)))) == 0) {
|
|
|
|
puVar8 = puVar8 + 1;
|
|
|
|
iVar9 = iVar9 + 0x20;
|
|
|
|
uVar11 = uVar11 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 |
|
|
|
|
uVar3 << 0x18);
|
|
|
|
local_24 = local_24 + -4;
|
|
|
|
local_2c = local_2c + 4;
|
|
|
|
goto LAB_00651e5c;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar16 = FUN_00651f88();
|
|
|
|
iVar6 = (int)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar11 = extraout_MM1_02;
|
|
|
|
if ((int)uVar16 == 0) goto LAB_00651f54;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_00651e5c:
|
|
|
|
uVar11 = uVar11 << CONCAT44(uVar14,iVar5 - iVar9);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar12 = uVar11 >> lVar13;
|
|
|
|
iVar9 = iVar9 - uVar7;
|
|
|
|
uVar11 = uVar11 << uVar10;
|
|
|
|
sVar2 = 0;
|
|
|
|
if ((int)uVar12 < *(int *)(&DAT_00908100 + uVar7 * 4)) {
|
|
|
|
sVar2 = (short)*(undefined4 *)(&DAT_009080c0 + uVar7 * 4);
|
|
|
|
}
|
|
|
|
iVar5 = iVar6 + 1;
|
|
|
|
*(short *)((int)param_5 + (&DAT_00907ee0)[iVar6] * 2) = (short)uVar12 + sVar2;
|
|
|
|
}
|
|
|
|
} while (iVar5 < 0x40);
|
|
|
|
*param_1 = uVar11;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar9;
|
|
|
|
*(uint **)(param_1 + 2) = puVar8;
|
|
|
|
*(char *)(param_1 + 6) = cVar1;
|
|
|
|
*(int *)((int)param_1 + 0x24) = local_24;
|
|
|
|
*(int *)((int)param_1 + 0x1c) = local_2c;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00651f88 at 0x00651F88 (size: 253) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_00651f88(undefined4 param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint in_EAX;
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 unaff_EBX;
|
|
|
|
int unaff_EBP;
|
|
|
|
byte *unaff_ESI;
|
|
|
|
int unaff_EDI;
|
|
|
|
|
|
|
|
iVar2 = *(int *)(unaff_EBP + -0x20);
|
|
|
|
do {
|
|
|
|
for (; iVar2 < 1; iVar2 = *(int *)(iVar2 + 0x24)) {
|
|
|
|
iVar2 = *(int *)(unaff_EBP + 8);
|
|
|
|
if ((*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) ||
|
|
|
|
(iVar1 = FUN_006515a0(iVar2,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar2,in_EAX), iVar1 != 0)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar2 + 0x10);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
in_EAX = (uint)*unaff_ESI;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar1 = iVar2 + -1;
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
if (in_EAX == 0xff) {
|
|
|
|
do {
|
|
|
|
while (iVar2 = iVar1 + -1, iVar1 < 1) {
|
|
|
|
iVar2 = *(int *)(unaff_EBP + 8);
|
|
|
|
if (*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar1 = FUN_006515a0(iVar2,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar2,in_EAX);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar2 + 0x10);
|
|
|
|
iVar1 = *(int *)(iVar2 + 0x24);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
in_EAX = (uint)*unaff_ESI;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar1 = iVar2;
|
|
|
|
} while (in_EAX == 0xff);
|
|
|
|
if (in_EAX != 0) {
|
|
|
|
*(uint *)(unaff_EBP + -0x24) = in_EAX;
|
|
|
|
goto LAB_00651fc5;
|
|
|
|
}
|
|
|
|
in_EAX = 0xff;
|
|
|
|
}
|
|
|
|
unaff_EDI = unaff_EDI + 8;
|
|
|
|
if (0x38 < unaff_EDI) {
|
|
|
|
LAB_00651fc5:
|
|
|
|
*(int *)(unaff_EBP + -0x20) = iVar2;
|
|
|
|
return 0xff;
|
|
|
|
}
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652085 at 0x00652085 (size: 416) ---
|
|
|
|
|
|
longlong __fastcall FUN_00652085(undefined4 param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint unaff_EBX;
|
|
|
|
uint uVar3;
|
|
|
|
int unaff_EBP;
|
|
|
|
uint *unaff_ESI;
|
|
|
|
int unaff_EDI;
|
|
|
|
int iVar4;
|
|
|
|
ulonglong in_MM1;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
ulonglong uVar5;
|
|
|
|
ulonglong extraout_MM1_00;
|
|
|
|
undefined8 in_MM4;
|
|
|
|
undefined4 uVar6;
|
|
|
|
|
|
|
|
*(uint *)(unaff_EBP + -0x10) = unaff_EBX;
|
|
|
|
if ((int)unaff_EBX <= unaff_EDI) goto LAB_00652091;
|
|
|
|
uVar6 = (undefined4)((ulonglong)in_MM4 >> 0x20);
|
|
|
|
uVar5 = in_MM1 >> CONCAT44(uVar6,(int)in_MM4 - unaff_EDI);
|
|
|
|
if (*(int *)(unaff_EBP + -0x24) == 0) {
|
|
|
|
if (3 < *(int *)(unaff_EBP + -0x20)) {
|
|
|
|
uVar2 = *unaff_ESI;
|
|
|
|
if (CONCAT13(-((char)uVar2 == -1),
|
|
|
|
CONCAT12(-((char)((uVar2 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar2 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar2 >> 0x18) == -1)))) == 0) {
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
unaff_EDI = unaff_EDI + 0x20;
|
|
|
|
uVar5 = uVar5 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar2 >> 0x18 | (uVar2 & 0xff0000) >> 8 | (uVar2 & 0xff00) << 8 | uVar2 << 0x18);
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 4;
|
|
|
|
*(int *)(unaff_EBP + -0x20) = *(int *)(unaff_EBP + -0x20) + -4;
|
|
|
|
goto LAB_0065214a;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar4 = FUN_00651f88();
|
|
|
|
if (iVar4 == 0) {
|
|
|
|
LAB_0065221e:
|
|
|
|
return CONCAT44(param_2,1);
|
|
|
|
}
|
|
|
|
unaff_EBX = *(uint *)(unaff_EBP + -0x10);
|
|
|
|
in_MM1 = extraout_MM1;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_0065214a:
|
|
|
|
in_MM1 = uVar5 << CONCAT44(uVar6,(int)in_MM4 - unaff_EDI);
|
|
|
|
unaff_EBX = *(uint *)(unaff_EBP + -0x10);
|
|
|
|
}
|
|
|
|
LAB_00652091:
|
|
|
|
iVar4 = unaff_EDI - unaff_EBX;
|
|
|
|
uVar2 = (uint)(in_MM1 >> CONCAT44((int)((ulonglong)in_MM4 >> 0x20),(int)in_MM4 - unaff_EBX));
|
|
|
|
uVar5 = in_MM1 << (ulonglong)unaff_EBX;
|
|
|
|
do {
|
|
|
|
iVar1 = *(int *)(unaff_EBP + -0x10);
|
|
|
|
uVar3 = (uint)*(short *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
if (uVar3 != 0xffffffff) {
|
|
|
|
uVar3 = (uint)*(ushort *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
}
|
|
|
|
if ((int)uVar2 <= (int)uVar3) {
|
|
|
|
if (iVar1 < 0x11) {
|
|
|
|
iVar4 = *(int *)(unaff_EBP + -0x14);
|
|
|
|
return CONCAT44(param_2,(int)*(short *)(iVar4 + 0x408 +
|
|
|
|
CONCAT22((short)(uVar2 >> 0x10),
|
|
|
|
((short)uVar2 -
|
|
|
|
*(short *)(iVar4 + 0x608 +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2))
|
|
|
|
+ *(short *)(iVar4 + 0x64e +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2)
|
|
|
|
) * 2));
|
|
|
|
}
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
if (iVar4 < 1) {
|
|
|
|
uVar6 = (undefined4)((ulonglong)in_MM4 >> 0x20);
|
|
|
|
uVar5 = uVar5 >> CONCAT44(uVar6,(int)in_MM4 - iVar4);
|
|
|
|
if (*(int *)(unaff_EBP + -0x24) == 0) {
|
|
|
|
if (3 < *(int *)(unaff_EBP + -0x20)) {
|
|
|
|
uVar3 = *unaff_ESI;
|
|
|
|
if (CONCAT13(-((char)uVar3 == -1),
|
|
|
|
CONCAT12(-((char)((uVar3 & 0xff00) >> 8) == -1),
|
|
|
|
CONCAT11(-((char)((uVar3 & 0xff0000) >> 0x10) == -1),
|
|
|
|
-((char)(uVar3 >> 0x18) == -1)))) == 0) {
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar4 = iVar4 + 0x20;
|
|
|
|
uVar5 = uVar5 << 0x20 |
|
|
|
|
(ulonglong)
|
|
|
|
(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 | (uVar3 & 0xff00) << 8 | uVar3 << 0x18
|
|
|
|
);
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 4;
|
|
|
|
*(int *)(unaff_EBP + -0x20) = *(int *)(unaff_EBP + -0x20) + -4;
|
|
|
|
goto LAB_006521ca;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar1 = FUN_00651f88();
|
|
|
|
uVar5 = extraout_MM1_00;
|
|
|
|
if (iVar1 == 0) goto LAB_0065221e;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_006521ca:
|
|
|
|
uVar5 = uVar5 << CONCAT44(uVar6,(int)in_MM4 - iVar4);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + 1;
|
|
|
|
uVar2 = uVar2 << 1 | (uint)(uVar5 >> 0x3f);
|
|
|
|
uVar5 = uVar5 << 1;
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652240 at 0x00652240 (size: 782) ---
|
|
|
|
|
|
undefined4 FUN_00652240(ulonglong *param_1,int param_2,int param_3,short *param_4,short *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
ulonglong uVar3;
|
|
|
|
ulonglong uVar4;
|
|
|
|
uint uVar5;
|
|
|
|
short sVar6;
|
|
|
|
int iVar7;
|
|
|
|
int iVar8;
|
|
|
|
uint uVar9;
|
|
|
|
int iVar10;
|
|
|
|
int iVar11;
|
|
|
|
ulonglong uVar12;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
ulonglong extraout_MM1_00;
|
|
|
|
ulonglong extraout_MM1_01;
|
|
|
|
ulonglong extraout_MM1_02;
|
|
|
|
ulonglong extraout_MM1_03;
|
|
|
|
ulonglong extraout_MM1_04;
|
|
|
|
ulonglong uVar13;
|
|
|
|
longlong lVar14;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
ulonglong uVar17;
|
|
|
|
|
|
|
|
uVar1 = *(undefined4 *)((int)param_1 + 0x1c);
|
|
|
|
uVar2 = *(undefined4 *)((int)param_1 + 0x24);
|
|
|
|
uVar3 = param_1[6];
|
|
|
|
uVar12 = *param_1;
|
|
|
|
iVar11 = *(int *)((int)param_1 + 0xc);
|
|
|
|
uVar4 = param_1[2];
|
|
|
|
uVar15 = 0x40;
|
|
|
|
param_5[0] = 0;
|
|
|
|
param_5[1] = 0;
|
|
|
|
param_5[2] = 0;
|
|
|
|
param_5[3] = 0;
|
|
|
|
param_5[4] = 0;
|
|
|
|
param_5[5] = 0;
|
|
|
|
param_5[6] = 0;
|
|
|
|
param_5[7] = 0;
|
|
|
|
param_5[8] = 0;
|
|
|
|
param_5[9] = 0;
|
|
|
|
param_5[10] = 0;
|
|
|
|
param_5[0xb] = 0;
|
|
|
|
param_5[0xc] = 0;
|
|
|
|
param_5[0xd] = 0;
|
|
|
|
param_5[0xe] = 0;
|
|
|
|
param_5[0xf] = 0;
|
|
|
|
param_5[0x10] = 0;
|
|
|
|
param_5[0x11] = 0;
|
|
|
|
param_5[0x12] = 0;
|
|
|
|
param_5[0x13] = 0;
|
|
|
|
param_5[0x14] = 0;
|
|
|
|
param_5[0x15] = 0;
|
|
|
|
param_5[0x16] = 0;
|
|
|
|
param_5[0x17] = 0;
|
|
|
|
param_5[0x18] = 0;
|
|
|
|
param_5[0x19] = 0;
|
|
|
|
param_5[0x1a] = 0;
|
|
|
|
param_5[0x1b] = 0;
|
|
|
|
param_5[0x1c] = 0;
|
|
|
|
param_5[0x1d] = 0;
|
|
|
|
param_5[0x1e] = 0;
|
|
|
|
param_5[0x1f] = 0;
|
|
|
|
param_5[0x20] = 0;
|
|
|
|
param_5[0x21] = 0;
|
|
|
|
param_5[0x22] = 0;
|
|
|
|
param_5[0x23] = 0;
|
|
|
|
param_5[0x24] = 0;
|
|
|
|
param_5[0x25] = 0;
|
|
|
|
param_5[0x26] = 0;
|
|
|
|
param_5[0x27] = 0;
|
|
|
|
param_5[0x28] = 0;
|
|
|
|
param_5[0x29] = 0;
|
|
|
|
param_5[0x2a] = 0;
|
|
|
|
param_5[0x2b] = 0;
|
|
|
|
param_5[0x2c] = 0;
|
|
|
|
param_5[0x2d] = 0;
|
|
|
|
param_5[0x2e] = 0;
|
|
|
|
param_5[0x2f] = 0;
|
|
|
|
param_5[0x30] = 0;
|
|
|
|
param_5[0x31] = 0;
|
|
|
|
param_5[0x32] = 0;
|
|
|
|
param_5[0x33] = 0;
|
|
|
|
param_5[0x34] = 0;
|
|
|
|
param_5[0x35] = 0;
|
|
|
|
param_5[0x36] = 0;
|
|
|
|
param_5[0x37] = 0;
|
|
|
|
param_5[0x38] = 0;
|
|
|
|
param_5[0x39] = 0;
|
|
|
|
param_5[0x3a] = 0;
|
|
|
|
param_5[0x3b] = 0;
|
|
|
|
param_5[0x3c] = 0;
|
|
|
|
param_5[0x3d] = 0;
|
|
|
|
param_5[0x3e] = 0;
|
|
|
|
param_5[0x3f] = 0;
|
|
|
|
if (iVar11 < 8) {
|
|
|
|
iVar7 = FUN_0065254e();
|
|
|
|
uVar12 = extraout_MM1;
|
|
|
|
if (iVar7 == 0) goto LAB_0065251a;
|
|
|
|
if (7 < iVar11) goto LAB_006522ec;
|
|
|
|
LAB_0065247c:
|
|
|
|
uVar5 = FUN_00652656();
|
|
|
|
uVar12 = extraout_MM1_01;
|
|
|
|
if ((int)uVar5 < 0) goto LAB_0065251a;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
LAB_006522ec:
|
|
|
|
uVar5 = *(uint *)(param_2 + 8 + (uint)(byte)(uVar12 >> 0x38) * 4);
|
|
|
|
if ((int)uVar5 < 0x10000) goto LAB_0065247c;
|
|
|
|
iVar11 = iVar11 - (uVar5 >> 0x10);
|
|
|
|
uVar12 = uVar12 << (ulonglong)(uVar5 >> 0x10);
|
|
|
|
uVar5 = uVar5 & 0xffff;
|
|
|
|
}
|
|
|
|
if (((int)uVar5 <= iVar11) || (iVar7 = FUN_0065254e(), uVar12 = extraout_MM1_00, iVar7 != 0)) {
|
|
|
|
iVar11 = iVar11 - uVar5;
|
|
|
|
iVar7 = (int)(uVar12 >> CONCAT44((int)((ulonglong)uVar15 >> 0x20),(int)uVar15 - uVar5));
|
|
|
|
uVar12 = uVar12 << (ulonglong)uVar5;
|
|
|
|
if (iVar7 < *(int *)(&DAT_00908100 + uVar5 * 4)) {
|
|
|
|
iVar7 = iVar7 + *(int *)(&DAT_009080c0 + uVar5 * 4);
|
|
|
|
}
|
|
|
|
iVar8 = 1;
|
|
|
|
sVar6 = (short)iVar7 + *param_4;
|
|
|
|
*param_4 = sVar6;
|
|
|
|
*param_5 = sVar6;
|
|
|
|
LAB_00652373:
|
|
|
|
do {
|
|
|
|
if (iVar11 < 8) {
|
|
|
|
uVar16 = FUN_0065254e();
|
|
|
|
iVar8 = (int)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar12 = extraout_MM1_03;
|
|
|
|
if ((int)uVar16 == 0) break;
|
|
|
|
if (7 < iVar11) goto LAB_00652373;
|
|
|
|
LAB_006524fb:
|
|
|
|
uVar17 = FUN_00652656();
|
|
|
|
uVar12 = extraout_MM1_04;
|
|
|
|
if ((int)uVar17 < 0) break;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar5 = *(uint *)(param_3 + 8 + (uint)(byte)(uVar12 >> 0x38) * 4);
|
|
|
|
uVar9 = uVar5 >> 0x10;
|
|
|
|
uVar17 = CONCAT44(iVar8,uVar5) & 0xffffffff0000ffff;
|
|
|
|
if (uVar9 == 0) goto LAB_006524fb;
|
|
|
|
iVar11 = iVar11 - uVar9;
|
|
|
|
uVar12 = uVar12 << (ulonglong)uVar9;
|
|
|
|
}
|
|
|
|
iVar7 = (int)(uVar17 >> 0x20);
|
|
|
|
uVar5 = (uint)uVar17;
|
|
|
|
uVar9 = uVar5 & 0xf;
|
|
|
|
uVar13 = (ulonglong)uVar9;
|
|
|
|
lVar14 = CONCAT44((int)((ulonglong)uVar15 >> 0x20),(int)uVar15 - uVar9);
|
|
|
|
if ((uVar17 & 0xf) == 0) {
|
|
|
|
if ((int)uVar5 < 0xf0) goto LAB_0065240d;
|
|
|
|
iVar8 = iVar7 + 0x10;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar7 = iVar7 + (uVar5 >> 4);
|
|
|
|
if (iVar11 < (int)uVar9) {
|
|
|
|
uVar16 = FUN_0065254e();
|
|
|
|
iVar7 = (int)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar12 = extraout_MM1_02;
|
|
|
|
if ((int)uVar16 == 0) break;
|
|
|
|
}
|
|
|
|
iVar11 = iVar11 - uVar9;
|
|
|
|
iVar10 = (int)(uVar12 >> lVar14);
|
|
|
|
uVar12 = uVar12 << uVar13;
|
|
|
|
if (iVar10 < *(int *)(&DAT_00908100 + uVar9 * 4)) {
|
|
|
|
iVar10 = iVar10 + *(int *)(&DAT_009080c0 + uVar9 * 4);
|
|
|
|
}
|
|
|
|
iVar8 = iVar7 + 1;
|
|
|
|
param_5[(&DAT_00907ee0)[iVar7]] = (short)iVar10;
|
|
|
|
}
|
|
|
|
if (0x3f < iVar8) {
|
|
|
|
LAB_0065240d:
|
|
|
|
*param_1 = uVar12;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar11;
|
|
|
|
*(int *)(param_1 + 2) = (int)uVar4;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x24) = uVar2;
|
|
|
|
*(char *)(param_1 + 6) = (char)uVar3;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x1c) = uVar1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
LAB_0065251a:
|
|
|
|
*param_1 = uVar12;
|
|
|
|
*(int *)((int)param_1 + 0xc) = iVar11;
|
|
|
|
*(int *)(param_1 + 2) = (int)uVar4;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x24) = uVar2;
|
|
|
|
*(char *)(param_1 + 6) = (char)uVar3;
|
|
|
|
*(undefined4 *)((int)param_1 + 0x1c) = uVar1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065254e at 0x0065254E (size: 264) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065254e(undefined4 param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
byte bVar1;
|
|
|
|
uint in_EAX;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
undefined4 unaff_EBX;
|
|
|
|
int unaff_EBP;
|
|
|
|
byte *unaff_ESI;
|
|
|
|
int unaff_EDI;
|
|
|
|
|
|
|
|
iVar3 = *(int *)(unaff_EBP + -0x24);
|
|
|
|
if (*(char *)(unaff_EBP + -0x20) == '\0') {
|
|
|
|
do {
|
|
|
|
for (; iVar3 < 1; iVar3 = *(int *)(iVar3 + 0x24)) {
|
|
|
|
iVar3 = *(int *)(unaff_EBP + 8);
|
|
|
|
if ((*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) ||
|
|
|
|
(iVar2 = FUN_006515a0(iVar3,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar3,in_EAX), iVar2 != 0)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar3 + 0x10);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
in_EAX = (uint)*unaff_ESI;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar2 = iVar3 + -1;
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
if (in_EAX == 0xff) {
|
|
|
|
do {
|
|
|
|
while (iVar3 = iVar2 + -1, iVar2 < 1) {
|
|
|
|
iVar3 = *(int *)(unaff_EBP + 8);
|
|
|
|
if (*(int *)(*(int *)(unaff_EBP + 8) + 0x3c) == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar2 = FUN_006515a0(iVar3,unaff_EDI,unaff_ESI,unaff_EBP,&stack0x00000000,unaff_EBX,
|
|
|
|
param_2,iVar3,in_EAX);
|
|
|
|
if (iVar2 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
unaff_ESI = *(byte **)(iVar3 + 0x10);
|
|
|
|
iVar2 = *(int *)(iVar3 + 0x24);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x28) = *(int *)(unaff_EBP + -0x28) + 1;
|
|
|
|
bVar1 = *unaff_ESI;
|
|
|
|
in_EAX = (uint)bVar1;
|
|
|
|
unaff_ESI = unaff_ESI + 1;
|
|
|
|
iVar2 = iVar3;
|
|
|
|
} while (in_EAX == 0xff);
|
|
|
|
if (in_EAX != 0) {
|
|
|
|
*(byte *)(unaff_EBP + -0x20) = bVar1;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
in_EAX = 0xff;
|
|
|
|
}
|
|
|
|
unaff_EDI = unaff_EDI + 8;
|
|
|
|
} while (unaff_EDI < 0x39);
|
|
|
|
}
|
|
|
|
*(int *)(unaff_EBP + -0x24) = iVar3;
|
|
|
|
return 0xff;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652656 at 0x00652656 (size: 213) ---
|
|
|
|
|
|
longlong __fastcall FUN_00652656(undefined4 param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint unaff_EBX;
|
|
|
|
uint uVar3;
|
|
|
|
int unaff_EBP;
|
|
|
|
int unaff_EDI;
|
|
|
|
int iVar4;
|
|
|
|
ulonglong in_MM1;
|
|
|
|
longlong lVar5;
|
|
|
|
ulonglong extraout_MM1;
|
|
|
|
longlong extraout_MM1_00;
|
|
|
|
undefined8 in_MM4;
|
|
|
|
|
|
|
|
*(uint *)(unaff_EBP + -0x10) = unaff_EBX;
|
|
|
|
if (unaff_EDI < (int)unaff_EBX) {
|
|
|
|
iVar4 = FUN_0065254e();
|
|
|
|
if (iVar4 == 0) goto LAB_00652724;
|
|
|
|
unaff_EBX = *(uint *)(unaff_EBP + -0x10);
|
|
|
|
in_MM1 = extraout_MM1;
|
|
|
|
}
|
|
|
|
iVar4 = unaff_EDI - unaff_EBX;
|
|
|
|
uVar2 = (uint)(in_MM1 >> CONCAT44((int)((ulonglong)in_MM4 >> 0x20),(int)in_MM4 - unaff_EBX));
|
|
|
|
lVar5 = in_MM1 << (ulonglong)unaff_EBX;
|
|
|
|
while( true ) {
|
|
|
|
iVar1 = *(int *)(unaff_EBP + -0x10);
|
|
|
|
uVar3 = (uint)*(short *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
if (uVar3 != 0xffffffff) {
|
|
|
|
uVar3 = (uint)*(ushort *)(*(int *)(unaff_EBP + -0x14) + 0x62a + iVar1 * 2);
|
|
|
|
}
|
|
|
|
if ((int)uVar2 <= (int)uVar3) {
|
|
|
|
if (iVar1 < 0x11) {
|
|
|
|
iVar4 = *(int *)(unaff_EBP + -0x14);
|
|
|
|
return CONCAT44(param_2,(int)*(short *)(iVar4 + 0x408 +
|
|
|
|
CONCAT22((short)(uVar2 >> 0x10),
|
|
|
|
((short)uVar2 -
|
|
|
|
*(short *)(iVar4 + 0x608 +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2))
|
|
|
|
+ *(short *)(iVar4 + 0x64e +
|
|
|
|
*(int *)(unaff_EBP + -0x10) * 2)
|
|
|
|
) * 2));
|
|
|
|
}
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
if ((iVar4 < 1) && (iVar1 = FUN_0065254e(), lVar5 = extraout_MM1_00, iVar1 == 0)) break;
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
*(int *)(unaff_EBP + -0x10) = *(int *)(unaff_EBP + -0x10) + 1;
|
|
|
|
uVar2 = uVar2 << 1 | (uint)((ulonglong)lVar5 >> 0x3f);
|
|
|
|
lVar5 = lVar5 << 1;
|
|
|
|
}
|
|
|
|
LAB_00652724:
|
|
|
|
return CONCAT44(param_2,1);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652740 at 0x00652740 (size: 252) ---
|
|
|
|
|
|
void FUN_00652740(undefined8 *param_1,undefined8 *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined8 uVar2;
|
|
|
|
undefined8 uVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
|
|
|
|
uVar1 = *param_1;
|
|
|
|
uVar2 = *param_2;
|
|
|
|
uVar3 = param_1[1];
|
|
|
|
uVar4 = param_2[1];
|
|
|
|
*param_1 = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) * (short)((ulonglong)uVar2 >> 0x20)
|
|
|
|
,CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[1] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[2];
|
|
|
|
uVar2 = param_2[2];
|
|
|
|
uVar3 = param_1[3];
|
|
|
|
uVar4 = param_2[3];
|
|
|
|
param_1[2] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[3] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[4];
|
|
|
|
uVar2 = param_2[4];
|
|
|
|
uVar3 = param_1[5];
|
|
|
|
uVar4 = param_2[5];
|
|
|
|
param_1[4] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[5] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[6];
|
|
|
|
uVar2 = param_2[6];
|
|
|
|
uVar3 = param_1[7];
|
|
|
|
uVar4 = param_2[7];
|
|
|
|
param_1[6] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[7] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[8];
|
|
|
|
uVar2 = param_2[8];
|
|
|
|
uVar3 = param_1[9];
|
|
|
|
uVar4 = param_2[9];
|
|
|
|
param_1[8] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[9] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[10];
|
|
|
|
uVar2 = param_2[10];
|
|
|
|
uVar3 = param_1[0xb];
|
|
|
|
uVar4 = param_2[0xb];
|
|
|
|
param_1[10] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[0xb] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[0xc];
|
|
|
|
uVar2 = param_2[0xc];
|
|
|
|
uVar3 = param_1[0xd];
|
|
|
|
uVar4 = param_2[0xd];
|
|
|
|
param_1[0xc] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[0xd] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
uVar1 = param_1[0xe];
|
|
|
|
uVar2 = param_2[0xe];
|
|
|
|
uVar3 = param_1[0xf];
|
|
|
|
uVar4 = param_2[0xf];
|
|
|
|
param_1[0xe] = CONCAT26((short)((ulonglong)uVar1 >> 0x30) * (short)((ulonglong)uVar2 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar1 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar1 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar2 >> 0x10),
|
|
|
|
(short)uVar1 * (short)uVar2)));
|
|
|
|
param_1[0xf] = CONCAT26((short)((ulonglong)uVar3 >> 0x30) * (short)((ulonglong)uVar4 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar3 >> 0x20) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar3 >> 0x10) *
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10),
|
|
|
|
(short)uVar3 * (short)uVar4)));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652840 at 0x00652840 (size: 662) ---
|
|
|
|
|
|
void FUN_00652840(short *param_1,short *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar14;
|
|
|
|
short sVar15;
|
|
|
|
|
|
|
|
if (((uint)param_1 & 0xf) == 0) {
|
|
|
|
if (((uint)param_2 & 0xf) == 0) {
|
|
|
|
sVar1 = param_2[1];
|
|
|
|
sVar2 = param_2[2];
|
|
|
|
sVar3 = param_2[3];
|
|
|
|
sVar4 = param_2[4];
|
|
|
|
sVar5 = param_2[5];
|
|
|
|
sVar6 = param_2[6];
|
|
|
|
sVar7 = param_2[7];
|
|
|
|
sVar8 = param_2[8];
|
|
|
|
sVar9 = param_2[9];
|
|
|
|
sVar10 = param_2[10];
|
|
|
|
sVar11 = param_2[0xb];
|
|
|
|
sVar12 = param_2[0xc];
|
|
|
|
sVar13 = param_2[0xd];
|
|
|
|
sVar14 = param_2[0xe];
|
|
|
|
sVar15 = param_2[0xf];
|
|
|
|
*param_1 = *param_1 * *param_2;
|
|
|
|
param_1[1] = param_1[1] * sVar1;
|
|
|
|
param_1[2] = param_1[2] * sVar2;
|
|
|
|
param_1[3] = param_1[3] * sVar3;
|
|
|
|
param_1[4] = param_1[4] * sVar4;
|
|
|
|
param_1[5] = param_1[5] * sVar5;
|
|
|
|
param_1[6] = param_1[6] * sVar6;
|
|
|
|
param_1[7] = param_1[7] * sVar7;
|
|
|
|
param_1[8] = param_1[8] * sVar8;
|
|
|
|
param_1[9] = param_1[9] * sVar9;
|
|
|
|
param_1[10] = param_1[10] * sVar10;
|
|
|
|
param_1[0xb] = param_1[0xb] * sVar11;
|
|
|
|
param_1[0xc] = param_1[0xc] * sVar12;
|
|
|
|
param_1[0xd] = param_1[0xd] * sVar13;
|
|
|
|
param_1[0xe] = param_1[0xe] * sVar14;
|
|
|
|
param_1[0xf] = param_1[0xf] * sVar15;
|
|
|
|
sVar1 = param_2[0x11];
|
|
|
|
sVar2 = param_2[0x12];
|
|
|
|
sVar3 = param_2[0x13];
|
|
|
|
sVar4 = param_2[0x14];
|
|
|
|
sVar5 = param_2[0x15];
|
|
|
|
sVar6 = param_2[0x16];
|
|
|
|
sVar7 = param_2[0x17];
|
|
|
|
sVar8 = param_2[0x18];
|
|
|
|
sVar9 = param_2[0x19];
|
|
|
|
sVar10 = param_2[0x1a];
|
|
|
|
sVar11 = param_2[0x1b];
|
|
|
|
sVar12 = param_2[0x1c];
|
|
|
|
sVar13 = param_2[0x1d];
|
|
|
|
sVar14 = param_2[0x1e];
|
|
|
|
sVar15 = param_2[0x1f];
|
|
|
|
param_1[0x10] = param_1[0x10] * param_2[0x10];
|
|
|
|
param_1[0x11] = param_1[0x11] * sVar1;
|
|
|
|
param_1[0x12] = param_1[0x12] * sVar2;
|
|
|
|
param_1[0x13] = param_1[0x13] * sVar3;
|
|
|
|
param_1[0x14] = param_1[0x14] * sVar4;
|
|
|
|
param_1[0x15] = param_1[0x15] * sVar5;
|
|
|
|
param_1[0x16] = param_1[0x16] * sVar6;
|
|
|
|
param_1[0x17] = param_1[0x17] * sVar7;
|
|
|
|
param_1[0x18] = param_1[0x18] * sVar8;
|
|
|
|
param_1[0x19] = param_1[0x19] * sVar9;
|
|
|
|
param_1[0x1a] = param_1[0x1a] * sVar10;
|
|
|
|
param_1[0x1b] = param_1[0x1b] * sVar11;
|
|
|
|
param_1[0x1c] = param_1[0x1c] * sVar12;
|
|
|
|
param_1[0x1d] = param_1[0x1d] * sVar13;
|
|
|
|
param_1[0x1e] = param_1[0x1e] * sVar14;
|
|
|
|
param_1[0x1f] = param_1[0x1f] * sVar15;
|
|
|
|
sVar1 = param_2[0x21];
|
|
|
|
sVar2 = param_2[0x22];
|
|
|
|
sVar3 = param_2[0x23];
|
|
|
|
sVar4 = param_2[0x24];
|
|
|
|
sVar5 = param_2[0x25];
|
|
|
|
sVar6 = param_2[0x26];
|
|
|
|
sVar7 = param_2[0x27];
|
|
|
|
sVar8 = param_2[0x28];
|
|
|
|
sVar9 = param_2[0x29];
|
|
|
|
sVar10 = param_2[0x2a];
|
|
|
|
sVar11 = param_2[0x2b];
|
|
|
|
sVar12 = param_2[0x2c];
|
|
|
|
sVar13 = param_2[0x2d];
|
|
|
|
sVar14 = param_2[0x2e];
|
|
|
|
sVar15 = param_2[0x2f];
|
|
|
|
param_1[0x20] = param_1[0x20] * param_2[0x20];
|
|
|
|
param_1[0x21] = param_1[0x21] * sVar1;
|
|
|
|
param_1[0x22] = param_1[0x22] * sVar2;
|
|
|
|
param_1[0x23] = param_1[0x23] * sVar3;
|
|
|
|
param_1[0x24] = param_1[0x24] * sVar4;
|
|
|
|
param_1[0x25] = param_1[0x25] * sVar5;
|
|
|
|
param_1[0x26] = param_1[0x26] * sVar6;
|
|
|
|
param_1[0x27] = param_1[0x27] * sVar7;
|
|
|
|
param_1[0x28] = param_1[0x28] * sVar8;
|
|
|
|
param_1[0x29] = param_1[0x29] * sVar9;
|
|
|
|
param_1[0x2a] = param_1[0x2a] * sVar10;
|
|
|
|
param_1[0x2b] = param_1[0x2b] * sVar11;
|
|
|
|
param_1[0x2c] = param_1[0x2c] * sVar12;
|
|
|
|
param_1[0x2d] = param_1[0x2d] * sVar13;
|
|
|
|
param_1[0x2e] = param_1[0x2e] * sVar14;
|
|
|
|
param_1[0x2f] = param_1[0x2f] * sVar15;
|
|
|
|
sVar1 = param_2[0x31];
|
|
|
|
sVar2 = param_2[0x32];
|
|
|
|
sVar3 = param_2[0x33];
|
|
|
|
sVar4 = param_2[0x34];
|
|
|
|
sVar5 = param_2[0x35];
|
|
|
|
sVar6 = param_2[0x36];
|
|
|
|
sVar7 = param_2[0x37];
|
|
|
|
sVar8 = param_2[0x38];
|
|
|
|
sVar9 = param_2[0x39];
|
|
|
|
sVar10 = param_2[0x3a];
|
|
|
|
sVar11 = param_2[0x3b];
|
|
|
|
sVar12 = param_2[0x3c];
|
|
|
|
sVar13 = param_2[0x3d];
|
|
|
|
sVar14 = param_2[0x3e];
|
|
|
|
sVar15 = param_2[0x3f];
|
|
|
|
param_1[0x30] = param_1[0x30] * param_2[0x30];
|
|
|
|
param_1[0x31] = param_1[0x31] * sVar1;
|
|
|
|
param_1[0x32] = param_1[0x32] * sVar2;
|
|
|
|
param_1[0x33] = param_1[0x33] * sVar3;
|
|
|
|
param_1[0x34] = param_1[0x34] * sVar4;
|
|
|
|
param_1[0x35] = param_1[0x35] * sVar5;
|
|
|
|
param_1[0x36] = param_1[0x36] * sVar6;
|
|
|
|
param_1[0x37] = param_1[0x37] * sVar7;
|
|
|
|
param_1[0x38] = param_1[0x38] * sVar8;
|
|
|
|
param_1[0x39] = param_1[0x39] * sVar9;
|
|
|
|
param_1[0x3a] = param_1[0x3a] * sVar10;
|
|
|
|
param_1[0x3b] = param_1[0x3b] * sVar11;
|
|
|
|
param_1[0x3c] = param_1[0x3c] * sVar12;
|
|
|
|
param_1[0x3d] = param_1[0x3d] * sVar13;
|
|
|
|
param_1[0x3e] = param_1[0x3e] * sVar14;
|
|
|
|
param_1[0x3f] = param_1[0x3f] * sVar15;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
sVar1 = param_2[1];
|
|
|
|
sVar2 = param_2[2];
|
|
|
|
sVar3 = param_2[3];
|
|
|
|
sVar4 = param_2[4];
|
|
|
|
sVar5 = param_2[5];
|
|
|
|
sVar6 = param_2[6];
|
|
|
|
sVar7 = param_2[7];
|
|
|
|
sVar8 = param_2[8];
|
|
|
|
sVar9 = param_2[9];
|
|
|
|
sVar10 = param_2[10];
|
|
|
|
sVar11 = param_2[0xb];
|
|
|
|
sVar12 = param_2[0xc];
|
|
|
|
sVar13 = param_2[0xd];
|
|
|
|
sVar14 = param_2[0xe];
|
|
|
|
sVar15 = param_2[0xf];
|
|
|
|
*param_1 = *param_1 * *param_2;
|
|
|
|
param_1[1] = param_1[1] * sVar1;
|
|
|
|
param_1[2] = param_1[2] * sVar2;
|
|
|
|
param_1[3] = param_1[3] * sVar3;
|
|
|
|
param_1[4] = param_1[4] * sVar4;
|
|
|
|
param_1[5] = param_1[5] * sVar5;
|
|
|
|
param_1[6] = param_1[6] * sVar6;
|
|
|
|
param_1[7] = param_1[7] * sVar7;
|
|
|
|
param_1[8] = param_1[8] * sVar8;
|
|
|
|
param_1[9] = param_1[9] * sVar9;
|
|
|
|
param_1[10] = param_1[10] * sVar10;
|
|
|
|
param_1[0xb] = param_1[0xb] * sVar11;
|
|
|
|
param_1[0xc] = param_1[0xc] * sVar12;
|
|
|
|
param_1[0xd] = param_1[0xd] * sVar13;
|
|
|
|
param_1[0xe] = param_1[0xe] * sVar14;
|
|
|
|
param_1[0xf] = param_1[0xf] * sVar15;
|
|
|
|
sVar1 = param_2[0x11];
|
|
|
|
sVar2 = param_2[0x12];
|
|
|
|
sVar3 = param_2[0x13];
|
|
|
|
sVar4 = param_2[0x14];
|
|
|
|
sVar5 = param_2[0x15];
|
|
|
|
sVar6 = param_2[0x16];
|
|
|
|
sVar7 = param_2[0x17];
|
|
|
|
sVar8 = param_2[0x18];
|
|
|
|
sVar9 = param_2[0x19];
|
|
|
|
sVar10 = param_2[0x1a];
|
|
|
|
sVar11 = param_2[0x1b];
|
|
|
|
sVar12 = param_2[0x1c];
|
|
|
|
sVar13 = param_2[0x1d];
|
|
|
|
sVar14 = param_2[0x1e];
|
|
|
|
sVar15 = param_2[0x1f];
|
|
|
|
param_1[0x10] = param_1[0x10] * param_2[0x10];
|
|
|
|
param_1[0x11] = param_1[0x11] * sVar1;
|
|
|
|
param_1[0x12] = param_1[0x12] * sVar2;
|
|
|
|
param_1[0x13] = param_1[0x13] * sVar3;
|
|
|
|
param_1[0x14] = param_1[0x14] * sVar4;
|
|
|
|
param_1[0x15] = param_1[0x15] * sVar5;
|
|
|
|
param_1[0x16] = param_1[0x16] * sVar6;
|
|
|
|
param_1[0x17] = param_1[0x17] * sVar7;
|
|
|
|
param_1[0x18] = param_1[0x18] * sVar8;
|
|
|
|
param_1[0x19] = param_1[0x19] * sVar9;
|
|
|
|
param_1[0x1a] = param_1[0x1a] * sVar10;
|
|
|
|
param_1[0x1b] = param_1[0x1b] * sVar11;
|
|
|
|
param_1[0x1c] = param_1[0x1c] * sVar12;
|
|
|
|
param_1[0x1d] = param_1[0x1d] * sVar13;
|
|
|
|
param_1[0x1e] = param_1[0x1e] * sVar14;
|
|
|
|
param_1[0x1f] = param_1[0x1f] * sVar15;
|
|
|
|
sVar1 = param_2[0x21];
|
|
|
|
sVar2 = param_2[0x22];
|
|
|
|
sVar3 = param_2[0x23];
|
|
|
|
sVar4 = param_2[0x24];
|
|
|
|
sVar5 = param_2[0x25];
|
|
|
|
sVar6 = param_2[0x26];
|
|
|
|
sVar7 = param_2[0x27];
|
|
|
|
sVar8 = param_2[0x28];
|
|
|
|
sVar9 = param_2[0x29];
|
|
|
|
sVar10 = param_2[0x2a];
|
|
|
|
sVar11 = param_2[0x2b];
|
|
|
|
sVar12 = param_2[0x2c];
|
|
|
|
sVar13 = param_2[0x2d];
|
|
|
|
sVar14 = param_2[0x2e];
|
|
|
|
sVar15 = param_2[0x2f];
|
|
|
|
param_1[0x20] = param_1[0x20] * param_2[0x20];
|
|
|
|
param_1[0x21] = param_1[0x21] * sVar1;
|
|
|
|
param_1[0x22] = param_1[0x22] * sVar2;
|
|
|
|
param_1[0x23] = param_1[0x23] * sVar3;
|
|
|
|
param_1[0x24] = param_1[0x24] * sVar4;
|
|
|
|
param_1[0x25] = param_1[0x25] * sVar5;
|
|
|
|
param_1[0x26] = param_1[0x26] * sVar6;
|
|
|
|
param_1[0x27] = param_1[0x27] * sVar7;
|
|
|
|
param_1[0x28] = param_1[0x28] * sVar8;
|
|
|
|
param_1[0x29] = param_1[0x29] * sVar9;
|
|
|
|
param_1[0x2a] = param_1[0x2a] * sVar10;
|
|
|
|
param_1[0x2b] = param_1[0x2b] * sVar11;
|
|
|
|
param_1[0x2c] = param_1[0x2c] * sVar12;
|
|
|
|
param_1[0x2d] = param_1[0x2d] * sVar13;
|
|
|
|
param_1[0x2e] = param_1[0x2e] * sVar14;
|
|
|
|
param_1[0x2f] = param_1[0x2f] * sVar15;
|
|
|
|
sVar1 = param_2[0x31];
|
|
|
|
sVar2 = param_2[0x32];
|
|
|
|
sVar3 = param_2[0x33];
|
|
|
|
sVar4 = param_2[0x34];
|
|
|
|
sVar5 = param_2[0x35];
|
|
|
|
sVar6 = param_2[0x36];
|
|
|
|
sVar7 = param_2[0x37];
|
|
|
|
sVar8 = param_2[0x38];
|
|
|
|
sVar9 = param_2[0x39];
|
|
|
|
sVar10 = param_2[0x3a];
|
|
|
|
sVar11 = param_2[0x3b];
|
|
|
|
sVar12 = param_2[0x3c];
|
|
|
|
sVar13 = param_2[0x3d];
|
|
|
|
sVar14 = param_2[0x3e];
|
|
|
|
sVar15 = param_2[0x3f];
|
|
|
|
param_1[0x30] = param_1[0x30] * param_2[0x30];
|
|
|
|
param_1[0x31] = param_1[0x31] * sVar1;
|
|
|
|
param_1[0x32] = param_1[0x32] * sVar2;
|
|
|
|
param_1[0x33] = param_1[0x33] * sVar3;
|
|
|
|
param_1[0x34] = param_1[0x34] * sVar4;
|
|
|
|
param_1[0x35] = param_1[0x35] * sVar5;
|
|
|
|
param_1[0x36] = param_1[0x36] * sVar6;
|
|
|
|
param_1[0x37] = param_1[0x37] * sVar7;
|
|
|
|
param_1[0x38] = param_1[0x38] * sVar8;
|
|
|
|
param_1[0x39] = param_1[0x39] * sVar9;
|
|
|
|
param_1[0x3a] = param_1[0x3a] * sVar10;
|
|
|
|
param_1[0x3b] = param_1[0x3b] * sVar11;
|
|
|
|
param_1[0x3c] = param_1[0x3c] * sVar12;
|
|
|
|
param_1[0x3d] = param_1[0x3d] * sVar13;
|
|
|
|
param_1[0x3e] = param_1[0x3e] * sVar14;
|
|
|
|
param_1[0x3f] = param_1[0x3f] * sVar15;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (((uint)param_2 & 0xf) == 0) {
|
|
|
|
sVar1 = param_2[1];
|
|
|
|
sVar2 = param_2[2];
|
|
|
|
sVar3 = param_2[3];
|
|
|
|
sVar4 = param_2[4];
|
|
|
|
sVar5 = param_2[5];
|
|
|
|
sVar6 = param_2[6];
|
|
|
|
sVar7 = param_2[7];
|
|
|
|
sVar8 = param_2[8];
|
|
|
|
sVar9 = param_2[9];
|
|
|
|
sVar10 = param_2[10];
|
|
|
|
sVar11 = param_2[0xb];
|
|
|
|
sVar12 = param_2[0xc];
|
|
|
|
sVar13 = param_2[0xd];
|
|
|
|
sVar14 = param_2[0xe];
|
|
|
|
sVar15 = param_2[0xf];
|
|
|
|
*param_1 = *param_1 * *param_2;
|
|
|
|
param_1[1] = param_1[1] * sVar1;
|
|
|
|
param_1[2] = param_1[2] * sVar2;
|
|
|
|
param_1[3] = param_1[3] * sVar3;
|
|
|
|
param_1[4] = param_1[4] * sVar4;
|
|
|
|
param_1[5] = param_1[5] * sVar5;
|
|
|
|
param_1[6] = param_1[6] * sVar6;
|
|
|
|
param_1[7] = param_1[7] * sVar7;
|
|
|
|
param_1[8] = param_1[8] * sVar8;
|
|
|
|
param_1[9] = param_1[9] * sVar9;
|
|
|
|
param_1[10] = param_1[10] * sVar10;
|
|
|
|
param_1[0xb] = param_1[0xb] * sVar11;
|
|
|
|
param_1[0xc] = param_1[0xc] * sVar12;
|
|
|
|
param_1[0xd] = param_1[0xd] * sVar13;
|
|
|
|
param_1[0xe] = param_1[0xe] * sVar14;
|
|
|
|
param_1[0xf] = param_1[0xf] * sVar15;
|
|
|
|
sVar1 = param_2[0x11];
|
|
|
|
sVar2 = param_2[0x12];
|
|
|
|
sVar3 = param_2[0x13];
|
|
|
|
sVar4 = param_2[0x14];
|
|
|
|
sVar5 = param_2[0x15];
|
|
|
|
sVar6 = param_2[0x16];
|
|
|
|
sVar7 = param_2[0x17];
|
|
|
|
sVar8 = param_2[0x18];
|
|
|
|
sVar9 = param_2[0x19];
|
|
|
|
sVar10 = param_2[0x1a];
|
|
|
|
sVar11 = param_2[0x1b];
|
|
|
|
sVar12 = param_2[0x1c];
|
|
|
|
sVar13 = param_2[0x1d];
|
|
|
|
sVar14 = param_2[0x1e];
|
|
|
|
sVar15 = param_2[0x1f];
|
|
|
|
param_1[0x10] = param_1[0x10] * param_2[0x10];
|
|
|
|
param_1[0x11] = param_1[0x11] * sVar1;
|
|
|
|
param_1[0x12] = param_1[0x12] * sVar2;
|
|
|
|
param_1[0x13] = param_1[0x13] * sVar3;
|
|
|
|
param_1[0x14] = param_1[0x14] * sVar4;
|
|
|
|
param_1[0x15] = param_1[0x15] * sVar5;
|
|
|
|
param_1[0x16] = param_1[0x16] * sVar6;
|
|
|
|
param_1[0x17] = param_1[0x17] * sVar7;
|
|
|
|
param_1[0x18] = param_1[0x18] * sVar8;
|
|
|
|
param_1[0x19] = param_1[0x19] * sVar9;
|
|
|
|
param_1[0x1a] = param_1[0x1a] * sVar10;
|
|
|
|
param_1[0x1b] = param_1[0x1b] * sVar11;
|
|
|
|
param_1[0x1c] = param_1[0x1c] * sVar12;
|
|
|
|
param_1[0x1d] = param_1[0x1d] * sVar13;
|
|
|
|
param_1[0x1e] = param_1[0x1e] * sVar14;
|
|
|
|
param_1[0x1f] = param_1[0x1f] * sVar15;
|
|
|
|
sVar1 = param_2[0x21];
|
|
|
|
sVar2 = param_2[0x22];
|
|
|
|
sVar3 = param_2[0x23];
|
|
|
|
sVar4 = param_2[0x24];
|
|
|
|
sVar5 = param_2[0x25];
|
|
|
|
sVar6 = param_2[0x26];
|
|
|
|
sVar7 = param_2[0x27];
|
|
|
|
sVar8 = param_2[0x28];
|
|
|
|
sVar9 = param_2[0x29];
|
|
|
|
sVar10 = param_2[0x2a];
|
|
|
|
sVar11 = param_2[0x2b];
|
|
|
|
sVar12 = param_2[0x2c];
|
|
|
|
sVar13 = param_2[0x2d];
|
|
|
|
sVar14 = param_2[0x2e];
|
|
|
|
sVar15 = param_2[0x2f];
|
|
|
|
param_1[0x20] = param_1[0x20] * param_2[0x20];
|
|
|
|
param_1[0x21] = param_1[0x21] * sVar1;
|
|
|
|
param_1[0x22] = param_1[0x22] * sVar2;
|
|
|
|
param_1[0x23] = param_1[0x23] * sVar3;
|
|
|
|
param_1[0x24] = param_1[0x24] * sVar4;
|
|
|
|
param_1[0x25] = param_1[0x25] * sVar5;
|
|
|
|
param_1[0x26] = param_1[0x26] * sVar6;
|
|
|
|
param_1[0x27] = param_1[0x27] * sVar7;
|
|
|
|
param_1[0x28] = param_1[0x28] * sVar8;
|
|
|
|
param_1[0x29] = param_1[0x29] * sVar9;
|
|
|
|
param_1[0x2a] = param_1[0x2a] * sVar10;
|
|
|
|
param_1[0x2b] = param_1[0x2b] * sVar11;
|
|
|
|
param_1[0x2c] = param_1[0x2c] * sVar12;
|
|
|
|
param_1[0x2d] = param_1[0x2d] * sVar13;
|
|
|
|
param_1[0x2e] = param_1[0x2e] * sVar14;
|
|
|
|
param_1[0x2f] = param_1[0x2f] * sVar15;
|
|
|
|
sVar1 = param_2[0x31];
|
|
|
|
sVar2 = param_2[0x32];
|
|
|
|
sVar3 = param_2[0x33];
|
|
|
|
sVar4 = param_2[0x34];
|
|
|
|
sVar5 = param_2[0x35];
|
|
|
|
sVar6 = param_2[0x36];
|
|
|
|
sVar7 = param_2[0x37];
|
|
|
|
sVar8 = param_2[0x38];
|
|
|
|
sVar9 = param_2[0x39];
|
|
|
|
sVar10 = param_2[0x3a];
|
|
|
|
sVar11 = param_2[0x3b];
|
|
|
|
sVar12 = param_2[0x3c];
|
|
|
|
sVar13 = param_2[0x3d];
|
|
|
|
sVar14 = param_2[0x3e];
|
|
|
|
sVar15 = param_2[0x3f];
|
|
|
|
param_1[0x30] = param_1[0x30] * param_2[0x30];
|
|
|
|
param_1[0x31] = param_1[0x31] * sVar1;
|
|
|
|
param_1[0x32] = param_1[0x32] * sVar2;
|
|
|
|
param_1[0x33] = param_1[0x33] * sVar3;
|
|
|
|
param_1[0x34] = param_1[0x34] * sVar4;
|
|
|
|
param_1[0x35] = param_1[0x35] * sVar5;
|
|
|
|
param_1[0x36] = param_1[0x36] * sVar6;
|
|
|
|
param_1[0x37] = param_1[0x37] * sVar7;
|
|
|
|
param_1[0x38] = param_1[0x38] * sVar8;
|
|
|
|
param_1[0x39] = param_1[0x39] * sVar9;
|
|
|
|
param_1[0x3a] = param_1[0x3a] * sVar10;
|
|
|
|
param_1[0x3b] = param_1[0x3b] * sVar11;
|
|
|
|
param_1[0x3c] = param_1[0x3c] * sVar12;
|
|
|
|
param_1[0x3d] = param_1[0x3d] * sVar13;
|
|
|
|
param_1[0x3e] = param_1[0x3e] * sVar14;
|
|
|
|
param_1[0x3f] = param_1[0x3f] * sVar15;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
sVar1 = param_2[1];
|
|
|
|
sVar2 = param_2[2];
|
|
|
|
sVar3 = param_2[3];
|
|
|
|
sVar4 = param_2[4];
|
|
|
|
sVar5 = param_2[5];
|
|
|
|
sVar6 = param_2[6];
|
|
|
|
sVar7 = param_2[7];
|
|
|
|
sVar8 = param_2[8];
|
|
|
|
sVar9 = param_2[9];
|
|
|
|
sVar10 = param_2[10];
|
|
|
|
sVar11 = param_2[0xb];
|
|
|
|
sVar12 = param_2[0xc];
|
|
|
|
sVar13 = param_2[0xd];
|
|
|
|
sVar14 = param_2[0xe];
|
|
|
|
sVar15 = param_2[0xf];
|
|
|
|
*param_1 = *param_1 * *param_2;
|
|
|
|
param_1[1] = param_1[1] * sVar1;
|
|
|
|
param_1[2] = param_1[2] * sVar2;
|
|
|
|
param_1[3] = param_1[3] * sVar3;
|
|
|
|
param_1[4] = param_1[4] * sVar4;
|
|
|
|
param_1[5] = param_1[5] * sVar5;
|
|
|
|
param_1[6] = param_1[6] * sVar6;
|
|
|
|
param_1[7] = param_1[7] * sVar7;
|
|
|
|
param_1[8] = param_1[8] * sVar8;
|
|
|
|
param_1[9] = param_1[9] * sVar9;
|
|
|
|
param_1[10] = param_1[10] * sVar10;
|
|
|
|
param_1[0xb] = param_1[0xb] * sVar11;
|
|
|
|
param_1[0xc] = param_1[0xc] * sVar12;
|
|
|
|
param_1[0xd] = param_1[0xd] * sVar13;
|
|
|
|
param_1[0xe] = param_1[0xe] * sVar14;
|
|
|
|
param_1[0xf] = param_1[0xf] * sVar15;
|
|
|
|
sVar1 = param_2[0x11];
|
|
|
|
sVar2 = param_2[0x12];
|
|
|
|
sVar3 = param_2[0x13];
|
|
|
|
sVar4 = param_2[0x14];
|
|
|
|
sVar5 = param_2[0x15];
|
|
|
|
sVar6 = param_2[0x16];
|
|
|
|
sVar7 = param_2[0x17];
|
|
|
|
sVar8 = param_2[0x18];
|
|
|
|
sVar9 = param_2[0x19];
|
|
|
|
sVar10 = param_2[0x1a];
|
|
|
|
sVar11 = param_2[0x1b];
|
|
|
|
sVar12 = param_2[0x1c];
|
|
|
|
sVar13 = param_2[0x1d];
|
|
|
|
sVar14 = param_2[0x1e];
|
|
|
|
sVar15 = param_2[0x1f];
|
|
|
|
param_1[0x10] = param_1[0x10] * param_2[0x10];
|
|
|
|
param_1[0x11] = param_1[0x11] * sVar1;
|
|
|
|
param_1[0x12] = param_1[0x12] * sVar2;
|
|
|
|
param_1[0x13] = param_1[0x13] * sVar3;
|
|
|
|
param_1[0x14] = param_1[0x14] * sVar4;
|
|
|
|
param_1[0x15] = param_1[0x15] * sVar5;
|
|
|
|
param_1[0x16] = param_1[0x16] * sVar6;
|
|
|
|
param_1[0x17] = param_1[0x17] * sVar7;
|
|
|
|
param_1[0x18] = param_1[0x18] * sVar8;
|
|
|
|
param_1[0x19] = param_1[0x19] * sVar9;
|
|
|
|
param_1[0x1a] = param_1[0x1a] * sVar10;
|
|
|
|
param_1[0x1b] = param_1[0x1b] * sVar11;
|
|
|
|
param_1[0x1c] = param_1[0x1c] * sVar12;
|
|
|
|
param_1[0x1d] = param_1[0x1d] * sVar13;
|
|
|
|
param_1[0x1e] = param_1[0x1e] * sVar14;
|
|
|
|
param_1[0x1f] = param_1[0x1f] * sVar15;
|
|
|
|
sVar1 = param_2[0x21];
|
|
|
|
sVar2 = param_2[0x22];
|
|
|
|
sVar3 = param_2[0x23];
|
|
|
|
sVar4 = param_2[0x24];
|
|
|
|
sVar5 = param_2[0x25];
|
|
|
|
sVar6 = param_2[0x26];
|
|
|
|
sVar7 = param_2[0x27];
|
|
|
|
sVar8 = param_2[0x28];
|
|
|
|
sVar9 = param_2[0x29];
|
|
|
|
sVar10 = param_2[0x2a];
|
|
|
|
sVar11 = param_2[0x2b];
|
|
|
|
sVar12 = param_2[0x2c];
|
|
|
|
sVar13 = param_2[0x2d];
|
|
|
|
sVar14 = param_2[0x2e];
|
|
|
|
sVar15 = param_2[0x2f];
|
|
|
|
param_1[0x20] = param_1[0x20] * param_2[0x20];
|
|
|
|
param_1[0x21] = param_1[0x21] * sVar1;
|
|
|
|
param_1[0x22] = param_1[0x22] * sVar2;
|
|
|
|
param_1[0x23] = param_1[0x23] * sVar3;
|
|
|
|
param_1[0x24] = param_1[0x24] * sVar4;
|
|
|
|
param_1[0x25] = param_1[0x25] * sVar5;
|
|
|
|
param_1[0x26] = param_1[0x26] * sVar6;
|
|
|
|
param_1[0x27] = param_1[0x27] * sVar7;
|
|
|
|
param_1[0x28] = param_1[0x28] * sVar8;
|
|
|
|
param_1[0x29] = param_1[0x29] * sVar9;
|
|
|
|
param_1[0x2a] = param_1[0x2a] * sVar10;
|
|
|
|
param_1[0x2b] = param_1[0x2b] * sVar11;
|
|
|
|
param_1[0x2c] = param_1[0x2c] * sVar12;
|
|
|
|
param_1[0x2d] = param_1[0x2d] * sVar13;
|
|
|
|
param_1[0x2e] = param_1[0x2e] * sVar14;
|
|
|
|
param_1[0x2f] = param_1[0x2f] * sVar15;
|
|
|
|
sVar1 = param_2[0x31];
|
|
|
|
sVar2 = param_2[0x32];
|
|
|
|
sVar3 = param_2[0x33];
|
|
|
|
sVar4 = param_2[0x34];
|
|
|
|
sVar5 = param_2[0x35];
|
|
|
|
sVar6 = param_2[0x36];
|
|
|
|
sVar7 = param_2[0x37];
|
|
|
|
sVar8 = param_2[0x38];
|
|
|
|
sVar9 = param_2[0x39];
|
|
|
|
sVar10 = param_2[0x3a];
|
|
|
|
sVar11 = param_2[0x3b];
|
|
|
|
sVar12 = param_2[0x3c];
|
|
|
|
sVar13 = param_2[0x3d];
|
|
|
|
sVar14 = param_2[0x3e];
|
|
|
|
sVar15 = param_2[0x3f];
|
|
|
|
param_1[0x30] = param_1[0x30] * param_2[0x30];
|
|
|
|
param_1[0x31] = param_1[0x31] * sVar1;
|
|
|
|
param_1[0x32] = param_1[0x32] * sVar2;
|
|
|
|
param_1[0x33] = param_1[0x33] * sVar3;
|
|
|
|
param_1[0x34] = param_1[0x34] * sVar4;
|
|
|
|
param_1[0x35] = param_1[0x35] * sVar5;
|
|
|
|
param_1[0x36] = param_1[0x36] * sVar6;
|
|
|
|
param_1[0x37] = param_1[0x37] * sVar7;
|
|
|
|
param_1[0x38] = param_1[0x38] * sVar8;
|
|
|
|
param_1[0x39] = param_1[0x39] * sVar9;
|
|
|
|
param_1[0x3a] = param_1[0x3a] * sVar10;
|
|
|
|
param_1[0x3b] = param_1[0x3b] * sVar11;
|
|
|
|
param_1[0x3c] = param_1[0x3c] * sVar12;
|
|
|
|
param_1[0x3d] = param_1[0x3d] * sVar13;
|
|
|
|
param_1[0x3e] = param_1[0x3e] * sVar14;
|
|
|
|
param_1[0x3f] = param_1[0x3f] * sVar15;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00652ae0 at 0x00652AE0 (size: 2493) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
void FUN_00652ae0(undefined8 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
undefined4 uVar5;
|
|
|
|
int iVar6;
|
|
|
|
undefined8 uVar7;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar8;
|
|
|
|
int iVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
int iVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
int iVar14;
|
|
|
|
undefined8 uVar15;
|
|
|
|
int iVar16;
|
|
|
|
undefined8 uVar17;
|
|
|
|
uint uVar19;
|
|
|
|
ulonglong uVar18;
|
|
|
|
int iVar20;
|
|
|
|
int iVar22;
|
|
|
|
undefined8 uVar21;
|
|
|
|
undefined4 uVar23;
|
|
|
|
undefined8 uVar24;
|
|
|
|
undefined8 uVar25;
|
|
|
|
|
|
|
|
uVar11 = *param_1;
|
|
|
|
uVar13 = param_1[1];
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833c90,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833c98,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833ca0);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833cb0,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833cb8,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833ca8);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833cc0);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833cc8);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
*param_1 = uVar11;
|
|
|
|
uVar11 = param_1[2];
|
|
|
|
uVar13 = param_1[3];
|
|
|
|
param_1[1] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833cd0,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833cd8,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833ce0);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833cf0,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833cf8,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833ce8);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d00);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d08);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[2] = uVar11;
|
|
|
|
uVar11 = param_1[4];
|
|
|
|
uVar13 = param_1[5];
|
|
|
|
param_1[3] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833d10,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833d18,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833d20);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833d30,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833d38,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833d28);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d40);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d48);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[4] = uVar11;
|
|
|
|
uVar11 = param_1[6];
|
|
|
|
uVar13 = param_1[7];
|
|
|
|
param_1[5] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833d50,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833d58,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833d60);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833d70,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833d78,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833d68);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d80);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d88);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[6] = uVar11;
|
|
|
|
uVar11 = param_1[8];
|
|
|
|
uVar13 = param_1[9];
|
|
|
|
param_1[7] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833c90,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833c98,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833ca0);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833cb0,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833cb8,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833ca8);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833cc0);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833cc8);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[8] = uVar11;
|
|
|
|
uVar11 = param_1[10];
|
|
|
|
uVar13 = param_1[0xb];
|
|
|
|
param_1[9] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833d50,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833d58,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833d60);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833d70,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833d78,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833d68);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d80);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d88);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[10] = uVar11;
|
|
|
|
uVar11 = param_1[0xc];
|
|
|
|
uVar13 = param_1[0xd];
|
|
|
|
param_1[0xb] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833d10,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833d18,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833d20);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833d30,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833d38,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833d28);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d40);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d48);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar7 >> 0x20);
|
|
|
|
param_1[0xc] = uVar11;
|
|
|
|
uVar11 = param_1[0xe];
|
|
|
|
uVar13 = param_1[0xf];
|
|
|
|
param_1[0xd] = CONCAT44(uVar19 << 0x10,(uint)uVar7 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar7 >> 0x10);
|
|
|
|
uVar23 = CONCAT22((short)((ulonglong)uVar13 >> 0x10),(short)((ulonglong)uVar11 >> 0x10));
|
|
|
|
uVar5 = CONCAT22((short)uVar13,(short)uVar11);
|
|
|
|
uVar7 = CONCAT44(uVar5,uVar5);
|
|
|
|
uVar5 = CONCAT22((short)((ulonglong)uVar13 >> 0x20),(short)((ulonglong)uVar11 >> 0x20));
|
|
|
|
uVar15 = pmaddwd(DAT_00833cd0,uVar7);
|
|
|
|
uVar17 = pmaddwd(DAT_00833cd8,CONCAT44(uVar5,uVar5));
|
|
|
|
uVar21 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar7 = pmaddwd(uVar7,_DAT_00833ce0);
|
|
|
|
uVar23 = (undefined4)
|
|
|
|
(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar11 >> 0x30),uVar5)) >> 0x20);
|
|
|
|
uVar25 = CONCAT44(uVar23,uVar23);
|
|
|
|
uVar11 = pmaddwd(DAT_00833cf0,uVar21);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar24 = pmaddwd(DAT_00833cf8,uVar25);
|
|
|
|
uVar13 = pmaddwd(CONCAT44(uVar5,uVar5),_DAT_00833ce8);
|
|
|
|
iVar14 = (int)uVar15 + (int)DAT_00833bf0 + (int)uVar17;
|
|
|
|
iVar16 = (int)((ulonglong)uVar15 >> 0x20) + iVar9 + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar15 = pmaddwd(uVar21,_DAT_00833d00);
|
|
|
|
uVar17 = pmaddwd(uVar25,_DAT_00833d08);
|
|
|
|
iVar10 = (int)uVar11 + (int)uVar24;
|
|
|
|
iVar12 = (int)((ulonglong)uVar11 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
iVar6 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar13;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar13 >> 0x20);
|
|
|
|
iVar20 = (int)uVar15 + (int)uVar17;
|
|
|
|
iVar22 = (int)((ulonglong)uVar15 >> 0x20) + (int)((ulonglong)uVar17 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar12 + iVar16 >> 0xc,iVar10 + iVar14 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar22 >> 0xc,iVar6 + iVar20 >> 0xc));
|
|
|
|
uVar13 = packssdw(CONCAT44(iVar9 - iVar22 >> 0xc,iVar6 - iVar20 >> 0xc),
|
|
|
|
CONCAT44(iVar16 - iVar12 >> 0xc,iVar14 - iVar10 >> 0xc));
|
|
|
|
uVar19 = (uint)((ulonglong)uVar13 >> 0x20);
|
|
|
|
param_1[0xe] = uVar11;
|
|
|
|
uVar11 = param_1[10];
|
|
|
|
param_1[0xf] = CONCAT44(uVar19 << 0x10,(uint)uVar13 << 0x10) |
|
|
|
|
CONCAT44(uVar19 >> 0x10,(uint)uVar13 >> 0x10);
|
|
|
|
uVar13 = param_1[6];
|
|
|
|
uVar7 = pmulhw(uVar11,DAT_00833c60);
|
|
|
|
uVar15 = pmulhw(DAT_00833c60,uVar13);
|
|
|
|
uVar17 = pmulhw(param_1[0xe],DAT_00833c40);
|
|
|
|
uVar7 = paddsw(uVar7,uVar11);
|
|
|
|
uVar21 = pmulhw(DAT_00833c40,param_1[2]);
|
|
|
|
uVar15 = paddsw(uVar15,uVar13);
|
|
|
|
uVar13 = paddsw(uVar7,uVar13);
|
|
|
|
uVar7 = psubsw(uVar11,uVar15);
|
|
|
|
uVar25 = pmulhw(param_1[0xc],DAT_00833c50);
|
|
|
|
uVar15 = pmulhw(DAT_00833c50,param_1[4]);
|
|
|
|
uVar21 = psubsw(uVar21,param_1[0xe]);
|
|
|
|
uVar17 = paddsw(uVar17,param_1[2]);
|
|
|
|
uVar11 = paddsw(uVar13,uVar17);
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833be0);
|
|
|
|
uVar13 = psubsw(uVar17,uVar13);
|
|
|
|
uVar24 = paddsw(uVar25,param_1[4]);
|
|
|
|
uVar15 = psubsw(uVar15,param_1[0xc]);
|
|
|
|
uVar17 = psubsw(uVar21,uVar7);
|
|
|
|
uVar25 = paddsw(uVar17,_DAT_00833be0);
|
|
|
|
uVar21 = paddsw(uVar21,uVar7);
|
|
|
|
param_1[0xe] = uVar11;
|
|
|
|
uVar11 = DAT_00833c70;
|
|
|
|
uVar17 = paddsw(uVar13,uVar25);
|
|
|
|
uVar7 = pmulhw(DAT_00833c70,uVar17);
|
|
|
|
param_1[6] = uVar21;
|
|
|
|
uVar13 = psubsw(uVar13,uVar25);
|
|
|
|
uVar11 = pmulhw(uVar11,uVar13);
|
|
|
|
uVar18 = paddsw(uVar17,uVar7);
|
|
|
|
uVar18 = uVar18 | _DAT_00833be0;
|
|
|
|
uVar7 = paddsw(param_1[8],*param_1);
|
|
|
|
uVar21 = psubsw(*param_1,param_1[8]);
|
|
|
|
uVar8 = paddsw(uVar11,uVar13);
|
|
|
|
uVar8 = uVar8 | _DAT_00833be0;
|
|
|
|
uVar11 = paddsw(uVar7,uVar24);
|
|
|
|
uVar17 = paddsw(uVar11,_DAT_00833c00);
|
|
|
|
uVar13 = psubsw(uVar7,uVar24);
|
|
|
|
uVar11 = paddsw(uVar21,uVar15);
|
|
|
|
uVar25 = paddsw(uVar11,_DAT_00833c00);
|
|
|
|
uVar11 = paddsw(param_1[0xe],uVar17);
|
|
|
|
uVar24 = psraw(uVar11,5);
|
|
|
|
uVar11 = psubsw(uVar21,uVar15);
|
|
|
|
uVar7 = paddsw(uVar13,_DAT_00833c10);
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c10);
|
|
|
|
uVar13 = paddsw(uVar25,uVar18);
|
|
|
|
uVar15 = paddsw(uVar24,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar15;
|
|
|
|
sVar2 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
*param_1 = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >> 0x18
|
|
|
|
),(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) - (0xff < sVar3))
|
|
|
|
,(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar15 - (0xff < sVar1)));
|
|
|
|
uVar13 = psraw(uVar13,5);
|
|
|
|
uVar15 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar15;
|
|
|
|
sVar2 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
uVar13 = paddsw(uVar11,uVar8);
|
|
|
|
param_1[2] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar15 - (0xff < sVar1)));
|
|
|
|
uVar13 = psraw(uVar13,5);
|
|
|
|
uVar21 = psubsw(uVar11,uVar8);
|
|
|
|
uVar15 = paddsw(param_1[6],uVar7);
|
|
|
|
uVar7 = psubsw(uVar7,param_1[6]);
|
|
|
|
uVar11 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar21 = psraw(uVar21,5);
|
|
|
|
param_1[4] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar15,5);
|
|
|
|
uVar15 = psubsw(uVar17,param_1[0xe]);
|
|
|
|
uVar13 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar13;
|
|
|
|
sVar2 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar7,5);
|
|
|
|
param_1[6] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar13 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar13 = psubsw(uVar25,uVar18);
|
|
|
|
param_1[8] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar21,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar13,5);
|
|
|
|
param_1[10] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) - (0xff < sVar4)
|
|
|
|
),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8))
|
|
|
|
,(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar13 = psraw(uVar15,5);
|
|
|
|
param_1[0xc] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar11 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
param_1[0xe] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar11 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar11 = param_1[0xb];
|
|
|
|
uVar13 = param_1[7];
|
|
|
|
uVar7 = pmulhw(uVar11,DAT_00833c60);
|
|
|
|
uVar15 = pmulhw(DAT_00833c60,uVar13);
|
|
|
|
uVar17 = pmulhw(param_1[0xf],DAT_00833c40);
|
|
|
|
uVar7 = paddsw(uVar7,uVar11);
|
|
|
|
uVar21 = pmulhw(DAT_00833c40,param_1[3]);
|
|
|
|
uVar15 = paddsw(uVar15,uVar13);
|
|
|
|
uVar13 = paddsw(uVar7,uVar13);
|
|
|
|
uVar7 = psubsw(uVar11,uVar15);
|
|
|
|
uVar25 = pmulhw(param_1[0xd],DAT_00833c50);
|
|
|
|
uVar15 = pmulhw(DAT_00833c50,param_1[5]);
|
|
|
|
uVar21 = psubsw(uVar21,param_1[0xf]);
|
|
|
|
uVar17 = paddsw(uVar17,param_1[3]);
|
|
|
|
uVar11 = paddsw(uVar13,uVar17);
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833be0);
|
|
|
|
uVar13 = psubsw(uVar17,uVar13);
|
|
|
|
uVar24 = paddsw(uVar25,param_1[5]);
|
|
|
|
uVar15 = psubsw(uVar15,param_1[0xd]);
|
|
|
|
uVar17 = psubsw(uVar21,uVar7);
|
|
|
|
uVar25 = paddsw(uVar17,_DAT_00833be0);
|
|
|
|
uVar21 = paddsw(uVar21,uVar7);
|
|
|
|
param_1[0xf] = uVar11;
|
|
|
|
uVar11 = DAT_00833c70;
|
|
|
|
uVar17 = paddsw(uVar13,uVar25);
|
|
|
|
uVar7 = pmulhw(DAT_00833c70,uVar17);
|
|
|
|
param_1[7] = uVar21;
|
|
|
|
uVar13 = psubsw(uVar13,uVar25);
|
|
|
|
uVar11 = pmulhw(uVar11,uVar13);
|
|
|
|
uVar18 = paddsw(uVar17,uVar7);
|
|
|
|
uVar18 = uVar18 | _DAT_00833be0;
|
|
|
|
uVar7 = paddsw(param_1[9],param_1[1]);
|
|
|
|
uVar21 = psubsw(param_1[1],param_1[9]);
|
|
|
|
uVar8 = paddsw(uVar11,uVar13);
|
|
|
|
uVar8 = uVar8 | _DAT_00833be0;
|
|
|
|
uVar11 = paddsw(uVar7,uVar24);
|
|
|
|
uVar17 = paddsw(uVar11,_DAT_00833c00);
|
|
|
|
uVar13 = psubsw(uVar7,uVar24);
|
|
|
|
uVar11 = paddsw(uVar21,uVar15);
|
|
|
|
uVar25 = paddsw(uVar11,_DAT_00833c00);
|
|
|
|
uVar11 = paddsw(param_1[0xf],uVar17);
|
|
|
|
uVar24 = psraw(uVar11,5);
|
|
|
|
uVar11 = psubsw(uVar21,uVar15);
|
|
|
|
uVar7 = paddsw(uVar13,_DAT_00833c10);
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c10);
|
|
|
|
uVar13 = paddsw(uVar25,uVar18);
|
|
|
|
uVar15 = paddsw(uVar24,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar15;
|
|
|
|
sVar2 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
param_1[1] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar15 - (0xff < sVar1)));
|
|
|
|
uVar13 = psraw(uVar13,5);
|
|
|
|
uVar15 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar15;
|
|
|
|
sVar2 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
uVar13 = paddsw(uVar11,uVar8);
|
|
|
|
param_1[3] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar15 - (0xff < sVar1)));
|
|
|
|
uVar13 = psraw(uVar13,5);
|
|
|
|
uVar21 = psubsw(uVar11,uVar8);
|
|
|
|
uVar15 = paddsw(param_1[7],uVar7);
|
|
|
|
uVar7 = psubsw(uVar7,param_1[7]);
|
|
|
|
uVar11 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar21 = psraw(uVar21,5);
|
|
|
|
param_1[5] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar15,5);
|
|
|
|
uVar15 = psubsw(uVar17,param_1[0xf]);
|
|
|
|
uVar13 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar13;
|
|
|
|
sVar2 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar7,5);
|
|
|
|
param_1[7] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar13 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar13 = psubsw(uVar25,uVar18);
|
|
|
|
param_1[9] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar21,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar13,5);
|
|
|
|
param_1[0xb] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar13 = psraw(uVar15,5);
|
|
|
|
param_1[0xd] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar11 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar11 = paddsw(uVar13,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
param_1[0xf] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar11 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006534a0 at 0x006534A0 (size: 2373) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
void FUN_006534a0(undefined8 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
int iVar5;
|
|
|
|
undefined8 uVar6;
|
|
|
|
undefined8 uVar7;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar8;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
int iVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
int iVar14;
|
|
|
|
int iVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
int iVar17;
|
|
|
|
undefined8 uVar18;
|
|
|
|
ulonglong uVar19;
|
|
|
|
undefined8 uVar20;
|
|
|
|
int iVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
int iVar23;
|
|
|
|
undefined8 uVar24;
|
|
|
|
|
|
|
|
uVar7 = *param_1;
|
|
|
|
uVar11 = param_1[1];
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833d90,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833d98,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833db0,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833db8,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833da0);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833da8);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833dc0);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833dc8);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
*param_1 = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[2];
|
|
|
|
uVar11 = param_1[3];
|
|
|
|
param_1[1] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833dd0,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833dd8,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833df0,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833df8,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833de0);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833de8);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e00);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e08);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[2] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[4];
|
|
|
|
uVar11 = param_1[5];
|
|
|
|
param_1[3] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833e10,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833e18,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833e30,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833e38,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833e20);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833e28);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e40);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e48);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[4] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[6];
|
|
|
|
uVar11 = param_1[7];
|
|
|
|
param_1[5] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833e50,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833e58,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833e70,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833e78,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833e60);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833e68);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e80);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e88);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[6] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[8];
|
|
|
|
uVar11 = param_1[9];
|
|
|
|
param_1[7] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833d90,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833d98,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833db0,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833db8,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833da0);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833da8);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833dc0);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833dc8);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[8] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[10];
|
|
|
|
uVar11 = param_1[0xb];
|
|
|
|
param_1[9] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833e50,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833e58,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833e70,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833e78,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833e60);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833e68);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e80);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e88);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[10] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[0xc];
|
|
|
|
uVar11 = param_1[0xd];
|
|
|
|
param_1[0xb] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833e10,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833e18,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833e30,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833e38,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833e20);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833e28);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e40);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e48);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[0xc] = uVar7;
|
|
|
|
uVar6 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[0xe];
|
|
|
|
uVar11 = param_1[0xf];
|
|
|
|
param_1[0xd] = uVar6;
|
|
|
|
uVar6 = pshufw(uVar7,uVar7,0x88);
|
|
|
|
uVar16 = pmaddwd(DAT_00833dd0,uVar6);
|
|
|
|
uVar10 = pshufw(uVar11,uVar11,0x88);
|
|
|
|
uVar18 = pmaddwd(DAT_00833dd8,uVar10);
|
|
|
|
uVar13 = pshufw(uVar7,uVar7,0xdd);
|
|
|
|
uVar22 = pmaddwd(DAT_00833df0,uVar13);
|
|
|
|
uVar20 = pshufw(uVar11,uVar11,0xdd);
|
|
|
|
uVar24 = pmaddwd(DAT_00833df8,uVar20);
|
|
|
|
iVar9 = (int)((ulonglong)DAT_00833bf0 >> 0x20);
|
|
|
|
uVar7 = pmaddwd(uVar6,_DAT_00833de0);
|
|
|
|
iVar15 = (int)uVar16 + (int)DAT_00833bf0 + (int)uVar18;
|
|
|
|
iVar17 = (int)((ulonglong)uVar16 >> 0x20) + iVar9 + (int)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar11 = pmaddwd(uVar10,_DAT_00833de8);
|
|
|
|
uVar6 = pmaddwd(uVar13,_DAT_00833e00);
|
|
|
|
iVar21 = (int)uVar22 + (int)uVar24;
|
|
|
|
iVar23 = (int)((ulonglong)uVar22 >> 0x20) + (int)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar10 = pmaddwd(uVar20,_DAT_00833e08);
|
|
|
|
iVar5 = (int)uVar7 + (int)DAT_00833bf0 + (int)uVar11;
|
|
|
|
iVar9 = (int)((ulonglong)uVar7 >> 0x20) + iVar9 + (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
iVar12 = (int)uVar6 + (int)uVar10;
|
|
|
|
iVar14 = (int)((ulonglong)uVar6 >> 0x20) + (int)((ulonglong)uVar10 >> 0x20);
|
|
|
|
uVar7 = packssdw(CONCAT44(iVar17 + iVar23 >> 0xc,iVar15 + iVar21 >> 0xc),
|
|
|
|
CONCAT44(iVar9 + iVar14 >> 0xc,iVar5 + iVar12 >> 0xc));
|
|
|
|
uVar11 = packssdw(CONCAT44(iVar9 - iVar14 >> 0xc,iVar5 - iVar12 >> 0xc),
|
|
|
|
CONCAT44(iVar17 - iVar23 >> 0xc,iVar15 - iVar21 >> 0xc));
|
|
|
|
param_1[0xe] = uVar7;
|
|
|
|
uVar11 = pshufw(uVar11,uVar11,0xb1);
|
|
|
|
uVar7 = param_1[10];
|
|
|
|
param_1[0xf] = uVar11;
|
|
|
|
uVar11 = param_1[6];
|
|
|
|
uVar6 = pmulhw(uVar7,DAT_00833c60);
|
|
|
|
uVar10 = pmulhw(DAT_00833c60,uVar11);
|
|
|
|
uVar13 = pmulhw(param_1[0xe],DAT_00833c40);
|
|
|
|
uVar6 = paddsw(uVar6,uVar7);
|
|
|
|
uVar16 = pmulhw(DAT_00833c40,param_1[2]);
|
|
|
|
uVar10 = paddsw(uVar10,uVar11);
|
|
|
|
uVar11 = paddsw(uVar6,uVar11);
|
|
|
|
uVar6 = psubsw(uVar7,uVar10);
|
|
|
|
uVar18 = pmulhw(param_1[0xc],DAT_00833c50);
|
|
|
|
uVar10 = pmulhw(DAT_00833c50,param_1[4]);
|
|
|
|
uVar16 = psubsw(uVar16,param_1[0xe]);
|
|
|
|
uVar13 = paddsw(uVar13,param_1[2]);
|
|
|
|
uVar7 = paddsw(uVar11,uVar13);
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833be0);
|
|
|
|
uVar11 = psubsw(uVar13,uVar11);
|
|
|
|
uVar20 = paddsw(uVar18,param_1[4]);
|
|
|
|
uVar10 = psubsw(uVar10,param_1[0xc]);
|
|
|
|
uVar13 = psubsw(uVar16,uVar6);
|
|
|
|
uVar18 = paddsw(uVar13,_DAT_00833be0);
|
|
|
|
uVar16 = paddsw(uVar16,uVar6);
|
|
|
|
param_1[0xe] = uVar7;
|
|
|
|
uVar7 = DAT_00833c70;
|
|
|
|
uVar13 = paddsw(uVar11,uVar18);
|
|
|
|
uVar6 = pmulhw(DAT_00833c70,uVar13);
|
|
|
|
param_1[6] = uVar16;
|
|
|
|
uVar11 = psubsw(uVar11,uVar18);
|
|
|
|
uVar7 = pmulhw(uVar7,uVar11);
|
|
|
|
uVar19 = paddsw(uVar13,uVar6);
|
|
|
|
uVar19 = uVar19 | _DAT_00833be0;
|
|
|
|
uVar6 = paddsw(param_1[8],*param_1);
|
|
|
|
uVar16 = psubsw(*param_1,param_1[8]);
|
|
|
|
uVar8 = paddsw(uVar7,uVar11);
|
|
|
|
uVar8 = uVar8 | _DAT_00833be0;
|
|
|
|
uVar7 = paddsw(uVar6,uVar20);
|
|
|
|
uVar13 = paddsw(uVar7,_DAT_00833c00);
|
|
|
|
uVar11 = psubsw(uVar6,uVar20);
|
|
|
|
uVar7 = paddsw(uVar16,uVar10);
|
|
|
|
uVar18 = paddsw(uVar7,_DAT_00833c00);
|
|
|
|
uVar7 = paddsw(param_1[0xe],uVar13);
|
|
|
|
uVar20 = psraw(uVar7,5);
|
|
|
|
uVar7 = psubsw(uVar16,uVar10);
|
|
|
|
uVar6 = paddsw(uVar11,_DAT_00833c10);
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c10);
|
|
|
|
uVar11 = paddsw(uVar18,uVar19);
|
|
|
|
uVar10 = paddsw(uVar20,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar10;
|
|
|
|
sVar2 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
*param_1 = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >> 0x18
|
|
|
|
),(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar3))
|
|
|
|
,(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar10 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar11,5);
|
|
|
|
uVar10 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar10;
|
|
|
|
sVar2 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar11 = paddsw(uVar7,uVar8);
|
|
|
|
param_1[2] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar10 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar11,5);
|
|
|
|
uVar16 = psubsw(uVar7,uVar8);
|
|
|
|
uVar10 = paddsw(param_1[6],uVar6);
|
|
|
|
uVar6 = psubsw(uVar6,param_1[6]);
|
|
|
|
uVar7 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar16 = psraw(uVar16,5);
|
|
|
|
param_1[4] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x30
|
|
|
|
) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) - (0xff < sVar3)
|
|
|
|
),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar7 = psraw(uVar10,5);
|
|
|
|
uVar10 = psubsw(uVar13,param_1[0xe]);
|
|
|
|
uVar11 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar7 = psraw(uVar6,5);
|
|
|
|
param_1[6] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psubsw(uVar18,uVar19);
|
|
|
|
param_1[8] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x30
|
|
|
|
) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) - (0xff < sVar3)
|
|
|
|
),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar6 = paddsw(uVar16,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar6;
|
|
|
|
sVar2 = (short)((ulonglong)uVar6 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar6 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar6 >> 0x30);
|
|
|
|
uVar7 = psraw(uVar11,5);
|
|
|
|
param_1[10] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar6 >>
|
|
|
|
0x30) - (0xff < sVar4)
|
|
|
|
),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar6 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8))
|
|
|
|
,(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar6 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar6 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar10,5);
|
|
|
|
param_1[0xc] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
param_1[0xe] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar7 = param_1[0xb];
|
|
|
|
uVar11 = param_1[7];
|
|
|
|
uVar6 = pmulhw(uVar7,DAT_00833c60);
|
|
|
|
uVar10 = pmulhw(DAT_00833c60,uVar11);
|
|
|
|
uVar13 = pmulhw(param_1[0xf],DAT_00833c40);
|
|
|
|
uVar6 = paddsw(uVar6,uVar7);
|
|
|
|
uVar16 = pmulhw(DAT_00833c40,param_1[3]);
|
|
|
|
uVar10 = paddsw(uVar10,uVar11);
|
|
|
|
uVar11 = paddsw(uVar6,uVar11);
|
|
|
|
uVar6 = psubsw(uVar7,uVar10);
|
|
|
|
uVar18 = pmulhw(param_1[0xd],DAT_00833c50);
|
|
|
|
uVar10 = pmulhw(DAT_00833c50,param_1[5]);
|
|
|
|
uVar16 = psubsw(uVar16,param_1[0xf]);
|
|
|
|
uVar13 = paddsw(uVar13,param_1[3]);
|
|
|
|
uVar7 = paddsw(uVar11,uVar13);
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833be0);
|
|
|
|
uVar11 = psubsw(uVar13,uVar11);
|
|
|
|
uVar20 = paddsw(uVar18,param_1[5]);
|
|
|
|
uVar10 = psubsw(uVar10,param_1[0xd]);
|
|
|
|
uVar13 = psubsw(uVar16,uVar6);
|
|
|
|
uVar18 = paddsw(uVar13,_DAT_00833be0);
|
|
|
|
uVar16 = paddsw(uVar16,uVar6);
|
|
|
|
param_1[0xf] = uVar7;
|
|
|
|
uVar7 = DAT_00833c70;
|
|
|
|
uVar13 = paddsw(uVar11,uVar18);
|
|
|
|
uVar6 = pmulhw(DAT_00833c70,uVar13);
|
|
|
|
param_1[7] = uVar16;
|
|
|
|
uVar11 = psubsw(uVar11,uVar18);
|
|
|
|
uVar7 = pmulhw(uVar7,uVar11);
|
|
|
|
uVar19 = paddsw(uVar13,uVar6);
|
|
|
|
uVar19 = uVar19 | _DAT_00833be0;
|
|
|
|
uVar6 = paddsw(param_1[9],param_1[1]);
|
|
|
|
uVar16 = psubsw(param_1[1],param_1[9]);
|
|
|
|
uVar8 = paddsw(uVar7,uVar11);
|
|
|
|
uVar8 = uVar8 | _DAT_00833be0;
|
|
|
|
uVar7 = paddsw(uVar6,uVar20);
|
|
|
|
uVar13 = paddsw(uVar7,_DAT_00833c00);
|
|
|
|
uVar11 = psubsw(uVar6,uVar20);
|
|
|
|
uVar7 = paddsw(uVar16,uVar10);
|
|
|
|
uVar18 = paddsw(uVar7,_DAT_00833c00);
|
|
|
|
uVar7 = paddsw(param_1[0xf],uVar13);
|
|
|
|
uVar20 = psraw(uVar7,5);
|
|
|
|
uVar7 = psubsw(uVar16,uVar10);
|
|
|
|
uVar6 = paddsw(uVar11,_DAT_00833c10);
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c10);
|
|
|
|
uVar11 = paddsw(uVar18,uVar19);
|
|
|
|
uVar10 = paddsw(uVar20,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar10;
|
|
|
|
sVar2 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
param_1[1] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar10 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar11,5);
|
|
|
|
uVar10 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar10;
|
|
|
|
sVar2 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar11 = paddsw(uVar7,uVar8);
|
|
|
|
param_1[3] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar10 - (0xff < sVar1)));
|
|
|
|
uVar11 = psraw(uVar11,5);
|
|
|
|
uVar16 = psubsw(uVar7,uVar8);
|
|
|
|
uVar10 = paddsw(param_1[7],uVar6);
|
|
|
|
uVar6 = psubsw(uVar6,param_1[7]);
|
|
|
|
uVar7 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar16 = psraw(uVar16,5);
|
|
|
|
param_1[5] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x30
|
|
|
|
) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) - (0xff < sVar3)
|
|
|
|
),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar7 = psraw(uVar10,5);
|
|
|
|
uVar10 = psubsw(uVar13,param_1[0xf]);
|
|
|
|
uVar11 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar7 = psraw(uVar6,5);
|
|
|
|
param_1[7] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >>
|
|
|
|
0x30) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psubsw(uVar18,uVar19);
|
|
|
|
param_1[9] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x30
|
|
|
|
) - (0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) - (0xff < sVar3)
|
|
|
|
),(char)((uint)DAT_00833c30 >> 8)),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10) -
|
|
|
|
(0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar6 = paddsw(uVar16,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar6;
|
|
|
|
sVar2 = (short)((ulonglong)uVar6 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar6 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar6 >> 0x30);
|
|
|
|
uVar7 = psraw(uVar11,5);
|
|
|
|
param_1[0xb] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar6 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar6 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar6 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar6 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar7,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
uVar11 = psraw(uVar10,5);
|
|
|
|
param_1[0xd] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
uVar7 = paddsw(uVar11,_DAT_00833c20);
|
|
|
|
sVar1 = (short)uVar7;
|
|
|
|
sVar2 = (short)((ulonglong)uVar7 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar7 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar7 >> 0x30);
|
|
|
|
param_1[0xf] = CONCAT62(CONCAT51(CONCAT41(CONCAT31(CONCAT21(CONCAT11((char)((uint)DAT_00833c30 >>
|
|
|
|
0x18),
|
|
|
|
(0 < sVar4) * (sVar4 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar7 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar4)),
|
|
|
|
(char)((uint)DAT_00833c30 >> 0x10)),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar7 >> 0x20) -
|
|
|
|
(0xff < sVar3)),(char)((uint)DAT_00833c30 >> 8)
|
|
|
|
),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar7 >> 0x10)
|
|
|
|
- (0xff < sVar2)),
|
|
|
|
CONCAT11((char)DAT_00833c30,
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) * (char)uVar7 - (0xff < sVar1)));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00653df0 at 0x00653DF0 (size: 3349) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
void FUN_00653df0(undefined1 (*param_1) [16],undefined8 param_2,undefined1 param_3 [16],
|
|
|
|
undefined1 param_4 [16],undefined1 param_5 [16],undefined1 param_6 [16],
|
|
|
|
undefined1 param_7 [16],undefined1 param_8 [16],undefined1 param_9 [16])
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
undefined1 auVar9 [16];
|
|
|
|
undefined1 uVar10;
|
|
|
|
undefined1 uVar11;
|
|
|
|
undefined1 uVar12;
|
|
|
|
undefined1 uVar13;
|
|
|
|
undefined1 uVar14;
|
|
|
|
undefined1 uVar15;
|
|
|
|
undefined1 uVar16;
|
|
|
|
undefined1 uVar17;
|
|
|
|
undefined1 (*pauVar18) [16];
|
|
|
|
undefined1 auVar19 [16];
|
|
|
|
int iVar20;
|
|
|
|
int iVar26;
|
|
|
|
int iVar27;
|
|
|
|
undefined1 in_XMM1 [16];
|
|
|
|
undefined1 auVar21 [16];
|
|
|
|
int iVar28;
|
|
|
|
undefined1 auVar22 [16];
|
|
|
|
undefined1 auVar23 [16];
|
|
|
|
undefined1 auVar24 [16];
|
|
|
|
undefined1 auVar25 [16];
|
|
|
|
undefined1 auVar29 [16];
|
|
|
|
undefined1 auVar30 [16];
|
|
|
|
undefined1 auVar31 [16];
|
|
|
|
undefined1 auVar32 [16];
|
|
|
|
undefined1 auVar33 [16];
|
|
|
|
undefined1 auVar34 [16];
|
|
|
|
int iVar35;
|
|
|
|
int iVar37;
|
|
|
|
int iVar38;
|
|
|
|
undefined1 auVar36 [16];
|
|
|
|
int iVar39;
|
|
|
|
undefined1 auVar40 [16];
|
|
|
|
undefined1 in_XMM5 [16];
|
|
|
|
undefined1 auVar41 [16];
|
|
|
|
undefined1 auVar42 [16];
|
|
|
|
undefined1 auVar43 [16];
|
|
|
|
undefined1 auVar44 [16];
|
|
|
|
undefined1 auVar45 [16];
|
|
|
|
undefined1 auVar46 [16];
|
|
|
|
undefined1 auVar47 [16];
|
|
|
|
undefined1 auVar48 [16];
|
|
|
|
undefined1 auVar49 [16];
|
|
|
|
undefined1 auVar50 [16];
|
|
|
|
undefined1 auVar51 [16];
|
|
|
|
undefined1 auVar52 [16];
|
|
|
|
undefined1 auVar53 [16];
|
|
|
|
undefined1 auVar54 [16];
|
|
|
|
undefined1 auVar55 [16];
|
|
|
|
undefined1 auVar56 [16];
|
|
|
|
undefined1 auVar57 [16];
|
|
|
|
undefined1 auVar58 [16];
|
|
|
|
undefined1 auVar59 [16];
|
|
|
|
undefined1 auVar60 [16];
|
|
|
|
undefined1 auVar61 [16];
|
|
|
|
undefined1 auVar62 [16];
|
|
|
|
undefined4 unaff_retaddr;
|
|
|
|
undefined1 local_80 [128];
|
|
|
|
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18 = param_1;
|
|
|
|
if (((uint)param_1 & 0xf) != 0) {
|
|
|
|
pauVar18 = (undefined1 (*) [16])local_80;
|
|
|
|
}
|
|
|
|
if (((uint)param_1 & 0xf) == 0) {
|
|
|
|
auVar19 = *param_1;
|
|
|
|
auVar40 = param_1[4];
|
|
|
|
auVar21 = pshuflw(in_XMM1,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833e90,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833eb0,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833ea0);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833ec0);
|
|
|
|
auVar41 = pshuflw(in_XMM5,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833e90,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833eb0,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833ea0);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833ec0);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar30._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar30._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar30._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar30._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar22._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar22._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar22._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar22._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar21 = packssdw(auVar22,auVar30);
|
|
|
|
iVar35 = auVar59._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar59._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar59._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar59._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar51._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar51._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar51._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar51._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar42._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar42._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar42._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar42._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar42,auVar51);
|
|
|
|
*pauVar18 = auVar21;
|
|
|
|
pauVar18[4] = auVar41;
|
|
|
|
auVar19 = param_1[1];
|
|
|
|
auVar40 = param_1[7];
|
|
|
|
auVar21 = pshuflw(auVar21,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833ed0,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833ef0,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833ee0);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f00);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833ed0,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833ef0,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833ee0);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833f00);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar31._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar31._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar31._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar31._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar23._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar23._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar23._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar23._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar21 = packssdw(auVar23,auVar31);
|
|
|
|
iVar35 = auVar59._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar59._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar59._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar59._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar52._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar52._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar52._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar52._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar43._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar43._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar43._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar43._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar43,auVar52);
|
|
|
|
pauVar18[1] = auVar21;
|
|
|
|
pauVar18[7] = auVar41;
|
|
|
|
auVar19 = param_1[3];
|
|
|
|
auVar40 = param_1[5];
|
|
|
|
auVar21 = pshuflw(auVar21,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833f50,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833f70,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833f60);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f80);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833f50,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833f70,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833f60);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833f80);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar32._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar32._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar32._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar32._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar24._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar24._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar24._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar24._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar21 = packssdw(auVar24,auVar32);
|
|
|
|
iVar35 = auVar59._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar59._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar59._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar59._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar53._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar53._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar53._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar53._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar44._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar44._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar44._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar44._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar44,auVar53);
|
|
|
|
pauVar18[3] = auVar21;
|
|
|
|
pauVar18[5] = auVar41;
|
|
|
|
auVar19 = param_1[2];
|
|
|
|
auVar40 = param_1[6];
|
|
|
|
auVar21 = pshuflw(auVar21,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833f10,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833f30,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833f20);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f40);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833f10,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833f30,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833f20);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833f40);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar33._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar33._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar33._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar33._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar25._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar25._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar25._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar25._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar19 = packssdw(auVar25,auVar33);
|
|
|
|
iVar35 = auVar59._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar59._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar59._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar59._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar54._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar54._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar54._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar54._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar45._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar45._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar45._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar45._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar40 = packssdw(auVar45,auVar54);
|
|
|
|
pauVar18[2] = auVar19;
|
|
|
|
pauVar18[6] = auVar40;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
auVar19 = *param_1;
|
|
|
|
auVar40 = param_1[4];
|
|
|
|
auVar21._8_8_ = 0;
|
|
|
|
auVar21._0_8_ = *(ulonglong *)(param_1[4] + 8);
|
|
|
|
auVar21 = pshuflw(auVar21,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833e90,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833eb0,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833ea0);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833ec0);
|
|
|
|
auVar41 = pshuflw(in_XMM5,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833e90,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833eb0,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833ea0);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833ec0);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar60._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar60._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar60._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar60._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar19._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar19._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar19._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar19._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar19 = packssdw(auVar19,auVar60);
|
|
|
|
iVar35 = auVar59._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar59._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar59._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar59._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar55._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar55._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar55._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar55._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar46._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar46._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar46._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar46._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar46,auVar55);
|
|
|
|
*pauVar18 = auVar19;
|
|
|
|
pauVar18[4] = auVar41;
|
|
|
|
auVar19 = param_1[1];
|
|
|
|
auVar40 = param_1[7];
|
|
|
|
auVar29._8_8_ = 0;
|
|
|
|
auVar29._0_8_ = *(ulonglong *)(param_1[7] + 8);
|
|
|
|
auVar21 = pshuflw(auVar29,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833ed0,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833ef0,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833ee0);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f00);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833ed0,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar60 = pmaddwd(_DAT_00833ef0,auVar40);
|
|
|
|
auVar50 = pmaddwd(auVar41,_DAT_00833ee0);
|
|
|
|
auVar41 = pmaddwd(auVar40,_DAT_00833f00);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar61._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar61._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar61._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar61._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar40._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar40._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar40._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar40._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar19 = packssdw(auVar40,auVar61);
|
|
|
|
iVar35 = auVar60._0_4_ + auVar41._8_4_;
|
|
|
|
iVar37 = auVar60._4_4_ + auVar41._12_4_;
|
|
|
|
iVar38 = auVar60._8_4_ + auVar41._0_4_;
|
|
|
|
iVar39 = auVar60._12_4_ + auVar41._4_4_;
|
|
|
|
iVar20 = auVar50._8_4_ + auVar59._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar50._12_4_ + auVar59._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar50._0_4_ + auVar59._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar50._4_4_ + auVar59._12_4_ + iRam00833bfc;
|
|
|
|
auVar56._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar56._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar56._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar56._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar47._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar47._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar47._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar47._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar47,auVar56);
|
|
|
|
pauVar18[1] = auVar19;
|
|
|
|
pauVar18[7] = auVar41;
|
|
|
|
auVar19 = param_1[3];
|
|
|
|
auVar40 = param_1[5];
|
|
|
|
auVar36._8_8_ = 0;
|
|
|
|
auVar36._0_8_ = *(ulonglong *)(param_1[5] + 8);
|
|
|
|
auVar21 = pshuflw(auVar36,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833f50,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833f70,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833f60);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f80);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar59 = pmaddwd(_DAT_00833f50,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar60 = pmaddwd(_DAT_00833f70,auVar40);
|
|
|
|
auVar50 = pmaddwd(auVar41,_DAT_00833f60);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833f80);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar62._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar62._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar62._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar62._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar41._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar41._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar41._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar41._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar19 = packssdw(auVar41,auVar62);
|
|
|
|
iVar35 = auVar60._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar60._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar60._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar60._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar50._8_4_ + auVar59._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar50._12_4_ + auVar59._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar50._0_4_ + auVar59._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar50._4_4_ + auVar59._12_4_ + iRam00833bfc;
|
|
|
|
auVar57._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar57._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar57._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar57._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar48._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar48._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar48._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar48._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar41 = packssdw(auVar48,auVar57);
|
|
|
|
pauVar18[3] = auVar19;
|
|
|
|
pauVar18[5] = auVar41;
|
|
|
|
auVar19 = param_1[2];
|
|
|
|
auVar40 = param_1[6];
|
|
|
|
auVar50._8_8_ = 0;
|
|
|
|
auVar50._0_8_ = *(ulonglong *)(param_1[6] + 8);
|
|
|
|
auVar21 = pshuflw(auVar50,auVar19,0x88);
|
|
|
|
auVar19 = pshuflw(auVar19,auVar19,0xdd);
|
|
|
|
auVar21 = pshufhw(auVar21,auVar21,0x88);
|
|
|
|
auVar29 = pmaddwd(_DAT_00833f10,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0xdd);
|
|
|
|
auVar36 = pmaddwd(_DAT_00833f30,auVar19);
|
|
|
|
auVar21 = pmaddwd(auVar21,_DAT_00833f20);
|
|
|
|
auVar19 = pmaddwd(auVar19,_DAT_00833f40);
|
|
|
|
auVar41 = pshuflw(auVar41,auVar40,0x88);
|
|
|
|
auVar40 = pshuflw(auVar40,auVar40,0xdd);
|
|
|
|
auVar41 = pshufhw(auVar41,auVar41,0x88);
|
|
|
|
auVar50 = pmaddwd(_DAT_00833f10,auVar41);
|
|
|
|
auVar40 = pshufhw(auVar40,auVar40,0xdd);
|
|
|
|
auVar60 = pmaddwd(_DAT_00833f30,auVar40);
|
|
|
|
auVar41 = pmaddwd(auVar41,_DAT_00833f20);
|
|
|
|
auVar40 = pmaddwd(auVar40,_DAT_00833f40);
|
|
|
|
iVar35 = auVar36._0_4_ + auVar19._8_4_;
|
|
|
|
iVar37 = auVar36._4_4_ + auVar19._12_4_;
|
|
|
|
iVar38 = auVar36._8_4_ + auVar19._0_4_;
|
|
|
|
iVar39 = auVar36._12_4_ + auVar19._4_4_;
|
|
|
|
iVar20 = auVar21._8_4_ + auVar29._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar21._12_4_ + auVar29._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar21._0_4_ + auVar29._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar21._4_4_ + auVar29._12_4_ + iRam00833bfc;
|
|
|
|
auVar34._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar34._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar34._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar34._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar59._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar59._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar59._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar59._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar19 = packssdw(auVar59,auVar34);
|
|
|
|
iVar35 = auVar60._0_4_ + auVar40._8_4_;
|
|
|
|
iVar37 = auVar60._4_4_ + auVar40._12_4_;
|
|
|
|
iVar38 = auVar60._8_4_ + auVar40._0_4_;
|
|
|
|
iVar39 = auVar60._12_4_ + auVar40._4_4_;
|
|
|
|
iVar20 = auVar41._8_4_ + auVar50._0_4_ + (int)DAT_00833bf0;
|
|
|
|
iVar26 = auVar41._12_4_ + auVar50._4_4_ + DAT_00833bf0._4_4_;
|
|
|
|
iVar27 = auVar41._0_4_ + auVar50._8_4_ + iRam00833bf8;
|
|
|
|
iVar28 = auVar41._4_4_ + auVar50._12_4_ + iRam00833bfc;
|
|
|
|
auVar58._0_4_ = iVar20 - iVar35 >> 0xc;
|
|
|
|
auVar58._4_4_ = iVar26 - iVar37 >> 0xc;
|
|
|
|
auVar58._8_4_ = iVar27 - iVar38 >> 0xc;
|
|
|
|
auVar58._12_4_ = iVar28 - iVar39 >> 0xc;
|
|
|
|
auVar49._0_4_ = iVar20 + iVar35 >> 0xc;
|
|
|
|
auVar49._4_4_ = iVar26 + iVar37 >> 0xc;
|
|
|
|
auVar49._8_4_ = iVar27 + iVar38 >> 0xc;
|
|
|
|
auVar49._12_4_ = iVar28 + iVar39 >> 0xc;
|
|
|
|
auVar40 = packssdw(auVar49,auVar58);
|
|
|
|
pauVar18[2] = auVar19;
|
|
|
|
pauVar18[6] = auVar40;
|
|
|
|
}
|
|
|
|
if (pauVar18 != (undefined1 (*) [16])&stack0x00000000) {
|
|
|
|
auVar19 = pauVar18[5];
|
|
|
|
auVar40 = pauVar18[3];
|
|
|
|
auVar21 = pmulhw(auVar19,_DAT_00833c60);
|
|
|
|
auVar29 = pmulhw(_DAT_00833c60,auVar40);
|
|
|
|
auVar36 = pmulhw(pauVar18[7],_DAT_00833c40);
|
|
|
|
auVar21 = paddsw(auVar21,auVar19);
|
|
|
|
auVar41 = pmulhw(_DAT_00833c40,pauVar18[1]);
|
|
|
|
auVar29 = paddsw(auVar29,auVar40);
|
|
|
|
auVar40 = paddsw(auVar21,auVar40);
|
|
|
|
auVar21 = psubsw(auVar19,auVar29);
|
|
|
|
auVar50 = pmulhw(pauVar18[6],_DAT_00833c50);
|
|
|
|
auVar29 = pmulhw(_DAT_00833c50,pauVar18[2]);
|
|
|
|
auVar41 = psubsw(auVar41,pauVar18[7]);
|
|
|
|
auVar36 = paddsw(auVar36,pauVar18[1]);
|
|
|
|
auVar19 = paddsw(auVar40,auVar36);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833be0);
|
|
|
|
auVar40 = psubsw(auVar36,auVar40);
|
|
|
|
auVar59 = paddsw(auVar50,pauVar18[2]);
|
|
|
|
auVar29 = psubsw(auVar29,pauVar18[6]);
|
|
|
|
auVar36 = psubsw(auVar41,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar19,auVar19,0x1b);
|
|
|
|
auVar50 = paddsw(auVar36,_DAT_00833be0);
|
|
|
|
auVar21 = paddsw(auVar41,auVar21);
|
|
|
|
pauVar18[7] = auVar19;
|
|
|
|
auVar36 = paddsw(auVar40,auVar50);
|
|
|
|
auVar19 = pshufhw(auVar21,auVar21,0x1b);
|
|
|
|
auVar21 = pmulhw(_DAT_00833c70,auVar36);
|
|
|
|
pauVar18[3] = auVar19;
|
|
|
|
auVar40 = psubsw(auVar40,auVar50);
|
|
|
|
auVar19 = pmulhw(_DAT_00833c70,auVar40);
|
|
|
|
auVar21 = paddsw(auVar36,auVar21);
|
|
|
|
auVar41 = paddsw(pauVar18[4],*pauVar18);
|
|
|
|
auVar50 = psubsw(*pauVar18,pauVar18[4]);
|
|
|
|
auVar19 = paddsw(auVar19,auVar40);
|
|
|
|
auVar36 = pshufhw(auVar21 | _DAT_00833be0,auVar21 | _DAT_00833be0,0x1b);
|
|
|
|
auVar40 = paddsw(auVar41,auVar59);
|
|
|
|
auVar40 = paddsw(auVar40,_DAT_00833c00);
|
|
|
|
auVar21 = psubsw(auVar41,auVar59);
|
|
|
|
auVar59 = paddsw(auVar50,auVar29);
|
|
|
|
auVar41 = pshufhw(auVar40,auVar40,0x1b);
|
|
|
|
auVar59 = paddsw(auVar59,_DAT_00833c00);
|
|
|
|
auVar40 = paddsw(pauVar18[7],auVar41);
|
|
|
|
auVar60 = psraw(auVar40,5);
|
|
|
|
auVar40 = psubsw(auVar50,auVar29);
|
|
|
|
auVar50 = pshufhw(auVar59,auVar59,0x1b);
|
|
|
|
auVar21 = paddsw(auVar21,_DAT_00833c10);
|
|
|
|
auVar40 = paddsw(auVar40,_DAT_00833c10);
|
|
|
|
auVar59 = paddsw(auVar50,auVar36);
|
|
|
|
auVar29 = pshufhw(auVar21,auVar21,0x1b);
|
|
|
|
auVar21 = paddsw(auVar60,_DAT_00833c20);
|
|
|
|
sVar1 = auVar21._0_2_;
|
|
|
|
sVar2 = auVar21._2_2_;
|
|
|
|
sVar3 = auVar21._4_2_;
|
|
|
|
sVar4 = auVar21._6_2_;
|
|
|
|
sVar5 = auVar21._8_2_;
|
|
|
|
sVar6 = auVar21._10_2_;
|
|
|
|
sVar7 = auVar21._12_2_;
|
|
|
|
sVar8 = auVar21._14_2_;
|
|
|
|
(*pauVar18)[0] = (0 < sVar1) * (sVar1 < 0x100) * auVar21[0] - (0xff < sVar1);
|
|
|
|
(*pauVar18)[1] = (undefined1)DAT_00833c30;
|
|
|
|
(*pauVar18)[2] = (0 < sVar2) * (sVar2 < 0x100) * auVar21[2] - (0xff < sVar2);
|
|
|
|
(*pauVar18)[3] = DAT_00833c30._1_1_;
|
|
|
|
(*pauVar18)[4] = (0 < sVar3) * (sVar3 < 0x100) * auVar21[4] - (0xff < sVar3);
|
|
|
|
(*pauVar18)[5] = DAT_00833c30._2_1_;
|
|
|
|
(*pauVar18)[6] = (0 < sVar4) * (sVar4 < 0x100) * auVar21[6] - (0xff < sVar4);
|
|
|
|
(*pauVar18)[7] = DAT_00833c30._3_1_;
|
|
|
|
(*pauVar18)[8] = (0 < sVar5) * (sVar5 < 0x100) * auVar21[8] - (0xff < sVar5);
|
|
|
|
(*pauVar18)[9] = uRam00833c34;
|
|
|
|
(*pauVar18)[10] = (0 < sVar6) * (sVar6 < 0x100) * auVar21[10] - (0xff < sVar6);
|
|
|
|
(*pauVar18)[0xb] = uRam00833c35;
|
|
|
|
(*pauVar18)[0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar21[0xc] - (0xff < sVar7);
|
|
|
|
(*pauVar18)[0xd] = uRam00833c36;
|
|
|
|
(*pauVar18)[0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar21[0xe] - (0xff < sVar8);
|
|
|
|
(*pauVar18)[0xf] = uRam00833c37;
|
|
|
|
auVar59 = psraw(auVar59,5);
|
|
|
|
auVar21 = paddsw(auVar40,auVar19 | _DAT_00833be0);
|
|
|
|
auVar59 = paddsw(auVar59,_DAT_00833c20);
|
|
|
|
sVar1 = auVar59._0_2_;
|
|
|
|
sVar2 = auVar59._2_2_;
|
|
|
|
sVar3 = auVar59._4_2_;
|
|
|
|
sVar4 = auVar59._6_2_;
|
|
|
|
sVar5 = auVar59._8_2_;
|
|
|
|
sVar6 = auVar59._10_2_;
|
|
|
|
sVar7 = auVar59._12_2_;
|
|
|
|
sVar8 = auVar59._14_2_;
|
|
|
|
pauVar18[1][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar59[0] - (0xff < sVar1);
|
|
|
|
pauVar18[1][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[1][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar59[2] - (0xff < sVar2);
|
|
|
|
pauVar18[1][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[1][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar59[4] - (0xff < sVar3);
|
|
|
|
pauVar18[1][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[1][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar59[6] - (0xff < sVar4);
|
|
|
|
pauVar18[1][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[1][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar59[8] - (0xff < sVar5);
|
|
|
|
pauVar18[1][9] = uRam00833c34;
|
|
|
|
pauVar18[1][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar59[10] - (0xff < sVar6);
|
|
|
|
pauVar18[1][0xb] = uRam00833c35;
|
|
|
|
pauVar18[1][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar59[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[1][0xd] = uRam00833c36;
|
|
|
|
pauVar18[1][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar59[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[1][0xf] = uRam00833c37;
|
|
|
|
auVar21 = psraw(auVar21,5);
|
|
|
|
auVar59 = psubsw(auVar40,auVar19 | _DAT_00833be0);
|
|
|
|
auVar19 = pshufhw(auVar21,auVar21,0x1b);
|
|
|
|
auVar21 = paddsw(pauVar18[3],auVar29);
|
|
|
|
auVar40 = psubsw(auVar29,pauVar18[3]);
|
|
|
|
auVar59 = psraw(auVar59,5);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
pauVar18[2][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
pauVar18[2][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[2][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
pauVar18[2][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[2][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
pauVar18[2][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[2][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
pauVar18[2][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[2][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
pauVar18[2][9] = uRam00833c34;
|
|
|
|
pauVar18[2][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
pauVar18[2][0xb] = uRam00833c35;
|
|
|
|
pauVar18[2][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[2][0xd] = uRam00833c36;
|
|
|
|
pauVar18[2][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[2][0xf] = uRam00833c37;
|
|
|
|
auVar29 = psraw(auVar21,5);
|
|
|
|
auVar21 = psubsw(auVar41,pauVar18[7]);
|
|
|
|
auVar19 = psraw(auVar40,5);
|
|
|
|
auVar40 = paddsw(auVar29,_DAT_00833c20);
|
|
|
|
sVar1 = auVar40._0_2_;
|
|
|
|
sVar2 = auVar40._2_2_;
|
|
|
|
sVar3 = auVar40._4_2_;
|
|
|
|
sVar4 = auVar40._6_2_;
|
|
|
|
sVar5 = auVar40._8_2_;
|
|
|
|
sVar6 = auVar40._10_2_;
|
|
|
|
sVar7 = auVar40._12_2_;
|
|
|
|
sVar8 = auVar40._14_2_;
|
|
|
|
pauVar18[3][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar40[0] - (0xff < sVar1);
|
|
|
|
pauVar18[3][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[3][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar40[2] - (0xff < sVar2);
|
|
|
|
pauVar18[3][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[3][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar40[4] - (0xff < sVar3);
|
|
|
|
pauVar18[3][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[3][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar40[6] - (0xff < sVar4);
|
|
|
|
pauVar18[3][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[3][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar40[8] - (0xff < sVar5);
|
|
|
|
pauVar18[3][9] = uRam00833c34;
|
|
|
|
pauVar18[3][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar40[10] - (0xff < sVar6);
|
|
|
|
pauVar18[3][0xb] = uRam00833c35;
|
|
|
|
pauVar18[3][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar40[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[3][0xd] = uRam00833c36;
|
|
|
|
pauVar18[3][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar40[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[3][0xf] = uRam00833c37;
|
|
|
|
auVar40 = psubsw(auVar50,auVar36);
|
|
|
|
auVar29 = pshufhw(auVar59,auVar59,0x1b);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
pauVar18[4][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
pauVar18[4][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[4][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
pauVar18[4][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[4][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
pauVar18[4][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[4][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
pauVar18[4][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[4][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
pauVar18[4][9] = uRam00833c34;
|
|
|
|
pauVar18[4][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
pauVar18[4][0xb] = uRam00833c35;
|
|
|
|
pauVar18[4][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[4][0xd] = uRam00833c36;
|
|
|
|
pauVar18[4][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[4][0xf] = uRam00833c37;
|
|
|
|
auVar19 = psraw(auVar40,5);
|
|
|
|
auVar40 = paddsw(auVar29,_DAT_00833c20);
|
|
|
|
sVar1 = auVar40._0_2_;
|
|
|
|
sVar2 = auVar40._2_2_;
|
|
|
|
sVar3 = auVar40._4_2_;
|
|
|
|
sVar4 = auVar40._6_2_;
|
|
|
|
sVar5 = auVar40._8_2_;
|
|
|
|
sVar6 = auVar40._10_2_;
|
|
|
|
sVar7 = auVar40._12_2_;
|
|
|
|
sVar8 = auVar40._14_2_;
|
|
|
|
pauVar18[5][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar40[0] - (0xff < sVar1);
|
|
|
|
pauVar18[5][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[5][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar40[2] - (0xff < sVar2);
|
|
|
|
pauVar18[5][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[5][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar40[4] - (0xff < sVar3);
|
|
|
|
pauVar18[5][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[5][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar40[6] - (0xff < sVar4);
|
|
|
|
pauVar18[5][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[5][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar40[8] - (0xff < sVar5);
|
|
|
|
pauVar18[5][9] = uRam00833c34;
|
|
|
|
pauVar18[5][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar40[10] - (0xff < sVar6);
|
|
|
|
pauVar18[5][0xb] = uRam00833c35;
|
|
|
|
pauVar18[5][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar40[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[5][0xd] = uRam00833c36;
|
|
|
|
pauVar18[5][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar40[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[5][0xf] = uRam00833c37;
|
|
|
|
auVar40 = psraw(auVar21,5);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
pauVar18[6][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
pauVar18[6][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[6][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
pauVar18[6][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[6][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
pauVar18[6][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[6][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
pauVar18[6][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[6][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
pauVar18[6][9] = uRam00833c34;
|
|
|
|
pauVar18[6][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
pauVar18[6][0xb] = uRam00833c35;
|
|
|
|
pauVar18[6][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[6][0xd] = uRam00833c36;
|
|
|
|
pauVar18[6][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[6][0xf] = uRam00833c37;
|
|
|
|
auVar19 = paddsw(auVar40,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
pauVar18[7][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
pauVar18[7][1] = (undefined1)DAT_00833c30;
|
|
|
|
pauVar18[7][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
pauVar18[7][3] = DAT_00833c30._1_1_;
|
|
|
|
pauVar18[7][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
pauVar18[7][5] = DAT_00833c30._2_1_;
|
|
|
|
pauVar18[7][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
pauVar18[7][7] = DAT_00833c30._3_1_;
|
|
|
|
pauVar18[7][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
pauVar18[7][9] = uRam00833c34;
|
|
|
|
pauVar18[7][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
pauVar18[7][0xb] = uRam00833c35;
|
|
|
|
pauVar18[7][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
pauVar18[7][0xd] = uRam00833c36;
|
|
|
|
pauVar18[7][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
pauVar18[7][0xf] = uRam00833c37;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
auVar19 = pmulhw(param_7,_DAT_00833c60);
|
|
|
|
auVar40 = pmulhw(_DAT_00833c60,param_5);
|
|
|
|
auVar36 = pmulhw(param_9,_DAT_00833c40);
|
|
|
|
auVar19 = paddsw(auVar19,param_7);
|
|
|
|
auVar41 = pmulhw(_DAT_00833c40,param_3);
|
|
|
|
auVar40 = paddsw(auVar40,param_5);
|
|
|
|
auVar19 = paddsw(auVar19,param_5);
|
|
|
|
auVar21 = psubsw(param_7,auVar40);
|
|
|
|
auVar59 = pmulhw(param_8,_DAT_00833c50);
|
|
|
|
auVar29 = pmulhw(_DAT_00833c50,param_4);
|
|
|
|
auVar50 = psubsw(auVar41,param_9);
|
|
|
|
auVar36 = paddsw(auVar36,param_3);
|
|
|
|
auVar40 = paddsw(auVar19,auVar36);
|
|
|
|
auVar40 = paddsw(auVar40,_DAT_00833be0);
|
|
|
|
auVar41 = psubsw(auVar36,auVar19);
|
|
|
|
auVar61 = paddsw(auVar59,param_4);
|
|
|
|
auVar36 = psubsw(auVar29,param_8);
|
|
|
|
auVar29 = psubsw(auVar50,auVar21);
|
|
|
|
auVar19 = pshufhw(auVar40,auVar40,0x1b);
|
|
|
|
auVar40 = paddsw(auVar29,_DAT_00833be0);
|
|
|
|
auVar21 = paddsw(auVar50,auVar21);
|
|
|
|
auVar50 = paddsw(auVar41,auVar40);
|
|
|
|
auVar59 = pshufhw(auVar21,auVar21,0x1b);
|
|
|
|
auVar29 = pmulhw(_DAT_00833c70,auVar50);
|
|
|
|
auVar21 = psubsw(auVar41,auVar40);
|
|
|
|
auVar9._4_4_ = param_1;
|
|
|
|
auVar9._0_4_ = unaff_retaddr;
|
|
|
|
auVar9._8_8_ = param_2;
|
|
|
|
auVar40 = pmulhw(_DAT_00833c70,auVar21);
|
|
|
|
auVar29 = paddsw(auVar50,auVar29);
|
|
|
|
auVar50 = paddsw(param_6,auVar9);
|
|
|
|
auVar60 = psubsw(auVar9,param_6);
|
|
|
|
auVar40 = paddsw(auVar40,auVar21);
|
|
|
|
auVar41 = pshufhw(auVar29 | _DAT_00833be0,auVar29 | _DAT_00833be0,0x1b);
|
|
|
|
auVar40 = auVar40 | _DAT_00833be0;
|
|
|
|
auVar21 = paddsw(auVar50,auVar61);
|
|
|
|
auVar21 = paddsw(auVar21,_DAT_00833c00);
|
|
|
|
auVar29 = psubsw(auVar50,auVar61);
|
|
|
|
auVar61 = paddsw(auVar60,auVar36);
|
|
|
|
auVar50 = pshufhw(auVar21,auVar21,0x1b);
|
|
|
|
auVar61 = paddsw(auVar61,_DAT_00833c00);
|
|
|
|
auVar21 = paddsw(auVar19,auVar50);
|
|
|
|
auVar62 = psraw(auVar21,5);
|
|
|
|
auVar21 = psubsw(auVar60,auVar36);
|
|
|
|
auVar60 = pshufhw(auVar61,auVar61,0x1b);
|
|
|
|
auVar29 = paddsw(auVar29,_DAT_00833c10);
|
|
|
|
auVar21 = paddsw(auVar21,_DAT_00833c10);
|
|
|
|
auVar61 = paddsw(auVar60,auVar41);
|
|
|
|
auVar36 = pshufhw(auVar29,auVar29,0x1b);
|
|
|
|
auVar29 = paddsw(auVar62,_DAT_00833c20);
|
|
|
|
sVar1 = auVar29._0_2_;
|
|
|
|
sVar2 = auVar29._2_2_;
|
|
|
|
sVar3 = auVar29._4_2_;
|
|
|
|
sVar4 = auVar29._6_2_;
|
|
|
|
sVar5 = auVar29._8_2_;
|
|
|
|
sVar6 = auVar29._10_2_;
|
|
|
|
sVar7 = auVar29._12_2_;
|
|
|
|
sVar8 = auVar29._14_2_;
|
|
|
|
(*param_1)[0] = (0 < sVar1) * (sVar1 < 0x100) * auVar29[0] - (0xff < sVar1);
|
|
|
|
(*param_1)[1] = uVar10;
|
|
|
|
(*param_1)[2] = (0 < sVar2) * (sVar2 < 0x100) * auVar29[2] - (0xff < sVar2);
|
|
|
|
(*param_1)[3] = uVar11;
|
|
|
|
(*param_1)[4] = (0 < sVar3) * (sVar3 < 0x100) * auVar29[4] - (0xff < sVar3);
|
|
|
|
(*param_1)[5] = uVar12;
|
|
|
|
(*param_1)[6] = (0 < sVar4) * (sVar4 < 0x100) * auVar29[6] - (0xff < sVar4);
|
|
|
|
(*param_1)[7] = uVar13;
|
|
|
|
(*param_1)[8] = (0 < sVar5) * (sVar5 < 0x100) * auVar29[8] - (0xff < sVar5);
|
|
|
|
(*param_1)[9] = uVar14;
|
|
|
|
(*param_1)[10] = (0 < sVar6) * (sVar6 < 0x100) * auVar29[10] - (0xff < sVar6);
|
|
|
|
(*param_1)[0xb] = uVar15;
|
|
|
|
(*param_1)[0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar29[0xc] - (0xff < sVar7);
|
|
|
|
(*param_1)[0xd] = uVar16;
|
|
|
|
(*param_1)[0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar29[0xe] - (0xff < sVar8);
|
|
|
|
(*param_1)[0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar61 = psraw(auVar61,5);
|
|
|
|
auVar29 = paddsw(auVar21,auVar40);
|
|
|
|
auVar61 = paddsw(auVar61,_DAT_00833c20);
|
|
|
|
sVar1 = auVar61._0_2_;
|
|
|
|
sVar2 = auVar61._2_2_;
|
|
|
|
sVar3 = auVar61._4_2_;
|
|
|
|
sVar4 = auVar61._6_2_;
|
|
|
|
sVar5 = auVar61._8_2_;
|
|
|
|
sVar6 = auVar61._10_2_;
|
|
|
|
sVar7 = auVar61._12_2_;
|
|
|
|
sVar8 = auVar61._14_2_;
|
|
|
|
param_1[1][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar61[0] - (0xff < sVar1);
|
|
|
|
param_1[1][1] = uVar10;
|
|
|
|
param_1[1][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar61[2] - (0xff < sVar2);
|
|
|
|
param_1[1][3] = uVar11;
|
|
|
|
param_1[1][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar61[4] - (0xff < sVar3);
|
|
|
|
param_1[1][5] = uVar12;
|
|
|
|
param_1[1][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar61[6] - (0xff < sVar4);
|
|
|
|
param_1[1][7] = uVar13;
|
|
|
|
param_1[1][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar61[8] - (0xff < sVar5);
|
|
|
|
param_1[1][9] = uVar14;
|
|
|
|
param_1[1][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar61[10] - (0xff < sVar6);
|
|
|
|
param_1[1][0xb] = uVar15;
|
|
|
|
param_1[1][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar61[0xc] - (0xff < sVar7);
|
|
|
|
param_1[1][0xd] = uVar16;
|
|
|
|
param_1[1][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar61[0xe] - (0xff < sVar8);
|
|
|
|
param_1[1][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar29 = psraw(auVar29,5);
|
|
|
|
auVar61 = psubsw(auVar21,auVar40);
|
|
|
|
auVar40 = pshufhw(auVar29,auVar29,0x1b);
|
|
|
|
auVar29 = paddsw(auVar59,auVar36);
|
|
|
|
auVar21 = psubsw(auVar36,auVar59);
|
|
|
|
auVar36 = psraw(auVar61,5);
|
|
|
|
auVar40 = paddsw(auVar40,_DAT_00833c20);
|
|
|
|
sVar1 = auVar40._0_2_;
|
|
|
|
sVar2 = auVar40._2_2_;
|
|
|
|
sVar3 = auVar40._4_2_;
|
|
|
|
sVar4 = auVar40._6_2_;
|
|
|
|
sVar5 = auVar40._8_2_;
|
|
|
|
sVar6 = auVar40._10_2_;
|
|
|
|
sVar7 = auVar40._12_2_;
|
|
|
|
sVar8 = auVar40._14_2_;
|
|
|
|
param_1[2][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar40[0] - (0xff < sVar1);
|
|
|
|
param_1[2][1] = uVar10;
|
|
|
|
param_1[2][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar40[2] - (0xff < sVar2);
|
|
|
|
param_1[2][3] = uVar11;
|
|
|
|
param_1[2][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar40[4] - (0xff < sVar3);
|
|
|
|
param_1[2][5] = uVar12;
|
|
|
|
param_1[2][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar40[6] - (0xff < sVar4);
|
|
|
|
param_1[2][7] = uVar13;
|
|
|
|
param_1[2][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar40[8] - (0xff < sVar5);
|
|
|
|
param_1[2][9] = uVar14;
|
|
|
|
param_1[2][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar40[10] - (0xff < sVar6);
|
|
|
|
param_1[2][0xb] = uVar15;
|
|
|
|
param_1[2][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar40[0xc] - (0xff < sVar7);
|
|
|
|
param_1[2][0xd] = uVar16;
|
|
|
|
param_1[2][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar40[0xe] - (0xff < sVar8);
|
|
|
|
param_1[2][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar40 = psraw(auVar29,5);
|
|
|
|
auVar29 = psubsw(auVar50,auVar19);
|
|
|
|
auVar19 = psraw(auVar21,5);
|
|
|
|
auVar40 = paddsw(auVar40,_DAT_00833c20);
|
|
|
|
sVar1 = auVar40._0_2_;
|
|
|
|
sVar2 = auVar40._2_2_;
|
|
|
|
sVar3 = auVar40._4_2_;
|
|
|
|
sVar4 = auVar40._6_2_;
|
|
|
|
sVar5 = auVar40._8_2_;
|
|
|
|
sVar6 = auVar40._10_2_;
|
|
|
|
sVar7 = auVar40._12_2_;
|
|
|
|
sVar8 = auVar40._14_2_;
|
|
|
|
param_1[3][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar40[0] - (0xff < sVar1);
|
|
|
|
param_1[3][1] = uVar10;
|
|
|
|
param_1[3][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar40[2] - (0xff < sVar2);
|
|
|
|
param_1[3][3] = uVar11;
|
|
|
|
param_1[3][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar40[4] - (0xff < sVar3);
|
|
|
|
param_1[3][5] = uVar12;
|
|
|
|
param_1[3][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar40[6] - (0xff < sVar4);
|
|
|
|
param_1[3][7] = uVar13;
|
|
|
|
param_1[3][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar40[8] - (0xff < sVar5);
|
|
|
|
param_1[3][9] = uVar14;
|
|
|
|
param_1[3][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar40[10] - (0xff < sVar6);
|
|
|
|
param_1[3][0xb] = uVar15;
|
|
|
|
param_1[3][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar40[0xc] - (0xff < sVar7);
|
|
|
|
param_1[3][0xd] = uVar16;
|
|
|
|
param_1[3][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar40[0xe] - (0xff < sVar8);
|
|
|
|
param_1[3][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar40 = psubsw(auVar60,auVar41);
|
|
|
|
auVar21 = pshufhw(auVar36,auVar36,0x1b);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
param_1[4][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
param_1[4][1] = uVar10;
|
|
|
|
param_1[4][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
param_1[4][3] = uVar11;
|
|
|
|
param_1[4][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
param_1[4][5] = uVar12;
|
|
|
|
param_1[4][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
param_1[4][7] = uVar13;
|
|
|
|
param_1[4][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
param_1[4][9] = uVar14;
|
|
|
|
param_1[4][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
param_1[4][0xb] = uVar15;
|
|
|
|
param_1[4][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
param_1[4][0xd] = uVar16;
|
|
|
|
param_1[4][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
param_1[4][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar19 = psraw(auVar40,5);
|
|
|
|
auVar40 = paddsw(auVar21,_DAT_00833c20);
|
|
|
|
sVar1 = auVar40._0_2_;
|
|
|
|
sVar2 = auVar40._2_2_;
|
|
|
|
sVar3 = auVar40._4_2_;
|
|
|
|
sVar4 = auVar40._6_2_;
|
|
|
|
sVar5 = auVar40._8_2_;
|
|
|
|
sVar6 = auVar40._10_2_;
|
|
|
|
sVar7 = auVar40._12_2_;
|
|
|
|
sVar8 = auVar40._14_2_;
|
|
|
|
param_1[5][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar40[0] - (0xff < sVar1);
|
|
|
|
param_1[5][1] = uVar10;
|
|
|
|
param_1[5][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar40[2] - (0xff < sVar2);
|
|
|
|
param_1[5][3] = uVar11;
|
|
|
|
param_1[5][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar40[4] - (0xff < sVar3);
|
|
|
|
param_1[5][5] = uVar12;
|
|
|
|
param_1[5][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar40[6] - (0xff < sVar4);
|
|
|
|
param_1[5][7] = uVar13;
|
|
|
|
param_1[5][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar40[8] - (0xff < sVar5);
|
|
|
|
param_1[5][9] = uVar14;
|
|
|
|
param_1[5][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar40[10] - (0xff < sVar6);
|
|
|
|
param_1[5][0xb] = uVar15;
|
|
|
|
param_1[5][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar40[0xc] - (0xff < sVar7);
|
|
|
|
param_1[5][0xd] = uVar16;
|
|
|
|
param_1[5][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar40[0xe] - (0xff < sVar8);
|
|
|
|
param_1[5][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar40 = psraw(auVar29,5);
|
|
|
|
auVar19 = paddsw(auVar19,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
param_1[6][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
param_1[6][1] = uVar10;
|
|
|
|
param_1[6][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
param_1[6][3] = uVar11;
|
|
|
|
param_1[6][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
param_1[6][5] = uVar12;
|
|
|
|
param_1[6][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
param_1[6][7] = uVar13;
|
|
|
|
param_1[6][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
param_1[6][9] = uVar14;
|
|
|
|
param_1[6][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
param_1[6][0xb] = uVar15;
|
|
|
|
param_1[6][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
param_1[6][0xd] = uVar16;
|
|
|
|
param_1[6][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
param_1[6][0xf] = uVar17;
|
|
|
|
uVar17 = uRam00833c37;
|
|
|
|
uVar16 = uRam00833c36;
|
|
|
|
uVar15 = uRam00833c35;
|
|
|
|
uVar14 = uRam00833c34;
|
|
|
|
uVar13 = DAT_00833c30._3_1_;
|
|
|
|
uVar12 = DAT_00833c30._2_1_;
|
|
|
|
uVar11 = DAT_00833c30._1_1_;
|
|
|
|
uVar10 = (undefined1)DAT_00833c30;
|
|
|
|
auVar19 = paddsw(auVar40,_DAT_00833c20);
|
|
|
|
sVar1 = auVar19._0_2_;
|
|
|
|
sVar2 = auVar19._2_2_;
|
|
|
|
sVar3 = auVar19._4_2_;
|
|
|
|
sVar4 = auVar19._6_2_;
|
|
|
|
sVar5 = auVar19._8_2_;
|
|
|
|
sVar6 = auVar19._10_2_;
|
|
|
|
sVar7 = auVar19._12_2_;
|
|
|
|
sVar8 = auVar19._14_2_;
|
|
|
|
param_1[7][0] = (0 < sVar1) * (sVar1 < 0x100) * auVar19[0] - (0xff < sVar1);
|
|
|
|
param_1[7][1] = uVar10;
|
|
|
|
param_1[7][2] = (0 < sVar2) * (sVar2 < 0x100) * auVar19[2] - (0xff < sVar2);
|
|
|
|
param_1[7][3] = uVar11;
|
|
|
|
param_1[7][4] = (0 < sVar3) * (sVar3 < 0x100) * auVar19[4] - (0xff < sVar3);
|
|
|
|
param_1[7][5] = uVar12;
|
|
|
|
param_1[7][6] = (0 < sVar4) * (sVar4 < 0x100) * auVar19[6] - (0xff < sVar4);
|
|
|
|
param_1[7][7] = uVar13;
|
|
|
|
param_1[7][8] = (0 < sVar5) * (sVar5 < 0x100) * auVar19[8] - (0xff < sVar5);
|
|
|
|
param_1[7][9] = uVar14;
|
|
|
|
param_1[7][10] = (0 < sVar6) * (sVar6 < 0x100) * auVar19[10] - (0xff < sVar6);
|
|
|
|
param_1[7][0xb] = uVar15;
|
|
|
|
param_1[7][0xc] = (0 < sVar7) * (sVar7 < 0x100) * auVar19[0xc] - (0xff < sVar7);
|
|
|
|
param_1[7][0xd] = uVar16;
|
|
|
|
param_1[7][0xe] = (0 < sVar8) * (sVar8 < 0x100) * auVar19[0xe] - (0xff < sVar8);
|
|
|
|
param_1[7][0xf] = uVar17;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00654b10 at 0x00654B10 (size: 123) ---
|
|
|
|
|
|
longlong __fastcall
|
|
|
|
FUN_00654b10(undefined4 param_1,uint param_2,longlong *param_3,int param_4,int param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
bool bVar1;
|
|
|
|
char cVar2;
|
|
|
|
char *pcVar3;
|
|
|
|
char *pcVar4;
|
|
|
|
int iVar5;
|
|
|
|
int iVar6;
|
|
|
|
longlong lVar7;
|
|
|
|
|
|
|
|
pcVar4 = *(char **)(param_3 + 2);
|
|
|
|
if (*(int *)((int)param_3 + 0xc) != 0) {
|
|
|
|
lVar7 = *param_3;
|
|
|
|
pcVar3 = pcVar4;
|
|
|
|
iVar5 = *(int *)((int)param_3 + 0xc);
|
|
|
|
do {
|
|
|
|
cVar2 = (char)((ulonglong)lVar7 >> 0x38);
|
|
|
|
*pcVar3 = cVar2;
|
|
|
|
pcVar4 = pcVar3 + 1;
|
|
|
|
if (cVar2 == -1) {
|
|
|
|
*pcVar4 = '\0';
|
|
|
|
*(int *)((int)param_3 + 0x1c) = *(int *)((int)param_3 + 0x1c) + 1;
|
|
|
|
pcVar4 = pcVar3 + 2;
|
|
|
|
}
|
|
|
|
*(int *)((int)param_3 + 0x1c) = *(int *)((int)param_3 + 0x1c) + 1;
|
|
|
|
lVar7 = lVar7 << 8;
|
|
|
|
iVar6 = iVar5 + -8;
|
|
|
|
bVar1 = 7 < iVar5;
|
|
|
|
pcVar3 = pcVar4;
|
|
|
|
iVar5 = iVar6;
|
|
|
|
} while (iVar6 != 0 && bVar1);
|
|
|
|
*(undefined4 *)((int)param_3 + 0xc) = 0;
|
|
|
|
*param_3 = 0;
|
|
|
|
}
|
|
|
|
iVar5 = 0;
|
|
|
|
if (param_4 == 0) {
|
|
|
|
*(char **)(param_3 + 2) = pcVar4;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
do {
|
|
|
|
pcVar3 = (char *)(iVar5 + param_4);
|
|
|
|
iVar5 = iVar5 + 1;
|
|
|
|
*pcVar4 = *pcVar3;
|
|
|
|
pcVar4 = pcVar4 + 1;
|
|
|
|
} while (iVar5 != param_5);
|
|
|
|
}
|
|
|
|
*(char **)(param_3 + 2) = pcVar4;
|
|
|
|
return (ulonglong)param_2 << 0x20;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00654b90 at 0x00654B90 (size: 627) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00654b90(undefined4 param_1,undefined4 param_2,uint param_3,int param_4,ulonglong *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
uint uVar3;
|
|
|
|
uint *puVar4;
|
|
|
|
uint *puVar5;
|
|
|
|
char cVar6;
|
|
|
|
char cVar8;
|
|
|
|
char cVar9;
|
|
|
|
byte bVar10;
|
|
|
|
undefined8 uVar7;
|
|
|
|
ulonglong uVar11;
|
|
|
|
ulonglong uVar12;
|
|
|
|
|
|
|
|
param_4 = param_4 + *(int *)((int)param_5 + 0xc);
|
|
|
|
*(int *)((int)param_5 + 0xc) = param_4;
|
|
|
|
uVar2 = 0;
|
|
|
|
uVar12 = *param_5 | (ulonglong)param_3 << (ulonglong)(0x40 - param_4);
|
|
|
|
if (0x20 < param_4) {
|
|
|
|
uVar2 = 0xffffffe4;
|
|
|
|
puVar4 = *(uint **)(param_5 + 2);
|
|
|
|
if (3 < (uint)((int)param_5[3] - (int)*(uint **)(param_5 + 2))) {
|
|
|
|
do {
|
|
|
|
while( true ) {
|
|
|
|
*(int *)((int)param_5 + 0x1c) = *(int *)((int)param_5 + 0x1c) + 4;
|
|
|
|
cVar6 = (char)(uVar12 >> 0x20);
|
|
|
|
cVar8 = (char)(uVar12 >> 0x28);
|
|
|
|
cVar9 = (char)(uVar12 >> 0x30);
|
|
|
|
bVar10 = (byte)(uVar12 >> 0x38);
|
|
|
|
puVar5 = puVar4 + 1;
|
|
|
|
uVar3 = CONCAT13(-(bVar10 == 0xff),
|
|
|
|
CONCAT12(-(cVar9 == -1),CONCAT11(-(cVar8 == -1),-(cVar6 == -1))));
|
|
|
|
if (uVar3 == 0) {
|
|
|
|
param_4 = param_4 + -0x20;
|
|
|
|
uVar7 = CONCAT44((int)CONCAT11(cVar9,bVar10),(int)CONCAT11(cVar6,cVar8));
|
|
|
|
uVar7 = packssdw(uVar7,uVar7);
|
|
|
|
uVar12 = uVar12 << 0x20;
|
|
|
|
*puVar4 = CONCAT22((short)uVar7,(short)((ulonglong)uVar7 >> 0x10));
|
|
|
|
goto LAB_00654df1;
|
|
|
|
}
|
|
|
|
uVar3 = uVar3 >> 8;
|
|
|
|
if (0xfeffff < uVar3) break;
|
|
|
|
uVar1 = (uint)(uVar12 >> 0x20);
|
|
|
|
if (uVar3 < 0xff00) {
|
|
|
|
if (uVar3 == 0) {
|
|
|
|
uVar7 = CONCAT44((int)CONCAT11(cVar9,bVar10),(int)CONCAT11(cVar6,cVar8));
|
|
|
|
uVar7 = packssdw(uVar7,uVar7);
|
|
|
|
uVar12 = (uVar12 << 0x20) >> 8;
|
|
|
|
*puVar4 = CONCAT22((short)uVar7,(short)((ulonglong)uVar7 >> 0x10));
|
|
|
|
goto joined_r0x00654ca0;
|
|
|
|
}
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
uVar12 = uVar12 << 0x18;
|
|
|
|
*puVar4 = (uint)((ulonglong)(DAT_00833f98 << 0x18) >> 0x10) | (uint)bVar10 |
|
|
|
|
uVar1 >> 8 & (uint)DAT_00833f98;
|
|
|
|
}
|
|
|
|
else if (uVar3 == 0xffff) {
|
|
|
|
uVar12 = (uVar12 << 0x18) >> 8;
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
*puVar4 = (uint)bVar10 | (uint)_DAT_00833fa8;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar12 = uVar12 << 0x18;
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
*puVar4 = (uint)bVar10 | (uVar1 >> 8) << 0x18 | (uint)DAT_00833f98;
|
|
|
|
}
|
|
|
|
joined_r0x00654ca0:
|
|
|
|
puVar4 = puVar5;
|
|
|
|
if (param_4 < 0x20) goto LAB_00654df1;
|
|
|
|
}
|
|
|
|
if (uVar3 == 0xff0000) {
|
|
|
|
uVar12 = uVar12 << 0x18;
|
|
|
|
*puVar4 = (uint)CONCAT11(cVar8,cVar9) << 0x10 | (uint)_DAT_00833f90;
|
|
|
|
joined_r0x00654ca0:
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
goto joined_r0x00654ca0;
|
|
|
|
}
|
|
|
|
if (uVar3 == 0xffff00) {
|
|
|
|
uVar12 = uVar12 << 0x10;
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
*puVar4 = (uint)DAT_00833fa0;
|
|
|
|
goto joined_r0x00654ca0;
|
|
|
|
}
|
|
|
|
uVar11 = uVar12 >> 0x30;
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
uVar12 = (uVar12 << 0x18) >> 8;
|
|
|
|
*puVar4 = (uint)(uVar11 << 0x10) | (uint)_DAT_00833f90;
|
|
|
|
puVar4 = puVar5;
|
|
|
|
} while (0x1f < param_4);
|
|
|
|
LAB_00654df1:
|
|
|
|
uVar2 = 0;
|
|
|
|
*(uint **)(param_5 + 2) = puVar5;
|
|
|
|
*(int *)((int)param_5 + 0xc) = param_4;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*param_5 = uVar12;
|
|
|
|
return CONCAT44(param_2,uVar2);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00654e10 at 0x00654E10 (size: 646) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00654e10(undefined4 param_1,undefined4 param_2,uint param_3,int param_4,ulonglong *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
byte bVar2;
|
|
|
|
int iVar3;
|
|
|
|
uint uVar4;
|
|
|
|
ulonglong *puVar5;
|
|
|
|
ulonglong *puVar6;
|
|
|
|
char cVar7;
|
|
|
|
char cVar9;
|
|
|
|
char cVar10;
|
|
|
|
char cVar11;
|
|
|
|
ulonglong extraout_MM0;
|
|
|
|
undefined8 uVar8;
|
|
|
|
char cVar12;
|
|
|
|
char extraout_MM1_Ba;
|
|
|
|
char cVar13;
|
|
|
|
char extraout_MM1_Bb;
|
|
|
|
char cVar14;
|
|
|
|
char extraout_MM1_Bc;
|
|
|
|
char cVar15;
|
|
|
|
char extraout_MM1_Bd;
|
|
|
|
undefined1 uVar16;
|
|
|
|
undefined1 uVar17;
|
|
|
|
ulonglong uVar18;
|
|
|
|
ulonglong uVar19;
|
|
|
|
|
|
|
|
param_4 = param_4 + *(int *)((int)param_5 + 0xc);
|
|
|
|
cVar12 = -1;
|
|
|
|
cVar13 = -1;
|
|
|
|
cVar14 = -1;
|
|
|
|
cVar15 = -1;
|
|
|
|
*(int *)((int)param_5 + 0xc) = param_4;
|
|
|
|
uVar18 = *param_5 | (ulonglong)param_3 << (ulonglong)(0x40 - param_4);
|
|
|
|
if (0x20 < param_4) {
|
|
|
|
puVar5 = *(ulonglong **)(param_5 + 2);
|
|
|
|
uVar19 = uVar18;
|
|
|
|
if ((int)param_5[3] - (int)*(ulonglong **)(param_5 + 2) < 0x17) {
|
|
|
|
iVar3 = FUN_00622a10(param_5);
|
|
|
|
uVar18 = uVar19;
|
|
|
|
if (iVar3 != 0) goto LAB_0065508c;
|
|
|
|
*(ulonglong **)(param_5 + 3) = param_5 + 0x208;
|
|
|
|
puVar5 = param_5 + 8;
|
|
|
|
uVar18 = extraout_MM0;
|
|
|
|
cVar12 = extraout_MM1_Ba;
|
|
|
|
cVar13 = extraout_MM1_Bb;
|
|
|
|
cVar14 = extraout_MM1_Bc;
|
|
|
|
cVar15 = extraout_MM1_Bd;
|
|
|
|
}
|
|
|
|
do {
|
|
|
|
while( true ) {
|
|
|
|
*(int *)((int)param_5 + 0x1c) = *(int *)((int)param_5 + 0x1c) + 4;
|
|
|
|
cVar7 = (char)(uVar18 >> 0x20);
|
|
|
|
cVar9 = (char)(uVar18 >> 0x28);
|
|
|
|
cVar10 = (char)(uVar18 >> 0x30);
|
|
|
|
cVar11 = (char)(uVar18 >> 0x38);
|
|
|
|
puVar6 = (ulonglong *)((int)puVar5 + 4);
|
|
|
|
uVar4 = CONCAT13(-(cVar15 == cVar11),
|
|
|
|
CONCAT12(-(cVar14 == cVar10),
|
|
|
|
CONCAT11(-(cVar13 == cVar9),-(cVar12 == cVar7))));
|
|
|
|
if (uVar4 == 0) {
|
|
|
|
param_4 = param_4 + -0x20;
|
|
|
|
uVar8 = CONCAT44((int)CONCAT11(cVar10,cVar11),(int)CONCAT11(cVar7,cVar9));
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar18 = uVar19 << 0x20;
|
|
|
|
*(uint *)puVar5 = CONCAT22((short)uVar8,(short)((ulonglong)uVar8 >> 0x10));
|
|
|
|
goto LAB_00655084;
|
|
|
|
}
|
|
|
|
uVar4 = uVar4 >> 8;
|
|
|
|
uVar16 = (undefined1)(uVar19 >> 0x30);
|
|
|
|
uVar17 = (undefined1)(uVar19 >> 0x28);
|
|
|
|
if (0xfeffff < uVar4) break;
|
|
|
|
uVar1 = (uint)(uVar19 >> 0x20);
|
|
|
|
bVar2 = (byte)(uVar19 >> 0x38);
|
|
|
|
if (uVar4 < 0xff00) {
|
|
|
|
if (uVar4 == 0) {
|
|
|
|
uVar8 = CONCAT44((int)CONCAT11(uVar16,bVar2),
|
|
|
|
(int)CONCAT11((char)(uVar19 >> 0x20),uVar17));
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar18 = (uVar19 << 0x20) >> 8;
|
|
|
|
*(uint *)puVar5 = CONCAT22((short)uVar8,(short)((ulonglong)uVar8 >> 0x10));
|
|
|
|
goto joined_r0x00654f33;
|
|
|
|
}
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
uVar18 = uVar19 << 0x18;
|
|
|
|
*(uint *)puVar5 =
|
|
|
|
(uint)((ulonglong)(DAT_00833f98 << 0x18) >> 0x10) | (uint)bVar2 |
|
|
|
|
uVar1 >> 8 & (uint)DAT_00833f98;
|
|
|
|
}
|
|
|
|
else if (uVar4 == 0xffff) {
|
|
|
|
uVar18 = (uVar19 << 0x18) >> 8;
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
*(uint *)puVar5 = (uint)bVar2 | (uint)_DAT_00833fa8;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar18 = uVar19 << 0x18;
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
*(uint *)puVar5 = (uint)bVar2 | (uVar1 >> 8) << 0x18 | (uint)DAT_00833f98;
|
|
|
|
}
|
|
|
|
joined_r0x00654f33:
|
|
|
|
cVar15 = -1;
|
|
|
|
cVar14 = -1;
|
|
|
|
cVar13 = -1;
|
|
|
|
cVar12 = -1;
|
|
|
|
puVar5 = puVar6;
|
|
|
|
uVar19 = uVar18;
|
|
|
|
if (param_4 < 0x20) goto LAB_00655084;
|
|
|
|
}
|
|
|
|
if (uVar4 == 0xff0000) {
|
|
|
|
uVar18 = uVar19 << 0x18;
|
|
|
|
*(uint *)puVar5 = (uint)CONCAT11(uVar17,uVar16) << 0x10 | (uint)_DAT_00833f90;
|
|
|
|
joined_r0x00654f33:
|
|
|
|
param_4 = param_4 + -0x18;
|
|
|
|
goto joined_r0x00654f33;
|
|
|
|
}
|
|
|
|
if (uVar4 == 0xffff00) {
|
|
|
|
uVar18 = uVar19 << 0x10;
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
*(int *)puVar5 = (int)DAT_00833fa0;
|
|
|
|
goto joined_r0x00654f33;
|
|
|
|
}
|
|
|
|
param_4 = param_4 + -0x10;
|
|
|
|
uVar18 = (uVar19 << 0x18) >> 8;
|
|
|
|
*(uint *)puVar5 = (uint)((uVar19 >> 0x30) << 0x10) | (uint)_DAT_00833f90;
|
|
|
|
cVar12 = -1;
|
|
|
|
cVar13 = -1;
|
|
|
|
cVar14 = -1;
|
|
|
|
cVar15 = -1;
|
|
|
|
puVar5 = puVar6;
|
|
|
|
uVar19 = uVar18;
|
|
|
|
} while (0x1f < param_4);
|
|
|
|
LAB_00655084:
|
|
|
|
*(ulonglong **)(param_5 + 2) = puVar6;
|
|
|
|
*(int *)((int)param_5 + 0xc) = param_4;
|
|
|
|
}
|
|
|
|
iVar3 = 0;
|
|
|
|
LAB_0065508c:
|
|
|
|
*param_5 = uVar18;
|
|
|
|
return CONCAT44(param_2,iVar3);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006550a0 at 0x006550A0 (size: 707) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_006550a0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,undefined8 *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar3;
|
|
|
|
ulonglong uVar4;
|
|
|
|
undefined8 uVar5;
|
|
|
|
undefined2 uVar6;
|
|
|
|
undefined8 uVar8;
|
|
|
|
undefined8 uVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
undefined8 uVar14;
|
|
|
|
ulonglong uVar7;
|
|
|
|
|
|
|
|
iVar3 = 8;
|
|
|
|
do {
|
|
|
|
uVar5 = *param_3;
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fb0);
|
|
|
|
uVar8 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
uVar9 = pmaddwd(uVar4,DAT_00833fb8);
|
|
|
|
uVar10 = pmaddwd(uVar7,DAT_00833fb8);
|
|
|
|
uVar11 = pmaddwd(uVar4,DAT_00833fc0);
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar12 = pmaddwd(uVar7,DAT_00833fc0);
|
|
|
|
uVar5 = CONCAT44(((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20)) - iVar2 >> 8,
|
|
|
|
((int)uVar5 + (int)((ulonglong)uVar5 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar8 = packssdw(uVar5,uVar5);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) + (int)uVar11 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar10 = CONCAT44((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar10 >> 0x20) + (int)uVar10 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar9 = packssdw(uVar5,uVar5);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 6);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar12 = pmaddwd(uVar4,DAT_00833fb0);
|
|
|
|
uVar13 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fb8);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fb8);
|
|
|
|
uVar12 = CONCAT44(((int)((ulonglong)uVar13 >> 0x20) + (int)uVar13) - iVar2 >> 8,
|
|
|
|
((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar12 = packssdw(uVar12,uVar12);
|
|
|
|
uVar13 = pmaddwd(uVar4,DAT_00833fc0);
|
|
|
|
uVar14 = pmaddwd(uVar7,DAT_00833fc0);
|
|
|
|
*param_5 = CONCAT44((int)uVar12,(int)uVar8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar5 + (int)((ulonglong)uVar5 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar8 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = packssdw(uVar5,uVar5);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
*param_6 = CONCAT44(CONCAT22((short)uVar8,(short)uVar5),CONCAT22((short)uVar10,(short)uVar9));
|
|
|
|
*param_7 = CONCAT44(CONCAT22((short)((ulonglong)uVar8 >> 0x10),(short)((ulonglong)uVar5 >> 0x10)
|
|
|
|
),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar9 >> 0x10)));
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 0xc);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fb0);
|
|
|
|
uVar8 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
uVar9 = pmaddwd(uVar4,DAT_00833fb8);
|
|
|
|
uVar10 = pmaddwd(uVar7,DAT_00833fb8);
|
|
|
|
uVar11 = pmaddwd(uVar4,DAT_00833fc0);
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar12 = pmaddwd(uVar7,DAT_00833fc0);
|
|
|
|
uVar5 = CONCAT44(((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20)) - iVar2 >> 8,
|
|
|
|
((int)uVar5 + (int)((ulonglong)uVar5 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar8 = packssdw(uVar5,uVar5);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar9 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) + (int)uVar11 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = CONCAT44((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar10 >> 0x20) + (int)uVar10 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar10 = packssdw(uVar9,uVar9);
|
|
|
|
uVar9 = packssdw(uVar5,uVar5);
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 0x12);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar12 = pmaddwd(uVar4,DAT_00833fb0);
|
|
|
|
uVar13 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fb8);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fb8);
|
|
|
|
uVar12 = CONCAT44(((int)((ulonglong)uVar13 >> 0x20) + (int)uVar13) - iVar2 >> 8,
|
|
|
|
((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar12 = packssdw(uVar12,uVar12);
|
|
|
|
uVar13 = pmaddwd(uVar4,DAT_00833fc0);
|
|
|
|
uVar14 = pmaddwd(uVar7,DAT_00833fc0);
|
|
|
|
param_5[1] = CONCAT44((int)uVar12,(int)uVar8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar5 + (int)((ulonglong)uVar5 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar8 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = packssdw(uVar5,uVar5);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6[1] = CONCAT44(CONCAT22((short)uVar8,(short)uVar5),CONCAT22((short)uVar9,(short)uVar10));
|
|
|
|
param_7[1] = CONCAT44(CONCAT22((short)((ulonglong)uVar8 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar5 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar9 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar10 >> 0x10)));
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_7 = param_7 + 2;
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
} while (iVar3 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00655370 at 0x00655370 (size: 707) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00655370(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,undefined8 *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar3;
|
|
|
|
ulonglong uVar4;
|
|
|
|
undefined8 uVar5;
|
|
|
|
undefined2 uVar6;
|
|
|
|
undefined8 uVar8;
|
|
|
|
undefined8 uVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
undefined8 uVar14;
|
|
|
|
ulonglong uVar7;
|
|
|
|
|
|
|
|
iVar3 = 8;
|
|
|
|
do {
|
|
|
|
uVar5 = *param_3;
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fc8);
|
|
|
|
uVar8 = pmaddwd(uVar7,DAT_00833fc8);
|
|
|
|
uVar9 = pmaddwd(uVar4,DAT_00833fd0);
|
|
|
|
uVar10 = pmaddwd(uVar7,DAT_00833fd0);
|
|
|
|
uVar11 = pmaddwd(uVar4,DAT_00833fd8);
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar12 = pmaddwd(uVar7,DAT_00833fd8);
|
|
|
|
uVar5 = CONCAT44(((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20)) - iVar2 >> 8,
|
|
|
|
((int)uVar5 + (int)((ulonglong)uVar5 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar8 = packssdw(uVar5,uVar5);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) + (int)uVar11 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar10 = CONCAT44((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar10 >> 0x20) + (int)uVar10 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar9 = packssdw(uVar5,uVar5);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 6);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar12 = pmaddwd(uVar4,DAT_00833fc8);
|
|
|
|
uVar13 = pmaddwd(uVar7,DAT_00833fc8);
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fd0);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fd0);
|
|
|
|
uVar12 = CONCAT44(((int)((ulonglong)uVar13 >> 0x20) + (int)uVar13) - iVar2 >> 8,
|
|
|
|
((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar12 = packssdw(uVar12,uVar12);
|
|
|
|
uVar13 = pmaddwd(uVar4,DAT_00833fd8);
|
|
|
|
uVar14 = pmaddwd(uVar7,DAT_00833fd8);
|
|
|
|
*param_5 = CONCAT44((int)uVar12,(int)uVar8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar5 + (int)((ulonglong)uVar5 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar8 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = packssdw(uVar5,uVar5);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
*param_6 = CONCAT44(CONCAT22((short)uVar8,(short)uVar5),CONCAT22((short)uVar10,(short)uVar9));
|
|
|
|
*param_7 = CONCAT44(CONCAT22((short)((ulonglong)uVar8 >> 0x10),(short)((ulonglong)uVar5 >> 0x10)
|
|
|
|
),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar9 >> 0x10)));
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 0xc);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fc8);
|
|
|
|
uVar8 = pmaddwd(uVar7,DAT_00833fc8);
|
|
|
|
uVar9 = pmaddwd(uVar4,DAT_00833fd0);
|
|
|
|
uVar10 = pmaddwd(uVar7,DAT_00833fd0);
|
|
|
|
uVar11 = pmaddwd(uVar4,DAT_00833fd8);
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar12 = pmaddwd(uVar7,DAT_00833fd8);
|
|
|
|
uVar5 = CONCAT44(((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20)) - iVar2 >> 8,
|
|
|
|
((int)uVar5 + (int)((ulonglong)uVar5 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar8 = packssdw(uVar5,uVar5);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar9 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) + (int)uVar11 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = CONCAT44((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12 + iVar1 >> 8,
|
|
|
|
(int)((ulonglong)uVar10 >> 0x20) + (int)uVar10 + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar10 = packssdw(uVar9,uVar9);
|
|
|
|
uVar9 = packssdw(uVar5,uVar5);
|
|
|
|
uVar5 = *(undefined8 *)((int)param_3 + 0x12);
|
|
|
|
uVar4 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar5 >> 8)),(ushort)(byte)uVar5);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar5 >> 0x18);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar5
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar5 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar5 >> 0x20),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar12 = pmaddwd(uVar4,DAT_00833fc8);
|
|
|
|
uVar13 = pmaddwd(uVar7,DAT_00833fc8);
|
|
|
|
uVar5 = pmaddwd(uVar4,DAT_00833fd0);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fd0);
|
|
|
|
uVar12 = CONCAT44(((int)((ulonglong)uVar13 >> 0x20) + (int)uVar13) - iVar2 >> 8,
|
|
|
|
((int)((ulonglong)uVar12 >> 0x20) + (int)uVar12) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar12 = packssdw(uVar12,uVar12);
|
|
|
|
uVar13 = pmaddwd(uVar4,DAT_00833fd8);
|
|
|
|
uVar14 = pmaddwd(uVar7,DAT_00833fd8);
|
|
|
|
param_5[1] = CONCAT44((int)uVar12,(int)uVar8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar5 = CONCAT44((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar5 + (int)((ulonglong)uVar5 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar8 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar1 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + (int)DAT_00833fe8 >> 8);
|
|
|
|
uVar5 = packssdw(uVar5,uVar5);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6[1] = CONCAT44(CONCAT22((short)uVar8,(short)uVar5),CONCAT22((short)uVar9,(short)uVar10));
|
|
|
|
param_7[1] = CONCAT44(CONCAT22((short)((ulonglong)uVar8 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar5 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar9 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar10 >> 0x10)));
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_7 = param_7 + 2;
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
} while (iVar3 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00655640 at 0x00655640 (size: 828) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00655640(undefined4 param_1,undefined4 param_2,ulonglong *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,undefined8 *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
ulonglong uVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
ulonglong uVar5;
|
|
|
|
undefined2 uVar6;
|
|
|
|
ulonglong uVar7;
|
|
|
|
undefined8 uVar8;
|
|
|
|
ulonglong uVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
int iVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
undefined8 uVar14;
|
|
|
|
|
|
|
|
iVar3 = 8;
|
|
|
|
do {
|
|
|
|
uVar4 = DAT_00834008;
|
|
|
|
uVar1 = *param_3;
|
|
|
|
uVar5 = param_3[1];
|
|
|
|
uVar7 = uVar1 & DAT_00834010;
|
|
|
|
uVar9 = uVar5 & DAT_00834010;
|
|
|
|
iVar12 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar8 = CONCAT44((uint)(byte)(uVar7 >> 0x38) - iVar12,(int)(uVar7 >> 0x18) - (int)DAT_00833fe8);
|
|
|
|
uVar10 = CONCAT44((uint)(byte)(uVar9 >> 0x38) - iVar12,(int)(uVar9 >> 0x18) - (int)DAT_00833fe8)
|
|
|
|
;
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
param_5[0x30] = CONCAT44((int)uVar10,(int)uVar8);
|
|
|
|
uVar10 = DAT_00833fc0;
|
|
|
|
uVar8 = DAT_00833fb8;
|
|
|
|
uVar13 = psubusb(uVar4,uVar1);
|
|
|
|
uVar4 = psubusb(uVar4,uVar5);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar13
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar13 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar13 >> 8),(short)uVar13)) >> 0x10
|
|
|
|
),(short)uVar13) & 0xffff00ff00ff00ff;
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar13 >> 0x20);
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar13
|
|
|
|
>> 0x38) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar13 >> 0x30)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar13 >> 0x28),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar1 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar4 >> 8)),(ushort)(byte)uVar4);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar4 >> 0x20);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4
|
|
|
|
>> 0x38) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x30)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar4 >> 0x28),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = pmaddwd(uVar9,DAT_00833fb0);
|
|
|
|
uVar13 = pmaddwd(uVar5,DAT_00833fb0);
|
|
|
|
uVar4 = pmaddwd(uVar1,DAT_00833fb0);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
iVar12 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar13 = CONCAT44(((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20)) - iVar12 >> 8,
|
|
|
|
((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar4 = CONCAT44(((int)uVar11 + (int)((ulonglong)uVar11 >> 0x20)) - iVar12 >> 8,
|
|
|
|
((int)uVar4 + (int)((ulonglong)uVar4 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar4 = packssdw(uVar4,uVar4);
|
|
|
|
*param_5 = CONCAT44((int)uVar4,(int)uVar13);
|
|
|
|
uVar4 = pmaddwd(uVar9,uVar8);
|
|
|
|
uVar13 = pmaddwd(uVar5,uVar8);
|
|
|
|
uVar11 = pmaddwd(uVar9,uVar10);
|
|
|
|
uVar14 = pmaddwd(uVar5,uVar10);
|
|
|
|
iVar12 = (int)DAT_00833fe8;
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar4 = CONCAT44((int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar4 + (int)((ulonglong)uVar4 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar13 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar4 = packssdw(uVar4,uVar4);
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar11 = pmaddwd(uVar1,uVar8);
|
|
|
|
uVar14 = pmaddwd(uVar7,uVar8);
|
|
|
|
uVar8 = pmaddwd(uVar1,uVar10);
|
|
|
|
uVar10 = pmaddwd(uVar7,uVar10);
|
|
|
|
uVar8 = CONCAT44((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar10 = CONCAT44((int)uVar10 + (int)((ulonglong)uVar10 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
*param_6 = CONCAT44(CONCAT22((short)uVar10,(short)uVar8),CONCAT22((short)uVar13,(short)uVar4));
|
|
|
|
*param_7 = CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar8 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10)));
|
|
|
|
uVar4 = DAT_00834008;
|
|
|
|
uVar1 = param_3[2];
|
|
|
|
uVar5 = param_3[3];
|
|
|
|
uVar7 = uVar1 & DAT_00834010;
|
|
|
|
uVar9 = uVar5 & DAT_00834010;
|
|
|
|
iVar12 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar8 = CONCAT44((uint)(byte)(uVar7 >> 0x38) - iVar12,(int)(uVar7 >> 0x18) - (int)DAT_00833fe8);
|
|
|
|
uVar10 = CONCAT44((uint)(byte)(uVar9 >> 0x38) - iVar12,(int)(uVar9 >> 0x18) - (int)DAT_00833fe8)
|
|
|
|
;
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
param_5[0x31] = CONCAT44((int)uVar10,(int)uVar8);
|
|
|
|
uVar10 = DAT_00833fc0;
|
|
|
|
uVar8 = DAT_00833fb8;
|
|
|
|
uVar13 = psubusb(uVar4,uVar1);
|
|
|
|
uVar4 = psubusb(uVar4,uVar5);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar13
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar13 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar13 >> 8),(short)uVar13)) >> 0x10
|
|
|
|
),(short)uVar13) & 0xffff00ff00ff00ff;
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar4 >> 8),(short)uVar4)) >> 0x10),
|
|
|
|
(short)uVar4) & 0xffff00ff00ff00ff;
|
|
|
|
uVar1 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar13 >>
|
|
|
|
0x38) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar13 >> 0x30)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar13 >> 0x28)),
|
|
|
|
(ushort)(byte)((ulonglong)uVar13 >> 0x20));
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar4 >> 0x20);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4
|
|
|
|
>> 0x38) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x30)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar4 >> 0x28),uVar6)) >> 0x10),
|
|
|
|
uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = pmaddwd(uVar9,DAT_00833fb0);
|
|
|
|
uVar13 = pmaddwd(uVar1,DAT_00833fb0);
|
|
|
|
uVar4 = pmaddwd(uVar5,DAT_00833fb0);
|
|
|
|
uVar11 = pmaddwd(uVar7,DAT_00833fb0);
|
|
|
|
iVar12 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar13 = CONCAT44(((int)uVar13 + (int)((ulonglong)uVar13 >> 0x20)) - iVar12 >> 8,
|
|
|
|
((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar4 = CONCAT44(((int)uVar11 + (int)((ulonglong)uVar11 >> 0x20)) - iVar12 >> 8,
|
|
|
|
((int)uVar4 + (int)((ulonglong)uVar4 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar4 = packssdw(uVar4,uVar4);
|
|
|
|
param_5[1] = CONCAT44((int)uVar4,(int)uVar13);
|
|
|
|
uVar4 = pmaddwd(uVar9,uVar8);
|
|
|
|
uVar13 = pmaddwd(uVar1,uVar8);
|
|
|
|
uVar11 = pmaddwd(uVar9,uVar10);
|
|
|
|
uVar14 = pmaddwd(uVar1,uVar10);
|
|
|
|
iVar12 = (int)DAT_00833fe8;
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar4 = CONCAT44((int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar4 + (int)((ulonglong)uVar4 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar13 = CONCAT44((int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar13 + (int)((ulonglong)uVar13 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar4 = packssdw(uVar4,uVar4);
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar11 = pmaddwd(uVar5,uVar8);
|
|
|
|
uVar14 = pmaddwd(uVar7,uVar8);
|
|
|
|
uVar8 = pmaddwd(uVar5,uVar10);
|
|
|
|
uVar10 = pmaddwd(uVar7,uVar10);
|
|
|
|
uVar8 = CONCAT44((int)uVar8 + (int)((ulonglong)uVar8 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar11 + (int)((ulonglong)uVar11 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar10 = CONCAT44((int)uVar10 + (int)((ulonglong)uVar10 >> 0x20) + iVar2 >> 8,
|
|
|
|
(int)uVar14 + (int)((ulonglong)uVar14 >> 0x20) + iVar12 >> 8);
|
|
|
|
uVar8 = packssdw(uVar8,uVar8);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_3 = (ulonglong *)((int)param_3 + param_4);
|
|
|
|
param_6[1] = CONCAT44(CONCAT22((short)uVar10,(short)uVar8),CONCAT22((short)uVar13,(short)uVar4))
|
|
|
|
;
|
|
|
|
param_7[1] = CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar8 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar4 >> 0x10)));
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_7 = param_7 + 2;
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
} while (iVar3 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00655980 at 0x00655980 (size: 966) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00655980(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,undefined8 *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
ushort uVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
ushort uVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
undefined7 uVar6;
|
|
|
|
undefined7 uVar7;
|
|
|
|
uint3 uVar8;
|
|
|
|
undefined5 uVar9;
|
|
|
|
uint3 uVar10;
|
|
|
|
uint3 uVar11;
|
|
|
|
undefined5 uVar12;
|
|
|
|
uint3 uVar13;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar14;
|
|
|
|
byte bVar16;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar17;
|
|
|
|
ushort uVar18;
|
|
|
|
undefined8 uVar19;
|
|
|
|
undefined8 uVar20;
|
|
|
|
ushort uVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
undefined8 uVar23;
|
|
|
|
undefined8 uVar24;
|
|
|
|
undefined8 uVar25;
|
|
|
|
undefined8 uVar26;
|
|
|
|
undefined8 uVar27;
|
|
|
|
|
|
|
|
iVar14 = 8;
|
|
|
|
do {
|
|
|
|
uVar17 = *param_3;
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 6);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar18 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar18));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar21 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar21));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fb0);
|
|
|
|
uVar19 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar20 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fb0);
|
|
|
|
uVar24 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar18 & 0xff) + (uVar21 & 0xff))));
|
|
|
|
uVar22 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar22 + (int)((ulonglong)uVar22 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar23 = pmaddwd(uVar20,DAT_00833fb8);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fb8);
|
|
|
|
uVar19 = pmaddwd(uVar20,DAT_00833fc0);
|
|
|
|
uVar22 = pmaddwd(uVar24,DAT_00833fc0);
|
|
|
|
*param_5 = CONCAT44((int)uVar15,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0xc);
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 0x12);
|
|
|
|
uVar22 = CONCAT44((int)((ulonglong)uVar22 >> 0x20) + (int)uVar22 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar25 >> 0x20) + (int)uVar25 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) + (int)uVar19 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar23 >> 0x20) + (int)uVar23 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar22 = packssdw(uVar22,uVar22);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar21 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar21));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar18 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar18));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fb0);
|
|
|
|
uVar20 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar24 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fb0);
|
|
|
|
uVar26 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar21 & 0xff) + (uVar18 & 0xff))));
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar20 + (int)((ulonglong)uVar20 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fb8);
|
|
|
|
uVar20 = packssdw(uVar15,uVar15);
|
|
|
|
uVar27 = pmaddwd(uVar26,DAT_00833fb8);
|
|
|
|
uVar15 = pmaddwd(uVar24,DAT_00833fc0);
|
|
|
|
uVar23 = pmaddwd(uVar26,DAT_00833fc0);
|
|
|
|
param_5[1] = CONCAT44((int)uVar20,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar25 + (int)((ulonglong)uVar25 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar15 = CONCAT44((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar27 + (int)((ulonglong)uVar27 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
*param_6 = CONCAT44(CONCAT22((short)uVar15,(short)uVar17),CONCAT22((short)uVar22,(short)uVar19))
|
|
|
|
;
|
|
|
|
*param_7 = CONCAT44(CONCAT22((short)((ulonglong)uVar15 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar19 >> 0x10)));
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0x1e);
|
|
|
|
uVar15 = param_3[3];
|
|
|
|
bVar16 = (byte)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar15 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar18 = (ushort)uVar17;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar17 >> 8),uVar18));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar15 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar21 = (ushort)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar17 >> 0x20),uVar21));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar15),DAT_00833fb0);
|
|
|
|
uVar19 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar20 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar15 + (ushort)bVar16)));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fb0);
|
|
|
|
uVar24 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar18 & 0xff) + (uVar21 & 0xff))));
|
|
|
|
uVar22 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar22 + (int)((ulonglong)uVar22 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar23 = pmaddwd(uVar20,DAT_00833fb8);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fb8);
|
|
|
|
uVar19 = pmaddwd(uVar20,DAT_00833fc0);
|
|
|
|
uVar22 = pmaddwd(uVar24,DAT_00833fc0);
|
|
|
|
param_5[0x10] = CONCAT44((int)uVar15,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0x24);
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 0x2a);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) + (int)uVar19 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar23 >> 0x20) + (int)uVar23 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar22 = CONCAT44((int)((ulonglong)uVar22 >> 0x20) + (int)uVar22 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar25 >> 0x20) + (int)uVar25 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar22 = packssdw(uVar22,uVar22);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar21 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar21));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar18 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar18));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fb0);
|
|
|
|
uVar20 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar24 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fb0);
|
|
|
|
uVar26 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar21 & 0xff) + (uVar18 & 0xff))));
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar20 + (int)((ulonglong)uVar20 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fb8);
|
|
|
|
uVar20 = packssdw(uVar15,uVar15);
|
|
|
|
uVar27 = pmaddwd(uVar26,DAT_00833fb8);
|
|
|
|
uVar15 = pmaddwd(uVar24,DAT_00833fc0);
|
|
|
|
uVar23 = pmaddwd(uVar26,DAT_00833fc0);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
param_5[0x11] = CONCAT44((int)uVar20,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar25 + (int)((ulonglong)uVar25 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar15 = CONCAT44((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar27 + (int)((ulonglong)uVar27 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6[1] = CONCAT44(CONCAT22((short)uVar15,(short)uVar17),
|
|
|
|
CONCAT22((short)uVar22,(short)uVar19));
|
|
|
|
param_7[1] = CONCAT44(CONCAT22((short)((ulonglong)uVar15 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar19 >> 0x10)));
|
|
|
|
iVar14 = iVar14 + -1;
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_7 = param_7 + 2;
|
|
|
|
} while (iVar14 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00655d50 at 0x00655D50 (size: 966) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00655d50(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,undefined8 *param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
ushort uVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
ushort uVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
undefined7 uVar6;
|
|
|
|
undefined7 uVar7;
|
|
|
|
uint3 uVar8;
|
|
|
|
undefined5 uVar9;
|
|
|
|
uint3 uVar10;
|
|
|
|
uint3 uVar11;
|
|
|
|
undefined5 uVar12;
|
|
|
|
uint3 uVar13;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar14;
|
|
|
|
byte bVar16;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar17;
|
|
|
|
ushort uVar18;
|
|
|
|
undefined8 uVar19;
|
|
|
|
undefined8 uVar20;
|
|
|
|
ushort uVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
undefined8 uVar23;
|
|
|
|
undefined8 uVar24;
|
|
|
|
undefined8 uVar25;
|
|
|
|
undefined8 uVar26;
|
|
|
|
undefined8 uVar27;
|
|
|
|
|
|
|
|
iVar14 = 8;
|
|
|
|
do {
|
|
|
|
uVar17 = *param_3;
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 6);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar18 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar18));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar21 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar21));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fc8);
|
|
|
|
uVar19 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar20 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fc8);
|
|
|
|
uVar24 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar18 & 0xff) + (uVar21 & 0xff))));
|
|
|
|
uVar22 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar22 + (int)((ulonglong)uVar22 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar23 = pmaddwd(uVar20,DAT_00833fd0);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fd0);
|
|
|
|
uVar19 = pmaddwd(uVar20,DAT_00833fd8);
|
|
|
|
uVar22 = pmaddwd(uVar24,DAT_00833fd8);
|
|
|
|
*param_5 = CONCAT44((int)uVar15,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0xc);
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 0x12);
|
|
|
|
uVar22 = CONCAT44((int)((ulonglong)uVar22 >> 0x20) + (int)uVar22 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar25 >> 0x20) + (int)uVar25 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) + (int)uVar19 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar23 >> 0x20) + (int)uVar23 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar22 = packssdw(uVar22,uVar22);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar21 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar21));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar18 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar18));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fc8);
|
|
|
|
uVar20 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar24 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fc8);
|
|
|
|
uVar26 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar21 & 0xff) + (uVar18 & 0xff))));
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar20 + (int)((ulonglong)uVar20 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fd0);
|
|
|
|
uVar20 = packssdw(uVar15,uVar15);
|
|
|
|
uVar27 = pmaddwd(uVar26,DAT_00833fd0);
|
|
|
|
uVar15 = pmaddwd(uVar24,DAT_00833fd8);
|
|
|
|
uVar23 = pmaddwd(uVar26,DAT_00833fd8);
|
|
|
|
param_5[1] = CONCAT44((int)uVar20,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar25 + (int)((ulonglong)uVar25 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar15 = CONCAT44((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar27 + (int)((ulonglong)uVar27 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
*param_6 = CONCAT44(CONCAT22((short)uVar15,(short)uVar17),CONCAT22((short)uVar22,(short)uVar19))
|
|
|
|
;
|
|
|
|
*param_7 = CONCAT44(CONCAT22((short)((ulonglong)uVar15 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar19 >> 0x10)));
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0x1e);
|
|
|
|
uVar15 = param_3[3];
|
|
|
|
bVar16 = (byte)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar15 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar18 = (ushort)uVar17;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar17 >> 8),uVar18));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar15 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar21 = (ushort)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar17 >> 0x20),uVar21));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar15),DAT_00833fc8);
|
|
|
|
uVar19 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar20 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar15 + (ushort)bVar16)));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fc8);
|
|
|
|
uVar24 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar18 & 0xff) + (uVar21 & 0xff))));
|
|
|
|
uVar22 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar22 + (int)((ulonglong)uVar22 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar23 = pmaddwd(uVar20,DAT_00833fd0);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fd0);
|
|
|
|
uVar19 = pmaddwd(uVar20,DAT_00833fd8);
|
|
|
|
uVar22 = pmaddwd(uVar24,DAT_00833fd8);
|
|
|
|
param_5[0x10] = CONCAT44((int)uVar15,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = *(undefined8 *)((int)param_3 + 0x24);
|
|
|
|
uVar15 = *(undefined8 *)((int)param_3 + 0x2a);
|
|
|
|
uVar22 = CONCAT44((int)((ulonglong)uVar22 >> 0x20) + (int)uVar22 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar25 >> 0x20) + (int)uVar25 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) + (int)uVar19 + iVar1 >> 9,
|
|
|
|
(int)((ulonglong)uVar23 >> 0x20) + (int)uVar23 + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar22 = packssdw(uVar22,uVar22);
|
|
|
|
bVar16 = (byte)((ulonglong)uVar17 >> 0x18);
|
|
|
|
uVar5 = (ushort)(((uint7)bVar16 << 0x30) >> 0x28);
|
|
|
|
uVar8 = CONCAT21(uVar5,(char)((ulonglong)uVar17 >> 0x10));
|
|
|
|
uVar9 = CONCAT41((int)(((uint7)uVar8 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar15 >> 0x10));
|
|
|
|
uVar21 = (ushort)uVar15;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 8),uVar21));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar17 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar17 >> 0x28));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar17 >> 0x20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar15 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar15 >> 0x28));
|
|
|
|
uVar18 = (ushort)((ulonglong)uVar15 >> 0x18);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar15 >> 0x20),uVar18));
|
|
|
|
uVar15 = pmaddwd((ulonglong)CONCAT52(uVar9,(ushort)(byte)uVar17),DAT_00833fc8);
|
|
|
|
uVar20 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar21) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar24 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar8 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar9 + (short)uVar12,
|
|
|
|
(ushort)(byte)uVar17 + (ushort)bVar16)));
|
|
|
|
uVar17 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)bVar16),DAT_00833fc8);
|
|
|
|
uVar26 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar21 & 0xff) + (uVar18 & 0xff))));
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar18) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44(((int)uVar17 + (int)((ulonglong)uVar17 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar15 = CONCAT44(((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar20 + (int)((ulonglong)uVar20 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar25 = pmaddwd(uVar24,DAT_00833fd0);
|
|
|
|
uVar20 = packssdw(uVar15,uVar15);
|
|
|
|
uVar27 = pmaddwd(uVar26,DAT_00833fd0);
|
|
|
|
uVar15 = pmaddwd(uVar24,DAT_00833fd8);
|
|
|
|
uVar23 = pmaddwd(uVar26,DAT_00833fd8);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
param_5[0x11] = CONCAT44((int)uVar20,(int)uVar17);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)uVar15 + (int)((ulonglong)uVar15 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar25 + (int)((ulonglong)uVar25 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar15 = CONCAT44((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + iVar1 >> 9,
|
|
|
|
(int)uVar27 + (int)((ulonglong)uVar27 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6[1] = CONCAT44(CONCAT22((short)uVar15,(short)uVar17),
|
|
|
|
CONCAT22((short)uVar22,(short)uVar19));
|
|
|
|
param_7[1] = CONCAT44(CONCAT22((short)((ulonglong)uVar15 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar19 >> 0x10)));
|
|
|
|
iVar14 = iVar14 + -1;
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_7 = param_7 + 2;
|
|
|
|
} while (iVar14 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00656120 at 0x00656120 (size: 1279) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00656120(undefined4 param_1,undefined4 param_2,ulonglong *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined4 *param_6,undefined4 *param_7,undefined8 *param_8)
|
|
|
|
|
|
|
|
{
|
|
|
|
ulonglong uVar1;
|
|
|
|
ushort uVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
ushort uVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
undefined7 uVar6;
|
|
|
|
undefined7 uVar7;
|
|
|
|
undefined7 uVar8;
|
|
|
|
uint3 uVar9;
|
|
|
|
uint3 uVar10;
|
|
|
|
uint3 uVar11;
|
|
|
|
undefined5 uVar12;
|
|
|
|
uint3 uVar13;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar14;
|
|
|
|
ushort uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
ushort uVar17;
|
|
|
|
ulonglong uVar18;
|
|
|
|
undefined8 uVar19;
|
|
|
|
ushort uVar20;
|
|
|
|
ulonglong uVar21;
|
|
|
|
ulonglong uVar22;
|
|
|
|
undefined8 uVar23;
|
|
|
|
undefined8 uVar24;
|
|
|
|
undefined8 uVar25;
|
|
|
|
int iVar26;
|
|
|
|
int iVar27;
|
|
|
|
ushort uVar28;
|
|
|
|
undefined8 uVar29;
|
|
|
|
undefined8 uVar30;
|
|
|
|
undefined8 uVar31;
|
|
|
|
|
|
|
|
iVar14 = 8;
|
|
|
|
do {
|
|
|
|
uVar16 = DAT_00834008;
|
|
|
|
uVar1 = param_3[1];
|
|
|
|
uVar18 = *param_3 & DAT_00834010;
|
|
|
|
uVar22 = uVar1 & DAT_00834010;
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833fe8 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((uint)(byte)(uVar18 >> 0x38) - iVar26,
|
|
|
|
(int)(uVar18 >> 0x18) - (int)DAT_00833fe8);
|
|
|
|
uVar23 = CONCAT44((uint)(byte)(uVar22 >> 0x38) - iVar26,
|
|
|
|
(int)(uVar22 >> 0x18) - (int)DAT_00833fe8);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar23 = packssdw(uVar23,uVar23);
|
|
|
|
uVar29 = psubusb(DAT_00834008,*param_3);
|
|
|
|
*param_8 = CONCAT44((int)uVar23,(int)uVar19);
|
|
|
|
uVar16 = psubusb(uVar16,uVar1);
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar29 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar9 = CONCAT21(uVar2,(char)((ulonglong)uVar29 >> 0x10));
|
|
|
|
uVar28 = (ushort)uVar29;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar9 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar29 >> 8),uVar28));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar16 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar3,(char)((ulonglong)uVar16 >> 0x10));
|
|
|
|
uVar15 = (ushort)uVar16;
|
|
|
|
uVar8 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar16 >> 8),uVar15));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar29 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar4,(char)((ulonglong)uVar29 >> 0x30));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar29 >> 0x28));
|
|
|
|
uVar17 = (ushort)(byte)((ulonglong)uVar29 >> 0x20);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((ulonglong)uVar16 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar5,(char)((ulonglong)uVar16 >> 0x30));
|
|
|
|
uVar20 = (ushort)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar16 >> 0x28),uVar20));
|
|
|
|
uVar30 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar28) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar16 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar8 >> 0x10),uVar15) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52(uVar12,uVar17),DAT_00833fb0);
|
|
|
|
uVar24 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar20) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar19 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar9 + (short)uVar11,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) + (short)uVar12,
|
|
|
|
(uVar28 & 0xff) + uVar17)));
|
|
|
|
uVar29 = CONCAT26((uVar3 >> 8) + (uVar5 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar8 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar15 & 0xff) + (uVar20 & 0xff))));
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar16 = CONCAT44(((int)uVar24 + (int)((ulonglong)uVar24 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar16 + (int)((ulonglong)uVar16 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar25 = CONCAT44(((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar30 + (int)((ulonglong)uVar30 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar24 = pmaddwd(uVar19,DAT_00833fc0);
|
|
|
|
uVar19 = pmaddwd(uVar19,DAT_00833fb8);
|
|
|
|
uVar30 = pmaddwd(uVar29,DAT_00833fc0);
|
|
|
|
uVar23 = pmaddwd(uVar29,DAT_00833fb8);
|
|
|
|
uVar29 = packssdw(uVar25,uVar25);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
*param_5 = CONCAT44((int)uVar16,(int)uVar29);
|
|
|
|
uVar22 = DAT_00834010;
|
|
|
|
uVar16 = DAT_00833fe8;
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((int)uVar24 + (int)((ulonglong)uVar24 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar19 + (int)((ulonglong)uVar19 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar23 = CONCAT44((int)uVar30 + (int)((ulonglong)uVar30 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar1 = param_3[2];
|
|
|
|
uVar23 = packssdw(uVar23,uVar23);
|
|
|
|
uVar18 = param_3[3];
|
|
|
|
*param_6 = CONCAT22((short)uVar23,(short)uVar19);
|
|
|
|
uVar21 = uVar18 & uVar22;
|
|
|
|
*param_7 = CONCAT22((short)((ulonglong)uVar23 >> 0x10),(short)((ulonglong)uVar19 >> 0x10));
|
|
|
|
uVar23 = DAT_00834008;
|
|
|
|
uVar22 = uVar1 & uVar22;
|
|
|
|
iVar26 = (int)uVar16;
|
|
|
|
iVar27 = (int)((ulonglong)uVar16 >> 0x20);
|
|
|
|
uVar16 = CONCAT44((uint)(byte)(uVar21 >> 0x38) - iVar27,(int)(uVar21 >> 0x18) - iVar26);
|
|
|
|
uVar19 = CONCAT44((uint)(byte)(uVar22 >> 0x38) - iVar27,(int)(uVar22 >> 0x18) - iVar26);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
param_8[1] = CONCAT44((int)uVar16,(int)uVar19);
|
|
|
|
uVar19 = DAT_00833fc0;
|
|
|
|
uVar16 = DAT_00833fb8;
|
|
|
|
uVar29 = psubusb(uVar23,uVar1);
|
|
|
|
uVar23 = psubusb(uVar23,uVar18);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((ulonglong)uVar29 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar9 = CONCAT21(uVar5,(char)((ulonglong)uVar29 >> 0x10));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar9 << 0x20) >> 0x18),(char)((ulonglong)uVar29 >> 8));
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar2,(char)((ulonglong)uVar23 >> 0x10));
|
|
|
|
uVar15 = (ushort)uVar23;
|
|
|
|
uVar8 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 8),uVar15));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar29 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar3,(char)((ulonglong)uVar29 >> 0x30));
|
|
|
|
uVar20 = (ushort)((ulonglong)uVar29 >> 0x20);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar11 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar29 >> 0x28),uVar20));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar4,(char)((ulonglong)uVar23 >> 0x30));
|
|
|
|
uVar17 = (ushort)((ulonglong)uVar23 >> 0x20);
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 0x28),uVar17));
|
|
|
|
uVar24 = CONCAT26((uVar5 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar9 + (short)uVar11,
|
|
|
|
CONCAT22((short)uVar12 + (short)((uint7)uVar6 >> 0x10),
|
|
|
|
(ushort)(byte)uVar29 + (uVar20 & 0xff))));
|
|
|
|
uVar25 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar8 >> 0x10) +
|
|
|
|
(short)((uint7)uVar7 >> 0x10),
|
|
|
|
(uVar15 & 0xff) + (uVar17 & 0xff))));
|
|
|
|
uVar29 = pmaddwd((ulonglong)CONCAT52(uVar12,(ushort)(byte)uVar29),DAT_00833fb0);
|
|
|
|
uVar31 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar20) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar8 >> 0x10),uVar15) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar30 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar17) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar29 = CONCAT44(((int)uVar31 + (int)((ulonglong)uVar31 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar29 + (int)((ulonglong)uVar29 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar23 = CONCAT44(((int)uVar30 + (int)((ulonglong)uVar30 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar29 = packssdw(uVar29,uVar29);
|
|
|
|
uVar23 = packssdw(uVar23,uVar23);
|
|
|
|
param_5[1] = CONCAT44((int)uVar23,(int)uVar29);
|
|
|
|
uVar22 = DAT_00834010;
|
|
|
|
uVar23 = DAT_00833fe8;
|
|
|
|
uVar29 = pmaddwd(uVar24,uVar16);
|
|
|
|
uVar30 = pmaddwd(uVar25,uVar16);
|
|
|
|
uVar16 = pmaddwd(uVar24,uVar19);
|
|
|
|
uVar19 = pmaddwd(uVar25,uVar19);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar16 = CONCAT44((int)uVar16 + (int)((ulonglong)uVar16 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar29 + (int)((ulonglong)uVar29 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar30 + (int)((ulonglong)uVar30 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
param_6[1] = CONCAT22((short)uVar19,(short)uVar16);
|
|
|
|
param_7[1] = CONCAT22((short)((ulonglong)uVar19 >> 0x10),(short)((ulonglong)uVar16 >> 0x10));
|
|
|
|
uVar29 = DAT_00834008;
|
|
|
|
uVar1 = param_3[4];
|
|
|
|
uVar18 = param_3[5];
|
|
|
|
uVar21 = uVar1 & uVar22;
|
|
|
|
uVar22 = uVar18 & uVar22;
|
|
|
|
iVar26 = (int)uVar23;
|
|
|
|
iVar27 = (int)((ulonglong)uVar23 >> 0x20);
|
|
|
|
uVar16 = CONCAT44((uint)(byte)(uVar21 >> 0x38) - iVar27,(int)(uVar21 >> 0x18) - iVar26);
|
|
|
|
uVar19 = CONCAT44((uint)(byte)(uVar22 >> 0x38) - iVar27,(int)(uVar22 >> 0x18) - iVar26);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
param_8[0x10] = CONCAT44((int)uVar19,(int)uVar16);
|
|
|
|
uVar19 = DAT_00833fc0;
|
|
|
|
uVar16 = DAT_00833fb8;
|
|
|
|
uVar24 = psubusb(uVar29,uVar1);
|
|
|
|
uVar23 = psubusb(uVar29,uVar18);
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar24 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar9 = CONCAT21(uVar2,(char)((ulonglong)uVar24 >> 0x10));
|
|
|
|
uVar28 = (ushort)uVar24;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar9 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar24 >> 8),uVar28));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar3,(char)((ulonglong)uVar23 >> 0x10));
|
|
|
|
uVar15 = (ushort)uVar23;
|
|
|
|
uVar8 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 8),uVar15));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar24 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar4,(char)((ulonglong)uVar24 >> 0x30));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar24 >> 0x28));
|
|
|
|
uVar17 = (ushort)(byte)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar5,(char)((ulonglong)uVar23 >> 0x30));
|
|
|
|
uVar20 = (ushort)((ulonglong)uVar23 >> 0x20);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 0x28),uVar20));
|
|
|
|
uVar29 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar9 + (short)uVar11,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) + (short)uVar12,
|
|
|
|
(uVar28 & 0xff) + uVar17)));
|
|
|
|
uVar30 = CONCAT26((uVar3 >> 8) + (uVar5 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar8 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar15 & 0xff) + (uVar20 & 0xff))));
|
|
|
|
uVar31 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar28) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar24 = pmaddwd((ulonglong)CONCAT52(uVar12,uVar17),DAT_00833fb0);
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar8 >> 0x10),uVar15) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar25 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar20) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar24 = CONCAT44(((int)uVar24 + (int)((ulonglong)uVar24 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar31 + (int)((ulonglong)uVar31 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar23 = CONCAT44(((int)uVar25 + (int)((ulonglong)uVar25 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar24 = packssdw(uVar24,uVar24);
|
|
|
|
uVar23 = packssdw(uVar23,uVar23);
|
|
|
|
param_5[0x10] = CONCAT44((int)uVar23,(int)uVar24);
|
|
|
|
uVar22 = DAT_00834010;
|
|
|
|
uVar23 = DAT_00833fe8;
|
|
|
|
uVar24 = pmaddwd(uVar29,uVar16);
|
|
|
|
uVar25 = pmaddwd(uVar30,uVar16);
|
|
|
|
uVar16 = pmaddwd(uVar29,uVar19);
|
|
|
|
uVar19 = pmaddwd(uVar30,uVar19);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar16 = CONCAT44((int)uVar16 + (int)((ulonglong)uVar16 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar24 + (int)((ulonglong)uVar24 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar25 + (int)((ulonglong)uVar25 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar1 = param_3[6];
|
|
|
|
uVar18 = param_3[7];
|
|
|
|
param_6[2] = CONCAT22((short)uVar19,(short)uVar16);
|
|
|
|
param_7[2] = CONCAT22((short)((ulonglong)uVar19 >> 0x10),(short)((ulonglong)uVar16 >> 0x10));
|
|
|
|
uVar29 = DAT_00834008;
|
|
|
|
uVar21 = uVar18 & uVar22;
|
|
|
|
uVar22 = uVar1 & uVar22;
|
|
|
|
iVar26 = (int)uVar23;
|
|
|
|
iVar27 = (int)((ulonglong)uVar23 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((uint)(byte)(uVar21 >> 0x38) - iVar27,(int)(uVar21 >> 0x18) - iVar26);
|
|
|
|
uVar16 = CONCAT44((uint)(byte)(uVar22 >> 0x38) - iVar27,(int)(uVar22 >> 0x18) - iVar26);
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
param_8[0x11] = CONCAT44((int)uVar19,(int)uVar16);
|
|
|
|
uVar19 = DAT_00833fc0;
|
|
|
|
uVar16 = DAT_00833fb8;
|
|
|
|
uVar24 = psubusb(uVar29,uVar1);
|
|
|
|
uVar23 = psubusb(uVar29,uVar18);
|
|
|
|
uVar2 = (ushort)(((uint7)(byte)((ulonglong)uVar24 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar9 = CONCAT21(uVar2,(char)((ulonglong)uVar24 >> 0x10));
|
|
|
|
uVar28 = (ushort)uVar24;
|
|
|
|
uVar7 = CONCAT43((int)(((uint7)uVar9 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar24 >> 8),uVar28));
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar10 = CONCAT21(uVar3,(char)((ulonglong)uVar23 >> 0x10));
|
|
|
|
uVar15 = (ushort)uVar23;
|
|
|
|
uVar8 = CONCAT43((int)(((uint7)uVar10 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 8),uVar15));
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar24 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar11 = CONCAT21(uVar4,(char)((ulonglong)uVar24 >> 0x30));
|
|
|
|
uVar12 = CONCAT41((int)(((uint7)uVar11 << 0x20) >> 0x18),(char)((ulonglong)uVar24 >> 0x28));
|
|
|
|
uVar17 = (ushort)(byte)((ulonglong)uVar24 >> 0x20);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((ulonglong)uVar23 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar13 = CONCAT21(uVar5,(char)((ulonglong)uVar23 >> 0x30));
|
|
|
|
uVar20 = (ushort)((ulonglong)uVar23 >> 0x20);
|
|
|
|
uVar6 = CONCAT43((int)(((uint7)uVar13 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar23 >> 0x28),uVar20));
|
|
|
|
uVar24 = CONCAT26((uVar2 >> 8) + (uVar4 >> 8),
|
|
|
|
CONCAT24((short)uVar9 + (short)uVar11,
|
|
|
|
CONCAT22((short)((uint7)uVar7 >> 0x10) + (short)uVar12,
|
|
|
|
(uVar28 & 0xff) + uVar17)));
|
|
|
|
uVar25 = CONCAT26((uVar3 >> 8) + (uVar5 >> 8),
|
|
|
|
CONCAT24((short)uVar10 + (short)uVar13,
|
|
|
|
CONCAT22((short)((uint7)uVar8 >> 0x10) +
|
|
|
|
(short)((uint7)uVar6 >> 0x10),
|
|
|
|
(uVar15 & 0xff) + (uVar20 & 0xff))));
|
|
|
|
uVar31 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar7 >> 0x10),uVar28) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar29 = pmaddwd((ulonglong)CONCAT52(uVar12,uVar17),DAT_00833fb0);
|
|
|
|
uVar23 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar8 >> 0x10),uVar15) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar30 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar6 >> 0x10),uVar20) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar29 = CONCAT44(((int)uVar29 + (int)((ulonglong)uVar29 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar31 + (int)((ulonglong)uVar31 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar23 = CONCAT44(((int)uVar30 + (int)((ulonglong)uVar30 >> 0x20)) - iVar26 >> 8,
|
|
|
|
((int)uVar23 + (int)((ulonglong)uVar23 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar29 = packssdw(uVar29,uVar29);
|
|
|
|
uVar23 = packssdw(uVar23,uVar23);
|
|
|
|
param_5[0x11] = CONCAT44((int)uVar23,(int)uVar29);
|
|
|
|
uVar23 = pmaddwd(uVar24,uVar16);
|
|
|
|
uVar29 = pmaddwd(uVar25,uVar16);
|
|
|
|
uVar16 = pmaddwd(uVar24,uVar19);
|
|
|
|
uVar19 = pmaddwd(uVar25,uVar19);
|
|
|
|
iVar26 = (int)((ulonglong)DAT_00833ff0 >> 0x20);
|
|
|
|
uVar16 = CONCAT44((int)uVar16 + (int)((ulonglong)uVar16 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar23 + (int)((ulonglong)uVar23 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar19 = CONCAT44((int)uVar19 + (int)((ulonglong)uVar19 >> 0x20) + iVar26 >> 9,
|
|
|
|
(int)uVar29 + (int)((ulonglong)uVar29 >> 0x20) + (int)DAT_00833ff0 >> 9);
|
|
|
|
uVar16 = packssdw(uVar16,uVar16);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar19 = packssdw(uVar19,uVar19);
|
|
|
|
param_6[3] = CONCAT22((short)uVar19,(short)uVar16);
|
|
|
|
param_8 = param_8 + 2;
|
|
|
|
param_3 = (ulonglong *)((int)param_3 + param_4);
|
|
|
|
param_7[3] = CONCAT22((short)((ulonglong)uVar19 >> 0x10),(short)((ulonglong)uVar16 >> 0x10));
|
|
|
|
iVar14 = iVar14 + -1;
|
|
|
|
param_6 = param_6 + 4;
|
|
|
|
param_7 = param_7 + 4;
|
|
|
|
} while (iVar14 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00656620 at 0x00656620 (size: 1562) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00656620(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
bool bVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
ushort uVar6;
|
|
|
|
ushort uVar7;
|
|
|
|
ushort uVar8;
|
|
|
|
ushort uVar9;
|
|
|
|
undefined7 uVar10;
|
|
|
|
ushort uVar11;
|
|
|
|
ushort uVar12;
|
|
|
|
undefined7 uVar13;
|
|
|
|
uint5 uVar14;
|
|
|
|
uint5 uVar15;
|
|
|
|
undefined7 uVar16;
|
|
|
|
undefined7 uVar17;
|
|
|
|
uint3 uVar18;
|
|
|
|
undefined5 uVar19;
|
|
|
|
uint3 uVar20;
|
|
|
|
undefined5 uVar21;
|
|
|
|
undefined6 uVar22;
|
|
|
|
undefined4 uVar23;
|
|
|
|
short sVar24;
|
|
|
|
uint3 uVar25;
|
|
|
|
uint3 uVar26;
|
|
|
|
uint3 uVar27;
|
|
|
|
uint3 uVar28;
|
|
|
|
undefined5 uVar29;
|
|
|
|
uint3 uVar30;
|
|
|
|
undefined5 uVar31;
|
|
|
|
uint3 uVar32;
|
|
|
|
undefined6 uVar33;
|
|
|
|
undefined4 uVar34;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar35;
|
|
|
|
undefined8 *puVar36;
|
|
|
|
undefined8 *puVar37;
|
|
|
|
ushort uVar38;
|
|
|
|
ushort uVar39;
|
|
|
|
byte bVar43;
|
|
|
|
undefined8 uVar40;
|
|
|
|
ulonglong uVar41;
|
|
|
|
byte bVar44;
|
|
|
|
ulonglong uVar42;
|
|
|
|
undefined2 uVar45;
|
|
|
|
short sVar46;
|
|
|
|
ushort uVar47;
|
|
|
|
short sVar48;
|
|
|
|
ushort uVar49;
|
|
|
|
short sVar50;
|
|
|
|
undefined8 uVar51;
|
|
|
|
undefined8 uVar52;
|
|
|
|
ulonglong uVar53;
|
|
|
|
ulonglong uVar54;
|
|
|
|
ushort uVar55;
|
|
|
|
undefined8 uVar56;
|
|
|
|
ushort uVar57;
|
|
|
|
undefined8 uVar58;
|
|
|
|
byte bVar59;
|
|
|
|
undefined8 uVar60;
|
|
|
|
undefined8 uVar61;
|
|
|
|
undefined8 uVar62;
|
|
|
|
undefined8 local_24;
|
|
|
|
undefined8 local_1c;
|
|
|
|
undefined8 local_14;
|
|
|
|
undefined8 local_c;
|
|
|
|
|
|
|
|
iVar35 = 3;
|
|
|
|
bVar4 = true;
|
|
|
|
uVar60 = *param_3;
|
|
|
|
local_c = 0;
|
|
|
|
local_14 = 0;
|
|
|
|
local_1c = 0;
|
|
|
|
uVar42 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar60 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar60 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar60 >> 8)),(ushort)(byte)uVar60);
|
|
|
|
local_24 = 0;
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar60 >> 0x18);
|
|
|
|
uVar54 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar60
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar60 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x20),uVar45)) >> 0x10),
|
|
|
|
uVar45) & 0xffffffff00ff00ff;
|
|
|
|
uVar60 = DAT_00833fb0;
|
|
|
|
do {
|
|
|
|
do {
|
|
|
|
puVar37 = param_5;
|
|
|
|
puVar36 = param_6;
|
|
|
|
local_c = CONCAT26((short)(uVar42 >> 0x30) + (short)((ulonglong)local_c >> 0x30) +
|
|
|
|
(short)(uVar54 >> 0x30),
|
|
|
|
CONCAT24((short)(uVar42 >> 0x20) + (short)((ulonglong)local_c >> 0x20) +
|
|
|
|
(short)(uVar54 >> 0x20),
|
|
|
|
CONCAT22((short)(uVar42 >> 0x10) +
|
|
|
|
(short)((ulonglong)local_c >> 0x10) +
|
|
|
|
(short)(uVar54 >> 0x10),
|
|
|
|
(short)uVar42 + (short)local_c + (short)uVar54)));
|
|
|
|
uVar40 = pmaddwd(uVar42,uVar60);
|
|
|
|
uVar52 = param_3[1];
|
|
|
|
uVar51 = pmaddwd(uVar54,uVar60);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
bVar44 = (byte)((ulonglong)uVar52 >> 0x20);
|
|
|
|
uVar18 = CONCAT21((short)(((uint7)bVar44 << 0x30) >> 0x28),(char)((ulonglong)uVar52 >> 0x18));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar52 >> 0x10));
|
|
|
|
bVar43 = (byte)((ulonglong)uVar52 >> 8);
|
|
|
|
uVar51 = CONCAT44(((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = param_3[2];
|
|
|
|
uVar51 = packssdw(uVar51,uVar51);
|
|
|
|
uVar3 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar38 = (ushort)(((uint7)bVar43 << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar38,(char)uVar52);
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar20 << 0x20) >> 0x18),(char)((ulonglong)*param_3 >> 0x38));
|
|
|
|
uVar52 = param_3[1];
|
|
|
|
local_14 = CONCAT26((short)((ulonglong)local_14 >> 0x30) + (ushort)bVar44 + (uVar38 >> 8),
|
|
|
|
CONCAT24((short)((ulonglong)local_14 >> 0x20) + (short)uVar18 +
|
|
|
|
(short)uVar20,
|
|
|
|
CONCAT22((short)((ulonglong)local_14 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)uVar21,
|
|
|
|
(short)local_14 + (ushort)bVar43 + (uVar3 & 0xff))));
|
|
|
|
uVar56 = pmaddwd((ulonglong)(CONCAT52(uVar21,uVar3) & 0xffffffffff00ff),uVar60);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar52 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar52 >> 0x30));
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar52 >> 0x28));
|
|
|
|
uVar38 = (ushort)(byte)((ulonglong)uVar52 >> 0x20);
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar19,(ushort)bVar43),uVar60);
|
|
|
|
sVar24 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar40 >> 0x10));
|
|
|
|
uVar23 = CONCAT31(CONCAT21(sVar24,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar40 >> 8));
|
|
|
|
uVar22 = CONCAT51(CONCAT41(uVar23,(char)((uint)DAT_00834040 >> 8)),(char)uVar40);
|
|
|
|
sVar46 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
local_1c = CONCAT26((short)((ulonglong)local_1c >> 0x30) + (uVar3 >> 8) + sVar24,
|
|
|
|
CONCAT24((short)((ulonglong)local_1c >> 0x20) + (short)uVar18 +
|
|
|
|
(short)uVar23,
|
|
|
|
CONCAT22((short)((ulonglong)local_1c >> 0x10) + (short)uVar21 +
|
|
|
|
(short)uVar22,(short)local_1c + uVar38 + sVar46)));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar60 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52(uVar21,uVar38),DAT_00833fb0);
|
|
|
|
uVar52 = param_3[2];
|
|
|
|
uVar56 = pmaddwd(CONCAT62(uVar22,sVar46),DAT_00833fb0);
|
|
|
|
*puVar37 = CONCAT44((int)uVar60,(int)uVar51);
|
|
|
|
uVar60 = DAT_00833fb0;
|
|
|
|
uVar40 = param_3[2];
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar52 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar52 >> 0x20));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar52 >> 0x18));
|
|
|
|
uVar47 = (ushort)(byte)((ulonglong)uVar52 >> 0x10);
|
|
|
|
uVar52 = CONCAT44(((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar43 = (byte)((ulonglong)uVar40 >> 0x38);
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar40 >> 0x28);
|
|
|
|
uVar14 = CONCAT23((short)(((uint5)bVar43 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar40 >> 0x30),uVar38));
|
|
|
|
uVar51 = pmaddwd((ulonglong)CONCAT52(uVar19,uVar47),DAT_00833fb0);
|
|
|
|
uVar56 = packssdw(uVar52,uVar52);
|
|
|
|
local_24 = CONCAT26((short)((ulonglong)local_24 >> 0x30) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)((ulonglong)local_24 >> 0x20) + (short)uVar18 +
|
|
|
|
(ushort)bVar43,
|
|
|
|
CONCAT22((short)((ulonglong)local_24 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)(uVar14 >> 0x10),
|
|
|
|
(short)local_24 + uVar47 + (uVar38 & 0xff))));
|
|
|
|
uVar52 = *(undefined8 *)(param_4 + (int)param_3);
|
|
|
|
uVar40 = pmaddwd((ulonglong)CONCAT52(uVar14 >> 0x10,uVar38) & 0xffffffff00ff,DAT_00833fb0);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
uVar40 = CONCAT44(((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = packssdw(uVar40,uVar40);
|
|
|
|
uVar42 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar52 >>
|
|
|
|
0x18) << 0x30) >> 0x28
|
|
|
|
),(char)((ulonglong)uVar52 >> 0x10))
|
|
|
|
<< 0x20) >> 0x18),(char)((ulonglong)uVar52 >> 8)),
|
|
|
|
(ushort)(byte)uVar52);
|
|
|
|
puVar37[1] = CONCAT44((int)uVar40,(int)uVar56);
|
|
|
|
uVar40 = DAT_00833fb0;
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar52 >> 0x18);
|
|
|
|
uVar54 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)
|
|
|
|
uVar52 >> 0x30
|
|
|
|
) << 0x30) >>
|
|
|
|
0x28),
|
|
|
|
(char)((ulonglong)uVar52 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar52 >> 0x20),uVar45)) >> 0x10)
|
|
|
|
,uVar45) & 0xffffffff00ff00ff;
|
|
|
|
param_5 = puVar37 + 2;
|
|
|
|
bVar4 = (bool)(bVar4 ^ 1);
|
|
|
|
param_6 = puVar36;
|
|
|
|
} while (!bVar4);
|
|
|
|
uVar60 = pmaddwd(local_c,DAT_00833fb8);
|
|
|
|
uVar52 = pmaddwd(local_c,DAT_00833fc0);
|
|
|
|
uVar56 = pmaddwd(local_14,DAT_00833fb8);
|
|
|
|
uVar61 = pmaddwd(local_1c,DAT_00833fb8);
|
|
|
|
uVar58 = pmaddwd(local_14,DAT_00833fc0);
|
|
|
|
iVar1 = (int)DAT_00833ff8;
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833ff8 >> 0x20);
|
|
|
|
uVar51 = pmaddwd(local_1c,DAT_00833fc0);
|
|
|
|
uVar41 = CONCAT44((int)uVar52 + (int)((ulonglong)uVar52 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar1 >> 10) & _DAT_00834020
|
|
|
|
| (CONCAT44((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar1 >> 10) &
|
|
|
|
_DAT_00834020) << 0x10;
|
|
|
|
uVar60 = pmaddwd(local_24,DAT_00833fb8);
|
|
|
|
uVar56 = pmaddwd(local_24,DAT_00833fc0);
|
|
|
|
local_c = 0;
|
|
|
|
local_14 = 0;
|
|
|
|
local_1c = 0;
|
|
|
|
local_24 = 0;
|
|
|
|
uVar52 = *param_3;
|
|
|
|
uVar53 = (CONCAT44((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar1 >> 10) & _DAT_00834020
|
|
|
|
) << 0x10 |
|
|
|
|
CONCAT44((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar61 + (int)((ulonglong)uVar61 >> 0x20) + iVar1 >> 10) & _DAT_00834020;
|
|
|
|
uVar38 = (ushort)(((uint7)(byte)((ulonglong)uVar52 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar38,(char)((ulonglong)uVar52 >> 0x10));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar52 >> 8));
|
|
|
|
uVar42 = (ulonglong)CONCAT52(uVar19,(ushort)(byte)uVar52);
|
|
|
|
*puVar36 = CONCAT44((int)uVar53,(int)uVar41);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar52 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar3,(char)((ulonglong)uVar52 >> 0x28));
|
|
|
|
uVar47 = (ushort)((ulonglong)uVar52 >> 0x18);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar20 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar52 >> 0x20),uVar47));
|
|
|
|
uVar54 = (ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar47) & 0xffffffffffff00ff;
|
|
|
|
puVar36[0x10] = CONCAT44((int)(uVar53 >> 0x20),(int)(uVar41 >> 0x20));
|
|
|
|
iVar35 = iVar35 + -1;
|
|
|
|
param_6 = puVar36 + 2;
|
|
|
|
uVar60 = uVar40;
|
|
|
|
} while (iVar35 != 0);
|
|
|
|
uVar51 = pmaddwd(uVar42,uVar40);
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar56 = pmaddwd(uVar54,uVar40);
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x20) << 0x30) >> 0x28);
|
|
|
|
uVar25 = CONCAT21(uVar6,(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar25 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x10));
|
|
|
|
bVar44 = (byte)((ulonglong)uVar60 >> 8);
|
|
|
|
uVar56 = CONCAT44(((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar51 = param_3[2];
|
|
|
|
uVar56 = packssdw(uVar56,uVar56);
|
|
|
|
uVar5 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)bVar44 << 0x30) >> 0x28);
|
|
|
|
uVar26 = CONCAT21(uVar7,(char)uVar60);
|
|
|
|
uVar17 = CONCAT43((int)(((uint7)uVar26 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)*param_3 >> 0x38),uVar5));
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar17 >> 0x10),uVar5) & 0xffffffffffff00ff,
|
|
|
|
uVar40);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar27 = CONCAT21(uVar8,(char)((ulonglong)uVar60 >> 0x30));
|
|
|
|
uVar57 = (ushort)((ulonglong)uVar60 >> 0x20);
|
|
|
|
uVar16 = CONCAT43((int)(((uint7)uVar27 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x28),uVar57));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar21,(ushort)bVar44),uVar40);
|
|
|
|
sVar24 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar51 >> 0x10));
|
|
|
|
uVar23 = CONCAT31(CONCAT21(sVar24,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar51 >> 8));
|
|
|
|
uVar22 = CONCAT51(CONCAT41(uVar23,(char)((uint)DAT_00834040 >> 8)),(char)uVar51);
|
|
|
|
sVar48 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = packssdw(uVar60,uVar60);
|
|
|
|
uVar61 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar16 >> 0x10),uVar57) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar60 = param_3[2];
|
|
|
|
uVar58 = pmaddwd(CONCAT62(uVar22,sVar48),DAT_00833fb0);
|
|
|
|
*param_5 = CONCAT44((int)uVar40,(int)uVar56);
|
|
|
|
uVar51 = DAT_00833fb0;
|
|
|
|
uVar40 = param_3[2];
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar11 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar28 = CONCAT21(uVar11,(char)((ulonglong)uVar60 >> 0x20));
|
|
|
|
uVar29 = CONCAT41((int)(((uint7)uVar28 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar55 = (ushort)(byte)((ulonglong)uVar60 >> 0x10);
|
|
|
|
uVar60 = CONCAT44(((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar61 + (int)((ulonglong)uVar61 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar43 = (byte)((ulonglong)uVar40 >> 0x38);
|
|
|
|
uVar39 = (ushort)((ulonglong)uVar40 >> 0x28);
|
|
|
|
uVar14 = CONCAT23((short)(((uint5)bVar43 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar40 >> 0x30),uVar39));
|
|
|
|
uVar56 = pmaddwd((ulonglong)CONCAT52(uVar29,uVar55),DAT_00833fb0);
|
|
|
|
uVar58 = packssdw(uVar60,uVar60);
|
|
|
|
uVar60 = *(undefined8 *)(param_4 + (int)param_3);
|
|
|
|
uVar40 = pmaddwd((ulonglong)CONCAT52(uVar14 >> 0x10,uVar39) & 0xffffffff00ff,DAT_00833fb0);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
uVar40 = CONCAT44(((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = packssdw(uVar40,uVar40);
|
|
|
|
uVar12 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar30 = CONCAT21(uVar12,(char)((ulonglong)uVar60 >> 0x10));
|
|
|
|
uVar31 = CONCAT41((int)(((uint7)uVar30 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 8));
|
|
|
|
puVar37[3] = CONCAT44((int)uVar40,(int)uVar58);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar32 = CONCAT21(uVar9,(char)((ulonglong)uVar60 >> 0x28));
|
|
|
|
uVar49 = (ushort)((ulonglong)uVar60 >> 0x18);
|
|
|
|
uVar13 = CONCAT43((int)(((uint7)uVar32 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x20),uVar49));
|
|
|
|
uVar61 = CONCAT26((uVar12 >> 8) + (uVar38 >> 8) + (uVar3 >> 8) + (uVar9 >> 8),
|
|
|
|
CONCAT24((short)uVar30 + (short)uVar18 + (short)uVar20 + (short)uVar32,
|
|
|
|
CONCAT22((short)uVar31 + (short)uVar19 + (short)((uint7)uVar10 >> 0x10)
|
|
|
|
+ (short)((uint7)uVar13 >> 0x10),
|
|
|
|
(ushort)(byte)uVar60 + (ushort)(byte)uVar52 + (uVar47 & 0xff)
|
|
|
|
+ (uVar49 & 0xff))));
|
|
|
|
uVar52 = pmaddwd((ulonglong)CONCAT52(uVar31,(ushort)(byte)uVar60),uVar51);
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar40 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar13 >> 0x10),uVar49) & 0xffffffffffff00ff,
|
|
|
|
uVar51);
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar38 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x20) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar38,(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x10));
|
|
|
|
bVar59 = (byte)((ulonglong)uVar60 >> 8);
|
|
|
|
uVar40 = CONCAT44(((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar52 + (int)((ulonglong)uVar52 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar52 = param_3[2];
|
|
|
|
uVar40 = packssdw(uVar40,uVar40);
|
|
|
|
uVar3 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar47 = (ushort)(((uint7)bVar59 << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar47,(char)uVar60);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar20 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)*param_3 >> 0x38),uVar3));
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar56 = CONCAT26((uVar6 >> 8) + (uVar7 >> 8) + (uVar38 >> 8) + (uVar47 >> 8),
|
|
|
|
CONCAT24((short)uVar25 + (short)uVar26 + (short)uVar18 + (short)uVar20,
|
|
|
|
CONCAT22((short)uVar21 + (short)((uint7)uVar17 >> 0x10) + (short)uVar19
|
|
|
|
+ (short)((uint7)uVar10 >> 0x10),
|
|
|
|
(ushort)bVar44 + (uVar5 & 0xff) + (ushort)bVar59 +
|
|
|
|
(uVar3 & 0xff))));
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar3) & 0xffffffffffff00ff,
|
|
|
|
uVar51);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar60 >> 0x30));
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar60 >> 0x20);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar18 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x28),uVar38));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar19,(ushort)bVar59),uVar51);
|
|
|
|
sVar46 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar52 >> 0x10));
|
|
|
|
uVar34 = CONCAT31(CONCAT21(sVar46,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar52 >> 8));
|
|
|
|
uVar33 = CONCAT51(CONCAT41(uVar34,(char)((uint)DAT_00834040 >> 8)),(char)uVar52);
|
|
|
|
sVar50 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
uVar62 = CONCAT26((uVar8 >> 8) + sVar24 + (uVar3 >> 8) + sVar46,
|
|
|
|
CONCAT24((short)uVar27 + (short)uVar23 + (short)uVar18 + (short)uVar34,
|
|
|
|
CONCAT22((short)((uint7)uVar16 >> 0x10) + (short)uVar22 +
|
|
|
|
(short)((uint7)uVar10 >> 0x10) + (short)uVar33,
|
|
|
|
(uVar57 & 0xff) + sVar48 + (uVar38 & 0xff) + sVar50)));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar52 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar38) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fb0);
|
|
|
|
uVar60 = param_3[2];
|
|
|
|
uVar51 = pmaddwd(CONCAT62(uVar33,sVar50),DAT_00833fb0);
|
|
|
|
puVar37[4] = CONCAT44((int)uVar52,(int)uVar40);
|
|
|
|
uVar52 = param_3[2];
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar60 >> 0x20));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar47 = (ushort)(byte)((ulonglong)uVar60 >> 0x10);
|
|
|
|
uVar60 = CONCAT44(((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar44 = (byte)((ulonglong)uVar52 >> 0x38);
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar52 >> 0x28);
|
|
|
|
uVar15 = CONCAT23((short)(((uint5)bVar44 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar52 >> 0x30),uVar38));
|
|
|
|
uVar52 = pmaddwd((ulonglong)CONCAT52(uVar19,uVar47),DAT_00833fb0);
|
|
|
|
uVar40 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = CONCAT26((uVar11 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar28 + (ushort)bVar43 + (short)uVar18 + (ushort)bVar44,
|
|
|
|
CONCAT22((short)uVar29 + (short)(uVar14 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)(uVar15 >> 0x10),
|
|
|
|
uVar55 + (uVar39 & 0xff) + uVar47 + (uVar38 & 0xff))));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar15 >> 0x10,uVar38) & 0xffffffff00ff,DAT_00833fb0);
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar52 + (int)((ulonglong)uVar52 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar60 = packssdw(uVar60,uVar60);
|
|
|
|
puVar37[5] = CONCAT44((int)uVar60,(int)uVar40);
|
|
|
|
uVar60 = pmaddwd(uVar61,DAT_00833fb8);
|
|
|
|
uVar52 = pmaddwd(uVar61,DAT_00833fc0);
|
|
|
|
uVar51 = pmaddwd(uVar56,DAT_00833fb8);
|
|
|
|
uVar61 = pmaddwd(uVar62,DAT_00833fb8);
|
|
|
|
uVar56 = pmaddwd(uVar56,DAT_00833fc0);
|
|
|
|
iVar35 = (int)DAT_00833ff8;
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff8 >> 0x20);
|
|
|
|
uVar40 = pmaddwd(uVar62,DAT_00833fc0);
|
|
|
|
uVar42 = CONCAT44((int)uVar52 + (int)((ulonglong)uVar52 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar35 >> 10) & _DAT_00834020 |
|
|
|
|
(CONCAT44((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar51 + (int)((ulonglong)uVar51 >> 0x20) + iVar35 >> 10) & _DAT_00834020)
|
|
|
|
<< 0x10;
|
|
|
|
uVar60 = pmaddwd(uVar58,DAT_00833fb8);
|
|
|
|
uVar52 = pmaddwd(uVar58,DAT_00833fc0);
|
|
|
|
uVar54 = (CONCAT44((int)uVar52 + (int)((ulonglong)uVar52 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar35 >> 10) & _DAT_00834020)
|
|
|
|
<< 0x10 | CONCAT44((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar61 + (int)((ulonglong)uVar61 >> 0x20) + iVar35 >> 10) &
|
|
|
|
_DAT_00834020;
|
|
|
|
puVar36[2] = CONCAT44((int)uVar54,(int)uVar42);
|
|
|
|
puVar36[0x12] = CONCAT44((int)(uVar54 >> 0x20),(int)(uVar42 >> 0x20));
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00656c40 at 0x00656C40 (size: 1561) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00656c40(undefined4 param_1,undefined4 param_2,undefined8 *param_3,int param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
bool bVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
ushort uVar6;
|
|
|
|
ushort uVar7;
|
|
|
|
ushort uVar8;
|
|
|
|
ushort uVar9;
|
|
|
|
undefined7 uVar10;
|
|
|
|
ushort uVar11;
|
|
|
|
ushort uVar12;
|
|
|
|
undefined7 uVar13;
|
|
|
|
uint5 uVar14;
|
|
|
|
uint5 uVar15;
|
|
|
|
undefined7 uVar16;
|
|
|
|
undefined7 uVar17;
|
|
|
|
uint3 uVar18;
|
|
|
|
undefined5 uVar19;
|
|
|
|
uint3 uVar20;
|
|
|
|
undefined5 uVar21;
|
|
|
|
undefined6 uVar22;
|
|
|
|
undefined4 uVar23;
|
|
|
|
short sVar24;
|
|
|
|
uint3 uVar25;
|
|
|
|
uint3 uVar26;
|
|
|
|
uint3 uVar27;
|
|
|
|
uint3 uVar28;
|
|
|
|
undefined5 uVar29;
|
|
|
|
uint3 uVar30;
|
|
|
|
undefined5 uVar31;
|
|
|
|
uint3 uVar32;
|
|
|
|
undefined6 uVar33;
|
|
|
|
undefined4 uVar34;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar35;
|
|
|
|
undefined8 *puVar36;
|
|
|
|
undefined8 *puVar37;
|
|
|
|
ushort uVar38;
|
|
|
|
ushort uVar39;
|
|
|
|
byte bVar43;
|
|
|
|
undefined8 uVar40;
|
|
|
|
ulonglong uVar41;
|
|
|
|
byte bVar44;
|
|
|
|
ulonglong uVar42;
|
|
|
|
undefined2 uVar45;
|
|
|
|
short sVar46;
|
|
|
|
ushort uVar47;
|
|
|
|
short sVar48;
|
|
|
|
ushort uVar49;
|
|
|
|
short sVar50;
|
|
|
|
undefined8 uVar51;
|
|
|
|
ulonglong uVar52;
|
|
|
|
ulonglong uVar53;
|
|
|
|
ushort uVar54;
|
|
|
|
undefined8 uVar55;
|
|
|
|
undefined8 uVar56;
|
|
|
|
ushort uVar57;
|
|
|
|
undefined8 uVar58;
|
|
|
|
byte bVar59;
|
|
|
|
undefined8 uVar60;
|
|
|
|
undefined8 uVar61;
|
|
|
|
undefined8 uVar62;
|
|
|
|
undefined8 local_24;
|
|
|
|
undefined8 local_1c;
|
|
|
|
undefined8 local_14;
|
|
|
|
undefined8 local_c;
|
|
|
|
|
|
|
|
iVar35 = 3;
|
|
|
|
bVar4 = true;
|
|
|
|
uVar60 = *param_3;
|
|
|
|
local_c = 0;
|
|
|
|
local_14 = 0;
|
|
|
|
local_1c = 0;
|
|
|
|
uVar42 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar60 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar60 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar60 >> 8)),(ushort)(byte)uVar60);
|
|
|
|
local_24 = 0;
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar60 >> 0x18);
|
|
|
|
uVar53 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar60
|
|
|
|
>> 0x30) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar60 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x20),uVar45)) >> 0x10),
|
|
|
|
uVar45) & 0xffffffff00ff00ff;
|
|
|
|
uVar60 = DAT_00833fc8;
|
|
|
|
do {
|
|
|
|
while( true ) {
|
|
|
|
puVar37 = param_5;
|
|
|
|
puVar36 = param_6;
|
|
|
|
local_c = CONCAT26((short)(uVar42 >> 0x30) + (short)((ulonglong)local_c >> 0x30) +
|
|
|
|
(short)(uVar53 >> 0x30),
|
|
|
|
CONCAT24((short)(uVar42 >> 0x20) + (short)((ulonglong)local_c >> 0x20) +
|
|
|
|
(short)(uVar53 >> 0x20),
|
|
|
|
CONCAT22((short)(uVar42 >> 0x10) +
|
|
|
|
(short)((ulonglong)local_c >> 0x10) +
|
|
|
|
(short)(uVar53 >> 0x10),
|
|
|
|
(short)uVar42 + (short)local_c + (short)uVar53)));
|
|
|
|
uVar40 = pmaddwd(uVar42,uVar60);
|
|
|
|
uVar56 = param_3[1];
|
|
|
|
uVar51 = pmaddwd(uVar53,uVar60);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
bVar44 = (byte)((ulonglong)uVar56 >> 0x20);
|
|
|
|
uVar18 = CONCAT21((short)(((uint7)bVar44 << 0x30) >> 0x28),(char)((ulonglong)uVar56 >> 0x18));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar56 >> 0x10));
|
|
|
|
bVar43 = (byte)((ulonglong)uVar56 >> 8);
|
|
|
|
uVar51 = CONCAT44(((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = param_3[2];
|
|
|
|
uVar51 = packssdw(uVar51,uVar51);
|
|
|
|
uVar3 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar38 = (ushort)(((uint7)bVar43 << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar38,(char)uVar56);
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar20 << 0x20) >> 0x18),(char)((ulonglong)*param_3 >> 0x38));
|
|
|
|
uVar56 = param_3[1];
|
|
|
|
local_14 = CONCAT26((short)((ulonglong)local_14 >> 0x30) + (ushort)bVar44 + (uVar38 >> 8),
|
|
|
|
CONCAT24((short)((ulonglong)local_14 >> 0x20) + (short)uVar18 +
|
|
|
|
(short)uVar20,
|
|
|
|
CONCAT22((short)((ulonglong)local_14 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)uVar21,
|
|
|
|
(short)local_14 + (ushort)bVar43 + (uVar3 & 0xff))));
|
|
|
|
uVar55 = pmaddwd((ulonglong)(CONCAT52(uVar21,uVar3) & 0xffffffffff00ff),uVar60);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar56 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar56 >> 0x30));
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar56 >> 0x28));
|
|
|
|
uVar38 = (ushort)(byte)((ulonglong)uVar56 >> 0x20);
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar19,(ushort)bVar43),uVar60);
|
|
|
|
sVar24 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar40 >> 0x10));
|
|
|
|
uVar23 = CONCAT31(CONCAT21(sVar24,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar40 >> 8));
|
|
|
|
uVar22 = CONCAT51(CONCAT41(uVar23,(char)((uint)DAT_00834040 >> 8)),(char)uVar40);
|
|
|
|
sVar46 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
local_1c = CONCAT26((short)((ulonglong)local_1c >> 0x30) + (uVar3 >> 8) + sVar24,
|
|
|
|
CONCAT24((short)((ulonglong)local_1c >> 0x20) + (short)uVar18 +
|
|
|
|
(short)uVar23,
|
|
|
|
CONCAT22((short)((ulonglong)local_1c >> 0x10) + (short)uVar21 +
|
|
|
|
(short)uVar22,(short)local_1c + uVar38 + sVar46)));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar56 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52(uVar21,uVar38),DAT_00833fc8);
|
|
|
|
uVar60 = param_3[2];
|
|
|
|
uVar55 = pmaddwd(CONCAT62(uVar22,sVar46),DAT_00833fc8);
|
|
|
|
*puVar37 = CONCAT44((int)uVar56,(int)uVar51);
|
|
|
|
uVar40 = DAT_00833fc8;
|
|
|
|
uVar56 = param_3[2];
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar60 >> 0x20));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar47 = (ushort)(byte)((ulonglong)uVar60 >> 0x10);
|
|
|
|
uVar60 = CONCAT44(((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar43 = (byte)((ulonglong)uVar56 >> 0x38);
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar56 >> 0x28);
|
|
|
|
uVar14 = CONCAT23((short)(((uint5)bVar43 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar56 >> 0x30),uVar38));
|
|
|
|
uVar51 = pmaddwd((ulonglong)CONCAT52(uVar19,uVar47),DAT_00833fc8);
|
|
|
|
uVar55 = packssdw(uVar60,uVar60);
|
|
|
|
local_24 = CONCAT26((short)((ulonglong)local_24 >> 0x30) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)((ulonglong)local_24 >> 0x20) + (short)uVar18 +
|
|
|
|
(ushort)bVar43,
|
|
|
|
CONCAT22((short)((ulonglong)local_24 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)(uVar14 >> 0x10),
|
|
|
|
(short)local_24 + uVar47 + (uVar38 & 0xff))));
|
|
|
|
uVar56 = *(undefined8 *)(param_4 + (int)param_3);
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar14 >> 0x10,uVar38) & 0xffffffff00ff,DAT_00833fc8);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
param_5 = puVar37 + 2;
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar1 >> 8,
|
|
|
|
((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar4 = (bool)(bVar4 ^ 1);
|
|
|
|
uVar60 = packssdw(uVar60,uVar60);
|
|
|
|
uVar42 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar56 >>
|
|
|
|
0x18) << 0x30) >> 0x28
|
|
|
|
),(char)((ulonglong)uVar56 >> 0x10))
|
|
|
|
<< 0x20) >> 0x18),(char)((ulonglong)uVar56 >> 8)),
|
|
|
|
(ushort)(byte)uVar56);
|
|
|
|
puVar37[1] = CONCAT44((int)uVar60,(int)uVar55);
|
|
|
|
uVar60 = DAT_00833fc8;
|
|
|
|
if (bVar4) break;
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar56 >> 0x18);
|
|
|
|
uVar53 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)
|
|
|
|
uVar56 >> 0x30
|
|
|
|
) << 0x30) >>
|
|
|
|
0x28),
|
|
|
|
(char)((ulonglong)uVar56 >> 0x28)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar56 >> 0x20),uVar45)) >> 0x10)
|
|
|
|
,uVar45) & 0xffffffff00ff00ff;
|
|
|
|
param_6 = puVar36;
|
|
|
|
uVar60 = uVar40;
|
|
|
|
}
|
|
|
|
uVar56 = pmaddwd(local_c,DAT_00833fd0);
|
|
|
|
uVar40 = pmaddwd(local_c,DAT_00833fd8);
|
|
|
|
uVar55 = pmaddwd(local_14,DAT_00833fd0);
|
|
|
|
uVar61 = pmaddwd(local_1c,DAT_00833fd0);
|
|
|
|
uVar58 = pmaddwd(local_14,DAT_00833fd8);
|
|
|
|
iVar1 = (int)DAT_00833ff8;
|
|
|
|
iVar2 = (int)((ulonglong)DAT_00833ff8 >> 0x20);
|
|
|
|
uVar51 = pmaddwd(local_1c,DAT_00833fd8);
|
|
|
|
uVar41 = CONCAT44((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar1 >> 10) & _DAT_00834020
|
|
|
|
| (CONCAT44((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar55 + (int)((ulonglong)uVar55 >> 0x20) + iVar1 >> 10) &
|
|
|
|
_DAT_00834020) << 0x10;
|
|
|
|
uVar40 = pmaddwd(local_24,DAT_00833fd0);
|
|
|
|
uVar55 = pmaddwd(local_24,DAT_00833fd8);
|
|
|
|
local_c = 0;
|
|
|
|
local_14 = 0;
|
|
|
|
local_1c = 0;
|
|
|
|
local_24 = 0;
|
|
|
|
uVar56 = *param_3;
|
|
|
|
uVar52 = (CONCAT44((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar40 + (int)((ulonglong)uVar40 >> 0x20) + iVar1 >> 10) & _DAT_00834020
|
|
|
|
) << 0x10 |
|
|
|
|
CONCAT44((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20) + iVar2 >> 10,
|
|
|
|
(int)uVar61 + (int)((ulonglong)uVar61 >> 0x20) + iVar1 >> 10) & _DAT_00834020;
|
|
|
|
uVar38 = (ushort)(((uint7)(byte)((ulonglong)uVar56 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar38,(char)((ulonglong)uVar56 >> 0x10));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar56 >> 8));
|
|
|
|
uVar42 = (ulonglong)CONCAT52(uVar19,(ushort)(byte)uVar56);
|
|
|
|
*puVar36 = CONCAT44((int)uVar52,(int)uVar41);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar56 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar3,(char)((ulonglong)uVar56 >> 0x28));
|
|
|
|
uVar47 = (ushort)((ulonglong)uVar56 >> 0x18);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar20 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar56 >> 0x20),uVar47));
|
|
|
|
uVar53 = (ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar47) & 0xffffffffffff00ff;
|
|
|
|
puVar36[0x10] = CONCAT44((int)(uVar52 >> 0x20),(int)(uVar41 >> 0x20));
|
|
|
|
iVar35 = iVar35 + -1;
|
|
|
|
param_6 = puVar36 + 2;
|
|
|
|
} while (iVar35 != 0);
|
|
|
|
uVar51 = pmaddwd(uVar42,uVar60);
|
|
|
|
uVar40 = param_3[1];
|
|
|
|
uVar55 = pmaddwd(uVar53,uVar60);
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((ulonglong)uVar40 >> 0x20) << 0x30) >> 0x28);
|
|
|
|
uVar25 = CONCAT21(uVar6,(char)((ulonglong)uVar40 >> 0x18));
|
|
|
|
uVar21 = CONCAT41((int)(((uint7)uVar25 << 0x20) >> 0x18),(char)((ulonglong)uVar40 >> 0x10));
|
|
|
|
bVar44 = (byte)((ulonglong)uVar40 >> 8);
|
|
|
|
uVar55 = CONCAT44(((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar51 = param_3[2];
|
|
|
|
uVar55 = packssdw(uVar55,uVar55);
|
|
|
|
uVar5 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)bVar44 << 0x30) >> 0x28);
|
|
|
|
uVar26 = CONCAT21(uVar7,(char)uVar40);
|
|
|
|
uVar17 = CONCAT43((int)(((uint7)uVar26 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)*param_3 >> 0x38),uVar5));
|
|
|
|
uVar40 = param_3[1];
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar17 >> 0x10),uVar5) & 0xffffffffffff00ff,
|
|
|
|
uVar60);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((ulonglong)uVar40 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar27 = CONCAT21(uVar8,(char)((ulonglong)uVar40 >> 0x30));
|
|
|
|
uVar57 = (ushort)((ulonglong)uVar40 >> 0x20);
|
|
|
|
uVar16 = CONCAT43((int)(((uint7)uVar27 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar40 >> 0x28),uVar57));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar21,(ushort)bVar44),uVar60);
|
|
|
|
sVar24 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar51 >> 0x10));
|
|
|
|
uVar23 = CONCAT31(CONCAT21(sVar24,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar51 >> 8));
|
|
|
|
uVar22 = CONCAT51(CONCAT41(uVar23,(char)((uint)DAT_00834040 >> 8)),(char)uVar51);
|
|
|
|
sVar48 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = packssdw(uVar60,uVar60);
|
|
|
|
uVar61 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar16 >> 0x10),uVar57) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar60 = param_3[2];
|
|
|
|
uVar58 = pmaddwd(CONCAT62(uVar22,sVar48),DAT_00833fc8);
|
|
|
|
*param_5 = CONCAT44((int)uVar40,(int)uVar55);
|
|
|
|
uVar51 = DAT_00833fc8;
|
|
|
|
uVar40 = param_3[2];
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar11 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar28 = CONCAT21(uVar11,(char)((ulonglong)uVar60 >> 0x20));
|
|
|
|
uVar29 = CONCAT41((int)(((uint7)uVar28 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar54 = (ushort)(byte)((ulonglong)uVar60 >> 0x10);
|
|
|
|
uVar60 = CONCAT44(((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar61 + (int)((ulonglong)uVar61 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar43 = (byte)((ulonglong)uVar40 >> 0x38);
|
|
|
|
uVar39 = (ushort)((ulonglong)uVar40 >> 0x28);
|
|
|
|
uVar14 = CONCAT23((short)(((uint5)bVar43 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar40 >> 0x30),uVar39));
|
|
|
|
uVar55 = pmaddwd((ulonglong)CONCAT52(uVar29,uVar54),DAT_00833fc8);
|
|
|
|
uVar58 = packssdw(uVar60,uVar60);
|
|
|
|
uVar60 = *(undefined8 *)(param_4 + (int)param_3);
|
|
|
|
uVar40 = pmaddwd((ulonglong)CONCAT52(uVar14 >> 0x10,uVar39) & 0xffffffff00ff,DAT_00833fc8);
|
|
|
|
param_3 = (undefined8 *)((int)param_3 + param_4);
|
|
|
|
uVar40 = CONCAT44(((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar40 = packssdw(uVar40,uVar40);
|
|
|
|
uVar12 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar30 = CONCAT21(uVar12,(char)((ulonglong)uVar60 >> 0x10));
|
|
|
|
uVar31 = CONCAT41((int)(((uint7)uVar30 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 8));
|
|
|
|
puVar37[3] = CONCAT44((int)uVar40,(int)uVar58);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x30) << 0x30) >> 0x28);
|
|
|
|
uVar32 = CONCAT21(uVar9,(char)((ulonglong)uVar60 >> 0x28));
|
|
|
|
uVar49 = (ushort)((ulonglong)uVar60 >> 0x18);
|
|
|
|
uVar13 = CONCAT43((int)(((uint7)uVar32 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x20),uVar49));
|
|
|
|
uVar61 = CONCAT26((uVar12 >> 8) + (uVar38 >> 8) + (uVar3 >> 8) + (uVar9 >> 8),
|
|
|
|
CONCAT24((short)uVar30 + (short)uVar18 + (short)uVar20 + (short)uVar32,
|
|
|
|
CONCAT22((short)uVar31 + (short)uVar19 + (short)((uint7)uVar10 >> 0x10)
|
|
|
|
+ (short)((uint7)uVar13 >> 0x10),
|
|
|
|
(ushort)(byte)uVar60 + (ushort)(byte)uVar56 + (uVar47 & 0xff)
|
|
|
|
+ (uVar49 & 0xff))));
|
|
|
|
uVar56 = pmaddwd((ulonglong)CONCAT52(uVar31,(ushort)(byte)uVar60),uVar51);
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar40 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar13 >> 0x10),uVar49) & 0xffffffffffff00ff,
|
|
|
|
uVar51);
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar38 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x20) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar38,(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x10));
|
|
|
|
bVar59 = (byte)((ulonglong)uVar60 >> 8);
|
|
|
|
uVar40 = CONCAT44(((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar56 = param_3[2];
|
|
|
|
uVar40 = packssdw(uVar40,uVar40);
|
|
|
|
uVar3 = (ushort)((ulonglong)*param_3 >> 0x30);
|
|
|
|
uVar47 = (ushort)(((uint7)bVar59 << 0x30) >> 0x28);
|
|
|
|
uVar20 = CONCAT21(uVar47,(char)uVar60);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar20 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)*param_3 >> 0x38),uVar3));
|
|
|
|
uVar60 = param_3[1];
|
|
|
|
uVar55 = CONCAT26((uVar6 >> 8) + (uVar7 >> 8) + (uVar38 >> 8) + (uVar47 >> 8),
|
|
|
|
CONCAT24((short)uVar25 + (short)uVar26 + (short)uVar18 + (short)uVar20,
|
|
|
|
CONCAT22((short)uVar21 + (short)((uint7)uVar17 >> 0x10) + (short)uVar19
|
|
|
|
+ (short)((uint7)uVar10 >> 0x10),
|
|
|
|
(ushort)bVar44 + (uVar5 & 0xff) + (ushort)bVar59 +
|
|
|
|
(uVar3 & 0xff))));
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar3) & 0xffffffffffff00ff,
|
|
|
|
uVar51);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x38) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar60 >> 0x30));
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar60 >> 0x20);
|
|
|
|
uVar10 = CONCAT43((int)(((uint7)uVar18 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar60 >> 0x28),uVar38));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar19,(ushort)bVar59),uVar51);
|
|
|
|
sVar46 = CONCAT11((char)((uint)DAT_00834040 >> 0x18),(char)((ulonglong)uVar56 >> 0x10));
|
|
|
|
uVar34 = CONCAT31(CONCAT21(sVar46,(char)((uint)DAT_00834040 >> 0x10)),
|
|
|
|
(char)((ulonglong)uVar56 >> 8));
|
|
|
|
uVar33 = CONCAT51(CONCAT41(uVar34,(char)((uint)DAT_00834040 >> 8)),(char)uVar56);
|
|
|
|
sVar50 = CONCAT11((char)DAT_00834040,(char)((ulonglong)param_3[1] >> 0x38));
|
|
|
|
uVar62 = CONCAT26((uVar8 >> 8) + sVar24 + (uVar3 >> 8) + sVar46,
|
|
|
|
CONCAT24((short)uVar27 + (short)uVar23 + (short)uVar18 + (short)uVar34,
|
|
|
|
CONCAT22((short)((uint7)uVar16 >> 0x10) + (short)uVar22 +
|
|
|
|
(short)((uint7)uVar10 >> 0x10) + (short)uVar33,
|
|
|
|
(uVar57 & 0xff) + sVar48 + (uVar38 & 0xff) + sVar50)));
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar56 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = pmaddwd((ulonglong)CONCAT52((int5)((uint7)uVar10 >> 0x10),uVar38) & 0xffffffffffff00ff,
|
|
|
|
DAT_00833fc8);
|
|
|
|
uVar60 = param_3[2];
|
|
|
|
uVar51 = pmaddwd(CONCAT62(uVar33,sVar50),DAT_00833fc8);
|
|
|
|
puVar37[4] = CONCAT44((int)uVar56,(int)uVar40);
|
|
|
|
uVar56 = param_3[2];
|
|
|
|
iVar35 = (int)((ulonglong)DAT_00833fe0 >> 0x20);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar60 >> 0x28) << 0x30) >> 0x28);
|
|
|
|
uVar18 = CONCAT21(uVar3,(char)((ulonglong)uVar60 >> 0x20));
|
|
|
|
uVar19 = CONCAT41((int)(((uint7)uVar18 << 0x20) >> 0x18),(char)((ulonglong)uVar60 >> 0x18));
|
|
|
|
uVar47 = (ushort)(byte)((ulonglong)uVar60 >> 0x10);
|
|
|
|
uVar60 = CONCAT44(((int)uVar51 + (int)((ulonglong)uVar51 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar58 + (int)((ulonglong)uVar58 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
bVar44 = (byte)((ulonglong)uVar56 >> 0x38);
|
|
|
|
uVar38 = (ushort)((ulonglong)uVar56 >> 0x28);
|
|
|
|
uVar15 = CONCAT23((short)(((uint5)bVar44 << 0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar56 >> 0x30),uVar38));
|
|
|
|
uVar56 = pmaddwd((ulonglong)CONCAT52(uVar19,uVar47),DAT_00833fc8);
|
|
|
|
uVar40 = packssdw(uVar60,uVar60);
|
|
|
|
uVar58 = CONCAT26((uVar11 >> 8) + (uVar3 >> 8),
|
|
|
|
CONCAT24((short)uVar28 + (ushort)bVar43 + (short)uVar18 + (ushort)bVar44,
|
|
|
|
CONCAT22((short)uVar29 + (short)(uVar14 >> 0x10) + (short)uVar19 +
|
|
|
|
(short)(uVar15 >> 0x10),
|
|
|
|
uVar54 + (uVar39 & 0xff) + uVar47 + (uVar38 & 0xff))));
|
|
|
|
uVar60 = pmaddwd((ulonglong)CONCAT52(uVar15 >> 0x10,uVar38) & 0xffffffff00ff,DAT_00833fc8);
|
|
|
|
uVar60 = CONCAT44(((int)uVar60 + (int)((ulonglong)uVar60 >> 0x20)) - iVar35 >> 8,
|
|
|
|
((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20)) - (int)DAT_00833fe0 >> 8);
|
|
|
|
uVar60 = packssdw(uVar60,uVar60);
|
|
|
|
puVar37[5] = CONCAT44((int)uVar60,(int)uVar40);
|
|
|
|
uVar60 = pmaddwd(uVar61,DAT_00833fd0);
|
|
|
|
uVar56 = pmaddwd(uVar61,DAT_00833fd8);
|
|
|
|
uVar51 = pmaddwd(uVar55,DAT_00833fd0);
|
|
|
|
uVar61 = pmaddwd(uVar62,DAT_00833fd0);
|
|
|
|
uVar55 = pmaddwd(uVar55,DAT_00833fd8);
|
|
|
|
iVar35 = (int)DAT_00833ff8;
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00833ff8 >> 0x20);
|
|
|
|
uVar40 = pmaddwd(uVar62,DAT_00833fd8);
|
|
|
|
uVar42 = CONCAT44((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar35 >> 10) & _DAT_00834020 |
|
|
|
|
(CONCAT44((int)uVar55 + (int)((ulonglong)uVar55 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar51 + (int)((ulonglong)uVar51 >> 0x20) + iVar35 >> 10) & _DAT_00834020)
|
|
|
|
<< 0x10;
|
|
|
|
uVar60 = pmaddwd(uVar58,DAT_00833fd0);
|
|
|
|
uVar56 = pmaddwd(uVar58,DAT_00833fd8);
|
|
|
|
uVar53 = (CONCAT44((int)uVar56 + (int)((ulonglong)uVar56 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar60 + (int)((ulonglong)uVar60 >> 0x20) + iVar35 >> 10) & _DAT_00834020)
|
|
|
|
<< 0x10 | CONCAT44((int)uVar40 + (int)((ulonglong)uVar40 >> 0x20) + iVar1 >> 10,
|
|
|
|
(int)uVar61 + (int)((ulonglong)uVar61 >> 0x20) + iVar35 >> 10) &
|
|
|
|
_DAT_00834020;
|
|
|
|
puVar36[2] = CONCAT44((int)uVar53,(int)uVar42);
|
|
|
|
puVar36[0x12] = CONCAT44((int)(uVar53 >> 0x20),(int)(uVar42 >> 0x20));
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657260 at 0x00657260 (size: 975) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00657260(undefined4 param_1,undefined4 param_2,int param_3,int param_4,undefined8 *param_5,
|
|
|
|
undefined8 *param_6,undefined4 param_7,undefined8 *param_8)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
int iVar5;
|
|
|
|
int iVar6;
|
|
|
|
undefined8 uVar7;
|
|
|
|
ulonglong uVar8;
|
|
|
|
undefined8 uVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
undefined8 local_120;
|
|
|
|
undefined8 local_118;
|
|
|
|
undefined8 local_110;
|
|
|
|
undefined8 local_108;
|
|
|
|
undefined8 local_100;
|
|
|
|
undefined8 local_f8;
|
|
|
|
undefined8 local_f0;
|
|
|
|
undefined8 local_e8;
|
|
|
|
int local_e0 [16];
|
|
|
|
int local_a0 [16];
|
|
|
|
undefined8 local_60;
|
|
|
|
undefined8 local_58;
|
|
|
|
undefined8 local_50;
|
|
|
|
undefined8 local_48;
|
|
|
|
undefined8 local_40;
|
|
|
|
undefined8 local_38;
|
|
|
|
undefined8 local_30;
|
|
|
|
undefined8 local_28;
|
|
|
|
|
|
|
|
iVar4 = 0;
|
|
|
|
iVar2 = 8;
|
|
|
|
iVar3 = 0;
|
|
|
|
iVar5 = 4;
|
|
|
|
while( true ) {
|
|
|
|
while( true ) {
|
|
|
|
uVar11 = DAT_00834068;
|
|
|
|
uVar8 = *(ulonglong *)(iVar4 + param_3) & DAT_00834050;
|
|
|
|
iVar6 = (int)((ulonglong)DAT_00834060 >> 0x20);
|
|
|
|
uVar9 = CONCAT44((uint)(byte)(uVar8 >> 0x38) - iVar6,(int)(uVar8 >> 0x18) - (int)DAT_00834060)
|
|
|
|
;
|
|
|
|
uVar9 = packssdw(uVar9,uVar9);
|
|
|
|
uVar12 = psubusb(DAT_00834048,*(ulonglong *)(iVar4 + param_3));
|
|
|
|
*(int *)((int)&local_60 + iVar3) = (int)uVar9;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar12 >>
|
|
|
|
0x18) << 0x30) >> 0x28)
|
|
|
|
,(char)((ulonglong)uVar12 >> 0x10)) << 0x20)
|
|
|
|
>> 0x18),(char)((ulonglong)uVar12 >> 8)),(ushort)(byte)uVar12);
|
|
|
|
uVar7 = pmaddwd(DAT_00834070,uVar8);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar12 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar12 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar12 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar12 >> 0x20))));
|
|
|
|
uVar9 = pmaddwd(DAT_00834070,uVar10);
|
|
|
|
iVar1 = (int)((ulonglong)DAT_00834058 >> 0x20);
|
|
|
|
uVar9 = CONCAT44(((int)((ulonglong)uVar9 >> 0x20) + (int)uVar9) - iVar1 >> 8,
|
|
|
|
((int)((ulonglong)uVar7 >> 0x20) + (int)uVar7) - (int)DAT_00834058 >> 8);
|
|
|
|
uVar9 = packssdw(uVar9,uVar9);
|
|
|
|
*(int *)((int)&local_120 + iVar3) = (int)uVar9;
|
|
|
|
uVar7 = pmaddwd(DAT_00834078,uVar8);
|
|
|
|
uVar9 = pmaddwd(DAT_00834078,uVar10);
|
|
|
|
*(int *)((int)local_e0 + iVar3) =
|
|
|
|
(int)((ulonglong)uVar7 >> 0x20) + (int)uVar7 +
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9;
|
|
|
|
uVar7 = pmaddwd(DAT_00834080,uVar8);
|
|
|
|
uVar9 = pmaddwd(DAT_00834080,uVar10);
|
|
|
|
*(int *)((int)local_a0 + iVar3) =
|
|
|
|
(int)((ulonglong)uVar7 >> 0x20) + (int)uVar7 +
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9;
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
if (iVar2 == 0) break;
|
|
|
|
iVar4 = iVar4 + 8;
|
|
|
|
iVar3 = iVar3 + 4;
|
|
|
|
}
|
|
|
|
iVar4 = 0;
|
|
|
|
iVar2 = 8;
|
|
|
|
while( true ) {
|
|
|
|
uVar8 = *(ulonglong *)(iVar4 + param_3 + param_4);
|
|
|
|
uVar10 = uVar8 & DAT_00834050;
|
|
|
|
uVar9 = CONCAT44((uint)(byte)(uVar10 >> 0x38) - iVar6,
|
|
|
|
(int)(uVar10 >> 0x18) - (int)DAT_00834060);
|
|
|
|
uVar9 = packssdw(uVar9,uVar9);
|
|
|
|
uVar12 = psubusb(DAT_00834048,uVar8);
|
|
|
|
*(int *)((int)&local_60 + iVar3 + 4) = (int)uVar9;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar12 >>
|
|
|
|
0x18) << 0x30) >> 0x28)
|
|
|
|
,(char)((ulonglong)uVar12 >> 0x10)) << 0x20)
|
|
|
|
>> 0x18),(char)((ulonglong)uVar12 >> 8)),(ushort)(byte)uVar12);
|
|
|
|
uVar7 = pmaddwd(DAT_00834070,uVar8);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar12 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar12 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar12 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar12 >> 0x20))));
|
|
|
|
uVar9 = pmaddwd(DAT_00834070,uVar10);
|
|
|
|
uVar9 = CONCAT44(((int)((ulonglong)uVar9 >> 0x20) + (int)uVar9) - iVar1 >> 8,
|
|
|
|
((int)((ulonglong)uVar7 >> 0x20) + (int)uVar7) - (int)DAT_00834058 >> 8);
|
|
|
|
uVar9 = packssdw(uVar9,uVar9);
|
|
|
|
*(int *)((int)&local_120 + iVar3 + 4) = (int)uVar9;
|
|
|
|
uVar7 = pmaddwd(DAT_00834078,uVar8);
|
|
|
|
uVar9 = pmaddwd(DAT_00834078,uVar10);
|
|
|
|
*(int *)((int)local_e0 + iVar3 + 4) =
|
|
|
|
(int)((ulonglong)uVar7 >> 0x20) + (int)uVar7 +
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9;
|
|
|
|
uVar7 = pmaddwd(DAT_00834080,uVar8);
|
|
|
|
uVar9 = pmaddwd(DAT_00834080,uVar10);
|
|
|
|
*(int *)((int)local_a0 + iVar3 + 4) =
|
|
|
|
(int)((ulonglong)uVar7 >> 0x20) + (int)uVar7 +
|
|
|
|
(int)((ulonglong)uVar9 >> 0x20) + (int)uVar9;
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
if (iVar2 == 0) break;
|
|
|
|
iVar4 = iVar4 + 8;
|
|
|
|
iVar3 = iVar3 + 4;
|
|
|
|
}
|
|
|
|
*param_5 = local_120;
|
|
|
|
param_5[1] = local_118;
|
|
|
|
param_5[0x10] = local_110;
|
|
|
|
param_5[0x11] = local_108;
|
|
|
|
param_5[2] = local_100;
|
|
|
|
param_5[3] = local_f8;
|
|
|
|
param_5[0x12] = local_f0;
|
|
|
|
param_5[0x13] = local_e8;
|
|
|
|
iVar3 = (int)uVar11;
|
|
|
|
iVar2 = (int)((ulonglong)uVar11 >> 0x20);
|
|
|
|
uVar11 = packssdw(CONCAT44(SUB84(local_e0._32_8_,4) + SUB84(local_e0._0_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_e0._32_8_ + (int)local_e0._0_8_ + iVar3 >> 10),
|
|
|
|
CONCAT44(SUB84(local_e0._8_8_,4) + SUB84(local_e0._40_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_e0._8_8_ + (int)local_e0._40_8_ + iVar3 >> 10));
|
|
|
|
*param_6 = uVar11;
|
|
|
|
uVar11 = packssdw(CONCAT44(SUB84(local_e0._48_8_,4) + SUB84(local_e0._16_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_e0._48_8_ + (int)local_e0._16_8_ + iVar3 >> 10),
|
|
|
|
CONCAT44(SUB84(local_e0._24_8_,4) + SUB84(local_e0._56_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_e0._24_8_ + (int)local_e0._56_8_ + iVar3 >> 10));
|
|
|
|
param_6[1] = uVar11;
|
|
|
|
uVar11 = packssdw(CONCAT44(SUB84(local_a0._32_8_,4) + SUB84(local_a0._0_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_a0._32_8_ + (int)local_a0._0_8_ + iVar3 >> 10),
|
|
|
|
CONCAT44(SUB84(local_a0._8_8_,4) + SUB84(local_a0._40_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_a0._8_8_ + (int)local_a0._40_8_ + iVar3 >> 10));
|
|
|
|
param_6[0x10] = uVar11;
|
|
|
|
uVar11 = packssdw(CONCAT44(SUB84(local_a0._48_8_,4) + SUB84(local_a0._16_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_a0._48_8_ + (int)local_a0._16_8_ + iVar3 >> 10),
|
|
|
|
CONCAT44(SUB84(local_a0._24_8_,4) + SUB84(local_a0._56_8_,4) + iVar2 >> 10,
|
|
|
|
(int)local_a0._24_8_ + (int)local_a0._56_8_ + iVar3 >> 10));
|
|
|
|
param_6[0x11] = uVar11;
|
|
|
|
*param_8 = local_60;
|
|
|
|
param_8[1] = local_58;
|
|
|
|
param_8[0x10] = local_50;
|
|
|
|
param_8[0x11] = local_48;
|
|
|
|
param_8[2] = local_40;
|
|
|
|
param_8[3] = local_38;
|
|
|
|
param_8[0x12] = local_30;
|
|
|
|
param_8[0x13] = local_28;
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
if (iVar5 == 0) break;
|
|
|
|
iVar4 = 0;
|
|
|
|
iVar3 = 0;
|
|
|
|
iVar2 = 8;
|
|
|
|
param_3 = param_3 + param_4 + param_4;
|
|
|
|
param_5 = param_5 + 4;
|
|
|
|
param_6 = param_6 + 2;
|
|
|
|
param_8 = param_8 + 4;
|
|
|
|
}
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657630 at 0x00657630 (size: 323) ---
|
|
|
|
|
|
undefined4
|
|
|
|
FUN_00657630(undefined8 *param_1,int param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined8 uVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar5;
|
|
|
|
ulonglong uVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
|
|
|
|
uVar4 = DAT_00834000;
|
|
|
|
iVar5 = 8;
|
|
|
|
do {
|
|
|
|
uVar1 = *param_1;
|
|
|
|
uVar2 = param_1[1];
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar2
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar2 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar2 >> 8),(short)uVar2)) >> 0x10),
|
|
|
|
(short)uVar2) & 0xffff00ff00ff00ff;
|
|
|
|
sVar7 = (short)uVar4;
|
|
|
|
sVar8 = (short)((ulonglong)uVar4 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar4 >> 0x20);
|
|
|
|
sVar10 = (short)((ulonglong)uVar4 >> 0x30);
|
|
|
|
*param_3 = CONCAT26((ushort)(byte)((ulonglong)uVar1 >> 0x30) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar1 >> 0x20) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x10) - sVar8,
|
|
|
|
(ushort)(byte)uVar1 - sVar7)));
|
|
|
|
param_3[1] = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x30) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar2 >> 0x20) - sVar9,
|
|
|
|
CONCAT22((short)(uVar6 >> 0x20) - sVar8,(short)uVar6 - sVar7)));
|
|
|
|
*param_4 = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x28) - sVar10,
|
|
|
|
CONCAT24((short)(uVar6 >> 0x10) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x28) - sVar8,
|
|
|
|
(ushort)(byte)((ulonglong)uVar1 >> 8) - sVar7)));
|
|
|
|
*param_5 = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x38) - sVar10,
|
|
|
|
CONCAT24((short)(uVar6 >> 0x30) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x38) - sVar8,
|
|
|
|
(ushort)(byte)((ulonglong)uVar1 >> 0x18) - sVar7)));
|
|
|
|
uVar1 = param_1[2];
|
|
|
|
uVar2 = param_1[3];
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar1 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar2
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar2 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar2 >> 8),(short)uVar2)) >> 0x10),
|
|
|
|
(short)uVar2) & 0xffff00ff00ff00ff;
|
|
|
|
param_3[0x10] =
|
|
|
|
CONCAT26((ushort)(byte)((ulonglong)uVar1 >> 0x30) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar1 >> 0x20) - sVar9,
|
|
|
|
CONCAT22((short)CONCAT21(uVar3,(char)((ulonglong)uVar1 >> 0x10)) - sVar8,
|
|
|
|
(ushort)(byte)uVar1 - sVar7)));
|
|
|
|
param_3[0x11] =
|
|
|
|
CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x30) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar2 >> 0x20) - sVar9,
|
|
|
|
CONCAT22((short)(uVar6 >> 0x20) - sVar8,(short)uVar6 - sVar7)));
|
|
|
|
param_4[1] = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x28) - sVar10,
|
|
|
|
CONCAT24((short)(uVar6 >> 0x10) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x28) - sVar8,
|
|
|
|
(ushort)(byte)((ulonglong)uVar1 >> 8) - sVar7)));
|
|
|
|
param_5[1] = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x38) - sVar10,
|
|
|
|
CONCAT24((short)(uVar6 >> 0x30) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x38) - sVar8,
|
|
|
|
(uVar3 >> 8) - sVar7)));
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_1 = (undefined8 *)((int)param_1 + param_2);
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
} while (iVar5 != 0);
|
|
|
|
return in_EAX;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657780 at 0x00657780 (size: 273) ---
|
|
|
|
|
|
undefined4
|
|
|
|
FUN_00657780(undefined8 *param_1,int param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar2;
|
|
|
|
ulonglong uVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
ulonglong uVar5;
|
|
|
|
undefined8 uVar6;
|
|
|
|
ulonglong uVar7;
|
|
|
|
undefined8 uVar8;
|
|
|
|
ulonglong uVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar14;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
|
|
|
|
uVar1 = DAT_00834000;
|
|
|
|
iVar2 = 8;
|
|
|
|
do {
|
|
|
|
uVar4 = *param_1;
|
|
|
|
uVar6 = param_1[1];
|
|
|
|
uVar3 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar4 >> 8)),(ushort)(byte)uVar4);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar4 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar4 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar4 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar4 >> 0x20))));
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar6
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar6 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar6 >> 8),(short)uVar6)) >> 0x10),
|
|
|
|
(short)uVar6) & 0xffff00ff00ff00ff;
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar6 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar6 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar6 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar6 >> 0x20))));
|
|
|
|
uVar4 = pshufw(uVar3,uVar3,0xd8);
|
|
|
|
uVar8 = pshufw(uVar7,uVar7,0xd8);
|
|
|
|
uVar6 = pshufw(uVar5,uVar5,0xd8);
|
|
|
|
uVar10 = pshufw(uVar9,uVar9,0xd8);
|
|
|
|
uVar11 = CONCAT44((int)((ulonglong)uVar8 >> 0x20),(int)((ulonglong)uVar4 >> 0x20));
|
|
|
|
uVar12 = CONCAT44((int)((ulonglong)uVar10 >> 0x20),(int)((ulonglong)uVar6 >> 0x20));
|
|
|
|
sVar13 = (short)uVar1;
|
|
|
|
sVar14 = (short)((ulonglong)uVar1 >> 0x10);
|
|
|
|
sVar15 = (short)((ulonglong)uVar1 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar1 >> 0x30);
|
|
|
|
*param_3 = CONCAT26((short)((ulonglong)uVar8 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar8 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x10) - sVar14,
|
|
|
|
(short)uVar4 - sVar13)));
|
|
|
|
param_3[1] = CONCAT26((short)((ulonglong)uVar10 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar10 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar6 >> 0x10) - sVar14,
|
|
|
|
(short)uVar6 - sVar13)));
|
|
|
|
uVar4 = pshufw(uVar11,uVar11,0xd8);
|
|
|
|
uVar6 = pshufw(uVar12,uVar12,0xd8);
|
|
|
|
*param_4 = CONCAT26((short)((ulonglong)uVar6 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar6 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x10) - sVar14,
|
|
|
|
(short)uVar4 - sVar13)));
|
|
|
|
*param_5 = CONCAT26((short)((ulonglong)uVar6 >> 0x30) - sVar16,
|
|
|
|
CONCAT24((short)((ulonglong)uVar6 >> 0x20) - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x30) - sVar14,
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20) - sVar13)));
|
|
|
|
uVar4 = param_1[2];
|
|
|
|
uVar6 = param_1[3];
|
|
|
|
uVar3 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar4 >> 0x18
|
|
|
|
) << 0x30) >> 0x28),
|
|
|
|
(char)((ulonglong)uVar4 >> 0x10)) << 0x20) >>
|
|
|
|
0x18),(char)((ulonglong)uVar4 >> 8)),(ushort)(byte)uVar4);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar4 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar4 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar4 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar4 >> 0x20))));
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((ulonglong)uVar6
|
|
|
|
>> 0x18) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(char)((ulonglong)uVar6 >> 0x10)) <<
|
|
|
|
0x20) >> 0x18),
|
|
|
|
CONCAT12((char)((ulonglong)uVar6 >> 8),(short)uVar6)) >> 0x10),
|
|
|
|
(short)uVar6) & 0xffff00ff00ff00ff;
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT16((char)((ulonglong)uVar6 >> 0x38),
|
|
|
|
(uint6)CONCAT14((char)((ulonglong)uVar6 >> 0x30),
|
|
|
|
(uint)CONCAT12((char)((ulonglong)uVar6 >> 0x28),
|
|
|
|
(ushort)(byte)((ulonglong)uVar6 >> 0x20))));
|
|
|
|
uVar4 = pshufw(uVar3,uVar3,0xd8);
|
|
|
|
uVar8 = pshufw(uVar7,uVar7,0xd8);
|
|
|
|
uVar6 = pshufw(uVar5,uVar5,0xd8);
|
|
|
|
uVar10 = pshufw(uVar9,uVar9,0xd8);
|
|
|
|
uVar11 = CONCAT44((int)((ulonglong)uVar8 >> 0x20),(int)((ulonglong)uVar4 >> 0x20));
|
|
|
|
uVar12 = CONCAT44((int)((ulonglong)uVar10 >> 0x20),(int)((ulonglong)uVar6 >> 0x20));
|
|
|
|
param_3[0x10] =
|
|
|
|
CONCAT26((short)((ulonglong)uVar8 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar8 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x10) - sVar14,(short)uVar4 - sVar13
|
|
|
|
)));
|
|
|
|
param_3[0x11] =
|
|
|
|
CONCAT26((short)((ulonglong)uVar10 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar10 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar6 >> 0x10) - sVar14,(short)uVar6 - sVar13
|
|
|
|
)));
|
|
|
|
uVar4 = pshufw(uVar11,uVar11,0xd8);
|
|
|
|
uVar6 = pshufw(uVar12,uVar12,0xd8);
|
|
|
|
param_4[1] = CONCAT26((short)((ulonglong)uVar6 >> 0x10) - sVar16,
|
|
|
|
CONCAT24((short)uVar6 - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x10) - sVar14,
|
|
|
|
(short)uVar4 - sVar13)));
|
|
|
|
param_5[1] = CONCAT26((short)((ulonglong)uVar6 >> 0x30) - sVar16,
|
|
|
|
CONCAT24((short)((ulonglong)uVar6 >> 0x20) - sVar15,
|
|
|
|
CONCAT22((short)((ulonglong)uVar4 >> 0x30) - sVar14,
|
|
|
|
(short)((ulonglong)uVar4 >> 0x20) - sVar13)));
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_1 = (undefined8 *)((int)param_1 + param_2);
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
} while (iVar2 != 0);
|
|
|
|
return in_EAX;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006578a0 at 0x006578A0 (size: 99) ---
|
|
|
|
|
|
void FUN_006578a0(undefined8 *param_1,int param_2,undefined8 *param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined8 uVar2;
|
|
|
|
ushort uVar3;
|
|
|
|
ushort uVar4;
|
|
|
|
undefined8 uVar5;
|
|
|
|
int iVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
|
|
|
|
uVar5 = DAT_00834000;
|
|
|
|
iVar6 = 4;
|
|
|
|
do {
|
|
|
|
uVar1 = *param_1;
|
|
|
|
uVar2 = *(undefined8 *)(param_2 + (int)param_1);
|
|
|
|
uVar4 = (ushort)(((uint7)(byte)((ulonglong)uVar1 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
uVar3 = (ushort)(((uint7)(byte)((ulonglong)uVar2 >> 0x18) << 0x30) >> 0x28);
|
|
|
|
sVar7 = (short)uVar5;
|
|
|
|
sVar8 = (short)((ulonglong)uVar5 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar5 >> 0x20);
|
|
|
|
sVar10 = (short)((ulonglong)uVar5 >> 0x30);
|
|
|
|
*param_3 = CONCAT26((uVar4 >> 8) - sVar10,
|
|
|
|
CONCAT24((short)CONCAT21(uVar4,(char)((ulonglong)uVar1 >> 0x10)) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 8) - sVar8,
|
|
|
|
(ushort)(byte)uVar1 - sVar7)));
|
|
|
|
param_3[1] = CONCAT26((ushort)(byte)((ulonglong)uVar1 >> 0x38) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar1 >> 0x30) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar1 >> 0x28) - sVar8,
|
|
|
|
(ushort)(byte)((ulonglong)uVar1 >> 0x20) - sVar7)));
|
|
|
|
param_3[2] = CONCAT26((uVar3 >> 8) - sVar10,
|
|
|
|
CONCAT24((short)CONCAT21(uVar3,(char)((ulonglong)uVar2 >> 0x10)) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar2 >> 8) - sVar8,
|
|
|
|
((ushort)uVar2 & 0xff) - sVar7)));
|
|
|
|
param_3[3] = CONCAT26((ushort)(byte)((ulonglong)uVar2 >> 0x38) - sVar10,
|
|
|
|
CONCAT24((ushort)(byte)((ulonglong)uVar2 >> 0x30) - sVar9,
|
|
|
|
CONCAT22((ushort)(byte)((ulonglong)uVar2 >> 0x28) - sVar8,
|
|
|
|
(ushort)(byte)((ulonglong)uVar2 >> 0x20) - sVar7)));
|
|
|
|
param_1 = (undefined8 *)((int)param_1 + param_2 * 2);
|
|
|
|
param_3 = param_3 + 4;
|
|
|
|
iVar6 = iVar6 + -1;
|
|
|
|
} while (iVar6 != 0);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657910 at 0x00657910 (size: 65) ---
|
|
|
|
|
|
void FUN_00657910(undefined8 *param_1,undefined8 *param_2,int param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined8 uVar2;
|
|
|
|
undefined8 uVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar14;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
short sVar17;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
short sVar20;
|
|
|
|
int iVar21;
|
|
|
|
|
|
|
|
iVar21 = 4;
|
|
|
|
do {
|
|
|
|
uVar1 = *param_1;
|
|
|
|
uVar2 = param_1[1];
|
|
|
|
uVar3 = param_1[2];
|
|
|
|
uVar4 = param_1[3];
|
|
|
|
sVar5 = (short)uVar1;
|
|
|
|
sVar7 = (short)((ulonglong)uVar1 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar1 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar1 >> 0x30);
|
|
|
|
sVar13 = (short)uVar2;
|
|
|
|
sVar15 = (short)((ulonglong)uVar2 >> 0x10);
|
|
|
|
sVar17 = (short)((ulonglong)uVar2 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar2 >> 0x30);
|
|
|
|
sVar6 = (short)uVar3;
|
|
|
|
sVar8 = (short)((ulonglong)uVar3 >> 0x10);
|
|
|
|
sVar10 = (short)((ulonglong)uVar3 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar3 >> 0x30);
|
|
|
|
sVar14 = (short)uVar4;
|
|
|
|
sVar16 = (short)((ulonglong)uVar4 >> 0x10);
|
|
|
|
sVar18 = (short)((ulonglong)uVar4 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar4 >> 0x30);
|
|
|
|
*param_2 = CONCAT17((0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar2 >> 0x30) -
|
|
|
|
(0xff < sVar19),
|
|
|
|
CONCAT16((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar2 >> 0x20)
|
|
|
|
- (0xff < sVar17),
|
|
|
|
CONCAT15((0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar2 >> 0x10) - (0xff < sVar15),
|
|
|
|
CONCAT14((0 < sVar13) * (sVar13 < 0x100) * (char)uVar2 -
|
|
|
|
(0xff < sVar13),
|
|
|
|
CONCAT13((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x30) -
|
|
|
|
(0xff < sVar11),
|
|
|
|
CONCAT12((0 < sVar9) * (sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x20
|
|
|
|
) - (0xff < sVar9),
|
|
|
|
CONCAT11((0 < sVar7) *
|
|
|
|
(sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar1 >> 0x10)
|
|
|
|
- (0xff < sVar7),
|
|
|
|
(0 < sVar5) *
|
|
|
|
(sVar5 < 0x100) *
|
|
|
|
(char)uVar1 -
|
|
|
|
(0xff < sVar5))))))));
|
|
|
|
*(ulonglong *)(param_3 + (int)param_2) =
|
|
|
|
CONCAT17((0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar4 >> 0x30) -
|
|
|
|
(0xff < sVar20),
|
|
|
|
CONCAT16((0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar4 >> 0x20) -
|
|
|
|
(0xff < sVar18),
|
|
|
|
CONCAT15((0 < sVar16) * (sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar4 >> 0x10) - (0xff < sVar16),
|
|
|
|
CONCAT14((0 < sVar14) * (sVar14 < 0x100) * (char)uVar4 -
|
|
|
|
(0xff < sVar14),
|
|
|
|
CONCAT13((0 < sVar12) * (sVar12 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x30) -
|
|
|
|
(0xff < sVar12),
|
|
|
|
CONCAT12((0 < sVar10) * (sVar10 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x20) -
|
|
|
|
(0xff < sVar10),
|
|
|
|
CONCAT11((0 < sVar8) *
|
|
|
|
(sVar8 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >>
|
|
|
|
0x10) - (0xff < sVar8)
|
|
|
|
,(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)uVar3 -
|
|
|
|
(0xff < sVar6))))))));
|
|
|
|
param_2 = (undefined8 *)((int)param_2 + param_3 * 2);
|
|
|
|
param_1 = param_1 + 4;
|
|
|
|
iVar21 = iVar21 + -1;
|
|
|
|
} while (iVar21 != 0);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657960 at 0x00657960 (size: 556) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00657960(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
bool bVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
ulonglong uVar7;
|
|
|
|
short sVar14;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
short sVar20;
|
|
|
|
ulonglong uVar17;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
ulonglong uVar23;
|
|
|
|
short sVar24;
|
|
|
|
undefined2 uVar25;
|
|
|
|
short sVar26;
|
|
|
|
short sVar29;
|
|
|
|
short sVar30;
|
|
|
|
short sVar31;
|
|
|
|
short sVar32;
|
|
|
|
undefined8 uVar27;
|
|
|
|
undefined8 uVar28;
|
|
|
|
short sVar33;
|
|
|
|
short sVar34;
|
|
|
|
undefined8 uVar35;
|
|
|
|
ulonglong uVar36;
|
|
|
|
undefined8 uVar37;
|
|
|
|
undefined8 uVar38;
|
|
|
|
undefined8 uVar39;
|
|
|
|
ulonglong uVar40;
|
|
|
|
undefined8 uVar41;
|
|
|
|
ulonglong uVar42;
|
|
|
|
ulonglong uVar43;
|
|
|
|
|
|
|
|
iVar5 = 7;
|
|
|
|
do {
|
|
|
|
uVar15 = psllw(*param_5,4);
|
|
|
|
uVar22 = psllw(param_5[1],4);
|
|
|
|
uVar27 = psllw(*param_4,4);
|
|
|
|
uVar35 = psllw(param_4[1],4);
|
|
|
|
uVar16 = pmulhw(uVar15,DAT_00834090);
|
|
|
|
uVar37 = pmulhw(DAT_00834090,uVar22);
|
|
|
|
uVar28 = pmulhw(uVar27,DAT_00834098);
|
|
|
|
sVar9 = (short)DAT_008340c0;
|
|
|
|
sVar11 = (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar13 = (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar39 = pmulhw(DAT_00834098,uVar35);
|
|
|
|
sVar26 = (short)DAT_008340b8;
|
|
|
|
sVar30 = (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar32 = (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar34 = (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
uVar38 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar27 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar27,(short)uVar15)),DAT_008340a0);
|
|
|
|
uVar15 = pmaddwd(CONCAT26((short)((ulonglong)uVar27 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar27 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x20)))),DAT_008340a0);
|
|
|
|
uVar41 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar35 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar22 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar35,(short)uVar22)),DAT_008340a0);
|
|
|
|
iVar3 = (int)DAT_008340c8;
|
|
|
|
iVar4 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar22 = pmaddwd(CONCAT26((short)((ulonglong)uVar35 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar22 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar35 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar22 >> 0x20)))),DAT_008340a0);
|
|
|
|
uVar27 = packssdw(CONCAT44((int)((ulonglong)uVar38 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar38 - iVar3 >> 0xc),
|
|
|
|
CONCAT44((int)((ulonglong)uVar15 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar15 - iVar3 >> 0xc));
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar22 = packssdw(CONCAT44((int)((ulonglong)uVar41 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar41 - iVar3 >> 0xc),
|
|
|
|
CONCAT44((int)((ulonglong)uVar22 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar22 - iVar3 >> 0xc));
|
|
|
|
uVar15 = *param_3;
|
|
|
|
sVar6 = (short)uVar15;
|
|
|
|
sVar14 = ((short)uVar16 - sVar9) + sVar6;
|
|
|
|
sVar8 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar18 = ((short)((ulonglong)uVar16 >> 0x10) - sVar11) + sVar8;
|
|
|
|
sVar10 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar19 = ((short)((ulonglong)uVar16 >> 0x20) - sVar13) + sVar10;
|
|
|
|
sVar12 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar20 = ((short)((ulonglong)uVar16 >> 0x30) - sVar21) + sVar12;
|
|
|
|
sVar24 = ((short)uVar28 - sVar26) + sVar6;
|
|
|
|
sVar29 = ((short)((ulonglong)uVar28 >> 0x10) - sVar30) + sVar8;
|
|
|
|
sVar31 = ((short)((ulonglong)uVar28 >> 0x20) - sVar32) + sVar10;
|
|
|
|
sVar33 = ((short)((ulonglong)uVar28 >> 0x30) - sVar34) + sVar12;
|
|
|
|
sVar6 = sVar6 - (short)uVar27;
|
|
|
|
sVar8 = sVar8 - (short)((ulonglong)uVar27 >> 0x10);
|
|
|
|
sVar10 = sVar10 - (short)((ulonglong)uVar27 >> 0x20);
|
|
|
|
sVar12 = sVar12 - (short)((ulonglong)uVar27 >> 0x30);
|
|
|
|
cVar2 = (0 < sVar29) * (sVar29 < 0x100) * (char)sVar29 - (0xff < sVar29);
|
|
|
|
uVar25 = CONCAT11(cVar2,(0 < sVar24) * (sVar24 < 0x100) * (char)sVar24 - (0xff < sVar24));
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar33) *
|
|
|
|
(sVar33 < 0x100)
|
|
|
|
* (char)sVar33 -
|
|
|
|
(0xff < sVar33))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar31) * (sVar31 < 0x100) *
|
|
|
|
(char)sVar31 - (0xff < sVar31)) << 0x20)
|
|
|
|
>> 0x18),CONCAT12(cVar2,uVar25)) >> 0x10),uVar25) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar20) *
|
|
|
|
(sVar20 < 0x100) *
|
|
|
|
(char)sVar20 -
|
|
|
|
(0xff < sVar20)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)sVar19
|
|
|
|
- (0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar18) * (sVar18 < 0x100) * (char)sVar18 - (0xff < sVar18)),
|
|
|
|
(ushort)(byte)((0 < sVar14) * (sVar14 < 0x100) * (char)sVar14 -
|
|
|
|
(0xff < sVar14))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT16((0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12),
|
|
|
|
(uint6)CONCAT14((0 < sVar10) * (sVar10 < 0x100) * (char)sVar10 -
|
|
|
|
(0xff < sVar10),
|
|
|
|
(uint)CONCAT12((0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 -
|
|
|
|
(0xff < sVar8),
|
|
|
|
(ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)sVar6 - (0xff < sVar6)))))
|
|
|
|
<< 8;
|
|
|
|
uVar42 = ~DAT_008340f0 & uVar7 | (uVar7 & DAT_008340f0) << 8;
|
|
|
|
uVar23 = uVar17 & _DAT_008340d0;
|
|
|
|
uVar15 = param_3[1];
|
|
|
|
*param_6 = (uVar17 & _DAT_008340e0) << 8 |
|
|
|
|
(uVar17 & _DAT_008340d8) << 0x10 | uVar17 & _DAT_008340e8 | (uVar42 << 0x20) >> 0x10;
|
|
|
|
sVar6 = (short)uVar15;
|
|
|
|
sVar8 = ((short)uVar37 - sVar9) + sVar6;
|
|
|
|
sVar9 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar10 = ((short)((ulonglong)uVar37 >> 0x10) - sVar11) + sVar9;
|
|
|
|
sVar11 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar12 = ((short)((ulonglong)uVar37 >> 0x20) - sVar13) + sVar11;
|
|
|
|
sVar13 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar21 = ((short)((ulonglong)uVar37 >> 0x30) - sVar21) + sVar13;
|
|
|
|
sVar26 = ((short)uVar39 - sVar26) + sVar6;
|
|
|
|
sVar30 = ((short)((ulonglong)uVar39 >> 0x10) - sVar30) + sVar9;
|
|
|
|
sVar32 = ((short)((ulonglong)uVar39 >> 0x20) - sVar32) + sVar11;
|
|
|
|
sVar34 = ((short)((ulonglong)uVar39 >> 0x30) - sVar34) + sVar13;
|
|
|
|
sVar6 = sVar6 - (short)uVar22;
|
|
|
|
sVar9 = sVar9 - (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar11 = sVar11 - (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar13 = sVar13 - (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
cVar2 = (0 < sVar30) * (sVar30 < 0x100) * (char)sVar30 - (0xff < sVar30);
|
|
|
|
uVar25 = CONCAT11(cVar2,(0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26));
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)sVar21 -
|
|
|
|
(0xff < sVar21)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar12) * (sVar12 < 0x100) * (char)sVar12
|
|
|
|
- (0xff < sVar12)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar10) * (sVar10 < 0x100) * (char)sVar10 - (0xff < sVar10)),
|
|
|
|
(ushort)(byte)((0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 - (0xff < sVar8)));
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT16((0 < sVar13) * (sVar13 < 0x100) * (char)sVar13 - (0xff < sVar13),
|
|
|
|
(uint6)CONCAT14((0 < sVar11) * (sVar11 < 0x100) * (char)sVar11 -
|
|
|
|
(0xff < sVar11),
|
|
|
|
(uint)CONCAT12((0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 -
|
|
|
|
(0xff < sVar9),
|
|
|
|
(ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)sVar6 - (0xff < sVar6)))))
|
|
|
|
| ((ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar34) *
|
|
|
|
(sVar34 <
|
|
|
|
0x100) * (char)sVar34 - (0xff < sVar34)) << 0x30)
|
|
|
|
>> 0x28),(0 < sVar32) * (sVar32 < 0x100) *
|
|
|
|
(char)sVar32 - (0xff < sVar32)) << 0x20)
|
|
|
|
>> 0x18),CONCAT12(cVar2,uVar25)) >> 0x10),uVar25) &
|
|
|
|
0xffffffff00ff00ff) << 8;
|
|
|
|
uVar36 = ~DAT_008340f0 & uVar17 | (uVar17 & DAT_008340f0) << 8;
|
|
|
|
uVar43 = uVar7 & _DAT_008340d8;
|
|
|
|
uVar17 = uVar7 & _DAT_008340d0;
|
|
|
|
uVar40 = uVar7 & _DAT_008340e0;
|
|
|
|
param_6[1] = uVar23 >> 0x28 | uVar42 >> 0x20 | (uVar7 & _DAT_008340e8) << 0x28 | uVar36 << 0x20;
|
|
|
|
param_6[2] = uVar17 | uVar43 >> 8 | (uVar36 >> 0x20) << 0x10 |
|
|
|
|
CONCAT44((uint)(uVar40 >> 0x30),(uint)uVar40 >> 0x10);
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
bVar1 = 0 < iVar5;
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
} while (bVar1);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657b90 at 0x00657B90 (size: 556) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00657b90(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
bool bVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
ulonglong uVar7;
|
|
|
|
short sVar14;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
undefined8 uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
short sVar20;
|
|
|
|
ulonglong uVar17;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
ulonglong uVar23;
|
|
|
|
short sVar24;
|
|
|
|
undefined2 uVar25;
|
|
|
|
short sVar26;
|
|
|
|
short sVar29;
|
|
|
|
short sVar30;
|
|
|
|
short sVar31;
|
|
|
|
short sVar32;
|
|
|
|
undefined8 uVar27;
|
|
|
|
undefined8 uVar28;
|
|
|
|
short sVar33;
|
|
|
|
short sVar34;
|
|
|
|
undefined8 uVar35;
|
|
|
|
ulonglong uVar36;
|
|
|
|
undefined8 uVar37;
|
|
|
|
undefined8 uVar38;
|
|
|
|
undefined8 uVar39;
|
|
|
|
ulonglong uVar40;
|
|
|
|
ulonglong uVar41;
|
|
|
|
ulonglong uVar42;
|
|
|
|
|
|
|
|
iVar5 = 7;
|
|
|
|
do {
|
|
|
|
uVar15 = psllw(*param_4,4);
|
|
|
|
uVar22 = psllw(param_4[1],4);
|
|
|
|
uVar27 = psllw(*param_5,4);
|
|
|
|
uVar35 = psllw(param_5[1],4);
|
|
|
|
uVar28 = pmulhw(uVar27,DAT_00834090);
|
|
|
|
uVar16 = pmulhw(uVar15,DAT_00834098);
|
|
|
|
uVar37 = pmulhw(DAT_00834098,uVar22);
|
|
|
|
sVar26 = (short)DAT_008340c0;
|
|
|
|
sVar30 = (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar32 = (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar34 = (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar39 = pmulhw(DAT_00834090,uVar35);
|
|
|
|
sVar9 = (short)DAT_008340b8;
|
|
|
|
sVar11 = (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar13 = (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
uVar38 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar15 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar27 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar15,(short)uVar27)),DAT_008340a0);
|
|
|
|
uVar15 = pmaddwd(CONCAT26((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar27 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar15 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar27 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar3 = (int)DAT_008340c8;
|
|
|
|
iVar4 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar27 = packssdw(CONCAT44((int)((ulonglong)uVar38 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar38 - iVar3 >> 0xc),
|
|
|
|
CONCAT44((int)((ulonglong)uVar15 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar15 - iVar3 >> 0xc));
|
|
|
|
uVar38 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar22 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar35 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar22,(short)uVar35)),DAT_008340a0);
|
|
|
|
uVar15 = pmaddwd(CONCAT26((short)((ulonglong)uVar22 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar35 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar35 >> 0x20)))),DAT_008340a0);
|
|
|
|
uVar22 = packssdw(CONCAT44((int)((ulonglong)uVar38 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar38 - iVar3 >> 0xc),
|
|
|
|
CONCAT44((int)((ulonglong)uVar15 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar15 - iVar3 >> 0xc));
|
|
|
|
uVar15 = *param_3;
|
|
|
|
sVar6 = (short)uVar15;
|
|
|
|
sVar14 = ((short)uVar16 - sVar9) + sVar6;
|
|
|
|
sVar8 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar18 = ((short)((ulonglong)uVar16 >> 0x10) - sVar11) + sVar8;
|
|
|
|
sVar10 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar19 = ((short)((ulonglong)uVar16 >> 0x20) - sVar13) + sVar10;
|
|
|
|
sVar12 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar20 = ((short)((ulonglong)uVar16 >> 0x30) - sVar21) + sVar12;
|
|
|
|
sVar24 = ((short)uVar28 - sVar26) + sVar6;
|
|
|
|
sVar29 = ((short)((ulonglong)uVar28 >> 0x10) - sVar30) + sVar8;
|
|
|
|
sVar31 = ((short)((ulonglong)uVar28 >> 0x20) - sVar32) + sVar10;
|
|
|
|
sVar33 = ((short)((ulonglong)uVar28 >> 0x30) - sVar34) + sVar12;
|
|
|
|
sVar6 = sVar6 - (short)uVar27;
|
|
|
|
sVar8 = sVar8 - (short)((ulonglong)uVar27 >> 0x10);
|
|
|
|
sVar10 = sVar10 - (short)((ulonglong)uVar27 >> 0x20);
|
|
|
|
sVar12 = sVar12 - (short)((ulonglong)uVar27 >> 0x30);
|
|
|
|
cVar2 = (0 < sVar29) * (sVar29 < 0x100) * (char)sVar29 - (0xff < sVar29);
|
|
|
|
uVar25 = CONCAT11(cVar2,(0 < sVar24) * (sVar24 < 0x100) * (char)sVar24 - (0xff < sVar24));
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar33) *
|
|
|
|
(sVar33 < 0x100)
|
|
|
|
* (char)sVar33 -
|
|
|
|
(0xff < sVar33))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar31) * (sVar31 < 0x100) *
|
|
|
|
(char)sVar31 - (0xff < sVar31)) << 0x20)
|
|
|
|
>> 0x18),CONCAT12(cVar2,uVar25)) >> 0x10),uVar25) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar20) *
|
|
|
|
(sVar20 < 0x100) *
|
|
|
|
(char)sVar20 -
|
|
|
|
(0xff < sVar20)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)sVar19
|
|
|
|
- (0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar18) * (sVar18 < 0x100) * (char)sVar18 - (0xff < sVar18)),
|
|
|
|
(ushort)(byte)((0 < sVar14) * (sVar14 < 0x100) * (char)sVar14 -
|
|
|
|
(0xff < sVar14))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT16((0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12),
|
|
|
|
(uint6)CONCAT14((0 < sVar10) * (sVar10 < 0x100) * (char)sVar10 -
|
|
|
|
(0xff < sVar10),
|
|
|
|
(uint)CONCAT12((0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 -
|
|
|
|
(0xff < sVar8),
|
|
|
|
(ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)sVar6 - (0xff < sVar6)))))
|
|
|
|
<< 8;
|
|
|
|
uVar41 = ~DAT_008340f0 & uVar7 | (uVar7 & DAT_008340f0) << 8;
|
|
|
|
uVar23 = uVar17 & _DAT_008340d0;
|
|
|
|
uVar15 = param_3[1];
|
|
|
|
*param_6 = (uVar17 & _DAT_008340e0) << 8 |
|
|
|
|
(uVar17 & _DAT_008340d8) << 0x10 | uVar17 & _DAT_008340e8 | (uVar41 << 0x20) >> 0x10;
|
|
|
|
sVar6 = (short)uVar15;
|
|
|
|
sVar8 = ((short)uVar37 - sVar9) + sVar6;
|
|
|
|
sVar9 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar10 = ((short)((ulonglong)uVar37 >> 0x10) - sVar11) + sVar9;
|
|
|
|
sVar11 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar12 = ((short)((ulonglong)uVar37 >> 0x20) - sVar13) + sVar11;
|
|
|
|
sVar13 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar21 = ((short)((ulonglong)uVar37 >> 0x30) - sVar21) + sVar13;
|
|
|
|
sVar26 = ((short)uVar39 - sVar26) + sVar6;
|
|
|
|
sVar30 = ((short)((ulonglong)uVar39 >> 0x10) - sVar30) + sVar9;
|
|
|
|
sVar32 = ((short)((ulonglong)uVar39 >> 0x20) - sVar32) + sVar11;
|
|
|
|
sVar34 = ((short)((ulonglong)uVar39 >> 0x30) - sVar34) + sVar13;
|
|
|
|
sVar6 = sVar6 - (short)uVar22;
|
|
|
|
sVar9 = sVar9 - (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar11 = sVar11 - (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar13 = sVar13 - (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
cVar2 = (0 < sVar30) * (sVar30 < 0x100) * (char)sVar30 - (0xff < sVar30);
|
|
|
|
uVar25 = CONCAT11(cVar2,(0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26));
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)sVar21 -
|
|
|
|
(0xff < sVar21)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar12) * (sVar12 < 0x100) * (char)sVar12
|
|
|
|
- (0xff < sVar12)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar10) * (sVar10 < 0x100) * (char)sVar10 - (0xff < sVar10)),
|
|
|
|
(ushort)(byte)((0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 - (0xff < sVar8)));
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT16((0 < sVar13) * (sVar13 < 0x100) * (char)sVar13 - (0xff < sVar13),
|
|
|
|
(uint6)CONCAT14((0 < sVar11) * (sVar11 < 0x100) * (char)sVar11 -
|
|
|
|
(0xff < sVar11),
|
|
|
|
(uint)CONCAT12((0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 -
|
|
|
|
(0xff < sVar9),
|
|
|
|
(ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)sVar6 - (0xff < sVar6)))))
|
|
|
|
| ((ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar34) *
|
|
|
|
(sVar34 <
|
|
|
|
0x100) * (char)sVar34 - (0xff < sVar34)) << 0x30)
|
|
|
|
>> 0x28),(0 < sVar32) * (sVar32 < 0x100) *
|
|
|
|
(char)sVar32 - (0xff < sVar32)) << 0x20)
|
|
|
|
>> 0x18),CONCAT12(cVar2,uVar25)) >> 0x10),uVar25) &
|
|
|
|
0xffffffff00ff00ff) << 8;
|
|
|
|
uVar36 = ~DAT_008340f0 & uVar17 | (uVar17 & DAT_008340f0) << 8;
|
|
|
|
uVar42 = uVar7 & _DAT_008340d8;
|
|
|
|
uVar17 = uVar7 & _DAT_008340d0;
|
|
|
|
uVar40 = uVar7 & _DAT_008340e0;
|
|
|
|
param_6[1] = uVar23 >> 0x28 | uVar41 >> 0x20 | (uVar7 & _DAT_008340e8) << 0x28 | uVar36 << 0x20;
|
|
|
|
param_6[2] = uVar17 | uVar42 >> 8 | (uVar36 >> 0x20) << 0x10 |
|
|
|
|
CONCAT44((uint)(uVar40 >> 0x30),(uint)uVar40 >> 0x10);
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
bVar1 = 0 < iVar5;
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
} while (bVar1);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657dc0 at 0x00657DC0 (size: 453) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00657dc0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
char cVar12;
|
|
|
|
undefined4 uVar13;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar14;
|
|
|
|
undefined8 uVar15;
|
|
|
|
ulonglong uVar16;
|
|
|
|
undefined8 uVar17;
|
|
|
|
undefined8 uVar18;
|
|
|
|
undefined8 uVar19;
|
|
|
|
undefined8 uVar20;
|
|
|
|
ulonglong uVar21;
|
|
|
|
|
|
|
|
iVar14 = 8;
|
|
|
|
do {
|
|
|
|
uVar17 = psllw(*param_5,4);
|
|
|
|
uVar19 = psllw(*param_4,4);
|
|
|
|
uVar15 = pmulhw(DAT_00834108,uVar17);
|
|
|
|
uVar18 = pmulhw(DAT_00834110,uVar19);
|
|
|
|
uVar20 = *param_3;
|
|
|
|
uVar19 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar17 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar19 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar17 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar19 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar17 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar19 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar17 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar19 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar15 = paddsw(CONCAT26((short)((ulonglong)uVar15 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x10),
|
|
|
|
(short)uVar15 - (short)DAT_00834130))),uVar20);
|
|
|
|
uVar17 = paddsw(CONCAT26((short)((ulonglong)uVar18 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar18 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x10),
|
|
|
|
(short)uVar18 - (short)DAT_00834128))),uVar20);
|
|
|
|
uVar20 = psubsw(uVar20,uVar19);
|
|
|
|
sVar1 = (short)uVar15;
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar9 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar2 = (short)uVar17;
|
|
|
|
sVar3 = (short)((ulonglong)uVar17 >> 0x10);
|
|
|
|
cVar12 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar17 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar7 = (short)((ulonglong)uVar17 >> 0x20);
|
|
|
|
sVar10 = (short)((ulonglong)uVar17 >> 0x30);
|
|
|
|
sVar3 = (short)uVar20;
|
|
|
|
sVar5 = (short)((ulonglong)uVar20 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar20 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar20 >> 0x30);
|
|
|
|
uVar21 = (ulonglong)
|
|
|
|
CONCAT12(cVar12,CONCAT11(cVar12,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar17 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar13 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar8) * (sVar8 < 0x100) * (char)((ulonglong)uVar20 >> 0x20) -
|
|
|
|
(0xff < sVar8)) << 0x20) >> 0x18);
|
|
|
|
uVar16 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar9) * (sVar9 < 0x100) * (char)((ulonglong)uVar15 >> 0x30) -
|
|
|
|
(0xff < sVar9),
|
|
|
|
(uint)(byte)((0 < sVar6) * (sVar6 < 0x100) * (char)((ulonglong)uVar15 >> 0x20)
|
|
|
|
- (0xff < sVar6))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar10) * (sVar10 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar17 >> 0x30) - (0xff < sVar10)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar17 >> 0x20) - (0xff < sVar7))) << 0x10 |
|
|
|
|
CONCAT44((uint)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar20 >> 0x30) - (0xff < sVar11)) << 8,uVar13)
|
|
|
|
| DAT_00834140;
|
|
|
|
*param_6 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar4),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar15 - (0xff < sVar1)))
|
|
|
|
| CONCAT44((uint)(ushort)(uVar21 >> 0x10) << 0x10,(int)uVar21 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar13,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar20 >> 0x10) -
|
|
|
|
(0xff < sVar5)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar20 - (0xff < sVar3))
|
|
|
|
<< 8) | DAT_00834140;
|
|
|
|
param_6[1] = uVar16;
|
|
|
|
uVar17 = psllw(param_5[1],4);
|
|
|
|
uVar18 = psllw(param_4[1],4);
|
|
|
|
uVar19 = pmulhw(DAT_00834108,uVar17);
|
|
|
|
uVar15 = pmulhw(DAT_00834110,uVar18);
|
|
|
|
uVar20 = param_3[1];
|
|
|
|
uVar17 = psraw(CONCAT26(((short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar18 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar17 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar17 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar17 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834118 * ((ushort)uVar18 >> 4) +
|
|
|
|
(short)DAT_00834120 * ((ushort)uVar17 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar18 = paddsw(CONCAT26((short)((ulonglong)uVar19 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar19 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar19 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x10),
|
|
|
|
(short)uVar19 - (short)DAT_00834130))),uVar20);
|
|
|
|
uVar15 = paddsw(CONCAT26((short)((ulonglong)uVar15 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x10),
|
|
|
|
(short)uVar15 - (short)DAT_00834128))),uVar20);
|
|
|
|
uVar20 = psubsw(uVar20,uVar17);
|
|
|
|
sVar1 = (short)uVar18;
|
|
|
|
sVar4 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar9 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar2 = (short)uVar15;
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
cVar12 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar7 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar10 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar3 = (short)uVar20;
|
|
|
|
sVar5 = (short)((ulonglong)uVar20 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar20 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar20 >> 0x30);
|
|
|
|
uVar16 = (ulonglong)
|
|
|
|
CONCAT12(cVar12,CONCAT11(cVar12,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar15 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar13 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar8) * (sVar8 < 0x100) * (char)((ulonglong)uVar20 >> 0x20) -
|
|
|
|
(0xff < sVar8)) << 0x20) >> 0x18);
|
|
|
|
uVar21 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar9) * (sVar9 < 0x100) * (char)((ulonglong)uVar18 >> 0x30) -
|
|
|
|
(0xff < sVar9),
|
|
|
|
(uint)(byte)((0 < sVar6) * (sVar6 < 0x100) * (char)((ulonglong)uVar18 >> 0x20)
|
|
|
|
- (0xff < sVar6))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar10) * (sVar10 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x30) - (0xff < sVar10)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) - (0xff < sVar7))) << 0x10 |
|
|
|
|
CONCAT44((uint)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar20 >> 0x30) - (0xff < sVar11)) << 8,uVar13)
|
|
|
|
| DAT_00834140;
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6[2] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar18 >> 0x10) -
|
|
|
|
(0xff < sVar4),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar18 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar16 >> 0x10) << 0x10,(int)uVar16 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar13,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar20 >> 0x10) -
|
|
|
|
(0xff < sVar5)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar20 - (0xff < sVar3)
|
|
|
|
) << 8) | DAT_00834140;
|
|
|
|
param_6[3] = uVar21;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
iVar14 = iVar14 + -1;
|
|
|
|
} while (iVar14 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00657f90 at 0x00657F90 (size: 531) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00657f90(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,undefined4 param_6,ulonglong *param_7,int param_8)
|
|
|
|
|
|
|
|
{
|
|
|
|
ulonglong uVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
uint uVar11;
|
|
|
|
ushort uVar12;
|
|
|
|
ushort uVar13;
|
|
|
|
ushort uVar14;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
short sVar17;
|
|
|
|
short sVar19;
|
|
|
|
short sVar20;
|
|
|
|
undefined8 uVar18;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar22;
|
|
|
|
ushort uVar24;
|
|
|
|
undefined8 uVar23;
|
|
|
|
undefined8 uVar25;
|
|
|
|
|
|
|
|
iVar15 = 8;
|
|
|
|
do {
|
|
|
|
uVar18 = psllw(*param_5,4);
|
|
|
|
uVar23 = psllw(*param_4,4);
|
|
|
|
uVar16 = pmulhw(DAT_00834108,uVar18);
|
|
|
|
uVar22 = pmulhw(DAT_00834110,uVar23);
|
|
|
|
uVar25 = *param_3;
|
|
|
|
uVar23 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar18 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar23 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar23 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar23 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar18 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar23 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar16 = paddsw(CONCAT26((short)((ulonglong)uVar16 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x10),
|
|
|
|
(short)uVar16 - (short)DAT_00834130))),uVar25);
|
|
|
|
uVar18 = paddsw(CONCAT26((short)((ulonglong)uVar22 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x10),
|
|
|
|
(short)uVar22 - (short)DAT_00834128))),uVar25);
|
|
|
|
uVar25 = psubsw(uVar25,uVar23);
|
|
|
|
sVar2 = (short)uVar16;
|
|
|
|
sVar5 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
sVar3 = (short)uVar18;
|
|
|
|
sVar6 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar4 = (short)uVar25;
|
|
|
|
sVar7 = (short)((ulonglong)uVar25 >> 0x10);
|
|
|
|
sVar10 = (short)((ulonglong)uVar25 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar25 >> 0x30);
|
|
|
|
uVar14 = (ushort)(((uint7)(byte)((0 < sVar17) * (sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x30) - (0xff < sVar17)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar12 = (ushort)(((uint7)(byte)((0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar19)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar13 = (ushort)(((uint7)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >> 0x30) - (0xff < sVar20)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar1 = param_3[0x30];
|
|
|
|
sVar17 = (short)DAT_00834148;
|
|
|
|
sVar19 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar24 = sVar19 - (ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar6));
|
|
|
|
uVar11 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
*param_7 = (ulonglong)
|
|
|
|
CONCAT24(sVar19 - (ushort)(byte)((0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) - (0xff < sVar5)),
|
|
|
|
(uint)(ushort)(sVar17 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar16 - (0xff < sVar2)))) |
|
|
|
|
CONCAT44((uint)uVar24 << 0x10,
|
|
|
|
CONCAT22(uVar24,sVar17 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar3))) <<
|
|
|
|
0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar19 - (ushort)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >> 0x10) -
|
|
|
|
(0xff < sVar7))) << 8,
|
|
|
|
(uint)(ushort)(sVar17 - (ushort)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)uVar25 - (0xff < sVar4))) << 8)
|
|
|
|
| CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18)
|
|
|
|
;
|
|
|
|
param_7[1] = (ulonglong)
|
|
|
|
CONCAT24(sVar21 - (uVar14 >> 8),
|
|
|
|
(uint)(ushort)(sVar20 - (short)CONCAT21(uVar14,(0 < sVar8) *
|
|
|
|
(sVar8 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar8)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar21 - (uVar12 >> 8)) << 0x10,
|
|
|
|
sVar20 - (short)CONCAT21(uVar12,(0 < sVar9) * (sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar9))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar21 - (uVar13 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar20 - (short)CONCAT21(uVar13,(0 < sVar10) *
|
|
|
|
(sVar10 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar10))) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar11) >> 0x10) << 8,uVar11 << 0x18
|
|
|
|
);
|
|
|
|
uVar18 = psllw(param_5[1],4);
|
|
|
|
uVar23 = psllw(param_4[1],4);
|
|
|
|
uVar16 = pmulhw(DAT_00834108,uVar18);
|
|
|
|
uVar22 = pmulhw(DAT_00834110,uVar23);
|
|
|
|
uVar25 = param_3[1];
|
|
|
|
uVar23 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar18 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar23 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar23 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar18 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar23 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar18 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar23 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar16 = paddsw(CONCAT26((short)((ulonglong)uVar16 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834130 >> 0x10),
|
|
|
|
(short)uVar16 - (short)DAT_00834130))),uVar25);
|
|
|
|
uVar18 = paddsw(CONCAT26((short)((ulonglong)uVar22 >> 0x30) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x20),
|
|
|
|
CONCAT22((short)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(short)((ulonglong)DAT_00834128 >> 0x10),
|
|
|
|
(short)uVar22 - (short)DAT_00834128))),uVar25);
|
|
|
|
uVar25 = psubsw(uVar25,uVar23);
|
|
|
|
sVar2 = (short)uVar16;
|
|
|
|
sVar5 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
sVar3 = (short)uVar18;
|
|
|
|
sVar6 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar4 = (short)uVar25;
|
|
|
|
sVar7 = (short)((ulonglong)uVar25 >> 0x10);
|
|
|
|
sVar10 = (short)((ulonglong)uVar25 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar25 >> 0x30);
|
|
|
|
uVar14 = (ushort)(((uint7)(byte)((0 < sVar17) * (sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x30) - (0xff < sVar17)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar12 = (ushort)(((uint7)(byte)((0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar19)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar13 = (ushort)(((uint7)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >> 0x30) - (0xff < sVar20)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar1 = param_3[0x31];
|
|
|
|
sVar17 = (short)DAT_00834148;
|
|
|
|
sVar19 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar24 = sVar19 - (ushort)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar6));
|
|
|
|
uVar11 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_7[2] = (ulonglong)
|
|
|
|
CONCAT24(sVar19 - (ushort)(byte)((0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) - (0xff < sVar5)
|
|
|
|
),
|
|
|
|
(uint)(ushort)(sVar17 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar16 - (0xff < sVar2)))) |
|
|
|
|
CONCAT44((uint)uVar24 << 0x10,
|
|
|
|
CONCAT22(uVar24,sVar17 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar3))) <<
|
|
|
|
0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar19 - (ushort)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >> 0x10) -
|
|
|
|
(0xff < sVar7))) << 8,
|
|
|
|
(uint)(ushort)(sVar17 - (ushort)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)uVar25 - (0xff < sVar4))) <<
|
|
|
|
8) |
|
|
|
|
CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18)
|
|
|
|
;
|
|
|
|
param_7[3] = (ulonglong)
|
|
|
|
CONCAT24(sVar21 - (uVar14 >> 8),
|
|
|
|
(uint)(ushort)(sVar20 - (short)CONCAT21(uVar14,(0 < sVar8) *
|
|
|
|
(sVar8 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar8)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar21 - (uVar12 >> 8)) << 0x10,
|
|
|
|
sVar20 - (short)CONCAT21(uVar12,(0 < sVar9) * (sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar9))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar21 - (uVar13 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar20 - (short)CONCAT21(uVar13,(0 < sVar10) *
|
|
|
|
(sVar10 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar25 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar10))) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar11) >> 0x10) << 8,uVar11 << 0x18
|
|
|
|
);
|
|
|
|
param_7 = (ulonglong *)((int)param_7 + param_8);
|
|
|
|
iVar15 = iVar15 + -1;
|
|
|
|
} while (iVar15 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006581b0 at 0x006581B0 (size: 886) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_006581b0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
char cVar5;
|
|
|
|
char cVar6;
|
|
|
|
int iVar7;
|
|
|
|
uint7 uVar8;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
ulonglong uVar11;
|
|
|
|
undefined2 uVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
ulonglong uVar14;
|
|
|
|
undefined8 uVar15;
|
|
|
|
ulonglong uVar16;
|
|
|
|
short sVar17;
|
|
|
|
short sVar19;
|
|
|
|
short sVar20;
|
|
|
|
undefined8 uVar18;
|
|
|
|
short sVar21;
|
|
|
|
short sVar22;
|
|
|
|
short sVar24;
|
|
|
|
short sVar25;
|
|
|
|
undefined8 uVar23;
|
|
|
|
short sVar26;
|
|
|
|
undefined2 uVar27;
|
|
|
|
undefined2 uVar28;
|
|
|
|
undefined8 uVar29;
|
|
|
|
ulonglong uVar30;
|
|
|
|
|
|
|
|
iVar9 = 8;
|
|
|
|
do {
|
|
|
|
uVar15 = psllw(*param_5,4);
|
|
|
|
uVar13 = psllw(*param_4,4);
|
|
|
|
uVar23 = pmulhw(DAT_00834098,uVar13);
|
|
|
|
uVar18 = pmulhw(DAT_00834090,uVar15);
|
|
|
|
sVar22 = (short)uVar23 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar23 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar23 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar17 = (short)uVar18 - (short)DAT_008340c0;
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)uVar18 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar18 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar18 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar13,(short)uVar15)),DAT_008340a0);
|
|
|
|
uVar13 = pmaddwd(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar7 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar15 = CONCAT44((int)((ulonglong)uVar18 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar18 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar13 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar13 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
uVar18 = packssdw(uVar13,uVar13);
|
|
|
|
uVar27 = (undefined2)((ulonglong)uVar15 >> 0x10);
|
|
|
|
uVar12 = (undefined2)((ulonglong)uVar18 >> 0x10);
|
|
|
|
uVar13 = *param_3;
|
|
|
|
uVar29 = paddsw(CONCAT44(CONCAT22(sVar19,sVar19),CONCAT22(sVar17,sVar17)),uVar13);
|
|
|
|
uVar23 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar22,sVar22)),uVar13);
|
|
|
|
uVar13 = psubsw(uVar13,CONCAT44(CONCAT22(uVar27,uVar27),CONCAT22((short)uVar15,(short)uVar15)));
|
|
|
|
sVar17 = (short)uVar29;
|
|
|
|
sVar19 = (short)((ulonglong)uVar29 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar29 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar28 = CONCAT11(cVar5,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar29 - (0xff < sVar17));
|
|
|
|
sVar22 = (short)((ulonglong)uVar29 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar29 >> 0x30);
|
|
|
|
sVar17 = (short)uVar23;
|
|
|
|
sVar19 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar27 = CONCAT11(cVar6,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar23 - (0xff < sVar17));
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar17 = (short)uVar13;
|
|
|
|
sVar19 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar29 >> 0x30) - (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar29 >> 0x20) -
|
|
|
|
(0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar16 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar23 >> 0x30) - (0xff < sVar3)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar6,uVar27)) >> 0x10),uVar27) & 0xffffffff00ff00ff;
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar13 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar13 -
|
|
|
|
(0xff < sVar17)));
|
|
|
|
uVar30 = (uVar10 | uVar11 << 8) & _DAT_008340f8;
|
|
|
|
uVar10 = (uVar11 | uVar16 << 8) & DAT_008340f0 | (uVar16 | uVar10 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar30 << 0x10 | uVar30) & _DAT_00834100 | (uVar10 << 0x20) >> 0x10;
|
|
|
|
uVar13 = param_3[1];
|
|
|
|
uVar23 = paddsw(CONCAT26(sVar26,CONCAT24(sVar26,CONCAT22(sVar25,sVar25))),uVar13);
|
|
|
|
uVar15 = paddsw(CONCAT26(sVar21,CONCAT24(sVar21,CONCAT22(sVar20,sVar20))),uVar13);
|
|
|
|
uVar13 = psubsw(uVar13,CONCAT44(CONCAT22(uVar12,uVar12),CONCAT22((short)uVar18,(short)uVar18)));
|
|
|
|
sVar17 = (short)uVar23;
|
|
|
|
sVar22 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar19 = (short)uVar15;
|
|
|
|
sVar24 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar24) * (sVar24 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) - (0xff < sVar24);
|
|
|
|
uVar12 = CONCAT11(cVar5,(0 < sVar19) * (sVar19 < 0x100) * (char)uVar15 - (0xff < sVar19));
|
|
|
|
sVar2 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar19 = (short)uVar13;
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar23 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) -
|
|
|
|
(0xff < sVar22)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar23 -
|
|
|
|
(0xff < sVar17)));
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar20) *
|
|
|
|
(sVar20 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar15 >> 0x30) - (0xff < sVar20)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) - (0xff < sVar2)
|
|
|
|
) << 0x20) >> 0x18),CONCAT12(cVar5,uVar12)) >>
|
|
|
|
0x10),uVar12) & 0xffffffff00ff00ff;
|
|
|
|
uVar16 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar13 >> 0x30)
|
|
|
|
- (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar3)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar24)),
|
|
|
|
(ushort)(byte)((0 < sVar19) * (sVar19 < 0x100) * (char)uVar13 -
|
|
|
|
(0xff < sVar19)));
|
|
|
|
uVar30 = (uVar16 | uVar11 << 8) & DAT_008340f0;
|
|
|
|
uVar16 = ((uVar11 | uVar14 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar14 | uVar16 << 8) & _DAT_008340f8;
|
|
|
|
uVar11 = (uVar30 | uVar30 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar10 >> 0x20 | uVar16 << 0x20;
|
|
|
|
param_6[2] = (uVar16 >> 0x20) << 0x10 | uVar11;
|
|
|
|
uVar15 = psllw(param_5[1],4);
|
|
|
|
uVar13 = psllw(param_4[1],4);
|
|
|
|
uVar23 = pmulhw(DAT_00834098,uVar13);
|
|
|
|
uVar18 = pmulhw(DAT_00834090,uVar15);
|
|
|
|
sVar22 = (short)uVar23 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar23 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar23 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar17 = (short)uVar18 - (short)DAT_008340c0;
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)uVar18 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar18 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar18 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar13,(short)uVar15)),DAT_008340a0);
|
|
|
|
uVar13 = pmaddwd(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar7 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar15 = CONCAT44((int)((ulonglong)uVar18 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar18 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar13 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar13 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar15 = packssdw(uVar15,uVar15);
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
uVar18 = packssdw(uVar13,uVar13);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar27 = (undefined2)((ulonglong)uVar15 >> 0x10);
|
|
|
|
uVar12 = (undefined2)((ulonglong)uVar18 >> 0x10);
|
|
|
|
uVar13 = param_3[0x10];
|
|
|
|
uVar29 = paddsw(CONCAT44(CONCAT22(sVar19,sVar19),CONCAT22(sVar17,sVar17)),uVar13);
|
|
|
|
uVar23 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar22,sVar22)),uVar13);
|
|
|
|
uVar13 = psubsw(uVar13,CONCAT44(CONCAT22(uVar27,uVar27),CONCAT22((short)uVar15,(short)uVar15)));
|
|
|
|
sVar17 = (short)uVar29;
|
|
|
|
sVar19 = (short)((ulonglong)uVar29 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar29 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar28 = CONCAT11(cVar5,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar29 - (0xff < sVar17));
|
|
|
|
sVar22 = (short)((ulonglong)uVar29 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar29 >> 0x30);
|
|
|
|
sVar17 = (short)uVar23;
|
|
|
|
sVar19 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar27 = CONCAT11(cVar6,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar23 - (0xff < sVar17));
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar17 = (short)uVar13;
|
|
|
|
sVar19 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar29 >> 0x30) - (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar29 >> 0x20) -
|
|
|
|
(0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar16 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar23 >> 0x30) - (0xff < sVar3)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar6,uVar27)) >> 0x10),uVar27) & 0xffffffff00ff00ff;
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar13 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar13 -
|
|
|
|
(0xff < sVar17)));
|
|
|
|
uVar30 = (uVar10 | uVar11 << 8) & _DAT_008340f8;
|
|
|
|
uVar16 = (uVar11 | uVar16 << 8) & DAT_008340f0 | (uVar16 | uVar10 >> 8) & _DAT_008340f8;
|
|
|
|
param_6[3] = (uVar30 << 0x10 | uVar30) & _DAT_00834100 | (uVar16 << 0x20) >> 0x10;
|
|
|
|
uVar13 = param_3[0x11];
|
|
|
|
uVar15 = paddsw(CONCAT26(sVar21,CONCAT24(sVar21,CONCAT22(sVar20,sVar20))),uVar13);
|
|
|
|
uVar23 = paddsw(CONCAT26(sVar26,CONCAT24(sVar26,CONCAT22(sVar25,sVar25))),uVar13);
|
|
|
|
uVar13 = psubsw(uVar13,CONCAT44(CONCAT22(uVar12,uVar12),CONCAT22((short)uVar18,(short)uVar18)));
|
|
|
|
sVar17 = (short)uVar15;
|
|
|
|
sVar22 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar19 = (short)uVar23;
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar24) * (sVar24 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) - (0xff < sVar24);
|
|
|
|
uVar12 = CONCAT11(cVar5,(0 < sVar19) * (sVar19 < 0x100) * (char)uVar23 - (0xff < sVar19));
|
|
|
|
sVar2 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar19 = (short)uVar13;
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
uVar8 = CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar4)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar22)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar15 - (0xff < sVar17)
|
|
|
|
));
|
|
|
|
uVar30 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar20) *
|
|
|
|
(sVar20 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar23 >> 0x30) - (0xff < sVar20)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) - (0xff < sVar2)
|
|
|
|
) << 0x20) >> 0x18),CONCAT12(cVar5,uVar12)) >>
|
|
|
|
0x10),uVar12) & 0xffffffff00ff00ff;
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar13 >> 0x30)
|
|
|
|
- (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar3)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar24)),
|
|
|
|
(ushort)(byte)((0 < sVar19) * (sVar19 < 0x100) * (char)uVar13 -
|
|
|
|
(0xff < sVar19)));
|
|
|
|
uVar10 = (uVar11 | uVar30 << 8) & DAT_008340f0;
|
|
|
|
uVar30 = ((uVar30 | uVar8 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
((ulonglong)uVar8 | uVar11 << 8) & _DAT_008340f8;
|
|
|
|
uVar11 = (uVar10 | uVar10 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar16 >> 0x20 | uVar30 << 0x20;
|
|
|
|
param_6[5] = (uVar30 >> 0x20) << 0x10 | uVar11;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
iVar9 = iVar9 + -1;
|
|
|
|
} while (iVar9 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00658530 at 0x00658530 (size: 886) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00658530(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar4;
|
|
|
|
ulonglong uVar5;
|
|
|
|
ulonglong uVar6;
|
|
|
|
short sVar7;
|
|
|
|
undefined2 uVar8;
|
|
|
|
short sVar11;
|
|
|
|
undefined8 uVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
short sVar12;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
undefined8 uVar13;
|
|
|
|
ulonglong uVar14;
|
|
|
|
short sVar17;
|
|
|
|
short sVar19;
|
|
|
|
short sVar20;
|
|
|
|
undefined8 uVar18;
|
|
|
|
short sVar21;
|
|
|
|
short sVar22;
|
|
|
|
short sVar24;
|
|
|
|
short sVar25;
|
|
|
|
undefined8 uVar23;
|
|
|
|
short sVar26;
|
|
|
|
undefined2 uVar27;
|
|
|
|
undefined8 uVar28;
|
|
|
|
ulonglong uVar29;
|
|
|
|
|
|
|
|
iVar4 = 8;
|
|
|
|
do {
|
|
|
|
uVar13 = psllw(*param_5,4);
|
|
|
|
uVar9 = psllw(*param_4,4);
|
|
|
|
uVar23 = pmulhw(DAT_00834098,uVar9);
|
|
|
|
uVar18 = pmulhw(DAT_00834090,uVar13);
|
|
|
|
sVar22 = (short)uVar23 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar23 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar23 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar17 = (short)uVar18 - (short)DAT_008340c0;
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)uVar18 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar18 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar18 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar9 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar9,(short)uVar13)),DAT_008340a0);
|
|
|
|
uVar9 = pmaddwd(CONCAT26((short)((ulonglong)uVar9 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar9 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar3 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar18 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar18 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar9 = CONCAT44((int)((ulonglong)uVar9 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar9 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar18 = packssdw(uVar13,uVar13);
|
|
|
|
uVar13 = packssdw(uVar9,uVar9);
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar15 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
uVar9 = *param_3;
|
|
|
|
uVar28 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar22,sVar22)),uVar9);
|
|
|
|
uVar23 = paddsw(CONCAT44(CONCAT22(sVar19,sVar19),CONCAT22(sVar17,sVar17)),uVar9);
|
|
|
|
uVar9 = psubsw(uVar9,CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar18,(short)uVar18)));
|
|
|
|
sVar17 = (short)uVar28;
|
|
|
|
sVar19 = (short)((ulonglong)uVar28 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar28 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar27 = CONCAT11(cVar1,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar28 - (0xff < sVar17));
|
|
|
|
sVar22 = (short)((ulonglong)uVar28 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar28 >> 0x30);
|
|
|
|
sVar17 = (short)uVar23;
|
|
|
|
sVar19 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar8 = CONCAT11(cVar2,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar23 - (0xff < sVar17));
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar17 = (short)uVar9;
|
|
|
|
sVar19 = (short)((ulonglong)uVar9 >> 0x10);
|
|
|
|
sVar7 = (short)((ulonglong)uVar9 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar9 >> 0x30);
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar11) *
|
|
|
|
(sVar11 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar28 >> 0x30) - (0xff < sVar11)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar28 >> 0x20) -
|
|
|
|
(0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar27)) >> 0x10),uVar27) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar23 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar16) *
|
|
|
|
(sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar9
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar16)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar9 >> 0x20) -
|
|
|
|
(0xff < sVar7)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar9 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar9 - (0xff < sVar17))
|
|
|
|
);
|
|
|
|
uVar29 = (uVar5 | uVar6 << 8) & _DAT_008340f8;
|
|
|
|
uVar5 = (uVar6 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar5 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar29 << 0x10 | uVar29) & _DAT_00834100 | (uVar5 << 0x20) >> 0x10;
|
|
|
|
uVar9 = param_3[1];
|
|
|
|
sVar17 = (short)uVar9;
|
|
|
|
sVar12 = sVar20 + sVar17;
|
|
|
|
sVar19 = (short)((ulonglong)uVar9 >> 0x10);
|
|
|
|
sVar20 = sVar20 + sVar19;
|
|
|
|
sVar22 = (short)((ulonglong)uVar9 >> 0x20);
|
|
|
|
sVar16 = sVar21 + sVar22;
|
|
|
|
sVar24 = (short)((ulonglong)uVar9 >> 0x30);
|
|
|
|
sVar21 = sVar21 + sVar24;
|
|
|
|
sVar7 = sVar25 + sVar17;
|
|
|
|
sVar25 = sVar25 + sVar19;
|
|
|
|
sVar11 = sVar26 + sVar22;
|
|
|
|
sVar26 = sVar26 + sVar24;
|
|
|
|
sVar17 = sVar17 - (short)uVar13;
|
|
|
|
sVar19 = sVar19 - (short)uVar13;
|
|
|
|
sVar22 = sVar22 - sVar15;
|
|
|
|
sVar24 = sVar24 - sVar15;
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25);
|
|
|
|
uVar8 = CONCAT11(cVar1,(0 < sVar7) * (sVar7 < 0x100) * (char)sVar7 - (0xff < sVar7));
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)sVar21 -
|
|
|
|
(0xff < sVar21)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar16) * (sVar16 < 0x100) * (char)sVar16
|
|
|
|
- (0xff < sVar16)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12)
|
|
|
|
));
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100)
|
|
|
|
* (char)sVar26 -
|
|
|
|
(0xff < sVar26))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)sVar11 - (0xff < sVar11)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar8)) >> 0x10),uVar8) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100) *
|
|
|
|
(char)sVar24 -
|
|
|
|
(0xff < sVar24)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) * (char)sVar22
|
|
|
|
- (0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)sVar19 - (0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)sVar17 -
|
|
|
|
(0xff < sVar17)));
|
|
|
|
uVar29 = (uVar14 | uVar6 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar6 | uVar10 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar10 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar6 = (uVar29 | uVar29 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar5 >> 0x20 | uVar14 << 0x20;
|
|
|
|
param_6[2] = (uVar14 >> 0x20) << 0x10 | uVar6;
|
|
|
|
uVar13 = psllw(param_5[1],4);
|
|
|
|
uVar9 = psllw(param_4[1],4);
|
|
|
|
uVar23 = pmulhw(DAT_00834098,uVar9);
|
|
|
|
uVar18 = pmulhw(DAT_00834090,uVar13);
|
|
|
|
sVar22 = (short)uVar23 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar23 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar23 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar17 = (short)uVar18 - (short)DAT_008340c0;
|
|
|
|
sVar19 = (short)((ulonglong)uVar18 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)uVar18 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar18 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar18 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar9 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar9,(short)uVar13)),DAT_008340a0);
|
|
|
|
uVar9 = pmaddwd(CONCAT26((short)((ulonglong)uVar9 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar9 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar3 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar18 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar18 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar9 = CONCAT44((int)((ulonglong)uVar9 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar9 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar18 = packssdw(uVar13,uVar13);
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
uVar13 = packssdw(uVar9,uVar9);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar15 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
uVar9 = param_3[0x10];
|
|
|
|
uVar28 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar22,sVar22)),uVar9);
|
|
|
|
uVar23 = paddsw(CONCAT44(CONCAT22(sVar19,sVar19),CONCAT22(sVar17,sVar17)),uVar9);
|
|
|
|
uVar9 = psubsw(uVar9,CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar18,(short)uVar18)));
|
|
|
|
sVar17 = (short)uVar28;
|
|
|
|
sVar19 = (short)((ulonglong)uVar28 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar28 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar27 = CONCAT11(cVar1,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar28 - (0xff < sVar17));
|
|
|
|
sVar22 = (short)((ulonglong)uVar28 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar28 >> 0x30);
|
|
|
|
sVar17 = (short)uVar23;
|
|
|
|
sVar19 = (short)((ulonglong)uVar23 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar23 >> 0x10) - (0xff < sVar19);
|
|
|
|
uVar8 = CONCAT11(cVar2,(0 < sVar17) * (sVar17 < 0x100) * (char)uVar23 - (0xff < sVar17));
|
|
|
|
sVar24 = (short)((ulonglong)uVar23 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar23 >> 0x30);
|
|
|
|
sVar17 = (short)uVar9;
|
|
|
|
sVar19 = (short)((ulonglong)uVar9 >> 0x10);
|
|
|
|
sVar7 = (short)((ulonglong)uVar9 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar9 >> 0x30);
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar11) *
|
|
|
|
(sVar11 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar28 >> 0x30) - (0xff < sVar11)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar28 >> 0x20) -
|
|
|
|
(0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar27)) >> 0x10),uVar27) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar23 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar23 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar16) *
|
|
|
|
(sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar9
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar16)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar9 >> 0x20) -
|
|
|
|
(0xff < sVar7)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar9 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)uVar9 - (0xff < sVar17))
|
|
|
|
);
|
|
|
|
uVar29 = (uVar5 | uVar6 << 8) & _DAT_008340f8;
|
|
|
|
uVar5 = (uVar6 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar5 >> 8) & _DAT_008340f8;
|
|
|
|
param_6[3] = (uVar29 << 0x10 | uVar29) & _DAT_00834100 | (uVar5 << 0x20) >> 0x10;
|
|
|
|
uVar9 = param_3[0x11];
|
|
|
|
sVar17 = (short)uVar9;
|
|
|
|
sVar12 = sVar20 + sVar17;
|
|
|
|
sVar19 = (short)((ulonglong)uVar9 >> 0x10);
|
|
|
|
sVar20 = sVar20 + sVar19;
|
|
|
|
sVar22 = (short)((ulonglong)uVar9 >> 0x20);
|
|
|
|
sVar16 = sVar21 + sVar22;
|
|
|
|
sVar24 = (short)((ulonglong)uVar9 >> 0x30);
|
|
|
|
sVar21 = sVar21 + sVar24;
|
|
|
|
sVar7 = sVar25 + sVar17;
|
|
|
|
sVar25 = sVar25 + sVar19;
|
|
|
|
sVar11 = sVar26 + sVar22;
|
|
|
|
sVar26 = sVar26 + sVar24;
|
|
|
|
sVar17 = sVar17 - (short)uVar13;
|
|
|
|
sVar19 = sVar19 - (short)uVar13;
|
|
|
|
sVar22 = sVar22 - sVar15;
|
|
|
|
sVar24 = sVar24 - sVar15;
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25);
|
|
|
|
uVar8 = CONCAT11(cVar1,(0 < sVar7) * (sVar7 < 0x100) * (char)sVar7 - (0xff < sVar7));
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100) *
|
|
|
|
(char)sVar21 -
|
|
|
|
(0xff < sVar21)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar16) * (sVar16 < 0x100) * (char)sVar16
|
|
|
|
- (0xff < sVar16)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12)
|
|
|
|
));
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100)
|
|
|
|
* (char)sVar26 -
|
|
|
|
(0xff < sVar26))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)sVar11 - (0xff < sVar11)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar8)) >> 0x10),uVar8) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100) *
|
|
|
|
(char)sVar24 -
|
|
|
|
(0xff < sVar24)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar22) * (sVar22 < 0x100) * (char)sVar22
|
|
|
|
- (0xff < sVar22)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)sVar19 - (0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar17) * (sVar17 < 0x100) * (char)sVar17 -
|
|
|
|
(0xff < sVar17)));
|
|
|
|
uVar29 = (uVar14 | uVar6 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar6 | uVar10 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar10 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar6 = (uVar29 | uVar29 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar5 >> 0x20 | uVar14 << 0x20;
|
|
|
|
param_6[5] = (uVar14 >> 0x20) << 0x10 | uVar6;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
} while (iVar4 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_006588b0 at 0x006588B0 (size: 860) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_006588b0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
char cVar5;
|
|
|
|
char cVar6;
|
|
|
|
int iVar7;
|
|
|
|
uint7 uVar8;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
ulonglong uVar11;
|
|
|
|
undefined2 uVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
ulonglong uVar14;
|
|
|
|
ulonglong uVar15;
|
|
|
|
undefined8 uVar16;
|
|
|
|
ulonglong uVar17;
|
|
|
|
short sVar18;
|
|
|
|
short sVar20;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar19;
|
|
|
|
short sVar22;
|
|
|
|
short sVar23;
|
|
|
|
short sVar25;
|
|
|
|
short sVar26;
|
|
|
|
undefined8 uVar24;
|
|
|
|
short sVar27;
|
|
|
|
undefined2 uVar28;
|
|
|
|
undefined8 uVar29;
|
|
|
|
undefined2 uVar30;
|
|
|
|
undefined8 uVar31;
|
|
|
|
|
|
|
|
iVar9 = 8;
|
|
|
|
do {
|
|
|
|
uVar16 = psllw(*param_5,4);
|
|
|
|
uVar13 = psllw(*param_4,4);
|
|
|
|
uVar24 = pmulhw(DAT_00834098,uVar13);
|
|
|
|
uVar19 = pmulhw(DAT_00834090,uVar16);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340b8;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_008340c0;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar19 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar16 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar13,(short)uVar16)),DAT_008340a0);
|
|
|
|
uVar16 = pmaddwd(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar16 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar16 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar7 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar19 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar16 = CONCAT44((int)((ulonglong)uVar16 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar16 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar24 = packssdw(uVar19,uVar19);
|
|
|
|
uVar19 = packssdw(uVar16,uVar16);
|
|
|
|
uVar28 = (undefined2)((ulonglong)uVar24 >> 0x10);
|
|
|
|
uVar12 = (undefined2)((ulonglong)uVar19 >> 0x10);
|
|
|
|
uVar16 = *param_3;
|
|
|
|
uVar31 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar16);
|
|
|
|
uVar29 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar28,uVar28),CONCAT22((short)uVar24,(short)uVar24)));
|
|
|
|
sVar18 = (short)uVar31;
|
|
|
|
sVar20 = (short)((ulonglong)uVar31 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar31 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar30 = CONCAT11(cVar5,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar31 - (0xff < sVar18));
|
|
|
|
sVar23 = (short)((ulonglong)uVar31 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar31 >> 0x30);
|
|
|
|
sVar18 = (short)uVar29;
|
|
|
|
sVar20 = (short)((ulonglong)uVar29 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar29 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar28 = CONCAT11(cVar6,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar29 - (0xff < sVar18));
|
|
|
|
sVar25 = (short)((ulonglong)uVar29 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)uVar29 >> 0x30);
|
|
|
|
sVar18 = (short)uVar16;
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar31 >> 0x30) - (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar31 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar30)) >> 0x10),uVar30) & 0xffffffff00ff00ff;
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar29 >> 0x30) - (0xff < sVar3)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar29 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar6,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar10 = (uVar14 | uVar17 << 8) & DAT_008340f0 | (uVar17 | uVar11 >> 8) & _DAT_008340f8;
|
|
|
|
uVar14 = pshufw(uVar13,(uVar11 | uVar14 << 8) & _DAT_008340f8,0x94);
|
|
|
|
*param_6 = uVar14 | (uVar10 << 0x20) >> 0x10;
|
|
|
|
uVar16 = param_3[1];
|
|
|
|
uVar24 = paddsw(CONCAT26(sVar27,CONCAT24(sVar27,CONCAT22(sVar26,sVar26))),uVar16);
|
|
|
|
uVar13 = paddsw(CONCAT26(sVar22,CONCAT24(sVar22,CONCAT22(sVar21,sVar21))),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar12,uVar12),CONCAT22((short)uVar19,(short)uVar19)));
|
|
|
|
sVar18 = (short)uVar24;
|
|
|
|
sVar23 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar20 = (short)uVar13;
|
|
|
|
sVar25 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar12 = CONCAT11(cVar5,(0 < sVar20) * (sVar20 < 0x100) * (char)uVar13 - (0xff < sVar20));
|
|
|
|
sVar2 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar20 = (short)uVar16;
|
|
|
|
sVar25 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar24 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) -
|
|
|
|
(0xff < sVar23)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar24 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar15 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) - (0xff < sVar2)
|
|
|
|
) << 0x20) >> 0x18),CONCAT12(cVar5,uVar12)) >>
|
|
|
|
0x10),uVar12) & 0xffffffff00ff00ff;
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar22)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar3)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar20)));
|
|
|
|
uVar11 = (uVar17 | uVar14 << 8) & DAT_008340f0;
|
|
|
|
uVar17 = ((uVar14 | uVar15 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar15 | uVar17 << 8) & _DAT_008340f8;
|
|
|
|
uVar14 = (uVar11 | uVar11 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar10 >> 0x20 | uVar17 << 0x20;
|
|
|
|
param_6[2] = (uVar17 >> 0x20) << 0x10 | uVar14;
|
|
|
|
uVar16 = psllw(param_5[1],4);
|
|
|
|
uVar13 = psllw(param_4[1],4);
|
|
|
|
uVar24 = pmulhw(DAT_00834098,uVar13);
|
|
|
|
uVar19 = pmulhw(DAT_00834090,uVar16);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340b8;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_008340c0;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar19 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar13 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar16 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar13,(short)uVar16)),DAT_008340a0);
|
|
|
|
uVar16 = pmaddwd(CONCAT26((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar16 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar13 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar16 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar7 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar19 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar16 = CONCAT44((int)((ulonglong)uVar16 >> 0x20) - iVar7 >> 0xc,
|
|
|
|
(int)uVar16 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar24 = packssdw(uVar19,uVar19);
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
uVar19 = packssdw(uVar16,uVar16);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar28 = (undefined2)((ulonglong)uVar24 >> 0x10);
|
|
|
|
uVar12 = (undefined2)((ulonglong)uVar19 >> 0x10);
|
|
|
|
uVar16 = param_3[0x10];
|
|
|
|
uVar31 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar16);
|
|
|
|
uVar29 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar28,uVar28),CONCAT22((short)uVar24,(short)uVar24)));
|
|
|
|
sVar18 = (short)uVar31;
|
|
|
|
sVar20 = (short)((ulonglong)uVar31 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar31 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar30 = CONCAT11(cVar5,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar31 - (0xff < sVar18));
|
|
|
|
sVar23 = (short)((ulonglong)uVar31 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar31 >> 0x30);
|
|
|
|
sVar18 = (short)uVar29;
|
|
|
|
sVar20 = (short)((ulonglong)uVar29 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar29 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar28 = CONCAT11(cVar6,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar29 - (0xff < sVar18));
|
|
|
|
sVar25 = (short)((ulonglong)uVar29 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)uVar29 >> 0x30);
|
|
|
|
sVar18 = (short)uVar16;
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar31 >> 0x30) - (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar31 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar30)) >> 0x10),uVar30) & 0xffffffff00ff00ff;
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar29 >> 0x30) - (0xff < sVar3)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar29 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar6,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar4)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar17 = (uVar14 | uVar17 << 8) & DAT_008340f0 | (uVar17 | uVar10 >> 8) & _DAT_008340f8;
|
|
|
|
uVar14 = pshufw(uVar13,(uVar10 | uVar14 << 8) & _DAT_008340f8,0x94);
|
|
|
|
param_6[3] = uVar14 | (uVar17 << 0x20) >> 0x10;
|
|
|
|
uVar16 = param_3[0x11];
|
|
|
|
uVar13 = paddsw(CONCAT26(sVar22,CONCAT24(sVar22,CONCAT22(sVar21,sVar21))),uVar16);
|
|
|
|
uVar24 = paddsw(CONCAT26(sVar27,CONCAT24(sVar27,CONCAT22(sVar26,sVar26))),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar12,uVar12),CONCAT22((short)uVar19,(short)uVar19)));
|
|
|
|
sVar18 = (short)uVar13;
|
|
|
|
sVar23 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar20 = (short)uVar24;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar12 = CONCAT11(cVar5,(0 < sVar20) * (sVar20 < 0x100) * (char)uVar24 - (0xff < sVar20));
|
|
|
|
sVar2 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar20 = (short)uVar16;
|
|
|
|
sVar25 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar3 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar8 = CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar4)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar1)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) -
|
|
|
|
(0xff < sVar23)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar13 - (0xff < sVar18)
|
|
|
|
));
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar24 >> 0x30) - (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) - (0xff < sVar2)
|
|
|
|
) << 0x20) >> 0x18),CONCAT12(cVar5,uVar12)) >>
|
|
|
|
0x10),uVar12) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar22)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar3)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar20)));
|
|
|
|
uVar10 = (uVar14 | uVar11 << 8) & DAT_008340f0;
|
|
|
|
uVar11 = ((uVar11 | uVar8 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
((ulonglong)uVar8 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar14 = (uVar10 | uVar10 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar17 >> 0x20 | uVar11 << 0x20;
|
|
|
|
param_6[5] = (uVar11 >> 0x20) << 0x10 | uVar14;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
iVar9 = iVar9 + -1;
|
|
|
|
} while (iVar9 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00658c10 at 0x00658C10 (size: 860) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00658c10(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar4;
|
|
|
|
ulonglong uVar5;
|
|
|
|
ulonglong uVar6;
|
|
|
|
ulonglong uVar7;
|
|
|
|
short sVar8;
|
|
|
|
undefined2 uVar9;
|
|
|
|
short sVar13;
|
|
|
|
undefined8 uVar10;
|
|
|
|
ulonglong uVar11;
|
|
|
|
ulonglong uVar12;
|
|
|
|
short sVar14;
|
|
|
|
short sVar16;
|
|
|
|
short sVar17;
|
|
|
|
undefined8 uVar15;
|
|
|
|
short sVar18;
|
|
|
|
short sVar20;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar19;
|
|
|
|
short sVar22;
|
|
|
|
short sVar23;
|
|
|
|
short sVar25;
|
|
|
|
short sVar26;
|
|
|
|
undefined8 uVar24;
|
|
|
|
short sVar27;
|
|
|
|
undefined8 uVar28;
|
|
|
|
undefined2 uVar29;
|
|
|
|
undefined8 uVar30;
|
|
|
|
|
|
|
|
iVar4 = 8;
|
|
|
|
do {
|
|
|
|
uVar15 = psllw(*param_5,4);
|
|
|
|
uVar10 = psllw(*param_4,4);
|
|
|
|
uVar24 = pmulhw(DAT_00834098,uVar10);
|
|
|
|
uVar19 = pmulhw(DAT_00834090,uVar15);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340b8;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_008340c0;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar19 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar10,(short)uVar15)),DAT_008340a0);
|
|
|
|
uVar15 = pmaddwd(CONCAT26((short)((ulonglong)uVar10 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar3 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar19 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar15 = CONCAT44((int)((ulonglong)uVar15 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar15 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar24 = packssdw(uVar19,uVar19);
|
|
|
|
uVar19 = packssdw(uVar15,uVar15);
|
|
|
|
uVar9 = (undefined2)((ulonglong)uVar24 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
uVar15 = *param_3;
|
|
|
|
uVar30 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar15);
|
|
|
|
uVar28 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar15);
|
|
|
|
uVar15 = psubsw(uVar15,CONCAT44(CONCAT22(uVar9,uVar9),CONCAT22((short)uVar24,(short)uVar24)));
|
|
|
|
sVar18 = (short)uVar30;
|
|
|
|
sVar20 = (short)((ulonglong)uVar30 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar30 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar29 = CONCAT11(cVar1,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar30 - (0xff < sVar18));
|
|
|
|
sVar23 = (short)((ulonglong)uVar30 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar30 >> 0x30);
|
|
|
|
sVar18 = (short)uVar28;
|
|
|
|
sVar20 = (short)((ulonglong)uVar28 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar28 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar9 = CONCAT11(cVar2,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar28 - (0xff < sVar18));
|
|
|
|
sVar25 = (short)((ulonglong)uVar28 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar28 >> 0x30);
|
|
|
|
sVar18 = (short)uVar15;
|
|
|
|
sVar20 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar13) *
|
|
|
|
(sVar13 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar30 >> 0x30) - (0xff < sVar13)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar29)) >> 0x10),uVar29) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar28 >> 0x30) - (0xff < sVar14)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar28 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar9)) >> 0x10),uVar9) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar17) *
|
|
|
|
(sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar17)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar8) * (sVar8 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar8)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar15 - (0xff < sVar18)
|
|
|
|
));
|
|
|
|
uVar11 = pshufw(uVar10,(uVar6 | uVar7 << 8) & _DAT_008340f8,0x94);
|
|
|
|
uVar5 = (uVar7 | uVar5 << 8) & DAT_008340f0 | (uVar5 | uVar6 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = uVar11 | (uVar5 << 0x20) >> 0x10;
|
|
|
|
uVar15 = param_3[1];
|
|
|
|
sVar18 = (short)uVar15;
|
|
|
|
sVar14 = sVar21 + sVar18;
|
|
|
|
sVar20 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar21 = sVar21 + sVar20;
|
|
|
|
sVar23 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar17 = sVar22 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar22 = sVar22 + sVar25;
|
|
|
|
sVar8 = sVar26 + sVar18;
|
|
|
|
sVar26 = sVar26 + sVar20;
|
|
|
|
sVar13 = sVar27 + sVar23;
|
|
|
|
sVar27 = sVar27 + sVar25;
|
|
|
|
sVar18 = sVar18 - (short)uVar19;
|
|
|
|
sVar20 = sVar20 - (short)uVar19;
|
|
|
|
sVar23 = sVar23 - sVar16;
|
|
|
|
sVar25 = sVar25 - sVar16;
|
|
|
|
cVar1 = (0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26);
|
|
|
|
uVar9 = CONCAT11(cVar1,(0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 - (0xff < sVar8));
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)sVar22 -
|
|
|
|
(0xff < sVar22)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar17) * (sVar17 < 0x100) * (char)sVar17
|
|
|
|
- (0xff < sVar17)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) * (char)sVar21 - (0xff < sVar21)),
|
|
|
|
(ushort)(byte)((0 < sVar14) * (sVar14 < 0x100) * (char)sVar14 - (0xff < sVar14)
|
|
|
|
));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar27) *
|
|
|
|
(sVar27 < 0x100)
|
|
|
|
* (char)sVar27 -
|
|
|
|
(0xff < sVar27))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)sVar13 - (0xff < sVar13)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar9)) >> 0x10),uVar9) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100) *
|
|
|
|
(char)sVar25 -
|
|
|
|
(0xff < sVar25)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) * (char)sVar23
|
|
|
|
- (0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)sVar18 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar6 = (uVar11 | uVar7 << 8) & DAT_008340f0;
|
|
|
|
uVar11 = ((uVar7 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar11 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar6 | uVar6 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar5 >> 0x20 | uVar11 << 0x20;
|
|
|
|
param_6[2] = (uVar11 >> 0x20) << 0x10 | uVar7;
|
|
|
|
uVar15 = psllw(param_5[1],4);
|
|
|
|
uVar10 = psllw(param_4[1],4);
|
|
|
|
uVar24 = pmulhw(DAT_00834098,uVar10);
|
|
|
|
uVar19 = pmulhw(DAT_00834090,uVar15);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340b8;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_008340c0;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar19 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar10,(short)uVar15)),DAT_008340a0);
|
|
|
|
uVar15 = pmaddwd(CONCAT26((short)((ulonglong)uVar10 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar15 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar15 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar3 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar19 = CONCAT44((int)((ulonglong)uVar19 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar19 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar15 = CONCAT44((int)((ulonglong)uVar15 >> 0x20) - iVar3 >> 0xc,
|
|
|
|
(int)uVar15 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar24 = packssdw(uVar19,uVar19);
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
uVar19 = packssdw(uVar15,uVar15);
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar9 = (undefined2)((ulonglong)uVar24 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
uVar15 = param_3[0x10];
|
|
|
|
uVar30 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar15);
|
|
|
|
uVar28 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar15);
|
|
|
|
uVar15 = psubsw(uVar15,CONCAT44(CONCAT22(uVar9,uVar9),CONCAT22((short)uVar24,(short)uVar24)));
|
|
|
|
sVar18 = (short)uVar30;
|
|
|
|
sVar20 = (short)((ulonglong)uVar30 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar30 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar29 = CONCAT11(cVar1,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar30 - (0xff < sVar18));
|
|
|
|
sVar23 = (short)((ulonglong)uVar30 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar30 >> 0x30);
|
|
|
|
sVar18 = (short)uVar28;
|
|
|
|
sVar20 = (short)((ulonglong)uVar28 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar28 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar9 = CONCAT11(cVar2,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar28 - (0xff < sVar18));
|
|
|
|
sVar25 = (short)((ulonglong)uVar28 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar28 >> 0x30);
|
|
|
|
sVar18 = (short)uVar15;
|
|
|
|
sVar20 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar8 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
uVar6 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar13) *
|
|
|
|
(sVar13 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar30 >> 0x30) - (0xff < sVar13)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar29)) >> 0x10),uVar29) & 0xffffffff00ff00ff;
|
|
|
|
uVar5 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar28 >> 0x30) - (0xff < sVar14)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar28 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar9)) >> 0x10),uVar9) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar17) *
|
|
|
|
(sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar17)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar8) * (sVar8 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) -
|
|
|
|
(0xff < sVar8)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar15 - (0xff < sVar18)
|
|
|
|
));
|
|
|
|
uVar11 = pshufw(uVar10,(uVar6 | uVar7 << 8) & _DAT_008340f8,0x94);
|
|
|
|
uVar5 = (uVar7 | uVar5 << 8) & DAT_008340f0 | (uVar5 | uVar6 >> 8) & _DAT_008340f8;
|
|
|
|
param_6[3] = uVar11 | (uVar5 << 0x20) >> 0x10;
|
|
|
|
uVar15 = param_3[0x11];
|
|
|
|
sVar18 = (short)uVar15;
|
|
|
|
sVar14 = sVar21 + sVar18;
|
|
|
|
sVar20 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
sVar21 = sVar21 + sVar20;
|
|
|
|
sVar23 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar17 = sVar22 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar22 = sVar22 + sVar25;
|
|
|
|
sVar8 = sVar26 + sVar18;
|
|
|
|
sVar26 = sVar26 + sVar20;
|
|
|
|
sVar13 = sVar27 + sVar23;
|
|
|
|
sVar27 = sVar27 + sVar25;
|
|
|
|
sVar18 = sVar18 - (short)uVar19;
|
|
|
|
sVar20 = sVar20 - (short)uVar19;
|
|
|
|
sVar23 = sVar23 - sVar16;
|
|
|
|
sVar25 = sVar25 - sVar16;
|
|
|
|
cVar1 = (0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26);
|
|
|
|
uVar9 = CONCAT11(cVar1,(0 < sVar8) * (sVar8 < 0x100) * (char)sVar8 - (0xff < sVar8));
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)sVar22 -
|
|
|
|
(0xff < sVar22)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar17) * (sVar17 < 0x100) * (char)sVar17
|
|
|
|
- (0xff < sVar17)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) * (char)sVar21 - (0xff < sVar21)),
|
|
|
|
(ushort)(byte)((0 < sVar14) * (sVar14 < 0x100) * (char)sVar14 - (0xff < sVar14)
|
|
|
|
));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar27) *
|
|
|
|
(sVar27 < 0x100)
|
|
|
|
* (char)sVar27 -
|
|
|
|
(0xff < sVar27))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)sVar13 - (0xff < sVar13)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar9)) >> 0x10),uVar9) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100) *
|
|
|
|
(char)sVar25 -
|
|
|
|
(0xff < sVar25)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) * (char)sVar23
|
|
|
|
- (0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)sVar18 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar6 = (uVar11 | uVar7 << 8) & DAT_008340f0;
|
|
|
|
uVar11 = ((uVar7 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar11 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar6 | uVar6 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar5 >> 0x20 | uVar11 << 0x20;
|
|
|
|
param_6[5] = (uVar11 >> 0x20) << 0x10 | uVar7;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
iVar4 = iVar4 + -1;
|
|
|
|
} while (iVar4 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00658f70 at 0x00658F70 (size: 790) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00658f70(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
char cVar8;
|
|
|
|
undefined4 uVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
ulonglong uVar13;
|
|
|
|
undefined8 uVar14;
|
|
|
|
short sVar15;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
undefined8 uVar16;
|
|
|
|
short sVar20;
|
|
|
|
ulonglong uVar17;
|
|
|
|
short sVar21;
|
|
|
|
short sVar23;
|
|
|
|
short sVar24;
|
|
|
|
undefined8 uVar22;
|
|
|
|
short sVar25;
|
|
|
|
undefined2 uVar26;
|
|
|
|
undefined2 uVar27;
|
|
|
|
|
|
|
|
iVar11 = 8;
|
|
|
|
do {
|
|
|
|
uVar10 = DAT_00834140;
|
|
|
|
uVar12 = psllw(*param_5,4);
|
|
|
|
uVar14 = psllw(*param_4,4);
|
|
|
|
uVar16 = pmulhw(DAT_00834108,uVar12);
|
|
|
|
uVar22 = pmulhw(DAT_00834110,uVar14);
|
|
|
|
sVar15 = (short)uVar16 - (short)DAT_00834130;
|
|
|
|
sVar18 = (short)((ulonglong)uVar16 >> 0x10) - (short)((ulonglong)DAT_00834130 >> 0x10);
|
|
|
|
sVar19 = (short)((ulonglong)uVar16 >> 0x20) - (short)((ulonglong)DAT_00834130 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x30) - (short)((ulonglong)DAT_00834130 >> 0x30);
|
|
|
|
sVar21 = (short)uVar22 - (short)DAT_00834128;
|
|
|
|
sVar23 = (short)((ulonglong)uVar22 >> 0x10) - (short)((ulonglong)DAT_00834128 >> 0x10);
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x20) - (short)((ulonglong)DAT_00834128 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar22 >> 0x30) - (short)((ulonglong)DAT_00834128 >> 0x30);
|
|
|
|
uVar16 = *param_3;
|
|
|
|
uVar14 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar12 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar14 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar12 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar14 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar26 = (undefined2)((ulonglong)uVar14 >> 0x10);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar15,sVar15)),uVar16);
|
|
|
|
uVar22 = paddsw(CONCAT44(CONCAT22(sVar23,sVar23),CONCAT22(sVar21,sVar21)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar26,uVar26),CONCAT22((short)uVar14,(short)uVar14)));
|
|
|
|
sVar15 = (short)uVar12;
|
|
|
|
sVar23 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar18 = (short)uVar22;
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar8 = (0 < sVar21) * (sVar21 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar21);
|
|
|
|
sVar3 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar6 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar21 = (short)uVar16;
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar7 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT12(cVar8,CONCAT11(cVar8,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar18))) & 0xffffffff00ff00ff;
|
|
|
|
uVar9 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar4)) << 0x20) >> 0x18);
|
|
|
|
uVar13 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar12 >> 0x30) -
|
|
|
|
(0xff < sVar5),
|
|
|
|
(uint)(byte)((0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar12 >> 0x20)
|
|
|
|
- (0xff < sVar2))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar6) * (sVar6 < 0x100) * (char)((ulonglong)uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar6)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) - (0xff < sVar3))) << 0x10 |
|
|
|
|
CONCAT44((uint)(byte)((0 < sVar7) * (sVar7 < 0x100) * (char)((ulonglong)uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar7)) << 8,uVar9) | DAT_00834140;
|
|
|
|
*param_6 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar23),
|
|
|
|
(uint)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar12 -
|
|
|
|
(0xff < sVar15))) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar17 >> 0x10) << 0x10,(int)uVar17 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar9,(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar1)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar21) * (sVar21 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar21)) << 8) | DAT_00834140;
|
|
|
|
param_6[1] = uVar13;
|
|
|
|
uVar16 = param_3[1];
|
|
|
|
uVar27 = (undefined2)((ulonglong)uVar14 >> 0x30);
|
|
|
|
uVar26 = (undefined2)((ulonglong)uVar14 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar19,sVar19)),uVar16);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar24,sVar24)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar27,uVar27),CONCAT22(uVar26,uVar26)));
|
|
|
|
sVar15 = (short)uVar12;
|
|
|
|
sVar23 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar18 = (short)uVar14;
|
|
|
|
sVar21 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar8 = (0 < sVar21) * (sVar21 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar21);
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar6 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar21 = (short)uVar16;
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar7 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar13 = (ulonglong)
|
|
|
|
CONCAT12(cVar8,CONCAT11(cVar8,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar18))) & 0xffffffff00ff00ff;
|
|
|
|
uVar9 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar4)) << 0x20) >> 0x18);
|
|
|
|
param_6[2] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar23),
|
|
|
|
(uint)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar12 -
|
|
|
|
(0xff < sVar15))) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar13 >> 0x10) << 0x10,(int)uVar13 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar9,(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar1)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar21) * (sVar21 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar21)) << 8) | uVar10;
|
|
|
|
param_6[3] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar12 >> 0x30) -
|
|
|
|
(0xff < sVar5),
|
|
|
|
(uint)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x20) - (0xff < sVar2))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar6)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar3))) <<
|
|
|
|
0x10 | CONCAT44((uint)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x30) - (0xff < sVar7)) <<
|
|
|
|
8,uVar9) | uVar10;
|
|
|
|
uVar10 = DAT_00834140;
|
|
|
|
uVar12 = psllw(param_5[1],4);
|
|
|
|
uVar14 = psllw(param_4[1],4);
|
|
|
|
uVar16 = pmulhw(DAT_00834108,uVar12);
|
|
|
|
uVar22 = pmulhw(DAT_00834110,uVar14);
|
|
|
|
sVar15 = (short)uVar16 - (short)DAT_00834130;
|
|
|
|
sVar18 = (short)((ulonglong)uVar16 >> 0x10) - (short)((ulonglong)DAT_00834130 >> 0x10);
|
|
|
|
sVar19 = (short)((ulonglong)uVar16 >> 0x20) - (short)((ulonglong)DAT_00834130 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x30) - (short)((ulonglong)DAT_00834130 >> 0x30);
|
|
|
|
sVar21 = (short)uVar22 - (short)DAT_00834128;
|
|
|
|
sVar23 = (short)((ulonglong)uVar22 >> 0x10) - (short)((ulonglong)DAT_00834128 >> 0x10);
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x20) - (short)((ulonglong)DAT_00834128 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar22 >> 0x30) - (short)((ulonglong)DAT_00834128 >> 0x30);
|
|
|
|
uVar16 = param_3[0x10];
|
|
|
|
uVar14 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar12 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar14 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar12 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar14 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar26 = (undefined2)((ulonglong)uVar14 >> 0x10);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar15,sVar15)),uVar16);
|
|
|
|
uVar22 = paddsw(CONCAT44(CONCAT22(sVar23,sVar23),CONCAT22(sVar21,sVar21)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar26,uVar26),CONCAT22((short)uVar14,(short)uVar14)));
|
|
|
|
sVar15 = (short)uVar12;
|
|
|
|
sVar23 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar18 = (short)uVar22;
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar8 = (0 < sVar21) * (sVar21 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar21);
|
|
|
|
sVar3 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar6 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar21 = (short)uVar16;
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar7 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar17 = (ulonglong)
|
|
|
|
CONCAT12(cVar8,CONCAT11(cVar8,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar18))) & 0xffffffff00ff00ff;
|
|
|
|
uVar9 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar4)) << 0x20) >> 0x18);
|
|
|
|
uVar13 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar12 >> 0x30) -
|
|
|
|
(0xff < sVar5),
|
|
|
|
(uint)(byte)((0 < sVar2) * (sVar2 < 0x100) * (char)((ulonglong)uVar12 >> 0x20)
|
|
|
|
- (0xff < sVar2))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar6) * (sVar6 < 0x100) * (char)((ulonglong)uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar6)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) - (0xff < sVar3))) << 0x10 |
|
|
|
|
CONCAT44((uint)(byte)((0 < sVar7) * (sVar7 < 0x100) * (char)((ulonglong)uVar16 >> 0x30)
|
|
|
|
- (0xff < sVar7)) << 8,uVar9) | DAT_00834140;
|
|
|
|
param_6[4] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar23),
|
|
|
|
(uint)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar12 -
|
|
|
|
(0xff < sVar15))) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar17 >> 0x10) << 0x10,(int)uVar17 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar9,(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar1)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar21) * (sVar21 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar21)) << 8) | DAT_00834140;
|
|
|
|
param_6[5] = uVar13;
|
|
|
|
uVar16 = param_3[0x11];
|
|
|
|
uVar27 = (undefined2)((ulonglong)uVar14 >> 0x30);
|
|
|
|
uVar26 = (undefined2)((ulonglong)uVar14 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar19,sVar19)),uVar16);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar24,sVar24)),uVar16);
|
|
|
|
uVar16 = psubsw(uVar16,CONCAT44(CONCAT22(uVar27,uVar27),CONCAT22(uVar26,uVar26)));
|
|
|
|
sVar15 = (short)uVar12;
|
|
|
|
sVar23 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar18 = (short)uVar14;
|
|
|
|
sVar21 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar8 = (0 < sVar21) * (sVar21 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar21);
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar6 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar21 = (short)uVar16;
|
|
|
|
sVar1 = (short)((ulonglong)uVar16 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar16 >> 0x20);
|
|
|
|
sVar7 = (short)((ulonglong)uVar16 >> 0x30);
|
|
|
|
uVar13 = (ulonglong)
|
|
|
|
CONCAT12(cVar8,CONCAT11(cVar8,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar18))) & 0xffffffff00ff00ff;
|
|
|
|
uVar9 = (undefined4)
|
|
|
|
(((uint7)(byte)((0 < sVar4) * (sVar4 < 0x100) * (char)((ulonglong)uVar16 >> 0x20) -
|
|
|
|
(0xff < sVar4)) << 0x20) >> 0x18);
|
|
|
|
param_6[6] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar23) * (sVar23 < 0x100) * (char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar23),
|
|
|
|
(uint)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar12 -
|
|
|
|
(0xff < sVar15))) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar13 >> 0x10) << 0x10,(int)uVar13 << 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)CONCAT41(uVar9,(0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x10) -
|
|
|
|
(0xff < sVar1)) << 8,
|
|
|
|
(uint)(byte)((0 < sVar21) * (sVar21 < 0x100) * (char)uVar16 -
|
|
|
|
(0xff < sVar21)) << 8) | uVar10;
|
|
|
|
param_6[7] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar12 >> 0x30) -
|
|
|
|
(0xff < sVar5),
|
|
|
|
(uint)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x20) - (0xff < sVar2))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar6) * (sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar6)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar3))) <<
|
|
|
|
0x10 | CONCAT44((uint)(byte)((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar16 >> 0x30) - (0xff < sVar7)) <<
|
|
|
|
8,uVar9) | uVar10;
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
iVar11 = iVar11 + -1;
|
|
|
|
} while (iVar11 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00659290 at 0x00659290 (size: 960) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00659290(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,undefined4 param_6,ulonglong *param_7,int param_8)
|
|
|
|
|
|
|
|
{
|
|
|
|
ulonglong uVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
short sVar6;
|
|
|
|
uint uVar7;
|
|
|
|
ushort uVar8;
|
|
|
|
ushort uVar9;
|
|
|
|
ushort uVar10;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar11;
|
|
|
|
undefined8 uVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
undefined8 uVar14;
|
|
|
|
short sVar17;
|
|
|
|
short sVar18;
|
|
|
|
short sVar20;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar19;
|
|
|
|
short sVar22;
|
|
|
|
short sVar23;
|
|
|
|
short sVar25;
|
|
|
|
ushort uVar26;
|
|
|
|
short sVar27;
|
|
|
|
undefined8 uVar24;
|
|
|
|
short sVar28;
|
|
|
|
undefined2 uVar29;
|
|
|
|
undefined2 uVar30;
|
|
|
|
|
|
|
|
iVar11 = 8;
|
|
|
|
do {
|
|
|
|
uVar12 = psllw(*param_5,4);
|
|
|
|
uVar14 = psllw(*param_4,4);
|
|
|
|
uVar19 = pmulhw(DAT_00834108,uVar12);
|
|
|
|
uVar24 = pmulhw(DAT_00834110,uVar14);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_00834130;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_00834130 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_00834130 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_00834130 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_00834128;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_00834128 >> 0x10);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_00834128 >> 0x20);
|
|
|
|
sVar28 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_00834128 >> 0x30);
|
|
|
|
uVar19 = *param_3;
|
|
|
|
uVar14 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar12 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar14 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar12 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar14 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar29 = (undefined2)((ulonglong)uVar14 >> 0x10);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar19);
|
|
|
|
uVar24 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar19);
|
|
|
|
uVar19 = psubsw(uVar19,CONCAT44(CONCAT22(uVar29,uVar29),CONCAT22((short)uVar14,(short)uVar14)));
|
|
|
|
sVar18 = (short)uVar12;
|
|
|
|
sVar25 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar20 = (short)uVar24;
|
|
|
|
sVar2 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
sVar5 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar19;
|
|
|
|
sVar3 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar19 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x30);
|
|
|
|
uVar10 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar13)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x30) - (0xff < sVar15)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((0 < sVar16) * (sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x30) - (0xff < sVar16)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar1 = param_3[0x40];
|
|
|
|
sVar13 = (short)DAT_00834148;
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar26 = sVar15 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar2));
|
|
|
|
uVar7 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
*param_7 = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (ushort)(byte)((0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) - (0xff < sVar25))
|
|
|
|
,(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar18)))) |
|
|
|
|
CONCAT44((uint)uVar26 << 0x10,
|
|
|
|
CONCAT22(uVar26,sVar13 - (ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)uVar24 - (0xff < sVar20))) <<
|
|
|
|
0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar15 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x10) -
|
|
|
|
(0xff < sVar3))) << 8,
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)uVar19 - (0xff < sVar23))) << 8
|
|
|
|
) |
|
|
|
|
CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18);
|
|
|
|
param_7[1] = (ulonglong)
|
|
|
|
CONCAT24(sVar17 - (uVar10 >> 8),
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar10,(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar4)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar17 - (uVar8 >> 8)) << 0x10,
|
|
|
|
sVar16 - (short)CONCAT21(uVar8,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar5))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar17 - (uVar9 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar9,(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >>
|
|
|
|
0x20) - (0xff < sVar6)
|
|
|
|
)) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar7) >> 0x10) << 8,uVar7 << 0x18);
|
|
|
|
uVar19 = param_3[1];
|
|
|
|
uVar30 = (undefined2)((ulonglong)uVar14 >> 0x30);
|
|
|
|
uVar29 = (undefined2)((ulonglong)uVar14 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar21,sVar21)),uVar19);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar28,sVar28),CONCAT22(sVar27,sVar27)),uVar19);
|
|
|
|
uVar19 = psubsw(uVar19,CONCAT44(CONCAT22(uVar30,uVar30),CONCAT22(uVar29,uVar29)));
|
|
|
|
sVar18 = (short)uVar12;
|
|
|
|
sVar25 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar20 = (short)uVar14;
|
|
|
|
sVar2 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
sVar5 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar23 = (short)uVar19;
|
|
|
|
sVar3 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar19 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x30);
|
|
|
|
uVar10 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar13)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar15)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((0 < sVar16) * (sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x30) - (0xff < sVar16)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar1 = param_3[0x41];
|
|
|
|
sVar13 = (short)DAT_00834148;
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar26 = sVar15 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar2));
|
|
|
|
uVar7 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
param_7[2] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (ushort)(byte)((0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar18)))) |
|
|
|
|
CONCAT44((uint)uVar26 << 0x10,
|
|
|
|
CONCAT22(uVar26,sVar13 - (ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)uVar14 - (0xff < sVar20)))
|
|
|
|
<< 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar15 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x10) -
|
|
|
|
(0xff < sVar3))) << 8,
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)uVar19 - (0xff < sVar23))) <<
|
|
|
|
8) |
|
|
|
|
CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18)
|
|
|
|
;
|
|
|
|
param_7[3] = (ulonglong)
|
|
|
|
CONCAT24(sVar17 - (uVar10 >> 8),
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar10,(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar4)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar17 - (uVar8 >> 8)) << 0x10,
|
|
|
|
sVar16 - (short)CONCAT21(uVar8,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) -
|
|
|
|
(0xff < sVar5))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar17 - (uVar9 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar9,(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >>
|
|
|
|
0x20) - (0xff < sVar6)
|
|
|
|
)) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar7) >> 0x10) << 8,uVar7 << 0x18);
|
|
|
|
uVar12 = psllw(param_5[1],4);
|
|
|
|
uVar14 = psllw(param_4[1],4);
|
|
|
|
uVar19 = pmulhw(DAT_00834108,uVar12);
|
|
|
|
uVar24 = pmulhw(DAT_00834110,uVar14);
|
|
|
|
sVar18 = (short)uVar19 - (short)DAT_00834130;
|
|
|
|
sVar20 = (short)((ulonglong)uVar19 >> 0x10) - (short)((ulonglong)DAT_00834130 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar19 >> 0x20) - (short)((ulonglong)DAT_00834130 >> 0x20);
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x30) - (short)((ulonglong)DAT_00834130 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_00834128;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_00834128 >> 0x10);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_00834128 >> 0x20);
|
|
|
|
sVar28 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_00834128 >> 0x30);
|
|
|
|
uVar19 = param_3[0x10];
|
|
|
|
uVar14 = psraw(CONCAT26(((short)((ulonglong)DAT_00834120 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar12 >> 0x34) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x30) *
|
|
|
|
(ushort)((ulonglong)uVar14 >> 0x34)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x30),
|
|
|
|
CONCAT24(((short)((ulonglong)DAT_00834120 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x20) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x20) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x20) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x20),
|
|
|
|
CONCAT22(((short)((ulonglong)DAT_00834120 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar12 >> 0x10) >> 4) +
|
|
|
|
(short)((ulonglong)DAT_00834118 >> 0x10) *
|
|
|
|
((ushort)((ulonglong)uVar14 >> 0x10) >> 4)) -
|
|
|
|
(short)((ulonglong)DAT_00834138 >> 0x10),
|
|
|
|
((short)DAT_00834120 * ((ushort)uVar12 >> 4) +
|
|
|
|
(short)DAT_00834118 * ((ushort)uVar14 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar29 = (undefined2)((ulonglong)uVar14 >> 0x10);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar18,sVar18)),uVar19);
|
|
|
|
uVar24 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar19);
|
|
|
|
uVar19 = psubsw(uVar19,CONCAT44(CONCAT22(uVar29,uVar29),CONCAT22((short)uVar14,(short)uVar14)));
|
|
|
|
sVar18 = (short)uVar12;
|
|
|
|
sVar25 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar20 = (short)uVar24;
|
|
|
|
sVar2 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
sVar5 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar19;
|
|
|
|
sVar3 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar19 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x30);
|
|
|
|
uVar10 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar13)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x30) - (0xff < sVar15)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((0 < sVar16) * (sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x30) - (0xff < sVar16)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar1 = param_3[0x50];
|
|
|
|
sVar13 = (short)DAT_00834148;
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar26 = sVar15 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar2));
|
|
|
|
uVar7 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
param_7[4] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (ushort)(byte)((0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar18)))) |
|
|
|
|
CONCAT44((uint)uVar26 << 0x10,
|
|
|
|
CONCAT22(uVar26,sVar13 - (ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)uVar24 - (0xff < sVar20)))
|
|
|
|
<< 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar15 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x10) -
|
|
|
|
(0xff < sVar3))) << 8,
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)uVar19 - (0xff < sVar23))) <<
|
|
|
|
8) |
|
|
|
|
CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18)
|
|
|
|
;
|
|
|
|
param_7[5] = (ulonglong)
|
|
|
|
CONCAT24(sVar17 - (uVar10 >> 8),
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar10,(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar4)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar17 - (uVar8 >> 8)) << 0x10,
|
|
|
|
sVar16 - (short)CONCAT21(uVar8,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar5))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar17 - (uVar9 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar9,(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >>
|
|
|
|
0x20) - (0xff < sVar6)
|
|
|
|
)) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar7) >> 0x10) << 8,uVar7 << 0x18);
|
|
|
|
uVar19 = param_3[0x11];
|
|
|
|
uVar30 = (undefined2)((ulonglong)uVar14 >> 0x30);
|
|
|
|
uVar29 = (undefined2)((ulonglong)uVar14 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar21,sVar21)),uVar19);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar28,sVar28),CONCAT22(sVar27,sVar27)),uVar19);
|
|
|
|
uVar19 = psubsw(uVar19,CONCAT44(CONCAT22(uVar30,uVar30),CONCAT22(uVar29,uVar29)));
|
|
|
|
sVar18 = (short)uVar12;
|
|
|
|
sVar25 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar4 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar20 = (short)uVar14;
|
|
|
|
sVar2 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
sVar5 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar23 = (short)uVar19;
|
|
|
|
sVar3 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
sVar6 = (short)((ulonglong)uVar19 >> 0x20);
|
|
|
|
sVar16 = (short)((ulonglong)uVar19 >> 0x30);
|
|
|
|
uVar10 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar13)) << 0x30)
|
|
|
|
>> 0x28);
|
|
|
|
uVar8 = (ushort)(((uint7)(byte)((0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar15)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar9 = (ushort)(((uint7)(byte)((0 < sVar16) * (sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x30) - (0xff < sVar16)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar1 = param_3[0x51];
|
|
|
|
sVar13 = (short)DAT_00834148;
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar26 = sVar15 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar2));
|
|
|
|
uVar7 = (uint)(ushort)(uVar1 >> 0x20);
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_7[6] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (ushort)(byte)((0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar18)))) |
|
|
|
|
CONCAT44((uint)uVar26 << 0x10,
|
|
|
|
CONCAT22(uVar26,sVar13 - (ushort)(byte)((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)uVar14 - (0xff < sVar20)))
|
|
|
|
<< 0x10) |
|
|
|
|
CONCAT44((uint)(ushort)(sVar15 - (ushort)(byte)((0 < sVar3) * (sVar3 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x10) -
|
|
|
|
(0xff < sVar3))) << 8,
|
|
|
|
(uint)(ushort)(sVar13 - (ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)uVar19 - (0xff < sVar23))) <<
|
|
|
|
8) |
|
|
|
|
CONCAT44((int)(((uVar1 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar1 << 0x18)
|
|
|
|
;
|
|
|
|
param_7[7] = (ulonglong)
|
|
|
|
CONCAT24(sVar17 - (uVar10 >> 8),
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar10,(0 < sVar4) *
|
|
|
|
(sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar4)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar17 - (uVar8 >> 8)) << 0x10,
|
|
|
|
sVar16 - (short)CONCAT21(uVar8,(0 < sVar5) * (sVar5 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) -
|
|
|
|
(0xff < sVar5))) << 0x10 |
|
|
|
|
CONCAT44((uint)(ushort)(sVar17 - (uVar9 >> 8)) << 8,
|
|
|
|
(uint)(ushort)(sVar16 - (short)CONCAT21(uVar9,(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >>
|
|
|
|
0x20) - (0xff < sVar6)
|
|
|
|
)) << 8) |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar1 >> 0x30),uVar7) >> 0x10) << 8,uVar7 << 0x18);
|
|
|
|
param_7 = (ulonglong *)((int)param_7 + param_8);
|
|
|
|
iVar11 = iVar11 + -1;
|
|
|
|
} while (iVar11 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00659650 at 0x00659650 (size: 1496) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00659650(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
char cVar3;
|
|
|
|
char cVar4;
|
|
|
|
char cVar5;
|
|
|
|
int iVar6;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar7;
|
|
|
|
undefined2 uVar8;
|
|
|
|
ulonglong uVar9;
|
|
|
|
ulonglong uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
ulonglong uVar12;
|
|
|
|
undefined8 uVar13;
|
|
|
|
ulonglong uVar14;
|
|
|
|
short sVar15;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
undefined8 uVar16;
|
|
|
|
short sVar20;
|
|
|
|
undefined8 uVar17;
|
|
|
|
short sVar21;
|
|
|
|
short sVar24;
|
|
|
|
short sVar25;
|
|
|
|
undefined8 uVar22;
|
|
|
|
short sVar26;
|
|
|
|
undefined8 uVar23;
|
|
|
|
undefined8 uVar27;
|
|
|
|
undefined2 uVar28;
|
|
|
|
undefined8 uVar29;
|
|
|
|
undefined2 uVar30;
|
|
|
|
undefined8 uVar31;
|
|
|
|
ulonglong uVar32;
|
|
|
|
|
|
|
|
iVar7 = 4;
|
|
|
|
do {
|
|
|
|
uVar13 = psllw(*param_5,4);
|
|
|
|
uVar11 = psllw(*param_4,4);
|
|
|
|
uVar22 = pmulhw(DAT_00834098,uVar11);
|
|
|
|
uVar16 = pmulhw(DAT_00834090,uVar13);
|
|
|
|
sVar21 = (short)uVar22 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar22 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar15 = (short)uVar16 - (short)DAT_008340c0;
|
|
|
|
sVar18 = (short)((ulonglong)uVar16 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar19 = (short)((ulonglong)uVar16 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar16 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar11 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar11,(short)uVar13)),DAT_008340a0);
|
|
|
|
uVar11 = pmaddwd(CONCAT26((short)((ulonglong)uVar11 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar11 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar6 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar29 = CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar21,sVar21));
|
|
|
|
uVar31 = CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar15,sVar15));
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar16 >> 0x20) - iVar6 >> 0xc,
|
|
|
|
(int)uVar16 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) - iVar6 >> 0xc,
|
|
|
|
(int)uVar11 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar23 = CONCAT26(sVar26,CONCAT24(sVar26,CONCAT22(sVar25,sVar25)));
|
|
|
|
uVar17 = CONCAT26(sVar20,CONCAT24(sVar20,CONCAT22(sVar19,sVar19)));
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar11 = packssdw(uVar11,uVar11);
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar13 >> 0x10);
|
|
|
|
uVar27 = CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar13,(short)uVar13));
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar11 >> 0x10);
|
|
|
|
uVar16 = CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar11,(short)uVar11));
|
|
|
|
uVar11 = *param_3;
|
|
|
|
uVar22 = paddsw(uVar31,uVar11);
|
|
|
|
uVar13 = paddsw(uVar29,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar27);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar18 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar28 = CONCAT11(cVar3,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 - (0xff < sVar15));
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar15 = (short)uVar13;
|
|
|
|
sVar18 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar4 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar8 = CONCAT11(cVar4,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar13 - (0xff < sVar15));
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar15 = (short)uVar11;
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar22 >> 0x30) - (0xff < sVar24)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar25)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar20)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar4,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar18)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar32 = (uVar9 | uVar10 << 8) & _DAT_008340f8;
|
|
|
|
uVar9 = (uVar10 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar9 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar32 << 0x10 | uVar32) & _DAT_00834100 | (uVar9 << 0x20) >> 0x10;
|
|
|
|
uVar11 = param_3[1];
|
|
|
|
uVar22 = paddsw(uVar23,uVar11);
|
|
|
|
uVar13 = paddsw(uVar17,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar16);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar18 = (short)uVar13;
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar8 = CONCAT11(cVar3,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar13 - (0xff < sVar18));
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar18 = (short)uVar11;
|
|
|
|
sVar20 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar1) *
|
|
|
|
(sVar1 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar1)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar32 = (uVar14 | uVar10 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar10 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar10 = (uVar32 | uVar32 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar9 >> 0x20 | uVar14 << 0x20;
|
|
|
|
param_6[2] = (uVar14 >> 0x20) << 0x10 | uVar10;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
uVar11 = param_3[2];
|
|
|
|
uVar22 = paddsw(uVar31,uVar11);
|
|
|
|
uVar13 = paddsw(uVar29,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar27);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar18 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar30 = CONCAT11(cVar3,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 - (0xff < sVar15));
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar15 = (short)uVar13;
|
|
|
|
sVar18 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar4 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar28 = CONCAT11(cVar4,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar13 - (0xff < sVar15));
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar15 = (short)uVar11;
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar8 = CONCAT11(cVar5,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar11 - (0xff < sVar15));
|
|
|
|
sVar15 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar22 >> 0x30) - (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar30)) >> 0x10),uVar30) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar24)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar20)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar4,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar18) *
|
|
|
|
(sVar18 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar11 >> 0x30) - (0xff < sVar18)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar15)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar32 = (uVar9 | uVar10 << 8) & _DAT_008340f8;
|
|
|
|
uVar9 = (uVar10 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar9 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar32 << 0x10 | uVar32) & _DAT_00834100 | (uVar9 << 0x20) >> 0x10;
|
|
|
|
uVar11 = param_3[3];
|
|
|
|
uVar22 = paddsw(uVar23,uVar11);
|
|
|
|
uVar13 = paddsw(uVar17,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar16);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar18 = (short)uVar13;
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar8 = CONCAT11(cVar3,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar13 - (0xff < sVar18));
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar18 = (short)uVar11;
|
|
|
|
sVar20 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar1) *
|
|
|
|
(sVar1 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar1)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar32 = (uVar14 | uVar10 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar10 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar10 = (uVar32 | uVar32 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar9 >> 0x20 | uVar14 << 0x20;
|
|
|
|
param_6[2] = (uVar14 >> 0x20) << 0x10 | uVar10;
|
|
|
|
uVar13 = psllw(param_5[1],4);
|
|
|
|
uVar11 = psllw(param_4[1],4);
|
|
|
|
uVar22 = pmulhw(DAT_00834098,uVar11);
|
|
|
|
uVar16 = pmulhw(DAT_00834090,uVar13);
|
|
|
|
sVar21 = (short)uVar22 - (short)DAT_008340b8;
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar22 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar15 = (short)uVar16 - (short)DAT_008340c0;
|
|
|
|
sVar18 = (short)((ulonglong)uVar16 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar19 = (short)((ulonglong)uVar16 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar20 = (short)((ulonglong)uVar16 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar16 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar11 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar11,(short)uVar13)),DAT_008340a0);
|
|
|
|
uVar11 = pmaddwd(CONCAT26((short)((ulonglong)uVar11 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar13 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar11 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar13 >> 0x20)))),DAT_008340a0);
|
|
|
|
iVar6 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar29 = CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar21,sVar21));
|
|
|
|
uVar31 = CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar15,sVar15));
|
|
|
|
uVar13 = CONCAT44((int)((ulonglong)uVar16 >> 0x20) - iVar6 >> 0xc,
|
|
|
|
(int)uVar16 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar11 = CONCAT44((int)((ulonglong)uVar11 >> 0x20) - iVar6 >> 0xc,
|
|
|
|
(int)uVar11 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar23 = CONCAT26(sVar26,CONCAT24(sVar26,CONCAT22(sVar25,sVar25)));
|
|
|
|
uVar17 = CONCAT26(sVar20,CONCAT24(sVar20,CONCAT22(sVar19,sVar19)));
|
|
|
|
uVar13 = packssdw(uVar13,uVar13);
|
|
|
|
uVar11 = packssdw(uVar11,uVar11);
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar13 >> 0x10);
|
|
|
|
uVar27 = CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar13,(short)uVar13));
|
|
|
|
uVar8 = (undefined2)((ulonglong)uVar11 >> 0x10);
|
|
|
|
uVar16 = CONCAT44(CONCAT22(uVar8,uVar8),CONCAT22((short)uVar11,(short)uVar11));
|
|
|
|
uVar11 = param_3[0x10];
|
|
|
|
uVar22 = paddsw(uVar31,uVar11);
|
|
|
|
uVar13 = paddsw(uVar29,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar27);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar18 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar28 = CONCAT11(cVar3,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 - (0xff < sVar15));
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar24 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar15 = (short)uVar13;
|
|
|
|
sVar18 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar4 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar8 = CONCAT11(cVar4,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar13 - (0xff < sVar15));
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar15 = (short)uVar11;
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar22 >> 0x30) - (0xff < sVar24)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar25)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar20)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar4,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar18)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar32 = (uVar9 | uVar10 << 8) & _DAT_008340f8;
|
|
|
|
uVar9 = (uVar10 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar9 >> 8) & _DAT_008340f8;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x18 - param_7)) =
|
|
|
|
(uVar32 << 0x10 | uVar32) & _DAT_00834100 | (uVar9 << 0x20) >> 0x10;
|
|
|
|
uVar11 = param_3[0x11];
|
|
|
|
uVar22 = paddsw(uVar23,uVar11);
|
|
|
|
uVar13 = paddsw(uVar17,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar16);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar18 = (short)uVar13;
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar8 = CONCAT11(cVar3,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar13 - (0xff < sVar18));
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar18 = (short)uVar11;
|
|
|
|
sVar20 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar1) *
|
|
|
|
(sVar1 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar1)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar32 = (uVar14 | uVar10 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar10 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar10 = (uVar32 | uVar32 >> 0x10) & _DAT_00834100;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x20 - param_7)) = uVar9 >> 0x20 | uVar14 << 0x20;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x28 - param_7)) = (uVar14 >> 0x20) << 0x10 | uVar10;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
uVar11 = param_3[0x12];
|
|
|
|
uVar22 = paddsw(uVar31,uVar11);
|
|
|
|
uVar13 = paddsw(uVar29,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar27);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar18 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar30 = CONCAT11(cVar3,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 - (0xff < sVar15));
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar15 = (short)uVar13;
|
|
|
|
sVar18 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar4 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar28 = CONCAT11(cVar4,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar13 - (0xff < sVar15));
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar15 = (short)uVar11;
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
cVar5 = (0 < sVar18) * (sVar18 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) - (0xff < sVar18);
|
|
|
|
uVar8 = CONCAT11(cVar5,(0 < sVar15) * (sVar15 < 0x100) * (char)uVar11 - (0xff < sVar15));
|
|
|
|
sVar15 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar18 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar9 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar21) *
|
|
|
|
(sVar21 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar22 >> 0x30) - (0xff < sVar21)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar19)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar30)) >> 0x10),uVar30) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar24) *
|
|
|
|
(sVar24 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar24)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar20)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar4,uVar28)) >> 0x10),uVar28) & 0xffffffff00ff00ff;
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar18) *
|
|
|
|
(sVar18 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar11 >> 0x30) - (0xff < sVar18)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar15) * (sVar15 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar15)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar5,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar32 = (uVar9 | uVar10 << 8) & _DAT_008340f8;
|
|
|
|
uVar9 = (uVar10 | uVar14 << 8) & DAT_008340f0 | (uVar14 | uVar9 >> 8) & _DAT_008340f8;
|
|
|
|
param_6[3] = (uVar32 << 0x10 | uVar32) & _DAT_00834100 | (uVar9 << 0x20) >> 0x10;
|
|
|
|
uVar11 = param_3[0x13];
|
|
|
|
uVar22 = paddsw(uVar23,uVar11);
|
|
|
|
uVar13 = paddsw(uVar17,uVar11);
|
|
|
|
uVar11 = psubsw(uVar11,uVar16);
|
|
|
|
sVar15 = (short)uVar22;
|
|
|
|
sVar19 = (short)((ulonglong)uVar22 >> 0x10);
|
|
|
|
sVar21 = (short)((ulonglong)uVar22 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)uVar22 >> 0x30);
|
|
|
|
sVar18 = (short)uVar13;
|
|
|
|
sVar20 = (short)((ulonglong)uVar13 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar13 >> 0x10) - (0xff < sVar20);
|
|
|
|
uVar8 = CONCAT11(cVar3,(0 < sVar18) * (sVar18 < 0x100) * (char)uVar13 - (0xff < sVar18));
|
|
|
|
sVar24 = (short)((ulonglong)uVar13 >> 0x20);
|
|
|
|
sVar1 = (short)((ulonglong)uVar13 >> 0x30);
|
|
|
|
sVar18 = (short)uVar11;
|
|
|
|
sVar20 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar25 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar2 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
uVar10 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar26) *
|
|
|
|
(sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar22 >> 0x30)
|
|
|
|
- (0xff < sVar26)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar22 >> 0x20) -
|
|
|
|
(0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar19) * (sVar19 < 0x100) * (char)((ulonglong)uVar22 >> 0x10) -
|
|
|
|
(0xff < sVar19)),
|
|
|
|
(ushort)(byte)((0 < sVar15) * (sVar15 < 0x100) * (char)uVar22 -
|
|
|
|
(0xff < sVar15)));
|
|
|
|
uVar12 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar1) *
|
|
|
|
(sVar1 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar13 >> 0x30) - (0xff < sVar1)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar24) * (sVar24 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar13 >> 0x20) -
|
|
|
|
(0xff < sVar24)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar8)) >> 0x10),uVar8) & 0xffffffff00ff00ff;
|
|
|
|
uVar14 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar2) *
|
|
|
|
(sVar2 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar11 >> 0x30)
|
|
|
|
- (0xff < sVar2)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) -
|
|
|
|
(0xff < sVar25)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar18) * (sVar18 < 0x100) * (char)uVar11 -
|
|
|
|
(0xff < sVar18)));
|
|
|
|
uVar32 = (uVar14 | uVar10 << 8) & DAT_008340f0;
|
|
|
|
uVar14 = ((uVar10 | uVar12 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar12 | uVar14 << 8) & _DAT_008340f8;
|
|
|
|
uVar10 = (uVar32 | uVar32 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar9 >> 0x20 | uVar14 << 0x20;
|
|
|
|
param_6[5] = (uVar14 >> 0x20) << 0x10 | uVar10;
|
|
|
|
param_3 = param_3 + 4;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
iVar7 = iVar7 + -1;
|
|
|
|
} while (iVar7 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_00659c30 at 0x00659C30 (size: 1496) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_00659c30(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
char cVar2;
|
|
|
|
char cVar3;
|
|
|
|
int iVar4;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar5;
|
|
|
|
undefined2 uVar6;
|
|
|
|
ulonglong uVar7;
|
|
|
|
ulonglong uVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
undefined8 uVar10;
|
|
|
|
short sVar14;
|
|
|
|
ulonglong uVar11;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
short sVar19;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar17;
|
|
|
|
short sVar20;
|
|
|
|
short sVar22;
|
|
|
|
ulonglong uVar18;
|
|
|
|
short sVar23;
|
|
|
|
short sVar25;
|
|
|
|
short sVar26;
|
|
|
|
undefined8 uVar24;
|
|
|
|
short sVar27;
|
|
|
|
short sVar28;
|
|
|
|
short sVar30;
|
|
|
|
short sVar31;
|
|
|
|
undefined8 uVar29;
|
|
|
|
short sVar32;
|
|
|
|
undefined2 uVar33;
|
|
|
|
undefined2 uVar34;
|
|
|
|
undefined8 uVar35;
|
|
|
|
ulonglong uVar36;
|
|
|
|
undefined8 uVar37;
|
|
|
|
|
|
|
|
iVar5 = 4;
|
|
|
|
do {
|
|
|
|
uVar17 = psllw(*param_5,4);
|
|
|
|
uVar10 = psllw(*param_4,4);
|
|
|
|
uVar29 = pmulhw(DAT_00834098,uVar10);
|
|
|
|
uVar24 = pmulhw(DAT_00834090,uVar17);
|
|
|
|
sVar28 = (short)uVar29 - (short)DAT_008340b8;
|
|
|
|
sVar30 = (short)((ulonglong)uVar29 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar31 = (short)((ulonglong)uVar29 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar32 = (short)((ulonglong)uVar29 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340c0;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar24 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar10,(short)uVar17)),DAT_008340a0);
|
|
|
|
uVar10 = pmaddwd(CONCAT26((short)((ulonglong)uVar10 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar17 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x20)))),DAT_008340a0);
|
|
|
|
uVar37 = CONCAT44(CONCAT22(sVar30,sVar30),CONCAT22(sVar28,sVar28));
|
|
|
|
uVar29 = CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23));
|
|
|
|
iVar4 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)((ulonglong)uVar24 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar24 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar10 = CONCAT44((int)((ulonglong)uVar10 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar10 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar17 >> 0x10);
|
|
|
|
uVar17 = CONCAT44(CONCAT22(uVar6,uVar6),CONCAT22((short)uVar17,(short)uVar17));
|
|
|
|
sVar19 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar15 = (short)uVar10;
|
|
|
|
uVar10 = *param_3;
|
|
|
|
uVar35 = paddsw(uVar37,uVar10);
|
|
|
|
uVar24 = paddsw(uVar29,uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,uVar17);
|
|
|
|
sVar23 = (short)uVar35;
|
|
|
|
sVar25 = (short)((ulonglong)uVar35 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar35 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar33 = CONCAT11(cVar1,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar35 - (0xff < sVar23));
|
|
|
|
sVar28 = (short)((ulonglong)uVar35 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar35 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar6 = CONCAT11(cVar2,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar24 - (0xff < sVar23));
|
|
|
|
sVar30 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar35 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar35 >> 0x20) -
|
|
|
|
(0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar33)) >> 0x10),uVar33) & 0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar13) *
|
|
|
|
(sVar13 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar24 >> 0x30) - (0xff < sVar13)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar30)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar6)) >> 0x10),uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar14)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar9) * (sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar9)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)uVar10 - (0xff < sVar23)
|
|
|
|
));
|
|
|
|
uVar36 = (uVar7 | uVar8 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar8 | uVar18 << 8) & DAT_008340f0 | (uVar18 | uVar7 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar36 << 0x10 | uVar36) & _DAT_00834100 | (uVar7 << 0x20) >> 0x10;
|
|
|
|
uVar10 = param_3[1];
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar16 = sVar26 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar20 = sVar26 + sVar25;
|
|
|
|
sVar28 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar21 = sVar27 + sVar28;
|
|
|
|
sVar30 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
sVar22 = sVar27 + sVar30;
|
|
|
|
sVar9 = sVar31 + sVar23;
|
|
|
|
sVar12 = sVar31 + sVar25;
|
|
|
|
sVar13 = sVar32 + sVar28;
|
|
|
|
sVar14 = sVar32 + sVar30;
|
|
|
|
sVar23 = sVar23 - sVar15;
|
|
|
|
sVar25 = sVar25 - sVar15;
|
|
|
|
sVar28 = sVar28 - sVar19;
|
|
|
|
sVar30 = sVar30 - sVar19;
|
|
|
|
cVar1 = (0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12);
|
|
|
|
uVar6 = CONCAT11(cVar1,(0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 - (0xff < sVar9));
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)sVar22 -
|
|
|
|
(0xff < sVar22)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) * (char)sVar21
|
|
|
|
- (0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar16) * (sVar16 < 0x100) * (char)sVar16 - (0xff < sVar16)
|
|
|
|
));
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100)
|
|
|
|
* (char)sVar14 -
|
|
|
|
(0xff < sVar14))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)sVar13 - (0xff < sVar13)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar6)) >> 0x10),uVar6) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar30) *
|
|
|
|
(sVar30 < 0x100) *
|
|
|
|
(char)sVar30 -
|
|
|
|
(0xff < sVar30)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) * (char)sVar28
|
|
|
|
- (0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)sVar23 -
|
|
|
|
(0xff < sVar23)));
|
|
|
|
uVar36 = (uVar18 | uVar8 << 8) & DAT_008340f0;
|
|
|
|
uVar18 = ((uVar8 | uVar11 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar11 | uVar18 << 8) & _DAT_008340f8;
|
|
|
|
uVar8 = (uVar36 | uVar36 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar7 >> 0x20 | uVar18 << 0x20;
|
|
|
|
param_6[2] = (uVar18 >> 0x20) << 0x10 | uVar8;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
uVar10 = param_3[2];
|
|
|
|
uVar37 = paddsw(uVar37,uVar10);
|
|
|
|
uVar24 = paddsw(uVar29,uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,uVar17);
|
|
|
|
sVar23 = (short)uVar37;
|
|
|
|
sVar25 = (short)((ulonglong)uVar37 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar37 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar34 = CONCAT11(cVar1,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar37 - (0xff < sVar23));
|
|
|
|
sVar28 = (short)((ulonglong)uVar37 >> 0x20);
|
|
|
|
sVar9 = (short)((ulonglong)uVar37 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar33 = CONCAT11(cVar2,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar24 - (0xff < sVar23));
|
|
|
|
sVar30 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar6 = CONCAT11(cVar3,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar10 - (0xff < sVar23));
|
|
|
|
sVar23 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar9) *
|
|
|
|
(sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong
|
|
|
|
)uVar37 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar9)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar37 >> 0x20) -
|
|
|
|
(0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar34)) >> 0x10),uVar34) & 0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar24 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar30)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar33)) >> 0x10),uVar33) & 0xffffffff00ff00ff;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar10 >> 0x30) - (0xff < sVar25)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar6)) >> 0x10),uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar36 = (uVar7 | uVar8 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar8 | uVar18 << 8) & DAT_008340f0 | (uVar18 | uVar7 >> 8) & _DAT_008340f8;
|
|
|
|
*param_6 = (uVar36 << 0x10 | uVar36) & _DAT_00834100 | (uVar7 << 0x20) >> 0x10;
|
|
|
|
uVar10 = param_3[3];
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar13 = sVar26 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar26 = sVar26 + sVar25;
|
|
|
|
sVar28 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = sVar27 + sVar28;
|
|
|
|
sVar30 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
sVar27 = sVar27 + sVar30;
|
|
|
|
sVar9 = sVar31 + sVar23;
|
|
|
|
sVar31 = sVar31 + sVar25;
|
|
|
|
sVar12 = sVar32 + sVar28;
|
|
|
|
sVar32 = sVar32 + sVar30;
|
|
|
|
sVar23 = sVar23 - sVar15;
|
|
|
|
sVar25 = sVar25 - sVar15;
|
|
|
|
sVar28 = sVar28 - sVar19;
|
|
|
|
sVar30 = sVar30 - sVar19;
|
|
|
|
cVar1 = (0 < sVar31) * (sVar31 < 0x100) * (char)sVar31 - (0xff < sVar31);
|
|
|
|
uVar6 = CONCAT11(cVar1,(0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 - (0xff < sVar9));
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar27) *
|
|
|
|
(sVar27 < 0x100) *
|
|
|
|
(char)sVar27 -
|
|
|
|
(0xff < sVar27)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar14) * (sVar14 < 0x100) * (char)sVar14
|
|
|
|
- (0xff < sVar14)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26)),
|
|
|
|
(ushort)(byte)((0 < sVar13) * (sVar13 < 0x100) * (char)sVar13 - (0xff < sVar13)
|
|
|
|
));
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar32) *
|
|
|
|
(sVar32 < 0x100)
|
|
|
|
* (char)sVar32 -
|
|
|
|
(0xff < sVar32))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar12) * (sVar12 < 0x100) *
|
|
|
|
(char)sVar12 - (0xff < sVar12)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar6)) >> 0x10),uVar6) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar30) *
|
|
|
|
(sVar30 < 0x100) *
|
|
|
|
(char)sVar30 -
|
|
|
|
(0xff < sVar30)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) * (char)sVar28
|
|
|
|
- (0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)sVar23 -
|
|
|
|
(0xff < sVar23)));
|
|
|
|
uVar36 = (uVar18 | uVar8 << 8) & DAT_008340f0;
|
|
|
|
uVar18 = ((uVar8 | uVar11 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar11 | uVar18 << 8) & _DAT_008340f8;
|
|
|
|
uVar8 = (uVar36 | uVar36 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[1] = uVar7 >> 0x20 | uVar18 << 0x20;
|
|
|
|
param_6[2] = (uVar18 >> 0x20) << 0x10 | uVar8;
|
|
|
|
uVar17 = psllw(param_5[1],4);
|
|
|
|
uVar10 = psllw(param_4[1],4);
|
|
|
|
uVar29 = pmulhw(DAT_00834098,uVar10);
|
|
|
|
uVar24 = pmulhw(DAT_00834090,uVar17);
|
|
|
|
sVar28 = (short)uVar29 - (short)DAT_008340b8;
|
|
|
|
sVar30 = (short)((ulonglong)uVar29 >> 0x10) - (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar31 = (short)((ulonglong)uVar29 >> 0x20) - (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar32 = (short)((ulonglong)uVar29 >> 0x30) - (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24 - (short)DAT_008340c0;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10) - (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar26 = (short)((ulonglong)uVar24 >> 0x20) - (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar27 = (short)((ulonglong)uVar24 >> 0x30) - (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
uVar24 = pmaddwd(CONCAT44(CONCAT22((short)((ulonglong)uVar10 >> 0x10),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x10)),
|
|
|
|
CONCAT22((short)uVar10,(short)uVar17)),DAT_008340a0);
|
|
|
|
uVar10 = pmaddwd(CONCAT26((short)((ulonglong)uVar10 >> 0x30),
|
|
|
|
CONCAT24((short)((ulonglong)uVar17 >> 0x30),
|
|
|
|
CONCAT22((short)((ulonglong)uVar10 >> 0x20),
|
|
|
|
(short)((ulonglong)uVar17 >> 0x20)))),DAT_008340a0);
|
|
|
|
uVar37 = CONCAT44(CONCAT22(sVar30,sVar30),CONCAT22(sVar28,sVar28));
|
|
|
|
uVar29 = CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23));
|
|
|
|
iVar4 = (int)((ulonglong)DAT_008340c8 >> 0x20);
|
|
|
|
uVar17 = CONCAT44((int)((ulonglong)uVar24 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar24 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar10 = CONCAT44((int)((ulonglong)uVar10 >> 0x20) - iVar4 >> 0xc,
|
|
|
|
(int)uVar10 - (int)DAT_008340c8 >> 0xc);
|
|
|
|
uVar17 = packssdw(uVar17,uVar17);
|
|
|
|
uVar10 = packssdw(uVar10,uVar10);
|
|
|
|
uVar6 = (undefined2)((ulonglong)uVar17 >> 0x10);
|
|
|
|
uVar17 = CONCAT44(CONCAT22(uVar6,uVar6),CONCAT22((short)uVar17,(short)uVar17));
|
|
|
|
sVar19 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar15 = (short)uVar10;
|
|
|
|
uVar10 = param_3[0x10];
|
|
|
|
uVar35 = paddsw(uVar37,uVar10);
|
|
|
|
uVar24 = paddsw(uVar29,uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,uVar17);
|
|
|
|
sVar23 = (short)uVar35;
|
|
|
|
sVar25 = (short)((ulonglong)uVar35 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar35 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar33 = CONCAT11(cVar1,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar35 - (0xff < sVar23));
|
|
|
|
sVar28 = (short)((ulonglong)uVar35 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar35 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar6 = CONCAT11(cVar2,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar24 - (0xff < sVar23));
|
|
|
|
sVar30 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar9 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar35 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar35 >> 0x20) -
|
|
|
|
(0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar33)) >> 0x10),uVar33) & 0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar13) *
|
|
|
|
(sVar13 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar24 >> 0x30) - (0xff < sVar13)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar30)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar6)) >> 0x10),uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x30) -
|
|
|
|
(0xff < sVar14)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar9) * (sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar9)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)uVar10 - (0xff < sVar23)
|
|
|
|
));
|
|
|
|
uVar36 = (uVar7 | uVar8 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar8 | uVar18 << 8) & DAT_008340f0 | (uVar18 | uVar7 >> 8) & _DAT_008340f8;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x18 - param_7)) =
|
|
|
|
(uVar36 << 0x10 | uVar36) & _DAT_00834100 | (uVar7 << 0x20) >> 0x10;
|
|
|
|
uVar10 = param_3[0x11];
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar16 = sVar26 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar20 = sVar26 + sVar25;
|
|
|
|
sVar28 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar21 = sVar27 + sVar28;
|
|
|
|
sVar30 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
sVar22 = sVar27 + sVar30;
|
|
|
|
sVar9 = sVar31 + sVar23;
|
|
|
|
sVar12 = sVar31 + sVar25;
|
|
|
|
sVar13 = sVar32 + sVar28;
|
|
|
|
sVar14 = sVar32 + sVar30;
|
|
|
|
sVar23 = sVar23 - sVar15;
|
|
|
|
sVar25 = sVar25 - sVar15;
|
|
|
|
sVar28 = sVar28 - sVar19;
|
|
|
|
sVar30 = sVar30 - sVar19;
|
|
|
|
cVar1 = (0 < sVar12) * (sVar12 < 0x100) * (char)sVar12 - (0xff < sVar12);
|
|
|
|
uVar6 = CONCAT11(cVar1,(0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 - (0xff < sVar9));
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar22) *
|
|
|
|
(sVar22 < 0x100) *
|
|
|
|
(char)sVar22 -
|
|
|
|
(0xff < sVar22)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar21) * (sVar21 < 0x100) * (char)sVar21
|
|
|
|
- (0xff < sVar21)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar20) * (sVar20 < 0x100) * (char)sVar20 - (0xff < sVar20)),
|
|
|
|
(ushort)(byte)((0 < sVar16) * (sVar16 < 0x100) * (char)sVar16 - (0xff < sVar16)
|
|
|
|
));
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar14) *
|
|
|
|
(sVar14 < 0x100)
|
|
|
|
* (char)sVar14 -
|
|
|
|
(0xff < sVar14))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)sVar13 - (0xff < sVar13)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar6)) >> 0x10),uVar6) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar30) *
|
|
|
|
(sVar30 < 0x100) *
|
|
|
|
(char)sVar30 -
|
|
|
|
(0xff < sVar30)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) * (char)sVar28
|
|
|
|
- (0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)sVar23 -
|
|
|
|
(0xff < sVar23)));
|
|
|
|
uVar36 = (uVar18 | uVar8 << 8) & DAT_008340f0;
|
|
|
|
uVar18 = ((uVar8 | uVar11 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar11 | uVar18 << 8) & _DAT_008340f8;
|
|
|
|
uVar8 = (uVar36 | uVar36 >> 0x10) & _DAT_00834100;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x20 - param_7)) = uVar7 >> 0x20 | uVar18 << 0x20;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
*(ulonglong *)((int)param_6 + (0x28 - param_7)) = (uVar18 >> 0x20) << 0x10 | uVar8;
|
|
|
|
uVar10 = param_3[0x12];
|
|
|
|
uVar37 = paddsw(uVar37,uVar10);
|
|
|
|
uVar24 = paddsw(uVar29,uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,uVar17);
|
|
|
|
sVar23 = (short)uVar37;
|
|
|
|
sVar25 = (short)((ulonglong)uVar37 >> 0x10);
|
|
|
|
cVar1 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar37 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar34 = CONCAT11(cVar1,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar37 - (0xff < sVar23));
|
|
|
|
sVar28 = (short)((ulonglong)uVar37 >> 0x20);
|
|
|
|
sVar9 = (short)((ulonglong)uVar37 >> 0x30);
|
|
|
|
sVar23 = (short)uVar24;
|
|
|
|
sVar25 = (short)((ulonglong)uVar24 >> 0x10);
|
|
|
|
cVar2 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar24 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar33 = CONCAT11(cVar2,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar24 - (0xff < sVar23));
|
|
|
|
sVar30 = (short)((ulonglong)uVar24 >> 0x20);
|
|
|
|
sVar12 = (short)((ulonglong)uVar24 >> 0x30);
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
cVar3 = (0 < sVar25) * (sVar25 < 0x100) * (char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar25);
|
|
|
|
uVar6 = CONCAT11(cVar3,(0 < sVar23) * (sVar23 < 0x100) * (char)uVar10 - (0xff < sVar23));
|
|
|
|
sVar23 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar9) *
|
|
|
|
(sVar9 < 0x100) *
|
|
|
|
(char)((ulonglong
|
|
|
|
)uVar37 >>
|
|
|
|
0x30) -
|
|
|
|
(0xff < sVar9)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar37 >> 0x20) -
|
|
|
|
(0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar1,uVar34)) >> 0x10),uVar34) & 0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar12) *
|
|
|
|
(sVar12 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar24 >> 0x30) - (0xff < sVar12)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar24 >> 0x20) -
|
|
|
|
(0xff < sVar30)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar2,uVar33)) >> 0x10),uVar33) & 0xffffffff00ff00ff;
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar25) *
|
|
|
|
(sVar25 < 0x100)
|
|
|
|
* (char)((
|
|
|
|
ulonglong)uVar10 >> 0x30) - (0xff < sVar25)) <<
|
|
|
|
0x30) >> 0x28),
|
|
|
|
(0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) -
|
|
|
|
(0xff < sVar23)) << 0x20) >> 0x18),
|
|
|
|
CONCAT12(cVar3,uVar6)) >> 0x10),uVar6) & 0xffffffff00ff00ff;
|
|
|
|
uVar36 = (uVar7 | uVar8 << 8) & _DAT_008340f8;
|
|
|
|
uVar7 = (uVar8 | uVar18 << 8) & DAT_008340f0 | (uVar18 | uVar7 >> 8) & _DAT_008340f8;
|
|
|
|
param_6[3] = (uVar36 << 0x10 | uVar36) & _DAT_00834100 | (uVar7 << 0x20) >> 0x10;
|
|
|
|
uVar10 = param_3[0x13];
|
|
|
|
sVar23 = (short)uVar10;
|
|
|
|
sVar13 = sVar26 + sVar23;
|
|
|
|
sVar25 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar26 = sVar26 + sVar25;
|
|
|
|
sVar28 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = sVar27 + sVar28;
|
|
|
|
sVar30 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
sVar27 = sVar27 + sVar30;
|
|
|
|
sVar9 = sVar31 + sVar23;
|
|
|
|
sVar31 = sVar31 + sVar25;
|
|
|
|
sVar12 = sVar32 + sVar28;
|
|
|
|
sVar32 = sVar32 + sVar30;
|
|
|
|
sVar23 = sVar23 - sVar15;
|
|
|
|
sVar25 = sVar25 - sVar15;
|
|
|
|
sVar28 = sVar28 - sVar19;
|
|
|
|
sVar30 = sVar30 - sVar19;
|
|
|
|
cVar1 = (0 < sVar31) * (sVar31 < 0x100) * (char)sVar31 - (0xff < sVar31);
|
|
|
|
uVar6 = CONCAT11(cVar1,(0 < sVar9) * (sVar9 < 0x100) * (char)sVar9 - (0xff < sVar9));
|
|
|
|
uVar8 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar27) *
|
|
|
|
(sVar27 < 0x100) *
|
|
|
|
(char)sVar27 -
|
|
|
|
(0xff < sVar27)) << 0x30)
|
|
|
|
>> 0x28),
|
|
|
|
(0 < sVar14) * (sVar14 < 0x100) * (char)sVar14
|
|
|
|
- (0xff < sVar14)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar26) * (sVar26 < 0x100) * (char)sVar26 - (0xff < sVar26)),
|
|
|
|
(ushort)(byte)((0 < sVar13) * (sVar13 < 0x100) * (char)sVar13 - (0xff < sVar13)
|
|
|
|
));
|
|
|
|
uVar11 = (ulonglong)
|
|
|
|
CONCAT52((int5)(CONCAT43((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar32) *
|
|
|
|
(sVar32 < 0x100)
|
|
|
|
* (char)sVar32 -
|
|
|
|
(0xff < sVar32))
|
|
|
|
<< 0x30) >> 0x28),
|
|
|
|
(0 < sVar12) * (sVar12 < 0x100) *
|
|
|
|
(char)sVar12 - (0xff < sVar12)) << 0x20
|
|
|
|
) >> 0x18),CONCAT12(cVar1,uVar6)) >> 0x10),uVar6) &
|
|
|
|
0xffffffff00ff00ff;
|
|
|
|
uVar18 = (ulonglong)
|
|
|
|
CONCAT52(CONCAT41((int)(((uint7)CONCAT21((short)(((uint7)(byte)((0 < sVar30) *
|
|
|
|
(sVar30 < 0x100) *
|
|
|
|
(char)sVar30 -
|
|
|
|
(0xff < sVar30)) << 0x30
|
|
|
|
) >> 0x28),
|
|
|
|
(0 < sVar28) * (sVar28 < 0x100) * (char)sVar28
|
|
|
|
- (0xff < sVar28)) << 0x20) >> 0x18),
|
|
|
|
(0 < sVar25) * (sVar25 < 0x100) * (char)sVar25 - (0xff < sVar25)),
|
|
|
|
(ushort)(byte)((0 < sVar23) * (sVar23 < 0x100) * (char)sVar23 -
|
|
|
|
(0xff < sVar23)));
|
|
|
|
uVar36 = (uVar18 | uVar8 << 8) & DAT_008340f0;
|
|
|
|
uVar18 = ((uVar8 | uVar11 >> 8) & _DAT_008340f8) << 0x10 |
|
|
|
|
(uVar11 | uVar18 << 8) & _DAT_008340f8;
|
|
|
|
uVar8 = (uVar36 | uVar36 >> 0x10) & _DAT_00834100;
|
|
|
|
param_6[4] = uVar7 >> 0x20 | uVar18 << 0x20;
|
|
|
|
param_3 = param_3 + 4;
|
|
|
|
param_6[5] = (uVar18 >> 0x20) << 0x10 | uVar8;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
} while (iVar5 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065a210 at 0x0065A210 (size: 1434) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_0065a210(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,ulonglong *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
short sVar4;
|
|
|
|
short sVar5;
|
|
|
|
char cVar6;
|
|
|
|
uint uVar7;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar8;
|
|
|
|
undefined8 *puVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
undefined8 uVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar16;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
short sVar21;
|
|
|
|
undefined8 uVar14;
|
|
|
|
short sVar17;
|
|
|
|
short sVar20;
|
|
|
|
short sVar22;
|
|
|
|
short sVar23;
|
|
|
|
undefined8 uVar15;
|
|
|
|
short sVar24;
|
|
|
|
short sVar25;
|
|
|
|
short sVar26;
|
|
|
|
short sVar29;
|
|
|
|
short sVar31;
|
|
|
|
short sVar32;
|
|
|
|
short sVar34;
|
|
|
|
undefined8 uVar27;
|
|
|
|
short sVar30;
|
|
|
|
short sVar33;
|
|
|
|
short sVar35;
|
|
|
|
short sVar36;
|
|
|
|
undefined8 uVar28;
|
|
|
|
short sVar37;
|
|
|
|
undefined2 uVar38;
|
|
|
|
undefined2 uVar39;
|
|
|
|
undefined2 uVar40;
|
|
|
|
undefined2 uVar41;
|
|
|
|
undefined2 uVar42;
|
|
|
|
undefined2 uVar43;
|
|
|
|
undefined2 uVar44;
|
|
|
|
undefined2 uVar45;
|
|
|
|
ulonglong uVar46;
|
|
|
|
ulonglong uVar47;
|
|
|
|
|
|
|
|
iVar8 = 8;
|
|
|
|
while( true ) {
|
|
|
|
uVar11 = psllw(*param_4,4);
|
|
|
|
uVar10 = psllw(*param_5,4);
|
|
|
|
uVar27 = pmulhw(DAT_00834098,uVar11);
|
|
|
|
uVar14 = pmulhw(DAT_00834090,uVar10);
|
|
|
|
sVar12 = (short)uVar14 - (short)DAT_008340c0;
|
|
|
|
sVar18 = (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar16 = (short)((ulonglong)uVar14 >> 0x10) - sVar18;
|
|
|
|
sVar21 = (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar14 >> 0x20) - sVar21;
|
|
|
|
sVar24 = (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
sVar22 = (short)((ulonglong)uVar14 >> 0x30) - sVar24;
|
|
|
|
sVar25 = (short)uVar27 - (short)DAT_008340b8;
|
|
|
|
sVar31 = (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar29 = (short)((ulonglong)uVar27 >> 0x10) - sVar31;
|
|
|
|
sVar34 = (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar32 = (short)((ulonglong)uVar27 >> 0x20) - sVar34;
|
|
|
|
sVar37 = (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar35 = (short)((ulonglong)uVar27 >> 0x30) - sVar37;
|
|
|
|
sVar30 = (short)((ulonglong)DAT_008340a8 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)DAT_008340a8 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)DAT_008340a8 >> 0x30);
|
|
|
|
sVar17 = (short)((ulonglong)DAT_008340b0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)DAT_008340b0 >> 0x20);
|
|
|
|
sVar23 = (short)((ulonglong)DAT_008340b0 >> 0x30);
|
|
|
|
sVar1 = (short)((ulonglong)DAT_00834138 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)DAT_00834138 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)DAT_00834138 >> 0x30);
|
|
|
|
uVar27 = psraw(CONCAT26((sVar23 * (ushort)((ulonglong)uVar10 >> 0x34) +
|
|
|
|
sVar36 * (ushort)((ulonglong)uVar11 >> 0x34)) - sVar3,
|
|
|
|
CONCAT24((sVar20 * ((ushort)((ulonglong)uVar10 >> 0x20) >> 4) +
|
|
|
|
sVar33 * ((ushort)((ulonglong)uVar11 >> 0x20) >> 4)) - sVar2,
|
|
|
|
CONCAT22((sVar17 * ((ushort)((ulonglong)uVar10 >> 0x10) >> 4) +
|
|
|
|
sVar30 * ((ushort)((ulonglong)uVar11 >> 0x10) >> 4)) -
|
|
|
|
sVar1,((short)DAT_008340b0 * ((ushort)uVar10 >> 4) +
|
|
|
|
(short)DAT_008340a8 * ((ushort)uVar11 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar14 = psllw(param_4[1],4);
|
|
|
|
uVar11 = psllw(param_5[1],4);
|
|
|
|
uVar28 = pmulhw(DAT_00834098,uVar14);
|
|
|
|
uVar15 = pmulhw(DAT_00834090,uVar11);
|
|
|
|
uVar10 = *param_3;
|
|
|
|
sVar13 = (short)uVar15 - (short)DAT_008340c0;
|
|
|
|
sVar18 = (short)((ulonglong)uVar15 >> 0x10) - sVar18;
|
|
|
|
sVar21 = (short)((ulonglong)uVar15 >> 0x20) - sVar21;
|
|
|
|
sVar24 = (short)((ulonglong)uVar15 >> 0x30) - sVar24;
|
|
|
|
sVar26 = (short)uVar28 - (short)DAT_008340b8;
|
|
|
|
sVar31 = (short)((ulonglong)uVar28 >> 0x10) - sVar31;
|
|
|
|
sVar34 = (short)((ulonglong)uVar28 >> 0x20) - sVar34;
|
|
|
|
sVar37 = (short)((ulonglong)uVar28 >> 0x30) - sVar37;
|
|
|
|
uVar14 = psraw(CONCAT26((sVar23 * (ushort)((ulonglong)uVar11 >> 0x34) +
|
|
|
|
sVar36 * (ushort)((ulonglong)uVar14 >> 0x34)) - sVar3,
|
|
|
|
CONCAT24((sVar20 * ((ushort)((ulonglong)uVar11 >> 0x20) >> 4) +
|
|
|
|
sVar33 * ((ushort)((ulonglong)uVar14 >> 0x20) >> 4)) - sVar2,
|
|
|
|
CONCAT22((sVar17 * ((ushort)((ulonglong)uVar11 >> 0x10) >> 4) +
|
|
|
|
sVar30 * ((ushort)((ulonglong)uVar14 >> 0x10) >> 4)) -
|
|
|
|
sVar1,((short)DAT_008340b0 * ((ushort)uVar11 >> 4) +
|
|
|
|
(short)DAT_008340a8 * ((ushort)uVar14 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar42 = (undefined2)((ulonglong)uVar27 >> 0x10);
|
|
|
|
uVar38 = (undefined2)uVar27;
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar16,sVar16),CONCAT22(sVar12,sVar12)),uVar10);
|
|
|
|
uVar15 = paddsw(CONCAT44(CONCAT22(sVar29,sVar29),CONCAT22(sVar25,sVar25)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar42,uVar42),CONCAT22(uVar38,uVar38)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar15;
|
|
|
|
sVar3 = (short)((ulonglong)uVar15 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar15 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar15 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar15 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar15 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
*param_6 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)))
|
|
|
|
| CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[1] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar15 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[1];
|
|
|
|
uVar43 = (undefined2)((ulonglong)uVar27 >> 0x30);
|
|
|
|
uVar39 = (undefined2)((ulonglong)uVar27 >> 0x20);
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar19,sVar19)),uVar10);
|
|
|
|
uVar27 = paddsw(CONCAT44(CONCAT22(sVar35,sVar35),CONCAT22(sVar32,sVar32)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar43,uVar43),CONCAT22(uVar39,uVar39)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar27;
|
|
|
|
sVar3 = (short)((ulonglong)uVar27 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar27 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar27 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar27 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar27 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[2] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[3] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar27 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar27 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[0x10];
|
|
|
|
uVar44 = (undefined2)((ulonglong)uVar14 >> 0x10);
|
|
|
|
uVar40 = (undefined2)uVar14;
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar13,sVar13)),uVar10);
|
|
|
|
uVar27 = paddsw(CONCAT44(CONCAT22(sVar31,sVar31),CONCAT22(sVar26,sVar26)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar44,uVar44),CONCAT22(uVar40,uVar40)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar27;
|
|
|
|
sVar3 = (short)((ulonglong)uVar27 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar27 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar27 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar27 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar27 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[4] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[5] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar27 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar27 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[0x11];
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar14 >> 0x30);
|
|
|
|
uVar41 = (undefined2)((ulonglong)uVar14 >> 0x20);
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar21,sVar21)),uVar10);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar37,sVar37),CONCAT22(sVar34,sVar34)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar45,uVar45),CONCAT22(uVar41,uVar41)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar14;
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[6] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[7] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
puVar9 = param_3 + 2;
|
|
|
|
uVar10 = *puVar9;
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar16,sVar16),CONCAT22(sVar12,sVar12)),uVar10);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar29,sVar29),CONCAT22(sVar25,sVar25)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar42,uVar42),CONCAT22(uVar38,uVar38)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar14;
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
*param_6 = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)))
|
|
|
|
| CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[1] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[3];
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar19,sVar19)),uVar10);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar35,sVar35),CONCAT22(sVar32,sVar32)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar43,uVar43),CONCAT22(uVar39,uVar39)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar14;
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[2] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[3] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[0x12];
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar18,sVar18),CONCAT22(sVar13,sVar13)),uVar10);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar31,sVar31),CONCAT22(sVar26,sVar26)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar44,uVar44),CONCAT22(uVar40,uVar40)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar14;
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[4] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[5] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
uVar10 = param_3[0x13];
|
|
|
|
uVar11 = paddsw(CONCAT44(CONCAT22(sVar24,sVar24),CONCAT22(sVar21,sVar21)),uVar10);
|
|
|
|
uVar14 = paddsw(CONCAT44(CONCAT22(sVar37,sVar37),CONCAT22(sVar34,sVar34)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar45,uVar45),CONCAT22(uVar41,uVar41)));
|
|
|
|
sVar1 = (short)uVar11;
|
|
|
|
sVar17 = (short)((ulonglong)uVar11 >> 0x10);
|
|
|
|
sVar23 = (short)((ulonglong)uVar11 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar11 >> 0x30);
|
|
|
|
sVar2 = (short)uVar14;
|
|
|
|
sVar3 = (short)((ulonglong)uVar14 >> 0x10);
|
|
|
|
cVar6 = (0 < sVar3) * (sVar3 < 0x100) * (char)((ulonglong)uVar14 >> 0x10) - (0xff < sVar3);
|
|
|
|
sVar30 = (short)((ulonglong)uVar14 >> 0x20);
|
|
|
|
sVar4 = (short)((ulonglong)uVar14 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar20 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar5 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar47 = (ulonglong)
|
|
|
|
CONCAT12(cVar6,CONCAT11(cVar6,(0 < sVar2) * (sVar2 < 0x100) * (char)uVar14 -
|
|
|
|
(0xff < sVar2))) & 0xffffffff00ff00ff;
|
|
|
|
uVar7 = (uint)(((uint7)(byte)((0 < sVar33) * (sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x20) - (0xff < sVar33)) << 0x20) >>
|
|
|
|
0x18);
|
|
|
|
uVar46 = psllw((ulonglong)
|
|
|
|
CONCAT24((short)CONCAT41(uVar7,(0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) -
|
|
|
|
(0xff < sVar20)),
|
|
|
|
(uint)(byte)((0 < sVar3) * (sVar3 < 0x100) * (char)uVar10 -
|
|
|
|
(0xff < sVar3))),8);
|
|
|
|
param_6[6] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar17) * (sVar17 < 0x100) * (char)((ulonglong)uVar11 >> 0x10) -
|
|
|
|
(0xff < sVar17),
|
|
|
|
(uint)(byte)((0 < sVar1) * (sVar1 < 0x100) * (char)uVar11 - (0xff < sVar1)
|
|
|
|
)) |
|
|
|
|
CONCAT44((uint)(ushort)(uVar47 >> 0x10) << 0x10,(int)uVar47 << 0x10) | uVar46 |
|
|
|
|
DAT_00834140;
|
|
|
|
uVar47 = psllw((ulonglong)
|
|
|
|
CONCAT14((0 < sVar5) * (sVar5 < 0x100) * (char)((ulonglong)uVar10 >> 0x30) -
|
|
|
|
(0xff < sVar5),uVar7 >> 8),8);
|
|
|
|
param_6[7] = (ulonglong)
|
|
|
|
CONCAT14((0 < sVar36) * (sVar36 < 0x100) * (char)((ulonglong)uVar11 >> 0x30) -
|
|
|
|
(0xff < sVar36),
|
|
|
|
(uint)(byte)((0 < sVar23) * (sVar23 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar11 >> 0x20) - (0xff < sVar23))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(byte)((0 < sVar4) * (sVar4 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x30) - (0xff < sVar4)) << 0x10,
|
|
|
|
(ushort)(byte)((0 < sVar30) * (sVar30 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar14 >> 0x20) - (0xff < sVar30))) <<
|
|
|
|
0x10 | uVar47 | DAT_00834140;
|
|
|
|
iVar8 = iVar8 + -1;
|
|
|
|
if (iVar8 == 0) break;
|
|
|
|
if (iVar8 == 4) {
|
|
|
|
puVar9 = param_3 + 0x12;
|
|
|
|
}
|
|
|
|
param_3 = puVar9 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6 = (ulonglong *)((int)param_6 + param_7);
|
|
|
|
}
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065a7b0 at 0x0065A7B0 (size: 1666) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_0065a7b0(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,undefined4 param_6,ulonglong *param_7,int param_8)
|
|
|
|
|
|
|
|
{
|
|
|
|
short sVar1;
|
|
|
|
short sVar2;
|
|
|
|
short sVar3;
|
|
|
|
uint uVar4;
|
|
|
|
ushort uVar5;
|
|
|
|
ushort uVar6;
|
|
|
|
ushort uVar7;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar8;
|
|
|
|
undefined8 *puVar9;
|
|
|
|
undefined8 uVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar13;
|
|
|
|
short sVar14;
|
|
|
|
undefined8 uVar12;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
short sVar17;
|
|
|
|
short sVar20;
|
|
|
|
short sVar22;
|
|
|
|
short sVar23;
|
|
|
|
short sVar24;
|
|
|
|
undefined8 uVar18;
|
|
|
|
short sVar21;
|
|
|
|
short sVar25;
|
|
|
|
short sVar26;
|
|
|
|
undefined8 uVar19;
|
|
|
|
short sVar27;
|
|
|
|
short sVar28;
|
|
|
|
short sVar29;
|
|
|
|
short sVar32;
|
|
|
|
short sVar34;
|
|
|
|
ushort uVar35;
|
|
|
|
short sVar36;
|
|
|
|
short sVar38;
|
|
|
|
undefined8 uVar30;
|
|
|
|
short sVar33;
|
|
|
|
short sVar37;
|
|
|
|
short sVar39;
|
|
|
|
short sVar40;
|
|
|
|
undefined8 uVar31;
|
|
|
|
short sVar41;
|
|
|
|
undefined2 uVar42;
|
|
|
|
undefined2 uVar43;
|
|
|
|
undefined2 uVar44;
|
|
|
|
undefined2 uVar45;
|
|
|
|
undefined2 uVar46;
|
|
|
|
undefined2 uVar47;
|
|
|
|
undefined2 uVar48;
|
|
|
|
undefined2 uVar49;
|
|
|
|
short sVar51;
|
|
|
|
ulonglong uVar50;
|
|
|
|
ulonglong uVar52;
|
|
|
|
|
|
|
|
iVar8 = 8;
|
|
|
|
while( true ) {
|
|
|
|
uVar12 = psllw(*param_4,4);
|
|
|
|
uVar10 = psllw(*param_5,4);
|
|
|
|
uVar30 = pmulhw(DAT_00834098,uVar12);
|
|
|
|
uVar18 = pmulhw(DAT_00834090,uVar10);
|
|
|
|
sVar16 = (short)uVar18 - (short)DAT_008340c0;
|
|
|
|
sVar22 = (short)((ulonglong)DAT_008340c0 >> 0x10);
|
|
|
|
sVar20 = (short)((ulonglong)uVar18 >> 0x10) - sVar22;
|
|
|
|
sVar24 = (short)((ulonglong)DAT_008340c0 >> 0x20);
|
|
|
|
sVar23 = (short)((ulonglong)uVar18 >> 0x20) - sVar24;
|
|
|
|
sVar27 = (short)((ulonglong)DAT_008340c0 >> 0x30);
|
|
|
|
sVar25 = (short)((ulonglong)uVar18 >> 0x30) - sVar27;
|
|
|
|
sVar28 = (short)uVar30 - (short)DAT_008340b8;
|
|
|
|
sVar34 = (short)((ulonglong)DAT_008340b8 >> 0x10);
|
|
|
|
sVar32 = (short)((ulonglong)uVar30 >> 0x10) - sVar34;
|
|
|
|
sVar38 = (short)((ulonglong)DAT_008340b8 >> 0x20);
|
|
|
|
sVar36 = (short)((ulonglong)uVar30 >> 0x20) - sVar38;
|
|
|
|
sVar41 = (short)((ulonglong)DAT_008340b8 >> 0x30);
|
|
|
|
sVar39 = (short)((ulonglong)uVar30 >> 0x30) - sVar41;
|
|
|
|
sVar33 = (short)((ulonglong)DAT_008340a8 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)DAT_008340a8 >> 0x20);
|
|
|
|
sVar40 = (short)((ulonglong)DAT_008340a8 >> 0x30);
|
|
|
|
sVar21 = (short)((ulonglong)DAT_008340b0 >> 0x10);
|
|
|
|
sVar51 = (short)((ulonglong)DAT_008340b0 >> 0x20);
|
|
|
|
sVar26 = (short)((ulonglong)DAT_008340b0 >> 0x30);
|
|
|
|
sVar1 = (short)((ulonglong)DAT_00834138 >> 0x10);
|
|
|
|
sVar2 = (short)((ulonglong)DAT_00834138 >> 0x20);
|
|
|
|
sVar3 = (short)((ulonglong)DAT_00834138 >> 0x30);
|
|
|
|
uVar30 = psraw(CONCAT26((sVar26 * (ushort)((ulonglong)uVar10 >> 0x34) +
|
|
|
|
sVar40 * (ushort)((ulonglong)uVar12 >> 0x34)) - sVar3,
|
|
|
|
CONCAT24((sVar51 * ((ushort)((ulonglong)uVar10 >> 0x20) >> 4) +
|
|
|
|
sVar37 * ((ushort)((ulonglong)uVar12 >> 0x20) >> 4)) - sVar2,
|
|
|
|
CONCAT22((sVar21 * ((ushort)((ulonglong)uVar10 >> 0x10) >> 4) +
|
|
|
|
sVar33 * ((ushort)((ulonglong)uVar12 >> 0x10) >> 4)) -
|
|
|
|
sVar1,((short)DAT_008340b0 * ((ushort)uVar10 >> 4) +
|
|
|
|
(short)DAT_008340a8 * ((ushort)uVar12 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar18 = psllw(param_4[1],4);
|
|
|
|
uVar12 = psllw(param_5[1],4);
|
|
|
|
uVar31 = pmulhw(DAT_00834098,uVar18);
|
|
|
|
uVar19 = pmulhw(DAT_00834090,uVar12);
|
|
|
|
uVar10 = *param_3;
|
|
|
|
sVar17 = (short)uVar19 - (short)DAT_008340c0;
|
|
|
|
sVar22 = (short)((ulonglong)uVar19 >> 0x10) - sVar22;
|
|
|
|
sVar24 = (short)((ulonglong)uVar19 >> 0x20) - sVar24;
|
|
|
|
sVar27 = (short)((ulonglong)uVar19 >> 0x30) - sVar27;
|
|
|
|
sVar29 = (short)uVar31 - (short)DAT_008340b8;
|
|
|
|
sVar34 = (short)((ulonglong)uVar31 >> 0x10) - sVar34;
|
|
|
|
sVar38 = (short)((ulonglong)uVar31 >> 0x20) - sVar38;
|
|
|
|
sVar41 = (short)((ulonglong)uVar31 >> 0x30) - sVar41;
|
|
|
|
uVar18 = psraw(CONCAT26((sVar26 * (ushort)((ulonglong)uVar12 >> 0x34) +
|
|
|
|
sVar40 * (ushort)((ulonglong)uVar18 >> 0x34)) - sVar3,
|
|
|
|
CONCAT24((sVar51 * ((ushort)((ulonglong)uVar12 >> 0x20) >> 4) +
|
|
|
|
sVar37 * ((ushort)((ulonglong)uVar18 >> 0x20) >> 4)) - sVar2,
|
|
|
|
CONCAT22((sVar21 * ((ushort)((ulonglong)uVar12 >> 0x10) >> 4) +
|
|
|
|
sVar33 * ((ushort)((ulonglong)uVar18 >> 0x10) >> 4)) -
|
|
|
|
sVar1,((short)DAT_008340b0 * ((ushort)uVar12 >> 4) +
|
|
|
|
(short)DAT_008340a8 * ((ushort)uVar18 >> 4)) -
|
|
|
|
(short)DAT_00834138))),8);
|
|
|
|
uVar46 = (undefined2)((ulonglong)uVar30 >> 0x10);
|
|
|
|
uVar42 = (undefined2)uVar30;
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar16,sVar16)),uVar10);
|
|
|
|
uVar19 = paddsw(CONCAT44(CONCAT22(sVar32,sVar32),CONCAT22(sVar28,sVar28)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar46,uVar46),CONCAT22(uVar42,uVar42)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar19;
|
|
|
|
sVar51 = (short)((ulonglong)uVar19 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar19 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar19 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x60];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
*param_7 = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) - (0xff < sVar21))
|
|
|
|
,(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar19 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar52 << 0x18)
|
|
|
|
;
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[1] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar19 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
uVar10 = param_3[1];
|
|
|
|
uVar47 = (undefined2)((ulonglong)uVar30 >> 0x30);
|
|
|
|
uVar43 = (undefined2)((ulonglong)uVar30 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar10);
|
|
|
|
uVar30 = paddsw(CONCAT44(CONCAT22(sVar39,sVar39),CONCAT22(sVar36,sVar36)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar47,uVar47),CONCAT22(uVar43,uVar43)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar30;
|
|
|
|
sVar51 = (short)((ulonglong)uVar30 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar30 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar30 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x61];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[2] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar30 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar4 = (uint)(ushort)(uVar52 >> 0x20);
|
|
|
|
param_7[3] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 |
|
|
|
|
CONCAT44((int)(CONCAT24((short)(uVar52 >> 0x30),uVar4) >> 0x10) << 8,uVar4 << 0x18)
|
|
|
|
;
|
|
|
|
uVar10 = param_3[0x10];
|
|
|
|
uVar48 = (undefined2)((ulonglong)uVar18 >> 0x10);
|
|
|
|
uVar44 = (undefined2)uVar18;
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar17,sVar17)),uVar10);
|
|
|
|
uVar30 = paddsw(CONCAT44(CONCAT22(sVar34,sVar34),CONCAT22(sVar29,sVar29)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar48,uVar48),CONCAT22(uVar44,uVar44)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar30;
|
|
|
|
sVar51 = (short)((ulonglong)uVar30 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar30 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar30 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x70];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[4] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar30 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[5] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar30 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
uVar10 = param_3[0x11];
|
|
|
|
uVar49 = (undefined2)((ulonglong)uVar18 >> 0x30);
|
|
|
|
uVar45 = (undefined2)((ulonglong)uVar18 >> 0x20);
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar27,sVar27),CONCAT22(sVar24,sVar24)),uVar10);
|
|
|
|
uVar18 = paddsw(CONCAT44(CONCAT22(sVar41,sVar41),CONCAT22(sVar38,sVar38)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar49,uVar49),CONCAT22(uVar45,uVar45)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar18;
|
|
|
|
sVar51 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x71];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[6] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[7] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
param_7 = (ulonglong *)((int)param_7 + param_8);
|
|
|
|
puVar9 = param_3 + 2;
|
|
|
|
uVar10 = *puVar9;
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar20,sVar20),CONCAT22(sVar16,sVar16)),uVar10);
|
|
|
|
uVar18 = paddsw(CONCAT44(CONCAT22(sVar32,sVar32),CONCAT22(sVar28,sVar28)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar46,uVar46),CONCAT22(uVar42,uVar42)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar18;
|
|
|
|
sVar51 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x62];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
*param_7 = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) - (0xff < sVar21))
|
|
|
|
,(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,(uint)(ushort)uVar52 << 0x18)
|
|
|
|
;
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[1] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
uVar10 = param_3[3];
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar25,sVar25),CONCAT22(sVar23,sVar23)),uVar10);
|
|
|
|
uVar18 = paddsw(CONCAT44(CONCAT22(sVar39,sVar39),CONCAT22(sVar36,sVar36)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar47,uVar47),CONCAT22(uVar43,uVar43)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar18;
|
|
|
|
sVar51 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[99];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[2] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[3] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
uVar10 = param_3[0x12];
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar22,sVar22),CONCAT22(sVar17,sVar17)),uVar10);
|
|
|
|
uVar18 = paddsw(CONCAT44(CONCAT22(sVar34,sVar34),CONCAT22(sVar29,sVar29)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar48,uVar48),CONCAT22(uVar44,uVar44)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar18;
|
|
|
|
sVar51 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x72];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[4] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[5] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
uVar10 = param_3[0x13];
|
|
|
|
uVar12 = paddsw(CONCAT44(CONCAT22(sVar27,sVar27),CONCAT22(sVar24,sVar24)),uVar10);
|
|
|
|
uVar18 = paddsw(CONCAT44(CONCAT22(sVar41,sVar41),CONCAT22(sVar38,sVar38)),uVar10);
|
|
|
|
uVar10 = psubsw(uVar10,CONCAT44(CONCAT22(uVar49,uVar49),CONCAT22(uVar45,uVar45)));
|
|
|
|
sVar1 = (short)uVar12;
|
|
|
|
sVar21 = (short)((ulonglong)uVar12 >> 0x10);
|
|
|
|
sVar33 = (short)((ulonglong)uVar12 >> 0x20);
|
|
|
|
sVar11 = (short)((ulonglong)uVar12 >> 0x30);
|
|
|
|
sVar2 = (short)uVar18;
|
|
|
|
sVar51 = (short)((ulonglong)uVar18 >> 0x10);
|
|
|
|
sVar37 = (short)((ulonglong)uVar18 >> 0x20);
|
|
|
|
sVar13 = (short)((ulonglong)uVar18 >> 0x30);
|
|
|
|
sVar3 = (short)uVar10;
|
|
|
|
sVar26 = (short)((ulonglong)uVar10 >> 0x10);
|
|
|
|
sVar40 = (short)((ulonglong)uVar10 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar10 >> 0x30);
|
|
|
|
uVar7 = (ushort)(((uint7)(byte)((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x30) - (0xff < sVar11)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar5 = (ushort)(((uint7)(byte)((0 < sVar13) * (sVar13 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x30) - (0xff < sVar13)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
uVar6 = (ushort)(((uint7)(byte)((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x30) - (0xff < sVar14)) << 0x30) >>
|
|
|
|
0x28);
|
|
|
|
sVar11 = (short)DAT_00834148;
|
|
|
|
sVar13 = (short)((ulonglong)DAT_00834148 >> 0x10);
|
|
|
|
sVar14 = (short)((ulonglong)DAT_00834148 >> 0x20);
|
|
|
|
sVar15 = (short)((ulonglong)DAT_00834148 >> 0x30);
|
|
|
|
uVar35 = sVar13 - (ushort)(byte)((0 < sVar51) * (sVar51 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x10) - (0xff < sVar51));
|
|
|
|
sVar51 = sVar13 - (ushort)(byte)((0 < sVar26) * (sVar26 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10 >> 0x10) - (0xff < sVar26));
|
|
|
|
uVar52 = param_3[0x73];
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar51,CONCAT22(sVar51,sVar11 - (ushort)(byte)((0 < sVar3) *
|
|
|
|
(sVar3 < 0x100) *
|
|
|
|
(char)uVar10 -
|
|
|
|
(0xff < sVar3)))) &
|
|
|
|
0xffffffff0000ffff,8);
|
|
|
|
param_7[6] = (ulonglong)
|
|
|
|
CONCAT24(sVar13 - (ushort)(byte)((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >> 0x10) -
|
|
|
|
(0xff < sVar21)),
|
|
|
|
(uint)(ushort)(sVar11 - (ushort)(byte)((0 < sVar1) * (sVar1 < 0x100) *
|
|
|
|
(char)uVar12 - (0xff < sVar1)))) |
|
|
|
|
CONCAT44((uint)uVar35 << 0x10,
|
|
|
|
CONCAT22(uVar35,sVar11 - (ushort)(byte)((0 < sVar2) * (sVar2 < 0x100) *
|
|
|
|
(char)uVar18 - (0xff < sVar2))) <<
|
|
|
|
0x10) | uVar50 |
|
|
|
|
CONCAT44((int)(((uVar52 >> 0x10) << 0x30) >> 0x20) << 8,
|
|
|
|
(uint)(ushort)uVar52 << 0x18);
|
|
|
|
uVar50 = psllw((ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar6 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar6,(0 < sVar40) *
|
|
|
|
(sVar40 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar10
|
|
|
|
>> 0x20) -
|
|
|
|
(0xff < sVar40)))),8);
|
|
|
|
uVar52 = psllw((ulonglong)CONCAT24((short)(uVar52 >> 0x30),(uint)(ushort)(uVar52 >> 0x20)) <<
|
|
|
|
0x10,8);
|
|
|
|
param_7[7] = (ulonglong)
|
|
|
|
CONCAT24(sVar15 - (uVar7 >> 8),
|
|
|
|
(uint)(ushort)(sVar14 - (short)CONCAT21(uVar7,(0 < sVar33) *
|
|
|
|
(sVar33 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar12 >>
|
|
|
|
0x20) -
|
|
|
|
(0xff < sVar33)))) |
|
|
|
|
(ulonglong)
|
|
|
|
CONCAT42((uint)(ushort)(sVar15 - (uVar5 >> 8)) << 0x10,
|
|
|
|
sVar14 - (short)CONCAT21(uVar5,(0 < sVar37) * (sVar37 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar18 >> 0x20) -
|
|
|
|
(0xff < sVar37))) << 0x10 | uVar50 | uVar52
|
|
|
|
;
|
|
|
|
iVar8 = iVar8 + -1;
|
|
|
|
if (iVar8 == 0) break;
|
|
|
|
if (iVar8 == 4) {
|
|
|
|
puVar9 = param_3 + 0x12;
|
|
|
|
}
|
|
|
|
param_3 = puVar9 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_7 = (ulonglong *)((int)param_7 + param_8);
|
|
|
|
}
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ae40 at 0x0065AE40 (size: 171) ---
|
|
|
|
|
|
undefined8 __fastcall
|
|
|
|
FUN_0065ae40(undefined4 param_1,undefined4 param_2,undefined8 *param_3,undefined8 *param_4,
|
|
|
|
undefined8 *param_5,undefined8 *param_6,int param_7)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
undefined8 uVar2;
|
|
|
|
undefined8 uVar3;
|
|
|
|
undefined8 uVar4;
|
|
|
|
undefined4 in_EAX;
|
|
|
|
int iVar5;
|
|
|
|
short sVar6;
|
|
|
|
short sVar7;
|
|
|
|
short sVar8;
|
|
|
|
short sVar9;
|
|
|
|
short sVar10;
|
|
|
|
short sVar11;
|
|
|
|
short sVar12;
|
|
|
|
short sVar13;
|
|
|
|
short sVar14;
|
|
|
|
short sVar15;
|
|
|
|
short sVar16;
|
|
|
|
short sVar17;
|
|
|
|
short sVar18;
|
|
|
|
short sVar19;
|
|
|
|
short sVar20;
|
|
|
|
short sVar21;
|
|
|
|
|
|
|
|
iVar5 = 8;
|
|
|
|
do {
|
|
|
|
uVar1 = *param_3;
|
|
|
|
uVar2 = param_3[1];
|
|
|
|
uVar3 = *param_4;
|
|
|
|
uVar4 = *param_5;
|
|
|
|
sVar13 = (short)((ulonglong)uVar4 >> 0x10);
|
|
|
|
sVar11 = (short)((ulonglong)uVar3 >> 0x10);
|
|
|
|
sVar10 = (short)uVar3;
|
|
|
|
sVar12 = (short)uVar4;
|
|
|
|
sVar16 = (short)((ulonglong)uVar3 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar4 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar3 >> 0x30);
|
|
|
|
sVar15 = (short)((ulonglong)uVar4 >> 0x30);
|
|
|
|
sVar7 = (short)((ulonglong)uVar1 >> 0x10);
|
|
|
|
sVar6 = (short)uVar1;
|
|
|
|
sVar20 = (short)((ulonglong)uVar1 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar1 >> 0x30);
|
|
|
|
sVar9 = (short)((ulonglong)uVar2 >> 0x10);
|
|
|
|
sVar8 = (short)uVar2;
|
|
|
|
sVar18 = (short)((ulonglong)uVar2 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar2 >> 0x30);
|
|
|
|
*param_6 = CONCAT17((0 < sVar13) * (sVar13 < 0x100) * (char)((ulonglong)uVar4 >> 0x10) -
|
|
|
|
(0xff < sVar13),
|
|
|
|
CONCAT16((0 < sVar21) * (sVar21 < 0x100) * (char)((ulonglong)uVar1 >> 0x30)
|
|
|
|
- (0xff < sVar21),
|
|
|
|
CONCAT15((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x10) - (0xff < sVar11),
|
|
|
|
CONCAT14((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x20) -
|
|
|
|
(0xff < sVar20),
|
|
|
|
CONCAT13((0 < sVar12) * (sVar12 < 0x100) *
|
|
|
|
(char)uVar4 - (0xff < sVar12),
|
|
|
|
CONCAT12((0 < sVar7) * (sVar7 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x10
|
|
|
|
) - (0xff < sVar7),
|
|
|
|
CONCAT11((0 < sVar10) *
|
|
|
|
(sVar10 < 0x100) *
|
|
|
|
(char)uVar3 -
|
|
|
|
(0xff < sVar10),
|
|
|
|
(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)uVar1 -
|
|
|
|
(0xff < sVar6))))))));
|
|
|
|
param_6[1] = CONCAT17((0 < sVar15) * (sVar15 < 0x100) * (char)((ulonglong)uVar4 >> 0x30) -
|
|
|
|
(0xff < sVar15),
|
|
|
|
CONCAT16((0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar2 >> 0x30) - (0xff < sVar19),
|
|
|
|
CONCAT15((0 < sVar17) * (sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x30) - (0xff < sVar17),
|
|
|
|
CONCAT14((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar2 >> 0x20) -
|
|
|
|
(0xff < sVar18),
|
|
|
|
CONCAT13((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar4 >> 0x20) -
|
|
|
|
(0xff < sVar14),
|
|
|
|
CONCAT12((0 < sVar9) * (sVar9 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar2 >>
|
|
|
|
0x10) -
|
|
|
|
(0xff < sVar9),
|
|
|
|
CONCAT11((0 < sVar16) *
|
|
|
|
(sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar3 >> 0x20
|
|
|
|
) - (0xff <
|
|
|
|
sVar16),(0 < sVar8) * (sVar8 < 0x100) *
|
|
|
|
(char)uVar2 - (0xff < sVar8))))))));
|
|
|
|
uVar1 = param_3[0x10];
|
|
|
|
uVar2 = param_3[0x11];
|
|
|
|
uVar3 = param_4[1];
|
|
|
|
uVar4 = param_5[1];
|
|
|
|
sVar13 = (short)((ulonglong)uVar4 >> 0x10);
|
|
|
|
sVar11 = (short)((ulonglong)uVar3 >> 0x10);
|
|
|
|
sVar10 = (short)uVar3;
|
|
|
|
sVar12 = (short)uVar4;
|
|
|
|
sVar16 = (short)((ulonglong)uVar3 >> 0x20);
|
|
|
|
sVar14 = (short)((ulonglong)uVar4 >> 0x20);
|
|
|
|
sVar17 = (short)((ulonglong)uVar3 >> 0x30);
|
|
|
|
sVar15 = (short)((ulonglong)uVar4 >> 0x30);
|
|
|
|
sVar7 = (short)((ulonglong)uVar1 >> 0x10);
|
|
|
|
sVar6 = (short)uVar1;
|
|
|
|
sVar20 = (short)((ulonglong)uVar1 >> 0x20);
|
|
|
|
sVar21 = (short)((ulonglong)uVar1 >> 0x30);
|
|
|
|
sVar9 = (short)((ulonglong)uVar2 >> 0x10);
|
|
|
|
sVar8 = (short)uVar2;
|
|
|
|
sVar18 = (short)((ulonglong)uVar2 >> 0x20);
|
|
|
|
sVar19 = (short)((ulonglong)uVar2 >> 0x30);
|
|
|
|
param_6[2] = CONCAT17((0 < sVar13) * (sVar13 < 0x100) * (char)((ulonglong)uVar4 >> 0x10) -
|
|
|
|
(0xff < sVar13),
|
|
|
|
CONCAT16((0 < sVar21) * (sVar21 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x30) - (0xff < sVar21),
|
|
|
|
CONCAT15((0 < sVar11) * (sVar11 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x10) - (0xff < sVar11),
|
|
|
|
CONCAT14((0 < sVar20) * (sVar20 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar1 >> 0x20) -
|
|
|
|
(0xff < sVar20),
|
|
|
|
CONCAT13((0 < sVar12) * (sVar12 < 0x100) *
|
|
|
|
(char)uVar4 - (0xff < sVar12),
|
|
|
|
CONCAT12((0 < sVar7) * (sVar7 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar1 >>
|
|
|
|
0x10) -
|
|
|
|
(0xff < sVar7),
|
|
|
|
CONCAT11((0 < sVar10) *
|
|
|
|
(sVar10 < 0x100) *
|
|
|
|
(char)uVar3 -
|
|
|
|
(0xff < sVar10),
|
|
|
|
(0 < sVar6) *
|
|
|
|
(sVar6 < 0x100) *
|
|
|
|
(char)uVar1 -
|
|
|
|
(0xff < sVar6)))))))
|
|
|
|
);
|
|
|
|
param_6[3] = CONCAT17((0 < sVar15) * (sVar15 < 0x100) * (char)((ulonglong)uVar4 >> 0x30) -
|
|
|
|
(0xff < sVar15),
|
|
|
|
CONCAT16((0 < sVar19) * (sVar19 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar2 >> 0x30) - (0xff < sVar19),
|
|
|
|
CONCAT15((0 < sVar17) * (sVar17 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar3 >> 0x30) - (0xff < sVar17),
|
|
|
|
CONCAT14((0 < sVar18) * (sVar18 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar2 >> 0x20) -
|
|
|
|
(0xff < sVar18),
|
|
|
|
CONCAT13((0 < sVar14) * (sVar14 < 0x100) *
|
|
|
|
(char)((ulonglong)uVar4 >> 0x20) -
|
|
|
|
(0xff < sVar14),
|
|
|
|
CONCAT12((0 < sVar9) * (sVar9 < 0x100)
|
|
|
|
* (char)((ulonglong)uVar2 >>
|
|
|
|
0x10) -
|
|
|
|
(0xff < sVar9),
|
|
|
|
CONCAT11((0 < sVar16) *
|
|
|
|
(sVar16 < 0x100) *
|
|
|
|
(char)((ulonglong)
|
|
|
|
uVar3 >> 0x20
|
|
|
|
) - (0xff <
|
|
|
|
sVar16),(0 < sVar8) * (sVar8 < 0x100) *
|
|
|
|
(char)uVar2 - (0xff < sVar8))))))));
|
|
|
|
param_3 = param_3 + 2;
|
|
|
|
param_4 = param_4 + 2;
|
|
|
|
param_5 = param_5 + 2;
|
|
|
|
param_6 = (undefined8 *)((int)param_6 + param_7);
|
|
|
|
iVar5 = iVar5 + -1;
|
|
|
|
} while (iVar5 != 0);
|
|
|
|
return CONCAT44(param_2,in_EAX);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065aef0 at 0x0065AEF0 (size: 28) ---
|
|
|
|
|
|
void FUN_0065aef0(undefined4 param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040f420(1,DAT_008f8604,param_1,&stack0x00000008);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065af10 at 0x0065AF10 (size: 28) ---
|
|
|
|
|
|
void FUN_0065af10(undefined4 param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040f420(1,DAT_008f8608,param_1,&stack0x00000008);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065af30 at 0x0065AF30 (size: 60) ---
|
|
|
|
|
|
void FUN_0065af30(undefined4 param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040fa60(DAT_008f8600,param_1);
|
|
|
|
FUN_0040fa60(DAT_008f8604,param_1);
|
|
|
|
FUN_0040fa60(DAT_008f8608,param_1);
|
|
|
|
FUN_0040fa60(DAT_008f860c,param_1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065af70 at 0x0065AF70 (size: 25) ---
|
|
|
|
|
|
void FUN_0065af70(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040f0e0(1,DAT_008f8608,*param_1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065af90 at 0x0065AF90 (size: 19) ---
|
|
|
|
|
|
undefined4 FUN_0065af90(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
|
|
|
|
if (param_1 != (int *)0x0) {
|
|
|
|
/* WARNING: Could not recover jumptable at 0x0065af9a. Too many branches */
|
|
|
|
/* WARNING: Treating indirect jump as call */
|
|
|
|
uVar1 = (**(code **)(*param_1 + 4))();
|
|
|
|
return uVar1;
|
|
|
|
}
|
|
|
|
return 0xff;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065afb0 at 0x0065AFB0 (size: 56) ---
|
|
|
|
|
|
uint __thiscall FUN_0065afb0(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
return CONCAT31((int3)((uint)param_1[1] >> 8),param_1[1] == param_2[1]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065aff0 at 0x0065AFF0 (size: 72) ---
|
|
|
|
|
|
uint __thiscall FUN_0065aff0(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
if ((param_1[2] == param_2[2]) && (param_1[3] == param_2[3])) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b040 at 0x0065B040 (size: 77) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
uint __thiscall FUN_0065b040(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
if (ABS(*(double *)(param_1 + 2) - *(double *)(param_2 + 2)) < _DAT_007fe920 !=
|
|
|
|
(ABS(*(double *)(param_1 + 2) - *(double *)(param_2 + 2)) == _DAT_007fe920)) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b090 at 0x0065B090 (size: 76) ---
|
|
|
|
|
|
uint __thiscall FUN_0065b090(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
if ((param_1[2] == param_2[2]) && (param_1[3] == param_2[3])) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b0e0 at 0x0065B0E0 (size: 56) ---
|
|
|
|
|
|
bool __thiscall FUN_0065b0e0(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
iVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
iVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (iVar1 != iVar2) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
return (char)param_1[1] == (char)param_2[1];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b1d0 at 0x0065B1D0 (size: 31) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065b1d0(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_0079702c;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b340 at 0x0065B340 (size: 77) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
uint __thiscall FUN_0065b340(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
if (ABS((float)param_1[1] - (float)param_2[1]) < _DAT_007fe918 !=
|
|
|
|
(ABS((float)param_1[1] - (float)param_2[1]) == _DAT_007fe918)) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b390 at 0x0065B390 (size: 56) ---
|
|
|
|
|
|
uint __thiscall FUN_0065b390(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
return (uint)((short)param_1[1] == (short)param_2[1]);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b3d0 at 0x0065B3D0 (size: 55) ---
|
|
|
|
|
|
uint __thiscall FUN_0065b3d0(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
uVar1 = FUN_00401920(param_2 + 1);
|
|
|
|
return uVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b410 at 0x0065B410 (size: 88) ---
|
|
|
|
|
|
uint __thiscall FUN_0065b410(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar1 = (**(code **)(*param_2 + 4))();
|
|
|
|
uVar2 = (**(code **)(*param_1 + 4))();
|
|
|
|
if (uVar1 != uVar2) {
|
|
|
|
return uVar2 & 0xffffff00;
|
|
|
|
}
|
|
|
|
if ((((param_1[1] == param_2[1]) && (param_1[2] == param_2[2])) && (param_1[3] == param_2[3])) &&
|
|
|
|
(param_1[4] == param_2[4])) {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b470 at 0x0065B470 (size: 18) ---
|
|
|
|
|
|
void FUN_0065b470(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040fd30();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b490 at 0x0065B490 (size: 105) ---
|
|
|
|
|
|
undefined1 FUN_0065b490(char *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined1 uVar3;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = (char *)0x0;
|
|
|
|
piVar1 = _errno();
|
|
|
|
*piVar1 = 0;
|
|
|
|
strtoul(param_1,&local_4,0);
|
|
|
|
if (*local_4 == '\0') {
|
|
|
|
piVar1 = _errno();
|
|
|
|
if (*piVar1 != 0x22) {
|
|
|
|
uVar3 = 1;
|
|
|
|
goto LAB_0065b4d5;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = 0;
|
|
|
|
LAB_0065b4d5:
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (param_1 + -0x14 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(param_1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b500 at 0x0065B500 (size: 105) ---
|
|
|
|
|
|
undefined1 FUN_0065b500(char *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined1 uVar3;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = (char *)0x0;
|
|
|
|
piVar1 = _errno();
|
|
|
|
*piVar1 = 0;
|
|
|
|
strtol(param_1,&local_4,0);
|
|
|
|
if (*local_4 == '\0') {
|
|
|
|
piVar1 = _errno();
|
|
|
|
if (*piVar1 != 0x22) {
|
|
|
|
uVar3 = 1;
|
|
|
|
goto LAB_0065b545;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = 0;
|
|
|
|
LAB_0065b545:
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (param_1 + -0x14 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(param_1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b570 at 0x0065B570 (size: 104) ---
|
|
|
|
|
|
undefined1 FUN_0065b570(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined1 uVar3;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = (char *)0x0;
|
|
|
|
piVar1 = _errno();
|
|
|
|
*piVar1 = 0;
|
|
|
|
FUN_0065de50(param_1,&local_4,0);
|
|
|
|
if (*local_4 == '\0') {
|
|
|
|
piVar1 = _errno();
|
|
|
|
if (*piVar1 != 0x22) {
|
|
|
|
uVar3 = 1;
|
|
|
|
goto LAB_0065b5b4;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = 0;
|
|
|
|
LAB_0065b5b4:
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && ((undefined4 *)(param_1 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(param_1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b5e0 at 0x0065B5E0 (size: 104) ---
|
|
|
|
|
|
undefined1 FUN_0065b5e0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined1 uVar3;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = (char *)0x0;
|
|
|
|
piVar1 = _errno();
|
|
|
|
*piVar1 = 0;
|
|
|
|
FUN_0065de30(param_1,&local_4,0);
|
|
|
|
if (*local_4 == '\0') {
|
|
|
|
piVar1 = _errno();
|
|
|
|
if (*piVar1 != 0x22) {
|
|
|
|
uVar3 = 1;
|
|
|
|
goto LAB_0065b624;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = 0;
|
|
|
|
LAB_0065b624:
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && ((undefined4 *)(param_1 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(param_1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b650 at 0x0065B650 (size: 105) ---
|
|
|
|
|
|
undefined1 FUN_0065b650(char *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined1 uVar3;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = (char *)0x0;
|
|
|
|
piVar1 = _errno();
|
|
|
|
*piVar1 = 0;
|
|
|
|
strtod(param_1,&local_4);
|
|
|
|
if (*local_4 == '\0') {
|
|
|
|
piVar1 = _errno();
|
|
|
|
if (*piVar1 != 0x22) {
|
|
|
|
uVar3 = 1;
|
|
|
|
goto LAB_0065b695;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = 0;
|
|
|
|
LAB_0065b695:
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (param_1 + -0x14 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(param_1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b6c0 at 0x0065B6C0 (size: 60) ---
|
|
|
|
|
|
void __thiscall FUN_0065b6c0(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined2 *puVar1;
|
|
|
|
|
|
|
|
FUN_0040ad10(2);
|
|
|
|
puVar1 = (undefined2 *)FUN_0040acf0(2);
|
|
|
|
if (puVar1 != (undefined2 *)0x0) {
|
|
|
|
if ((*(byte *)(param_2 + 4) & 1) != 0) {
|
|
|
|
*puVar1 = *(undefined2 *)(param_1 + 4);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*(undefined2 *)(param_1 + 4) = *puVar1;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b720 at 0x0065B720 (size: 61) ---
|
|
|
|
|
|
void FUN_0065b720(undefined4 *param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 *puVar1;
|
|
|
|
|
|
|
|
FUN_0040ad10(8);
|
|
|
|
puVar1 = (undefined4 *)FUN_0040acf0(8);
|
|
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
|
|
if ((*(byte *)(param_2 + 4) & 1) != 0) {
|
|
|
|
*puVar1 = *param_1;
|
|
|
|
puVar1[1] = param_1[1];
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*param_1 = *puVar1;
|
|
|
|
param_1[1] = puVar1[1];
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b7c0 at 0x0065B7C0 (size: 366) ---
|
|
|
|
|
|
undefined4 * FUN_0065b7c0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
|
|
|
|
if (param_1 < 0x100) {
|
|
|
|
switch(param_1) {
|
|
|
|
case 0:
|
|
|
|
iVar1 = FUN_005df0f5(8);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
puVar2 = (undefined4 *)FUN_00429c40();
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 1:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_00798108;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 2:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_00798124;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x10);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_00797e28;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007980d0;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe960;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 6:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x10);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe97c;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 7:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_00797010;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 8:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(8);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007980ec;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 9:
|
|
|
|
iVar1 = FUN_005df0f5(0x10);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
puVar2 = (undefined4 *)FUN_00444800();
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 0xb:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x10);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe928;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 0xc:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x10);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe944;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 0xd:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x10);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe9b4;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
case 0xe:
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x14);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
*puVar2 = &PTR_FUN_007fe998;
|
|
|
|
return puVar2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (undefined4 *)0x0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b970 at 0x0065B970 (size: 87) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065b970(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char *_Str;
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
ulong uVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b490(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
_Str = (char *)*param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
uVar3 = strtoul(_Str,(char **)0x0,0);
|
|
|
|
*(ulong *)(param_1 + 4) = uVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065b9d0 at 0x0065B9D0 (size: 87) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065b9d0(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char *_Str;
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
long lVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b500(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
_Str = (char *)*param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
lVar3 = strtol(_Str,(char **)0x0,0);
|
|
|
|
*(long *)(param_1 + 4) = lVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ba30 at 0x0065BA30 (size: 89) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065ba30(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
undefined8 uVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b570(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
iVar4 = *param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
uVar3 = FUN_0065de50(iVar4,0,0);
|
|
|
|
*(undefined8 *)(param_1 + 8) = uVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ba90 at 0x0065BA90 (size: 89) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065ba90(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
undefined8 uVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b5e0(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
iVar4 = *param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
uVar3 = FUN_0065de30(iVar4,0,0);
|
|
|
|
*(undefined8 *)(param_1 + 8) = uVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065baf0 at 0x0065BAF0 (size: 85) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065baf0(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char *_Str;
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
double dVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b650(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
_Str = (char *)*param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
dVar3 = strtod(_Str,(char **)0x0);
|
|
|
|
*(double *)(param_1 + 8) = dVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bb50 at 0x0065BB50 (size: 85) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065bb50(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char *_Str;
|
|
|
|
char cVar1;
|
|
|
|
int *piVar2;
|
|
|
|
double dVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *param_2;
|
|
|
|
InterlockedIncrement((LONG *)(iVar4 + -0x10));
|
|
|
|
cVar1 = FUN_0065b650(iVar4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
_Str = (char *)*param_2;
|
|
|
|
piVar2 = _errno();
|
|
|
|
*piVar2 = 0;
|
|
|
|
dVar3 = strtod(_Str,(char **)0x0);
|
|
|
|
*(float *)(param_1 + 4) = (float)dVar3;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bc10 at 0x0065BC10 (size: 80) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065bc10(int param_1,undefined4 *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = _stricmp((char *)*param_2,DAT_008f8610);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
iVar1 = _stricmp((char *)*param_2,DAT_008f8618);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
*(undefined1 *)(param_1 + 4) = 0;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*(undefined1 *)(param_1 + 4) = 1;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bc90 at 0x0065BC90 (size: 114) ---
|
|
|
|
|
|
undefined4 FUN_0065bc90(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
undefined1 local_c [12];
|
|
|
|
|
|
|
|
param_1 = (int *)*param_1;
|
|
|
|
InterlockedIncrement((LONG *)((int)param_1 + -0x10));
|
|
|
|
FUN_0040de60(¶m_1);
|
|
|
|
uVar1 = FUN_0040baa0(local_c,¶m_1);
|
|
|
|
FUN_004070d0(uVar1);
|
|
|
|
FUN_00406f90();
|
|
|
|
puVar3 = (undefined4 *)((int)param_1 + -0x14);
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)((int)param_1 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (puVar3 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar3)(1);
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bd70 at 0x0065BD70 (size: 20) ---
|
|
|
|
|
|
undefined4 FUN_0065bd70(undefined4 param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0040fde0(param_1);
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bd90 at 0x0065BD90 (size: 303) ---
|
|
|
|
|
|
void FUN_0065bd90(undefined4 param_1,uint *param_2,uint param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint uVar3;
|
|
|
|
ushort local_8 [2];
|
|
|
|
uint local_4;
|
|
|
|
|
|
|
|
uVar2 = param_3;
|
|
|
|
if ((*(byte *)(param_3 + 4) & 1) == 0) {
|
|
|
|
if ((~*(byte *)(param_3 + 4) & 1) != 0) {
|
|
|
|
FUN_0040b0b0(¶m_3,param_3);
|
|
|
|
uVar3 = param_3;
|
|
|
|
cVar1 = (char)param_3;
|
|
|
|
if ((char)param_3 < '\0') {
|
|
|
|
FUN_0040b0b0(¶m_3,uVar2);
|
|
|
|
if ((uVar3 & 0x40) != 0) {
|
|
|
|
FUN_0065bec0(local_8,uVar2);
|
|
|
|
*param_2 = (CONCAT11(cVar1,(char)param_3) & 0xffff3fff) << 0x10 | (uint)local_8[0];
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*param_2 = CONCAT11(cVar1,(char)param_3) & 0xffff7fff;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*param_2 = param_3 & 0xff;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
local_4 = *param_2;
|
|
|
|
if (local_4 < 0x80) {
|
|
|
|
param_3 = CONCAT31(param_3._1_3_,(char)local_4);
|
|
|
|
FUN_0040b0b0(¶m_3,uVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (local_4 < 0x4000) {
|
|
|
|
param_3 = CONCAT31(param_3._1_3_,*(undefined1 *)((int)param_2 + 1)) | 0x80;
|
|
|
|
local_8[0] = CONCAT11(local_8[0]._1_1_,(char)*param_2);
|
|
|
|
FUN_0040b0b0(¶m_3,uVar2);
|
|
|
|
FUN_0040b0b0(local_8,uVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
param_3 = CONCAT31(param_3._1_3_,(char)(local_4 >> 0x18)) | 0xc0;
|
|
|
|
local_8[0] = CONCAT11(local_8[0]._1_1_,(char)(local_4 >> 0x10));
|
|
|
|
FUN_0040b0b0(¶m_3,uVar2);
|
|
|
|
FUN_0040b0b0(local_8,uVar2);
|
|
|
|
FUN_0065bec0(&local_4,uVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065bec0 at 0x0065BEC0 (size: 53) ---
|
|
|
|
|
|
void FUN_0065bec0(undefined2 *param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined2 *puVar1;
|
|
|
|
|
|
|
|
FUN_0040ad10(2);
|
|
|
|
puVar1 = (undefined2 *)FUN_0040acf0(2);
|
|
|
|
if (puVar1 != (undefined2 *)0x0) {
|
|
|
|
if ((*(byte *)(param_2 + 4) & 1) != 0) {
|
|
|
|
*puVar1 = *param_1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*param_1 = *puVar1;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c360 at 0x0065C360 (size: 132) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
ushort __fastcall FUN_0065c360(float *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
float fVar1;
|
|
|
|
ushort uVar2;
|
|
|
|
|
|
|
|
fVar1 = param_1[3];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea04) << 8 | (ushort)(NAN(fVar1) || NAN(_DAT_007fea04)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea04) << 0xe;
|
|
|
|
if (fVar1 >= _DAT_007fea04) {
|
|
|
|
fVar1 = *param_1;
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea04) << 8 | (ushort)(NAN(fVar1) || NAN(_DAT_007fea04)) << 10
|
|
|
|
| (ushort)(fVar1 == _DAT_007fea04) << 0xe;
|
|
|
|
if (fVar1 >= _DAT_007fea04) {
|
|
|
|
fVar1 = param_1[1];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea04) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea04)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea04) << 0xe;
|
|
|
|
if (fVar1 >= _DAT_007fea04) {
|
|
|
|
fVar1 = param_1[2];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea04) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea04)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea04) << 0xe;
|
|
|
|
if (fVar1 >= _DAT_007fea04) {
|
|
|
|
fVar1 = param_1[3];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea00) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea00)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea00) << 0xe;
|
|
|
|
if (fVar1 < _DAT_007fea00 || (fVar1 == _DAT_007fea00) != 0) {
|
|
|
|
fVar1 = *param_1;
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea00) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea00)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea00) << 0xe;
|
|
|
|
if (fVar1 < _DAT_007fea00 || (fVar1 == _DAT_007fea00) != 0) {
|
|
|
|
fVar1 = param_1[1];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea00) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea00)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea00) << 0xe;
|
|
|
|
if (fVar1 < _DAT_007fea00 || (fVar1 == _DAT_007fea00) != 0) {
|
|
|
|
fVar1 = param_1[2];
|
|
|
|
uVar2 = (ushort)(fVar1 < _DAT_007fea00) << 8 |
|
|
|
|
(ushort)(NAN(fVar1) || NAN(_DAT_007fea00)) << 10 |
|
|
|
|
(ushort)(fVar1 == _DAT_007fea00) << 0xe;
|
|
|
|
if (fVar1 < _DAT_007fea00 || (fVar1 == _DAT_007fea00) != 0) {
|
|
|
|
return CONCAT11((char)(uVar2 >> 8),1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return uVar2;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c3f0 at 0x0065C3F0 (size: 115) ---
|
|
|
|
|
|
void __thiscall FUN_0065c3f0(undefined4 *param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int *piVar2;
|
|
|
|
|
|
|
|
iVar1 = param_2;
|
|
|
|
if ((*(byte *)(param_2 + 4) & 1) != 0) {
|
|
|
|
iVar1 = FUN_0043dbe0(*param_1,param_1[1],param_1[2],param_1[3]);
|
|
|
|
}
|
|
|
|
FUN_0040ad10(4);
|
|
|
|
piVar2 = (int *)FUN_0040acf0(4);
|
|
|
|
if (piVar2 != (int *)0x0) {
|
|
|
|
if ((*(byte *)(param_2 + 4) & 1) == 0) {
|
|
|
|
iVar1 = *piVar2;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
*piVar2 = iVar1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (((~*(byte *)(param_2 + 4) & 1) != 0) && ((*(uint *)(param_2 + 4) >> 2 & 1) == 0)) {
|
|
|
|
FUN_00430cd0(iVar1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c470 at 0x0065C470 (size: 108) ---
|
|
|
|
|
|
bool __thiscall FUN_0065c470(undefined4 *param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
if (param_2 != 0) {
|
|
|
|
iVar1 = FUN_005b3b50(*param_1);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
iVar1 = FUN_005b3b50(param_1[1]);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
iVar1 = FUN_005b3b50(param_1[2]);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
iVar1 = FUN_005b3b50(param_1[3]);
|
|
|
|
return iVar1 != 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c4e0 at 0x0065C4E0 (size: 501) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined4 __thiscall FUN_0065c4e0(float *param_1,int *param_2,char param_3,int param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
float fVar1;
|
|
|
|
bool bVar2;
|
|
|
|
char cVar3;
|
|
|
|
char cVar4;
|
|
|
|
int iVar5;
|
|
|
|
int iVar6;
|
|
|
|
int extraout_ECX;
|
|
|
|
int extraout_ECX_00;
|
|
|
|
int extraout_ECX_01;
|
|
|
|
int extraout_ECX_02;
|
|
|
|
int extraout_ECX_03;
|
|
|
|
int extraout_ECX_04;
|
|
|
|
int extraout_ECX_05;
|
|
|
|
int extraout_ECX_06;
|
|
|
|
int extraout_ECX_07;
|
|
|
|
int extraout_ECX_08;
|
|
|
|
int extraout_ECX_09;
|
|
|
|
int extraout_ECX_10;
|
|
|
|
int extraout_ECX_11;
|
|
|
|
char *pcVar7;
|
|
|
|
|
|
|
|
if (param_2 == (int *)0x0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
cVar4 = (char)param_4;
|
|
|
|
iVar5 = FUN_0065ca40();
|
|
|
|
iVar6 = extraout_ECX;
|
|
|
|
if (cVar4 == '\0') {
|
|
|
|
if (iVar5 != 3) {
|
|
|
|
pcVar7 = "non-alpha color needs 3 arguments";
|
|
|
|
goto LAB_0065c509;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else if (iVar5 != 4) {
|
|
|
|
pcVar7 = "alpha color needs 4 arguments";
|
|
|
|
goto LAB_0065c509;
|
|
|
|
}
|
|
|
|
if (param_3 == '\0') {
|
|
|
|
iVar6 = (**(code **)(*param_2 + 0xc))(0);
|
|
|
|
if (iVar6 == 0) {
|
|
|
|
cVar3 = '\0';
|
|
|
|
iVar6 = extraout_ECX_05;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
cVar3 = FUN_00448290(¶m_4);
|
|
|
|
iVar6 = extraout_ECX_06;
|
|
|
|
}
|
|
|
|
fVar1 = (float)param_4;
|
|
|
|
if (param_4 < 0) {
|
|
|
|
fVar1 = fVar1 + _DAT_0079920c;
|
|
|
|
}
|
|
|
|
*param_1 = fVar1 * _DAT_00799208;
|
|
|
|
if (((cVar3 == '\0') ||
|
|
|
|
(iVar5 = (**(code **)(*param_2 + 0xc))(1), iVar6 = extraout_ECX_07, iVar5 == 0)) ||
|
|
|
|
(cVar3 = FUN_00448290(¶m_4), iVar6 = extraout_ECX_08, cVar3 == '\0')) {
|
|
|
|
bVar2 = false;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
bVar2 = true;
|
|
|
|
}
|
|
|
|
fVar1 = (float)param_4;
|
|
|
|
if (param_4 < 0) {
|
|
|
|
fVar1 = fVar1 + _DAT_0079920c;
|
|
|
|
}
|
|
|
|
param_1[1] = fVar1 * _DAT_00799208;
|
|
|
|
if (((bVar2) && (iVar5 = (**(code **)(*param_2 + 0xc))(2), iVar6 = extraout_ECX_09, iVar5 != 0))
|
|
|
|
&& (cVar3 = FUN_00448290(¶m_4), iVar6 = extraout_ECX_10, cVar3 != '\0')) {
|
|
|
|
bVar2 = true;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
bVar2 = false;
|
|
|
|
}
|
|
|
|
fVar1 = (float)param_4;
|
|
|
|
if (param_4 < 0) {
|
|
|
|
fVar1 = fVar1 + _DAT_0079920c;
|
|
|
|
}
|
|
|
|
param_1[2] = fVar1 * _DAT_00799208;
|
|
|
|
if (cVar4 == '\0') {
|
|
|
|
param_1[3] = 1.0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if ((bVar2) && (cVar4 = FUN_005d8780(3,¶m_4), cVar4 != '\0')) {
|
|
|
|
bVar2 = true;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
bVar2 = false;
|
|
|
|
}
|
|
|
|
fVar1 = (float)param_4;
|
|
|
|
if (param_4 < 0) {
|
|
|
|
fVar1 = fVar1 + _DAT_0079920c;
|
|
|
|
}
|
|
|
|
param_1[3] = fVar1 * _DAT_00799208;
|
|
|
|
iVar6 = param_4;
|
|
|
|
}
|
|
|
|
if (!bVar2) {
|
|
|
|
pcVar7 = "reading as integers failed for color";
|
|
|
|
goto LAB_0065c509;
|
|
|
|
}
|
|
|
|
LAB_0065c6b5:
|
|
|
|
cVar4 = FUN_0065c360();
|
|
|
|
if (cVar4 != '\0') {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
pcVar7 = "Not a valid color";
|
|
|
|
iVar6 = extraout_ECX_11;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar5 = (**(code **)(*param_2 + 0xc))();
|
|
|
|
iVar6 = extraout_ECX_00;
|
|
|
|
if ((((iVar5 == 0) || (cVar3 = FUN_00426cb0(param_1), iVar6 = extraout_ECX_01, cVar3 == '\0'))
|
|
|
|
|| (cVar3 = FUN_005d87b0(1,param_1 + 1), iVar6 = extraout_ECX_02, cVar3 == '\0')) ||
|
|
|
|
(cVar3 = FUN_005d87b0(2,param_1 + 2), iVar6 = extraout_ECX_03, cVar3 == '\0')) {
|
|
|
|
cVar3 = '\0';
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
cVar3 = '\x01';
|
|
|
|
}
|
|
|
|
if (cVar4 == '\0') {
|
|
|
|
param_1[3] = 1.0;
|
|
|
|
LAB_0065c594:
|
|
|
|
if (cVar3 != '\0') goto LAB_0065c6b5;
|
|
|
|
}
|
|
|
|
else if (cVar3 != '\0') {
|
|
|
|
cVar3 = FUN_005d87b0(3,param_1 + 3);
|
|
|
|
iVar6 = extraout_ECX_04;
|
|
|
|
goto LAB_0065c594;
|
|
|
|
}
|
|
|
|
pcVar7 = "read failed for color";
|
|
|
|
}
|
|
|
|
LAB_0065c509:
|
|
|
|
FUN_00401340(pcVar7);
|
|
|
|
FUN_0065d620(param_2,iVar6);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c6e0 at 0x0065C6E0 (size: 100) ---
|
|
|
|
|
|
bool __thiscall FUN_0065c6e0(undefined4 *param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
if (param_2 != 0) {
|
|
|
|
cVar1 = FUN_005b2d90(param_1);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
iVar2 = FUN_005b3b50(*param_1);
|
|
|
|
if (iVar2 != 0) {
|
|
|
|
iVar2 = FUN_005b3b50(param_1[1]);
|
|
|
|
if (iVar2 != 0) {
|
|
|
|
iVar2 = FUN_005b3b50(param_1[2]);
|
|
|
|
return iVar2 != 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c750 at 0x0065C750 (size: 155) ---
|
|
|
|
|
|
bool __thiscall FUN_0065c750(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 extraout_ECX;
|
|
|
|
undefined4 extraout_ECX_00;
|
|
|
|
undefined4 extraout_ECX_01;
|
|
|
|
undefined4 extraout_ECX_02;
|
|
|
|
undefined4 uVar3;
|
|
|
|
char *pcVar4;
|
|
|
|
|
|
|
|
if (param_2 != (int *)0x0) {
|
|
|
|
iVar2 = FUN_0065ca40();
|
|
|
|
if (iVar2 == 3) {
|
|
|
|
(**(code **)(*param_2 + 0xc))(0);
|
|
|
|
cVar1 = FUN_00426cb0(param_1);
|
|
|
|
uVar3 = extraout_ECX_00;
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
(**(code **)(*param_2 + 0xc))(1);
|
|
|
|
cVar1 = FUN_00426cb0(param_1 + 4);
|
|
|
|
uVar3 = extraout_ECX_01;
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
(**(code **)(*param_2 + 0xc))(2);
|
|
|
|
cVar1 = FUN_00426cb0(param_1 + 8);
|
|
|
|
uVar3 = extraout_ECX_02;
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_005b2d90(param_1);
|
|
|
|
return cVar1 != '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pcVar4 = "Invalid vector";
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
pcVar4 = "Invalid number of components in vector";
|
|
|
|
uVar3 = extraout_ECX;
|
|
|
|
}
|
|
|
|
FUN_00401340(pcVar4);
|
|
|
|
FUN_0065d620(param_2,uVar3);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c7f0 at 0x0065C7F0 (size: 12) ---
|
|
|
|
|
|
void __thiscall FUN_0065c7f0(int param_1,undefined2 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*(undefined2 *)(param_1 + 0xc) = param_2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c800 at 0x0065C800 (size: 12) ---
|
|
|
|
|
|
void __thiscall FUN_0065c800(int param_1,undefined2 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*(undefined2 *)(param_1 + 0xe) = param_2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c810 at 0x0065C810 (size: 19) ---
|
|
|
|
|
|
void __fastcall FUN_0065c810(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
if ((int *)*param_1 == (int *)0x0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
(**(code **)(*(int *)*param_1 + 0xc))(param_1[1]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c830 at 0x0065C830 (size: 74) ---
|
|
|
|
|
|
uint __thiscall FUN_0065c830(int *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
int iVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
undefined4 *puVar4;
|
|
|
|
|
|
|
|
uVar1 = param_1[2];
|
|
|
|
if (param_2 < uVar1) {
|
|
|
|
puVar3 = (undefined4 *)(*param_1 + param_2 * 4);
|
|
|
|
puVar4 = (undefined4 *)(*param_1 + (uVar1 - 1) * 4);
|
|
|
|
param_1[2] = uVar1 - 1;
|
|
|
|
if (puVar3 < puVar4) {
|
|
|
|
iVar2 = ((uint)((int)puVar4 + (-1 - (int)puVar3)) >> 2) + 1;
|
|
|
|
puVar4 = puVar3;
|
|
|
|
for (; puVar3 = puVar3 + 1, iVar2 != 0; iVar2 = iVar2 + -1) {
|
|
|
|
*puVar4 = *puVar3;
|
|
|
|
puVar4 = puVar4 + 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar2 = param_1[2];
|
|
|
|
*(undefined4 *)(*param_1 + iVar2 * 4) = 0;
|
|
|
|
return CONCAT31((int3)((uint)iVar2 >> 8),1);
|
|
|
|
}
|
|
|
|
return uVar1 & 0xffffff00;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c880 at 0x0065C880 (size: 115) ---
|
|
|
|
|
|
int * FUN_0065c880(int *param_1,int *param_2,int *param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
iVar2 = (int)param_2 - (int)param_1 >> 4;
|
|
|
|
if (0 < iVar2) {
|
|
|
|
iVar1 = *param_3;
|
|
|
|
do {
|
|
|
|
if (*param_1 == iVar1) {
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
if (param_1[1] == iVar1) {
|
|
|
|
return param_1 + 1;
|
|
|
|
}
|
|
|
|
if (param_1[2] == iVar1) {
|
|
|
|
return param_1 + 2;
|
|
|
|
}
|
|
|
|
if (param_1[3] == iVar1) {
|
|
|
|
return param_1 + 3;
|
|
|
|
}
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
param_1 = param_1 + 4;
|
|
|
|
} while (0 < iVar2);
|
|
|
|
}
|
|
|
|
iVar2 = (int)param_2 - (int)param_1 >> 2;
|
|
|
|
if (iVar2 != 1) {
|
|
|
|
if (iVar2 != 2) {
|
|
|
|
if (iVar2 != 3) {
|
|
|
|
return param_2;
|
|
|
|
}
|
|
|
|
if (*param_1 == *param_3) {
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
param_1 = param_1 + 1;
|
|
|
|
}
|
|
|
|
if (*param_1 == *param_3) {
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
param_1 = param_1 + 1;
|
|
|
|
}
|
|
|
|
if (*param_1 != *param_3) {
|
|
|
|
return param_2;
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c900 at 0x0065C900 (size: 122) ---
|
|
|
|
|
|
undefined4 * FUN_0065c900(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,code *param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
|
|
|
|
cVar1 = (*param_4)(*param_1,*param_2);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
cVar1 = (*param_4)(*param_1,*param_3);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
cVar1 = (*param_4)(*param_2,*param_3);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
return param_3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
cVar1 = (*param_4)(*param_2,*param_3);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
cVar1 = (*param_4)(*param_1,*param_3);
|
|
|
|
if (cVar1 == '\0') {
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
return param_3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return param_2;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c980 at 0x0065C980 (size: 63) ---
|
|
|
|
|
|
void FUN_0065c980(undefined4 *param_1,undefined4 param_2,code *param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
|
|
|
|
cVar1 = (*param_3)(param_2,param_1[-1]);
|
|
|
|
while (cVar1 != '\0') {
|
|
|
|
*param_1 = param_1[-1];
|
|
|
|
cVar1 = (*param_3)(param_2,param_1[-2]);
|
|
|
|
param_1 = param_1 + -1;
|
|
|
|
}
|
|
|
|
*param_1 = param_2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065c9c0 at 0x0065C9C0 (size: 94) ---
|
|
|
|
|
|
void FUN_0065c9c0(int param_1,int param_2,int param_3,undefined4 param_4,code *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
if (param_2 <= param_3) {
|
|
|
|
*(undefined4 *)(param_1 + param_2 * 4) = param_4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
do {
|
|
|
|
iVar2 = (param_2 + -1) / 2;
|
|
|
|
cVar1 = (*param_5)(*(undefined4 *)(param_1 + iVar2 * 4),param_4);
|
|
|
|
if (cVar1 == '\0') break;
|
|
|
|
*(undefined4 *)(param_1 + param_2 * 4) = *(undefined4 *)(param_1 + iVar2 * 4);
|
|
|
|
param_2 = iVar2;
|
|
|
|
} while (param_3 < iVar2);
|
|
|
|
*(undefined4 *)(param_1 + param_2 * 4) = param_4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ca20 at 0x0065CA20 (size: 18) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065ca20(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
do {
|
|
|
|
iVar1 = param_1;
|
|
|
|
param_1 = *(int *)(iVar1 + 0x2c);
|
|
|
|
} while (param_1 != 0);
|
|
|
|
return *(undefined4 *)(iVar1 + 0x28);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ca40 at 0x0065CA40 (size: 4) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065ca40(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
return *(undefined4 *)(param_1 + 0x20);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ca70 at 0x0065CA70 (size: 17) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065ca70(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
|
|
|
|
if (param_1[8] != 1) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
uVar1 = (**(code **)(*param_1 + 0xc))(0);
|
|
|
|
return uVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ca90 at 0x0065CA90 (size: 30) ---
|
|
|
|
|
|
int __fastcall FUN_0065ca90(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
if (param_1[8] == 1) {
|
|
|
|
iVar1 = (**(code **)(*param_1 + 0xc))(0);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = 0;
|
|
|
|
}
|
|
|
|
if ((iVar1 != 0) && (*(int *)(iVar1 + 0x20) != 0)) {
|
|
|
|
iVar1 = 0;
|
|
|
|
}
|
|
|
|
return iVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cab0 at 0x0065CAB0 (size: 48) ---
|
|
|
|
|
|
int __thiscall FUN_0065cab0(int *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = 0;
|
|
|
|
if (param_2 < (uint)param_1[8]) {
|
|
|
|
iVar1 = (**(code **)(*param_1 + 8))(param_2);
|
|
|
|
FUN_0065c830(param_2);
|
|
|
|
*(undefined4 *)(iVar1 + 0x2c) = 0;
|
|
|
|
}
|
|
|
|
return iVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cae0 at 0x0065CAE0 (size: 35) ---
|
|
|
|
|
|
void __fastcall FUN_0065cae0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG LVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
|
|
|
|
puVar2 = (undefined4 *)(*(int *)(param_1 + 8) + -0x14);
|
|
|
|
LVar1 = InterlockedDecrement((LONG *)(*(int *)(param_1 + 8) + -0x10));
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cb10 at 0x0065CB10 (size: 47) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065cb10(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
|
|
|
|
if ((int *)*param_1 != (int *)0x0) {
|
|
|
|
iVar1 = (**(code **)(*(int *)*param_1 + 0xc))(param_1[1]);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
param_1[1] = param_1[1] + 1;
|
|
|
|
if ((int *)*param_1 != (int *)0x0) {
|
|
|
|
uVar2 = (**(code **)(*(int *)*param_1 + 0xc))(param_1[1]);
|
|
|
|
return uVar2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cb40 at 0x0065CB40 (size: 39) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065cb40(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_004011b0();
|
|
|
|
*param_1 = &PTR_LAB_007cae34;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cb70 at 0x0065CB70 (size: 81) ---
|
|
|
|
|
|
void FUN_0065cb70(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,code *param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
char cVar3;
|
|
|
|
|
|
|
|
for (; param_1 != param_2; param_1 = param_1 + 1) {
|
|
|
|
uVar1 = *param_1;
|
|
|
|
cVar3 = (*param_4)(uVar1,param_1[-1]);
|
|
|
|
puVar2 = param_1;
|
|
|
|
while (cVar3 != '\0') {
|
|
|
|
*puVar2 = puVar2[-1];
|
|
|
|
cVar3 = (*param_4)(uVar1,puVar2[-2]);
|
|
|
|
puVar2 = puVar2 + -1;
|
|
|
|
}
|
|
|
|
*puVar2 = uVar1;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cbd0 at 0x0065CBD0 (size: 113) ---
|
|
|
|
|
|
void FUN_0065cbd0(int param_1,int param_2,int param_3,undefined4 param_4,code *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar3 = param_2;
|
|
|
|
while( true ) {
|
|
|
|
iVar1 = iVar3 * 2;
|
|
|
|
iVar4 = iVar1 + 2;
|
|
|
|
if (param_3 <= iVar4) break;
|
|
|
|
cVar2 = (*param_5)(*(undefined4 *)(param_1 + iVar4 * 4),
|
|
|
|
*(undefined4 *)(param_1 + -4 + iVar4 * 4));
|
|
|
|
if (cVar2 != '\0') {
|
|
|
|
iVar4 = iVar1 + 1;
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1 + iVar3 * 4) = *(undefined4 *)(param_1 + iVar4 * 4);
|
|
|
|
iVar3 = iVar4;
|
|
|
|
}
|
|
|
|
if (iVar4 == param_3) {
|
|
|
|
*(undefined4 *)(param_1 + iVar3 * 4) = *(undefined4 *)(param_1 + -4 + iVar4 * 4);
|
|
|
|
iVar3 = iVar1 + 1;
|
|
|
|
}
|
|
|
|
FUN_0065c9c0(param_1,iVar3,param_2,param_4,param_5);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cc50 at 0x0065CC50 (size: 106) ---
|
|
|
|
|
|
undefined1 FUN_0065cc50(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
char *pcVar1;
|
|
|
|
char cVar2;
|
|
|
|
int iVar3;
|
|
|
|
LONG LVar4;
|
|
|
|
undefined1 uVar5;
|
|
|
|
char *pcVar6;
|
|
|
|
char *local_4;
|
|
|
|
|
|
|
|
local_4 = PTR_DAT_00818344;
|
|
|
|
uVar5 = 0;
|
|
|
|
InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10));
|
|
|
|
cVar2 = FUN_00426020(&local_4);
|
|
|
|
pcVar1 = local_4;
|
|
|
|
if (cVar2 != '\0') {
|
|
|
|
iVar3 = _stricmp(local_4,(char *)*param_1);
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
uVar5 = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
pcVar6 = pcVar1 + -0x14;
|
|
|
|
LVar4 = InterlockedDecrement((LONG *)(pcVar1 + -0x10));
|
|
|
|
if ((LVar4 == 0) && (pcVar6 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)pcVar6)(1);
|
|
|
|
}
|
|
|
|
return uVar5;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cd80 at 0x0065CD80 (size: 165) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065cd80(int param_1,char *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG *lpAddend;
|
|
|
|
undefined4 *puVar1;
|
|
|
|
char *pcVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
int iVar4;
|
|
|
|
LONG LVar5;
|
|
|
|
uint uVar6;
|
|
|
|
char *pcVar7;
|
|
|
|
|
|
|
|
puVar1 = (undefined4 *)param_2;
|
|
|
|
uVar6 = 0;
|
|
|
|
uVar3 = 0;
|
|
|
|
if (*(int *)(param_1 + 0x20) != 0) {
|
|
|
|
while( true ) {
|
|
|
|
param_2 = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10));
|
|
|
|
FUN_00426020(¶m_2);
|
|
|
|
pcVar2 = param_2;
|
|
|
|
iVar4 = _stricmp(param_2,(char *)*puVar1);
|
|
|
|
pcVar7 = pcVar2 + -0x14;
|
|
|
|
lpAddend = (LONG *)(pcVar2 + -0x10);
|
|
|
|
if (iVar4 == 0) break;
|
|
|
|
LVar5 = InterlockedDecrement(lpAddend);
|
|
|
|
if ((LVar5 == 0) && (pcVar7 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)pcVar7)(1);
|
|
|
|
}
|
|
|
|
uVar6 = uVar6 + 1;
|
|
|
|
if (*(uint *)(param_1 + 0x20) <= uVar6) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = *(undefined4 *)(*(int *)(param_1 + 0x18) + uVar6 * 4);
|
|
|
|
LVar5 = InterlockedDecrement(lpAddend);
|
|
|
|
if ((LVar5 == 0) && (pcVar7 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)pcVar7)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- thunk_FUN_0065cd80 at 0x0065CE30 (size: 5) ---
|
|
|
|
|
|
undefined4 __thiscall thunk_FUN_0065cd80(int param_1,char *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG *lpAddend;
|
|
|
|
undefined4 *puVar1;
|
|
|
|
char *pcVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
int iVar4;
|
|
|
|
LONG LVar5;
|
|
|
|
uint uVar6;
|
|
|
|
char *pcVar7;
|
|
|
|
|
|
|
|
puVar1 = (undefined4 *)param_2;
|
|
|
|
uVar6 = 0;
|
|
|
|
uVar3 = 0;
|
|
|
|
if (*(int *)(param_1 + 0x20) != 0) {
|
|
|
|
while( true ) {
|
|
|
|
param_2 = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10));
|
|
|
|
FUN_00426020(¶m_2);
|
|
|
|
pcVar2 = param_2;
|
|
|
|
iVar4 = _stricmp(param_2,(char *)*puVar1);
|
|
|
|
pcVar7 = pcVar2 + -0x14;
|
|
|
|
lpAddend = (LONG *)(pcVar2 + -0x10);
|
|
|
|
if (iVar4 == 0) break;
|
|
|
|
LVar5 = InterlockedDecrement(lpAddend);
|
|
|
|
if ((LVar5 == 0) && (pcVar7 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)pcVar7)(1);
|
|
|
|
}
|
|
|
|
uVar6 = uVar6 + 1;
|
|
|
|
if (*(uint *)(param_1 + 0x20) <= uVar6) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = *(undefined4 *)(*(int *)(param_1 + 0x18) + uVar6 * 4);
|
|
|
|
LVar5 = InterlockedDecrement(lpAddend);
|
|
|
|
if ((LVar5 == 0) && (pcVar7 != (char *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)pcVar7)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ce40 at 0x0065CE40 (size: 129) ---
|
|
|
|
|
|
undefined1 __thiscall FUN_0065ce40(int *param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
char cVar2;
|
|
|
|
LONG LVar3;
|
|
|
|
LONG *lpAddend;
|
|
|
|
uint uVar4;
|
|
|
|
undefined4 uVar5;
|
|
|
|
undefined1 local_1;
|
|
|
|
|
|
|
|
puVar1 = (undefined *)param_1[4];
|
|
|
|
local_1 = 1;
|
|
|
|
if (puVar1 != PTR_DAT_00818344) {
|
|
|
|
LVar3 = InterlockedDecrement((LONG *)(puVar1 + -0x10));
|
|
|
|
if ((LVar3 == 0) && ((undefined4 *)(puVar1 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(puVar1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
lpAddend = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[4] = (int)PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(lpAddend);
|
|
|
|
}
|
|
|
|
if (((char)param_2 != '\0') && (uVar4 = 0, param_1[8] != 0)) {
|
|
|
|
do {
|
|
|
|
uVar5 = param_2;
|
|
|
|
(**(code **)(*param_1 + 8))(uVar4,param_2);
|
|
|
|
cVar2 = FUN_0065ce40(uVar5);
|
|
|
|
if (cVar2 == '\0') {
|
|
|
|
local_1 = 0;
|
|
|
|
}
|
|
|
|
uVar4 = uVar4 + 1;
|
|
|
|
} while (uVar4 < (uint)param_1[8]);
|
|
|
|
}
|
|
|
|
return local_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ced0 at 0x0065CED0 (size: 95) ---
|
|
|
|
|
|
void __fastcall FUN_0065ced0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
undefined *local_4;
|
|
|
|
|
|
|
|
local_4 = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10));
|
|
|
|
FUN_00426020(&local_4);
|
|
|
|
if (*(int *)(param_1 + 0x2c) == 0) {
|
|
|
|
iVar1 = *(int *)(param_1 + 0x28);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = FUN_0065ca20();
|
|
|
|
}
|
|
|
|
*(short *)(iVar1 + 0xc) = *(short *)(iVar1 + 0xc) + 1;
|
|
|
|
puVar3 = (undefined4 *)(local_4 + -0x14);
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(local_4 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (puVar3 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar3)(1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cf30 at 0x0065CF30 (size: 95) ---
|
|
|
|
|
|
void __fastcall FUN_0065cf30(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
undefined *local_4;
|
|
|
|
|
|
|
|
local_4 = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement((LONG *)(PTR_DAT_00818344 + -0x10));
|
|
|
|
FUN_00426020(&local_4);
|
|
|
|
if (*(int *)(param_1 + 0x2c) == 0) {
|
|
|
|
iVar1 = *(int *)(param_1 + 0x28);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = FUN_0065ca20();
|
|
|
|
}
|
|
|
|
*(short *)(iVar1 + 0xe) = *(short *)(iVar1 + 0xe) + 1;
|
|
|
|
puVar3 = (undefined4 *)(local_4 + -0x14);
|
|
|
|
LVar2 = InterlockedDecrement((LONG *)(local_4 + -0x10));
|
|
|
|
if ((LVar2 == 0) && (puVar3 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar3)(1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cf90 at 0x0065CF90 (size: 43) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065cf90(undefined4 *param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG *lpAddend;
|
|
|
|
|
|
|
|
*param_1 = param_2;
|
|
|
|
param_1[1] = 0;
|
|
|
|
lpAddend = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[2] = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(lpAddend);
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065cfc0 at 0x0065CFC0 (size: 116) ---
|
|
|
|
|
|
void __fastcall FUN_0065cfc0(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG LVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
LONG *lpAddend;
|
|
|
|
|
|
|
|
puVar2 = (undefined4 *)*param_1;
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
LVar1 = InterlockedDecrement(puVar2 + 1);
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
puVar2 = (undefined4 *)FUN_005df0f5(0x14);
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
puVar2[1] = 1;
|
|
|
|
*puVar2 = &PTR_FUN_007feadc;
|
|
|
|
lpAddend = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
puVar2[2] = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(lpAddend);
|
|
|
|
*(undefined2 *)(puVar2 + 3) = 0;
|
|
|
|
*(undefined2 *)((int)puVar2 + 0xe) = 0;
|
|
|
|
puVar2[4] = 0;
|
|
|
|
*param_1 = (int)puVar2;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*param_1 = 0;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d040 at 0x0065D040 (size: 133) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065d040(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
|
|
|
|
uVar1 = param_1[2];
|
|
|
|
if (uVar1 == (param_1[1] & 0x7fffffffU)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (uVar1 == 0) {
|
|
|
|
iVar2 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar2 = thunk_FUN_005df0f5(uVar1 * 4);
|
|
|
|
if (iVar2 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar3 = param_1[2] + -1;
|
|
|
|
while (-1 < iVar3) {
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
*(undefined4 *)(iVar2 + 4 + iVar3 * 4) = *(undefined4 *)(*param_1 + 4 + iVar3 * 4);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((param_1[1] & 0x80000000U) == 0x80000000) {
|
|
|
|
operator_delete__((void *)*param_1);
|
|
|
|
}
|
|
|
|
*param_1 = iVar2;
|
|
|
|
param_1[1] = param_1[2] | 0x80000000;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d0d0 at 0x0065D0D0 (size: 108) ---
|
|
|
|
|
|
undefined4 * FUN_0065d0d0(undefined4 *param_1,undefined4 *param_2,undefined4 param_3,code *param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
char cVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
|
|
|
|
while( true ) {
|
|
|
|
cVar2 = (*param_4)(*param_1,param_3);
|
|
|
|
while (cVar2 != '\0') {
|
|
|
|
puVar3 = param_1 + 1;
|
|
|
|
param_1 = param_1 + 1;
|
|
|
|
cVar2 = (*param_4)(*puVar3,param_3);
|
|
|
|
}
|
|
|
|
cVar2 = (*param_4)(param_3,param_2[-1]);
|
|
|
|
puVar3 = param_2;
|
|
|
|
while (param_2 = puVar3 + -1, cVar2 != '\0') {
|
|
|
|
cVar2 = (*param_4)(param_3,puVar3[-2]);
|
|
|
|
puVar3 = param_2;
|
|
|
|
}
|
|
|
|
if (param_2 <= param_1) break;
|
|
|
|
uVar1 = *param_1;
|
|
|
|
*param_1 = *param_2;
|
|
|
|
*param_2 = uVar1;
|
|
|
|
param_1 = param_1 + 1;
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d140 at 0x0065D140 (size: 85) ---
|
|
|
|
|
|
void FUN_0065d140(int param_1,int param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
|
|
|
|
iVar2 = param_2 - param_1 >> 2;
|
|
|
|
if (1 < iVar2) {
|
|
|
|
iVar3 = (iVar2 + -2) / 2;
|
|
|
|
FUN_0065cbd0(param_1,iVar3,iVar2,*(undefined4 *)(param_1 + iVar3 * 4),param_3);
|
|
|
|
while (iVar3 != 0) {
|
|
|
|
iVar1 = iVar3 * 4;
|
|
|
|
iVar3 = iVar3 + -1;
|
|
|
|
FUN_0065cbd0(param_1,iVar3,iVar2,*(undefined4 *)(param_1 + -4 + iVar1),param_3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d1a0 at 0x0065D1A0 (size: 97) ---
|
|
|
|
|
|
undefined4 * __fastcall FUN_0065d1a0(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG *pLVar1;
|
|
|
|
|
|
|
|
param_1[1] = 1;
|
|
|
|
*param_1 = &PTR_FUN_007feae0;
|
|
|
|
param_1[2] = 0;
|
|
|
|
*(undefined2 *)(param_1 + 3) = 0;
|
|
|
|
*(undefined2 *)((int)param_1 + 0xe) = 0;
|
|
|
|
pLVar1 = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[4] = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(pLVar1);
|
|
|
|
pLVar1 = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[5] = PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(pLVar1);
|
|
|
|
param_1[6] = 0;
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[8] = 0;
|
|
|
|
*(undefined1 *)(param_1 + 9) = 0;
|
|
|
|
param_1[10] = 0;
|
|
|
|
param_1[0xb] = 0;
|
|
|
|
param_1[0xc] = 0;
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d210 at 0x0065D210 (size: 323) ---
|
|
|
|
|
|
void __fastcall FUN_0065d210(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
int iVar3;
|
|
|
|
LONG LVar4;
|
|
|
|
LONG *pLVar5;
|
|
|
|
uint uVar6;
|
|
|
|
undefined4 *puVar7;
|
|
|
|
undefined4 *puVar8;
|
|
|
|
|
|
|
|
if ((undefined4 *)param_1[2] != (undefined4 *)0x0) {
|
|
|
|
(*(code *)**(undefined4 **)param_1[2])(1);
|
|
|
|
}
|
|
|
|
uVar6 = param_1[8];
|
|
|
|
param_1[2] = 0;
|
|
|
|
while (uVar6 != 0) {
|
|
|
|
uVar6 = uVar6 - 1;
|
|
|
|
if (uVar6 < (uint)param_1[8]) {
|
|
|
|
puVar2 = (undefined4 *)(**(code **)(*param_1 + 8))(uVar6);
|
|
|
|
if (uVar6 < (uint)param_1[8]) {
|
|
|
|
iVar3 = param_1[8] - 1;
|
|
|
|
puVar7 = (undefined4 *)(param_1[6] + uVar6 * 4);
|
|
|
|
puVar8 = (undefined4 *)(param_1[6] + iVar3 * 4);
|
|
|
|
param_1[8] = iVar3;
|
|
|
|
if (puVar7 < puVar8) {
|
|
|
|
iVar3 = ((uint)((int)puVar8 + (-1 - (int)puVar7)) >> 2) + 1;
|
|
|
|
puVar8 = puVar7;
|
|
|
|
for (; puVar7 = puVar7 + 1, iVar3 != 0; iVar3 = iVar3 + -1) {
|
|
|
|
*puVar8 = *puVar7;
|
|
|
|
puVar8 = puVar8 + 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1[6] + param_1[8] * 4) = 0;
|
|
|
|
}
|
|
|
|
puVar2[0xb] = 0;
|
|
|
|
LVar4 = InterlockedDecrement(puVar2 + 1);
|
|
|
|
if (LVar4 == 0) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*(undefined2 *)(param_1 + 3) = 0;
|
|
|
|
*(undefined2 *)((int)param_1 + 0xe) = 0;
|
|
|
|
puVar1 = (undefined *)param_1[4];
|
|
|
|
if (puVar1 != PTR_DAT_00818344) {
|
|
|
|
LVar4 = InterlockedDecrement((LONG *)(puVar1 + -0x10));
|
|
|
|
if ((LVar4 == 0) && ((undefined4 *)(puVar1 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(puVar1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
pLVar5 = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[4] = (int)PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(pLVar5);
|
|
|
|
}
|
|
|
|
*(undefined1 *)(param_1 + 9) = 0;
|
|
|
|
puVar2 = (undefined4 *)param_1[10];
|
|
|
|
if (((puVar2 != (undefined4 *)0x0) && (LVar4 = InterlockedDecrement(puVar2 + 1), LVar4 == 0)) &&
|
|
|
|
(puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
param_1[10] = 0;
|
|
|
|
puVar1 = (undefined *)param_1[5];
|
|
|
|
if (puVar1 != PTR_DAT_00818344) {
|
|
|
|
LVar4 = InterlockedDecrement((LONG *)(puVar1 + -0x10));
|
|
|
|
if ((LVar4 == 0) && ((undefined4 *)(puVar1 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(puVar1 + -0x14))(1);
|
|
|
|
}
|
|
|
|
pLVar5 = (LONG *)(PTR_DAT_00818344 + -0x10);
|
|
|
|
param_1[5] = (int)PTR_DAT_00818344;
|
|
|
|
InterlockedIncrement(pLVar5);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d360 at 0x0065D360 (size: 139) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065d360(int *param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
uint uVar3;
|
|
|
|
undefined4 *puVar4;
|
|
|
|
LONG LVar5;
|
|
|
|
|
|
|
|
iVar1 = param_1[6];
|
|
|
|
iVar2 = FUN_0065c880(iVar1,iVar1 + param_1[8] * 4,¶m_2,¶m_2);
|
|
|
|
if ((iVar2 != iVar1 + param_1[8] * 4) && (uVar3 = iVar2 - iVar1 >> 2, uVar3 != 0xffffffff)) {
|
|
|
|
if (uVar3 < (uint)param_1[8]) {
|
|
|
|
puVar4 = (undefined4 *)(**(code **)(*param_1 + 8))(uVar3);
|
|
|
|
FUN_0065c830(uVar3);
|
|
|
|
puVar4[0xb] = 0;
|
|
|
|
LVar5 = InterlockedDecrement(puVar4 + 1);
|
|
|
|
if (LVar5 == 0) {
|
|
|
|
(**(code **)*puVar4)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d3f0 at 0x0065D3F0 (size: 91) ---
|
|
|
|
|
|
void __thiscall FUN_0065d3f0(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
LONG LVar3;
|
|
|
|
|
|
|
|
if (*(int *)(param_1 + 0x28) == 0) {
|
|
|
|
FUN_0065cfc0();
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(param_1 + 0x28);
|
|
|
|
if ((iVar1 != 0) && (iVar2 = *(int *)(iVar1 + 8), iVar2 != *param_2)) {
|
|
|
|
LVar3 = InterlockedDecrement((LONG *)(iVar2 + -0x10));
|
|
|
|
if ((LVar3 == 0) && ((undefined4 *)(iVar2 + -0x14) != (undefined4 *)0x0)) {
|
|
|
|
(*(code *)**(undefined4 **)(iVar2 + -0x14))(1);
|
|
|
|
}
|
|
|
|
iVar2 = *param_2;
|
|
|
|
*(int *)(iVar1 + 8) = iVar2;
|
|
|
|
/* WARNING: Could not recover jumptable at 0x0065d440. Too many branches */
|
|
|
|
/* WARNING: Treating indirect jump as call */
|
|
|
|
InterlockedIncrement((LONG *)(iVar2 + -0x10));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d450 at 0x0065D450 (size: 126) ---
|
|
|
|
|
|
void FUN_0065d450(undefined4 param_1,int *param_2,uint param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
byte *pbVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
uVar1 = param_3;
|
|
|
|
uVar2 = param_3;
|
|
|
|
if ((*(byte *)(param_3 + 4) & 1) != 0) {
|
|
|
|
uVar2 = FUN_0065af90(*param_2);
|
|
|
|
}
|
|
|
|
param_3 = uVar2 & 0xff;
|
|
|
|
FUN_0040ad10(1);
|
|
|
|
pbVar3 = (byte *)FUN_0040acf0(1);
|
|
|
|
if (pbVar3 != (byte *)0x0) {
|
|
|
|
if ((*(byte *)(uVar1 + 4) & 1) == 0) {
|
|
|
|
param_3 = (uint)*pbVar3;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
*pbVar3 = (byte)uVar2;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((*(byte *)(uVar1 + 4) & 5) == 0) {
|
|
|
|
uVar2 = param_3;
|
|
|
|
}
|
|
|
|
if ((~*(byte *)(uVar1 + 4) & 1) != 0) {
|
|
|
|
iVar4 = FUN_0065b7c0(uVar2);
|
|
|
|
*param_2 = iVar4;
|
|
|
|
}
|
|
|
|
if ((int *)*param_2 != (int *)0x0) {
|
|
|
|
(**(code **)(*(int *)*param_2 + 0x18))(uVar1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d4d0 at 0x0065D4D0 (size: 144) ---
|
|
|
|
|
|
void __fastcall FUN_0065d4d0(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG LVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
|
|
|
|
*param_1 = &PTR_FUN_007feae0;
|
|
|
|
FUN_0065d210();
|
|
|
|
puVar2 = (undefined4 *)param_1[10];
|
|
|
|
if (puVar2 != (undefined4 *)0x0) {
|
|
|
|
LVar1 = InterlockedDecrement(puVar2 + 1);
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((param_1[7] & 0x80000000) == 0x80000000) {
|
|
|
|
operator_delete__((void *)param_1[6]);
|
|
|
|
}
|
|
|
|
puVar2 = (undefined4 *)(param_1[5] + -0x14);
|
|
|
|
LVar1 = InterlockedDecrement((LONG *)(param_1[5] + -0x10));
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
puVar2 = (undefined4 *)(param_1[4] + -0x14);
|
|
|
|
LVar1 = InterlockedDecrement((LONG *)(param_1[4] + -0x10));
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
*param_1 = &PTR_FUN_007952f4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d560 at 0x0065D560 (size: 82) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined4 * __fastcall FUN_0065d560(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
if ((_DAT_008f8620 & 1) == 0) {
|
|
|
|
_DAT_008f8620 = _DAT_008f8620 | 1;
|
|
|
|
FUN_00401340("<unknown>");
|
|
|
|
_atexit((_func_4879 *)&LAB_0077fd00);
|
|
|
|
}
|
|
|
|
if (*(int *)(param_1 + 0x2c) == 0) {
|
|
|
|
iVar1 = *(int *)(param_1 + 0x28);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = FUN_0065ca20();
|
|
|
|
}
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return (undefined4 *)(iVar1 + 8);
|
|
|
|
}
|
|
|
|
return &DAT_008f861c;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d5c0 at 0x0065D5C0 (size: 92) ---
|
|
|
|
|
|
undefined4 FUN_0065d5c0(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
int iVar2;
|
|
|
|
uint uVar3;
|
|
|
|
int *piVar4;
|
|
|
|
|
|
|
|
piVar4 = param_1;
|
|
|
|
iVar2 = *(int *)(*param_1 + -4);
|
|
|
|
if (iVar2 != 1) {
|
|
|
|
if (iVar2 != 1) {
|
|
|
|
FUN_00404ef0(*param_1,iVar2 + -1);
|
|
|
|
}
|
|
|
|
uVar3 = *(uint *)(*piVar4 + -4);
|
|
|
|
uVar1 = iVar2 - 2;
|
|
|
|
if (uVar3 <= uVar1) {
|
|
|
|
uVar1 = uVar3 - 1;
|
|
|
|
}
|
|
|
|
if (*(char *)(uVar1 + *piVar4) != '\n') {
|
|
|
|
param_1 = (int *)CONCAT31(param_1._1_3_,10);
|
|
|
|
FUN_00404ef0(¶m_1,1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d620 at 0x0065D620 (size: 69) ---
|
|
|
|
|
|
void FUN_0065d620(undefined4 param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG LVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
|
|
|
|
FUN_00402390(param_2,&stack0x0000000c);
|
|
|
|
FUN_0065ced0(¶m_2);
|
|
|
|
puVar2 = (undefined4 *)(param_2 + -0x14);
|
|
|
|
LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10));
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d670 at 0x0065D670 (size: 69) ---
|
|
|
|
|
|
void FUN_0065d670(undefined4 param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
LONG LVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
|
|
|
|
FUN_00402390(param_2,&stack0x0000000c);
|
|
|
|
FUN_0065cf30(¶m_2);
|
|
|
|
puVar2 = (undefined4 *)(param_2 + -0x14);
|
|
|
|
LVar1 = InterlockedDecrement((LONG *)(param_2 + -0x10));
|
|
|
|
if ((LVar1 == 0) && (puVar2 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar2)(1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d6c0 at 0x0065D6C0 (size: 107) ---
|
|
|
|
|
|
void FUN_0065d6c0(undefined4 *param_1,undefined4 *param_2,code *param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
char cVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
size_t _Size;
|
|
|
|
|
|
|
|
if ((param_1 != param_2) && (puVar3 = param_1 + 1, puVar3 != param_2)) {
|
|
|
|
_Size = (int)puVar3 - (int)param_1;
|
|
|
|
do {
|
|
|
|
uVar1 = *puVar3;
|
|
|
|
cVar2 = (*param_3)(uVar1,*param_1);
|
|
|
|
if (cVar2 == '\0') {
|
|
|
|
FUN_0065c980(puVar3,uVar1,param_3);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (0 < (int)_Size) {
|
|
|
|
memmove((void *)((int)puVar3 + (4 - _Size)),param_1,_Size);
|
|
|
|
}
|
|
|
|
*param_1 = uVar1;
|
|
|
|
}
|
|
|
|
puVar3 = puVar3 + 1;
|
|
|
|
_Size = _Size + 4;
|
|
|
|
} while (puVar3 != param_2);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d730 at 0x0065D730 (size: 77) ---
|
|
|
|
|
|
void FUN_0065d730(undefined4 *param_1,int param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar2 = param_2 - (int)param_1;
|
|
|
|
while (4 < (int)(uVar2 & 0xfffffffc)) {
|
|
|
|
uVar1 = *(undefined4 *)((int)param_1 + (uVar2 - 4));
|
|
|
|
*(undefined4 *)((int)param_1 + (uVar2 - 4)) = *param_1;
|
|
|
|
FUN_0065cbd0(param_1,0,(int)(uVar2 - 4) >> 2,uVar1,param_3);
|
|
|
|
uVar2 = uVar2 - 4;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d780 at 0x0065D780 (size: 34) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065d780(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0065d4d0();
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
*param_1 = DAT_008f8638;
|
|
|
|
DAT_008f8638 = param_1;
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d7b0 at 0x0065D7B0 (size: 73) ---
|
|
|
|
|
|
void __thiscall FUN_0065d7b0(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
uint uVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
|
|
|
|
if (param_2 == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
uVar2 = *(uint *)(param_1 + 0x1c) & 0x7fffffff;
|
|
|
|
if (uVar2 <= *(uint *)(param_1 + 0x20)) {
|
|
|
|
uVar3 = FUN_004077f0(uVar2 + 1);
|
|
|
|
cVar1 = FUN_00408220(uVar3);
|
|
|
|
if (cVar1 == '\0') goto LAB_0065d7f0;
|
|
|
|
}
|
|
|
|
*(int *)(*(int *)(param_1 + 0x18) + *(int *)(param_1 + 0x20) * 4) = param_2;
|
|
|
|
*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;
|
|
|
|
LAB_0065d7f0:
|
|
|
|
*(int *)(param_2 + 0x2c) = param_1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d800 at 0x0065D800 (size: 268) ---
|
|
|
|
|
|
void FUN_0065d800(undefined4 param_1,int *param_2,int param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
bool bVar1;
|
|
|
|
int *piVar2;
|
|
|
|
uint uVar3;
|
|
|
|
int iVar4;
|
|
|
|
uint uVar5;
|
|
|
|
int iVar6;
|
|
|
|
int *piVar7;
|
|
|
|
|
|
|
|
iVar4 = param_3;
|
|
|
|
piVar2 = param_2;
|
|
|
|
param_2 = (int *)param_2[2];
|
|
|
|
FUN_0065bd90(param_1,¶m_2,param_3);
|
|
|
|
bVar1 = false;
|
|
|
|
if ((~*(byte *)(iVar4 + 4) & 1) != 0) {
|
|
|
|
uVar5 = FUN_0040a8f0();
|
|
|
|
uVar3 = (uint)param_2;
|
|
|
|
if (uVar5 < param_2) {
|
|
|
|
FUN_0040aa50();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if ((uint)piVar2[2] < param_2) {
|
|
|
|
FUN_00408220(param_2);
|
|
|
|
piVar2[2] = uVar3;
|
|
|
|
}
|
|
|
|
else if (param_2 < (uint)piVar2[2]) {
|
|
|
|
piVar2[2] = (int)param_2;
|
|
|
|
FUN_0065d040();
|
|
|
|
}
|
|
|
|
bVar1 = true;
|
|
|
|
}
|
|
|
|
piVar7 = (int *)*piVar2;
|
|
|
|
if (piVar7 != piVar7 + piVar2[2]) {
|
|
|
|
do {
|
|
|
|
if ((*(uint *)(iVar4 + 4) >> 2 & 1) == 0) {
|
|
|
|
if ((~*(byte *)(iVar4 + 4) & 1) != 0) {
|
|
|
|
if (DAT_008f8638 == (undefined4 *)0x0) {
|
|
|
|
FUN_00661110();
|
|
|
|
}
|
|
|
|
DAT_008f8638 = (undefined4 *)*DAT_008f8638;
|
|
|
|
iVar6 = FUN_0065d1a0();
|
|
|
|
*piVar7 = iVar6;
|
|
|
|
}
|
|
|
|
if ((int *)*piVar7 == (int *)0x0) {
|
|
|
|
FUN_0040aa50();
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
(**(code **)(*(int *)*piVar7 + 0x14))(iVar4);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((*(uint *)(iVar4 + 4) >> 2 & 1) != 0) {
|
|
|
|
if (!bVar1) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (piVar2[2] == 0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
piVar2[2] = 0;
|
|
|
|
FUN_0065d040();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
piVar7 = piVar7 + 1;
|
|
|
|
} while (piVar7 != (int *)(*piVar2 + piVar2[2] * 4));
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d910 at 0x0065D910 (size: 72) ---
|
|
|
|
|
|
void FUN_0065d910(int param_1,int param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
if (0x40 < (int)(param_2 - param_1 & 0xfffffffcU)) {
|
|
|
|
FUN_0065d6c0(param_1,param_1 + 0x40,param_3);
|
|
|
|
FUN_0065cb70(param_1 + 0x40,param_2,0,param_3);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
FUN_0065d6c0(param_1,param_2,param_3);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065d960 at 0x0065D960 (size: 106) ---
|
|
|
|
|
|
void FUN_0065d960(undefined4 *param_1,undefined4 *param_2,undefined4 *param_3,undefined4 param_4,
|
|
|
|
code *param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 uVar1;
|
|
|
|
char cVar2;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
|
|
|
|
FUN_0065d140(param_1,param_2,param_5,0,0);
|
|
|
|
for (puVar3 = param_2; puVar3 < param_3; puVar3 = puVar3 + 1) {
|
|
|
|
cVar2 = (*param_5)(*puVar3,*param_1);
|
|
|
|
if (cVar2 != '\0') {
|
|
|
|
uVar1 = *puVar3;
|
|
|
|
*puVar3 = *param_1;
|
|
|
|
FUN_0065cbd0(param_1,0,(int)param_2 - (int)param_1 >> 2,uVar1,param_5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
FUN_0065d730(param_1,param_2,param_5);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065da10 at 0x0065DA10 (size: 103) ---
|
|
|
|
|
|
void __thiscall FUN_0065da10(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
uint uVar3;
|
|
|
|
|
|
|
|
iVar1 = param_2;
|
|
|
|
if ((~*(byte *)(param_2 + 4) & 1) != 0) {
|
|
|
|
FUN_0065d210();
|
|
|
|
*(undefined4 *)(param_1 + 0x2c) = 0;
|
|
|
|
}
|
|
|
|
FUN_0065d450(¶m_2,param_1 + 8,iVar1);
|
|
|
|
FUN_0065d800(¶m_2,(int *)(param_1 + 0x18),iVar1);
|
|
|
|
if ((~*(byte *)(iVar1 + 4) & 1) != 0) {
|
|
|
|
uVar2 = *(uint *)(param_1 + 0x20);
|
|
|
|
uVar3 = 0;
|
|
|
|
if (uVar2 != 0) {
|
|
|
|
do {
|
|
|
|
iVar1 = uVar3 * 4;
|
|
|
|
uVar3 = uVar3 + 1;
|
|
|
|
*(int *)(*(int *)(*(int *)(param_1 + 0x18) + iVar1) + 0x2c) = param_1;
|
|
|
|
} while (uVar3 < uVar2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065da80 at 0x0065DA80 (size: 134) ---
|
|
|
|
|
|
void FUN_0065da80(int param_1,int param_2,undefined4 param_3,int param_4,undefined4 param_5)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 *puVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
if (0x40 < (int)(param_2 - param_1 & 0xfffffffcU)) {
|
|
|
|
while (param_4 != 0) {
|
|
|
|
param_4 = param_4 + -1;
|
|
|
|
puVar1 = (undefined4 *)
|
|
|
|
FUN_0065c900(param_1,param_1 + ((param_2 - param_1 >> 2) -
|
|
|
|
(param_2 - param_1 >> 0x1f) >> 1) * 4,param_2 + -4);
|
|
|
|
iVar2 = FUN_0065d0d0(param_1,param_2,*puVar1,param_5);
|
|
|
|
FUN_0065da80(iVar2,param_2,0,param_4,param_5);
|
|
|
|
param_2 = iVar2;
|
|
|
|
if ((int)(iVar2 - param_1 & 0xfffffffcU) < 0x41) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
FUN_0065d960(param_1,param_2,param_2,0,param_5);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065db10 at 0x0065DB10 (size: 76) ---
|
|
|
|
|
|
void FUN_0065db10(int param_1,int param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
if (param_1 != param_2) {
|
|
|
|
iVar2 = 0;
|
|
|
|
for (iVar1 = param_2 - param_1 >> 2; iVar1 != 1; iVar1 = iVar1 >> 1) {
|
|
|
|
iVar2 = iVar2 + 1;
|
|
|
|
}
|
|
|
|
FUN_0065da80(param_1,param_2,0,iVar2 * 2,param_3);
|
|
|
|
FUN_0065d910(param_1,param_2,param_3);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065db80 at 0x0065DB80 (size: 678) ---
|
|
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x0065dce6) */
|
|
|
|
/* WARNING: Removing unreachable block (ram,0x0065dd89) */
|
|
|
|
|
|
|
|
ulonglong FUN_0065db80(byte *param_1,undefined4 *param_2,uint param_3,uint param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
ulonglong uVar1;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
int *piVar4;
|
|
|
|
uint extraout_ECX;
|
|
|
|
undefined4 unaff_EBX;
|
|
|
|
uint uVar5;
|
|
|
|
byte *pbVar6;
|
|
|
|
ulonglong uVar7;
|
|
|
|
longlong lVar8;
|
|
|
|
byte local_21;
|
|
|
|
int local_20;
|
|
|
|
|
|
|
|
local_21 = *param_1;
|
|
|
|
uVar1 = 0;
|
|
|
|
iVar2 = isspace((uint)local_21);
|
|
|
|
pbVar6 = param_1;
|
|
|
|
while (pbVar6 = pbVar6 + 1, iVar2 != 0) {
|
|
|
|
local_21 = *pbVar6;
|
|
|
|
iVar2 = isspace((uint)local_21);
|
|
|
|
}
|
|
|
|
if (local_21 == 0x2d) {
|
|
|
|
local_21 = *pbVar6;
|
|
|
|
param_4 = param_4 | 2;
|
|
|
|
LAB_0065dbe7:
|
|
|
|
pbVar6 = pbVar6 + 1;
|
|
|
|
}
|
|
|
|
else if (local_21 == 0x2b) {
|
|
|
|
local_21 = *pbVar6;
|
|
|
|
goto LAB_0065dbe7;
|
|
|
|
}
|
|
|
|
iVar2 = CONCAT31((int3)((uint)unaff_EBX >> 8),local_21);
|
|
|
|
if ((((int)param_3 < 0) || (param_3 == 1)) || (0x24 < (int)param_3)) {
|
|
|
|
if (param_2 != (undefined4 *)0x0) {
|
|
|
|
*param_2 = param_1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (param_3 == 0) {
|
|
|
|
if (local_21 != 0x30) {
|
|
|
|
param_3 = 10;
|
|
|
|
goto LAB_0065dc6a;
|
|
|
|
}
|
|
|
|
if ((*pbVar6 != 0x78) && (*pbVar6 != 0x58)) {
|
|
|
|
param_3 = 8;
|
|
|
|
goto LAB_0065dc6a;
|
|
|
|
}
|
|
|
|
param_3 = 0x10;
|
|
|
|
}
|
|
|
|
else if ((param_3 != 0x10) || (local_21 != 0x30)) goto LAB_0065dc6a;
|
|
|
|
if ((*pbVar6 == 0x78) || (*pbVar6 == 0x58)) {
|
|
|
|
local_21 = pbVar6[1];
|
|
|
|
pbVar6 = pbVar6 + 2;
|
|
|
|
}
|
|
|
|
LAB_0065dc6a:
|
|
|
|
uVar7 = __aulldvrm(0xffffffff,0xffffffff,param_3,(int)param_3 >> 0x1f);
|
|
|
|
do {
|
|
|
|
iVar3 = isdigit((uint)local_21);
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
iVar3 = isalpha((uint)local_21);
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
LAB_0065dd50:
|
|
|
|
pbVar6 = pbVar6 + -1;
|
|
|
|
if ((param_4 & 8) == 0) {
|
|
|
|
if (param_2 != (undefined4 *)0x0) {
|
|
|
|
pbVar6 = param_1;
|
|
|
|
}
|
|
|
|
uVar1 = 0;
|
|
|
|
}
|
|
|
|
else if (((param_4 & 4) != 0) ||
|
|
|
|
(((param_4 & 1) == 0 &&
|
|
|
|
((((param_4 & 2) != 0 && (0x8000000000000000 < uVar1)) ||
|
|
|
|
(((param_4 & 2) == 0 &&
|
|
|
|
((0x7ffffffeffffffff < uVar1 && (0x7fffffffffffffff < uVar1)))))))))) {
|
|
|
|
piVar4 = _errno();
|
|
|
|
*piVar4 = 0x22;
|
|
|
|
if ((param_4 & 1) == 0) {
|
|
|
|
if ((param_4 & 2) == 0) {
|
|
|
|
uVar1 = 0x7fffffffffffffff;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar1 = 0x8000000000000000;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar1 = 0xffffffffffffffff;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
local_20 = (int)uVar1;
|
|
|
|
if (param_2 != (undefined4 *)0x0) {
|
|
|
|
*param_2 = pbVar6;
|
|
|
|
}
|
|
|
|
if ((param_4 & 2) != 0) {
|
|
|
|
uVar1 = CONCAT44(-((int)(uVar1 >> 0x20) + (uint)(local_20 != 0)),-local_20);
|
|
|
|
}
|
|
|
|
return uVar1;
|
|
|
|
}
|
|
|
|
iVar3 = toupper((int)(char)local_21);
|
|
|
|
uVar5 = iVar3 - 0x37;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar5 = (int)(char)local_21 - 0x30;
|
|
|
|
}
|
|
|
|
if (param_3 <= uVar5) goto LAB_0065dd50;
|
|
|
|
if ((uVar1 < uVar7) || ((uVar7 == uVar1 && ((iVar2 != 0 || (uVar5 <= extraout_ECX)))))) {
|
|
|
|
lVar8 = __allmul(param_3,(int)param_3 >> 0x1f,uVar1);
|
|
|
|
uVar1 = lVar8 + (ulonglong)uVar5;
|
|
|
|
local_21 = *pbVar6;
|
|
|
|
pbVar6 = pbVar6 + 1;
|
|
|
|
param_4 = param_4 | 8;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
local_21 = *pbVar6;
|
|
|
|
pbVar6 = pbVar6 + 1;
|
|
|
|
param_4 = param_4 | 0xc;
|
|
|
|
}
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065de30 at 0x0065DE30 (size: 26) ---
|
|
|
|
|
|
void FUN_0065de30(undefined4 param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0065db80(param_1,param_2,param_3,0);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065de50 at 0x0065DE50 (size: 26) ---
|
|
|
|
|
|
void FUN_0065de50(undefined4 param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0065db80(param_1,param_2,param_3,1);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065de70 at 0x0065DE70 (size: 433) ---
|
|
|
|
|
|
void FUN_0065de70(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e030 at 0x0065E030 (size: 69) ---
|
|
|
|
|
|
void __thiscall
|
|
|
|
FUN_0065e030(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
param_1[3] = 0;
|
|
|
|
param_1[2] = 0;
|
|
|
|
param_1[1] = 0;
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[6] = 0;
|
|
|
|
param_1[4] = 0;
|
|
|
|
param_1[0xb] = 0;
|
|
|
|
param_1[9] = 0;
|
|
|
|
param_1[8] = 0;
|
|
|
|
param_1[0xf] = 0x3f800000;
|
|
|
|
param_1[10] = 0x3f800000;
|
|
|
|
param_1[5] = 0x3f800000;
|
|
|
|
*param_1 = 0x3f800000;
|
|
|
|
param_1[0xc] = param_2;
|
|
|
|
param_1[0xd] = param_3;
|
|
|
|
param_1[0xe] = param_4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e080 at 0x0065E080 (size: 65) ---
|
|
|
|
|
|
void __thiscall FUN_0065e080(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
param_1[3] = 0;
|
|
|
|
param_1[2] = 0;
|
|
|
|
param_1[1] = 0;
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[6] = 0;
|
|
|
|
param_1[4] = 0;
|
|
|
|
param_1[0xb] = 0;
|
|
|
|
param_1[0xe] = 0;
|
|
|
|
param_1[0xd] = 0;
|
|
|
|
param_1[0xc] = 0;
|
|
|
|
param_1[0xf] = 0x3f800000;
|
|
|
|
param_1[10] = 0x3f800000;
|
|
|
|
param_1[5] = 0x3f800000;
|
|
|
|
*param_1 = 0x3f800000;
|
|
|
|
param_1[8] = param_2;
|
|
|
|
param_1[9] = param_3;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e0d0 at 0x0065E0D0 (size: 76) ---
|
|
|
|
|
|
void __thiscall FUN_0065e0d0(undefined4 *param_1,float param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
float10 fVar1;
|
|
|
|
float10 fVar2;
|
|
|
|
|
|
|
|
fVar1 = (float10)fcos((float10)param_2);
|
|
|
|
param_1[3] = 0;
|
|
|
|
param_1[2] = 0;
|
|
|
|
param_1[1] = 0;
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[4] = 0;
|
|
|
|
param_1[0xb] = 0;
|
|
|
|
param_1[8] = 0;
|
|
|
|
param_1[0xe] = 0;
|
|
|
|
param_1[0xd] = 0;
|
|
|
|
param_1[0xc] = 0;
|
|
|
|
param_1[0xf] = 0x3f800000;
|
|
|
|
*param_1 = 0x3f800000;
|
|
|
|
fVar2 = (float10)fsin((float10)param_2);
|
|
|
|
param_1[5] = (float)fVar1;
|
|
|
|
param_1[6] = (float)fVar2;
|
|
|
|
param_1[9] = (float)-fVar2;
|
|
|
|
param_1[10] = (float)fVar1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e120 at 0x0065E120 (size: 75) ---
|
|
|
|
|
|
void __thiscall FUN_0065e120(float *param_1,float param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
float10 fVar1;
|
|
|
|
float10 fVar2;
|
|
|
|
|
|
|
|
fVar1 = (float10)fcos((float10)param_2);
|
|
|
|
param_1[3] = 0.0;
|
|
|
|
param_1[1] = 0.0;
|
|
|
|
param_1[7] = 0.0;
|
|
|
|
param_1[6] = 0.0;
|
|
|
|
param_1[4] = 0.0;
|
|
|
|
param_1[0xb] = 0.0;
|
|
|
|
param_1[9] = 0.0;
|
|
|
|
param_1[0xe] = 0.0;
|
|
|
|
param_1[0xd] = 0.0;
|
|
|
|
param_1[0xc] = 0.0;
|
|
|
|
param_1[0xf] = 1.0;
|
|
|
|
param_1[5] = 1.0;
|
|
|
|
fVar2 = (float10)fsin((float10)param_2);
|
|
|
|
*param_1 = (float)fVar1;
|
|
|
|
param_1[2] = (float)-fVar2;
|
|
|
|
param_1[8] = (float)fVar2;
|
|
|
|
param_1[10] = (float)fVar1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e170 at 0x0065E170 (size: 73) ---
|
|
|
|
|
|
void __thiscall FUN_0065e170(float *param_1,float param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
float10 fVar1;
|
|
|
|
float10 fVar2;
|
|
|
|
|
|
|
|
fVar1 = (float10)fcos((float10)param_2);
|
|
|
|
param_1[3] = 0.0;
|
|
|
|
param_1[2] = 0.0;
|
|
|
|
param_1[7] = 0.0;
|
|
|
|
param_1[6] = 0.0;
|
|
|
|
param_1[0xb] = 0.0;
|
|
|
|
param_1[9] = 0.0;
|
|
|
|
param_1[8] = 0.0;
|
|
|
|
param_1[0xe] = 0.0;
|
|
|
|
param_1[0xd] = 0.0;
|
|
|
|
param_1[0xc] = 0.0;
|
|
|
|
param_1[0xf] = 1.0;
|
|
|
|
param_1[10] = 1.0;
|
|
|
|
fVar2 = (float10)fsin((float10)param_2);
|
|
|
|
*param_1 = (float)fVar1;
|
|
|
|
param_1[1] = (float)fVar2;
|
|
|
|
param_1[4] = (float)-fVar2;
|
|
|
|
param_1[5] = (float)fVar1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e1c0 at 0x0065E1C0 (size: 68) ---
|
|
|
|
|
|
void __thiscall
|
|
|
|
FUN_0065e1c0(undefined4 *param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
param_1[3] = 0;
|
|
|
|
param_1[2] = 0;
|
|
|
|
param_1[1] = 0;
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[6] = 0;
|
|
|
|
param_1[4] = 0;
|
|
|
|
param_1[0xb] = 0;
|
|
|
|
param_1[9] = 0;
|
|
|
|
param_1[8] = 0;
|
|
|
|
param_1[0xe] = 0;
|
|
|
|
param_1[0xd] = 0;
|
|
|
|
param_1[0xc] = 0;
|
|
|
|
*param_1 = param_2;
|
|
|
|
param_1[0xf] = 0x3f800000;
|
|
|
|
param_1[5] = param_3;
|
|
|
|
param_1[10] = param_4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e210 at 0x0065E210 (size: 901) ---
|
|
|
|
|
|
void __thiscall FUN_0065e210(float *param_1,float *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
float fVar1;
|
|
|
|
float fVar2;
|
|
|
|
float fVar3;
|
|
|
|
float fVar4;
|
|
|
|
float fVar5;
|
|
|
|
float fVar6;
|
|
|
|
float fVar7;
|
|
|
|
float fVar8;
|
|
|
|
float fVar9;
|
|
|
|
float fVar10;
|
|
|
|
float fVar11;
|
|
|
|
float fVar12;
|
|
|
|
float fVar13;
|
|
|
|
float fVar14;
|
|
|
|
float fVar15;
|
|
|
|
float fVar16;
|
|
|
|
float fVar17;
|
|
|
|
float fVar18;
|
|
|
|
float fVar19;
|
|
|
|
float fVar20;
|
|
|
|
float fVar21;
|
|
|
|
float fVar22;
|
|
|
|
|
|
|
|
fVar7 = param_2[6];
|
|
|
|
fVar1 = *param_2;
|
|
|
|
fVar2 = param_2[1];
|
|
|
|
fVar8 = param_2[7];
|
|
|
|
fVar3 = param_2[2];
|
|
|
|
fVar4 = param_2[3];
|
|
|
|
fVar9 = param_2[8];
|
|
|
|
fVar5 = param_2[4];
|
|
|
|
fVar6 = param_2[5];
|
|
|
|
fVar10 = param_2[9];
|
|
|
|
fVar11 = param_2[10];
|
|
|
|
fVar12 = param_2[0xb];
|
|
|
|
fVar13 = param_2[0xc];
|
|
|
|
fVar14 = param_2[0xd];
|
|
|
|
fVar15 = param_2[0xe];
|
|
|
|
fVar16 = param_2[0xf];
|
|
|
|
fVar17 = fVar16 * fVar11 - fVar15 * fVar12;
|
|
|
|
fVar18 = fVar16 * fVar10 - fVar14 * fVar12;
|
|
|
|
fVar19 = fVar15 * fVar10 - fVar14 * fVar11;
|
|
|
|
*param_1 = fVar19 * fVar8 + (fVar17 * fVar6 - fVar18 * fVar7);
|
|
|
|
fVar20 = fVar16 * fVar9 - fVar13 * fVar12;
|
|
|
|
fVar21 = fVar15 * fVar9 - fVar13 * fVar11;
|
|
|
|
param_1[4] = -(fVar21 * fVar8 + (fVar17 * fVar5 - fVar20 * fVar7));
|
|
|
|
fVar22 = fVar14 * fVar9 - fVar13 * fVar10;
|
|
|
|
param_1[8] = fVar22 * fVar8 + (fVar18 * fVar5 - fVar20 * fVar6);
|
|
|
|
param_1[0xc] = -(fVar22 * fVar7 + (fVar19 * fVar5 - fVar21 * fVar6));
|
|
|
|
param_1[1] = -(fVar19 * fVar4 + (fVar17 * fVar2 - fVar18 * fVar3));
|
|
|
|
param_1[5] = fVar21 * fVar4 + (fVar17 * fVar1 - fVar20 * fVar3);
|
|
|
|
param_1[9] = -(fVar22 * fVar4 + (fVar18 * fVar1 - fVar20 * fVar2));
|
|
|
|
param_1[0xd] = fVar22 * fVar3 + (fVar19 * fVar1 - fVar21 * fVar2);
|
|
|
|
fVar19 = fVar16 * fVar7 - fVar15 * fVar8;
|
|
|
|
fVar18 = fVar16 * fVar6 - fVar14 * fVar8;
|
|
|
|
fVar17 = fVar15 * fVar6 - fVar14 * fVar7;
|
|
|
|
param_1[2] = fVar17 * fVar4 + (fVar19 * fVar2 - fVar18 * fVar3);
|
|
|
|
fVar16 = fVar16 * fVar5 - fVar13 * fVar8;
|
|
|
|
fVar15 = fVar15 * fVar5 - fVar13 * fVar7;
|
|
|
|
param_1[6] = -(fVar15 * fVar4 + (fVar19 * fVar1 - fVar16 * fVar3));
|
|
|
|
fVar13 = fVar14 * fVar5 - fVar13 * fVar6;
|
|
|
|
param_1[10] = fVar13 * fVar4 + (fVar18 * fVar1 - fVar16 * fVar2);
|
|
|
|
param_1[0xe] = -(fVar13 * fVar3 + (fVar17 * fVar1 - fVar15 * fVar2));
|
|
|
|
fVar15 = fVar12 * fVar7 - fVar11 * fVar8;
|
|
|
|
fVar14 = fVar12 * fVar6 - fVar10 * fVar8;
|
|
|
|
fVar13 = fVar11 * fVar6 - fVar10 * fVar7;
|
|
|
|
param_1[3] = -(fVar13 * fVar4 + (fVar15 * fVar2 - fVar14 * fVar3));
|
|
|
|
fVar8 = fVar12 * fVar5 - fVar9 * fVar8;
|
|
|
|
fVar7 = fVar11 * fVar5 - fVar9 * fVar7;
|
|
|
|
param_1[7] = fVar7 * fVar4 + (fVar15 * fVar1 - fVar8 * fVar3);
|
|
|
|
fVar5 = fVar10 * fVar5 - fVar9 * fVar6;
|
|
|
|
param_1[0xb] = -(fVar5 * fVar4 + (fVar14 * fVar1 - fVar8 * fVar2));
|
|
|
|
param_1[0xf] = fVar5 * fVar3 + (fVar13 * fVar1 - fVar7 * fVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e5a0 at 0x0065E5A0 (size: 445) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
undefined4 FUN_0065e5a0(float *param_1,float *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
|
|
|
|
if ((((ABS(*param_1 - *param_2) < _DAT_007feaf8 != (ABS(*param_1 - *param_2) == _DAT_007feaf8)) &&
|
|
|
|
(ABS(param_1[4] - param_2[4]) < _DAT_007feaf8 !=
|
|
|
|
(ABS(param_1[4] - param_2[4]) == _DAT_007feaf8))) &&
|
|
|
|
(ABS(param_1[8] - param_2[8]) < _DAT_007feaf8 !=
|
|
|
|
(ABS(param_1[8] - param_2[8]) == _DAT_007feaf8))) &&
|
|
|
|
((ABS(param_1[0xc] - param_2[0xc]) < _DAT_007feaf8 !=
|
|
|
|
(ABS(param_1[0xc] - param_2[0xc]) == _DAT_007feaf8) &&
|
|
|
|
(ABS(param_1[1] - param_2[1]) < _DAT_007feaf8 !=
|
|
|
|
(ABS(param_1[1] - param_2[1]) == _DAT_007feaf8))))) {
|
|
|
|
cVar1 = FUN_0043d870(param_1[5],param_2[5],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[9],param_2[9],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[0xd],param_2[0xd],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[2],param_2[2],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[6],param_2[6],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[10],param_2[10],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[0xe],param_2[0xe],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[3],param_2[3],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[7],param_2[7],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[0xb],param_2[0xb],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
cVar1 = FUN_0043d870(param_1[0xf],param_2[0xf],0x3951b717);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e760 at 0x0065E760 (size: 109) ---
|
|
|
|
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
|
|
|
|
|
|
float10 FUN_0065e760(undefined4 param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
float *pfVar1;
|
|
|
|
int extraout_ECX;
|
|
|
|
int iVar2;
|
|
|
|
float10 fVar3;
|
|
|
|
float10 fVar4;
|
|
|
|
|
|
|
|
FUN_0065e210(param_1);
|
|
|
|
fVar3 = (float10)FUN_0065de70();
|
|
|
|
if (ABS(fVar3) < (float10)_DAT_007feaf8) {
|
|
|
|
return (float10)DAT_00796344;
|
|
|
|
}
|
|
|
|
fVar4 = (float10)_DAT_007938c0 / fVar3;
|
|
|
|
iVar2 = 4;
|
|
|
|
pfVar1 = (float *)(extraout_ECX + 8);
|
|
|
|
do {
|
|
|
|
iVar2 = iVar2 + -1;
|
|
|
|
pfVar1[-2] = (float)(fVar4 * (float10)pfVar1[-2]);
|
|
|
|
pfVar1[-1] = (float)(fVar4 * (float10)pfVar1[-1]);
|
|
|
|
*pfVar1 = (float)(fVar4 * (float10)*pfVar1);
|
|
|
|
pfVar1[1] = (float)(fVar4 * (float10)pfVar1[1]);
|
|
|
|
pfVar1 = pfVar1 + 4;
|
|
|
|
} while (iVar2 != 0);
|
|
|
|
return fVar3;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e850 at 0x0065E850 (size: 60) ---
|
|
|
|
|
|
void __fastcall FUN_0065e850(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
int local_4;
|
|
|
|
|
|
|
|
*(undefined1 *)(param_1 + 0x80) = 1;
|
|
|
|
if ((~(byte)(*(uint *)(param_1 + 4) >> 2) & 1) != 0) {
|
|
|
|
local_4 = param_1;
|
|
|
|
cVar1 = FUN_0040ab90(*(undefined4 *)(param_1 + 0x2c),&local_4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
FUN_004106f0(*(undefined4 *)(param_1 + 0x28),param_1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e890 at 0x0065E890 (size: 18) ---
|
|
|
|
|
|
void __thiscall FUN_0065e890(undefined4 *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = param_2;
|
|
|
|
param_1[1] = param_3;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e8b0 at 0x0065E8B0 (size: 31) ---
|
|
|
|
|
|
undefined4 * __fastcall FUN_0065e8b0(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
param_1[7] = 0;
|
|
|
|
param_1[8] = 0;
|
|
|
|
*param_1 = &PTR_FUN_007feb0c;
|
|
|
|
InitializeCriticalSection((LPCRITICAL_SECTION)(param_1 + 1));
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e8d0 at 0x0065E8D0 (size: 17) ---
|
|
|
|
|
|
void __fastcall FUN_0065e8d0(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_007feb0c;
|
|
|
|
DeleteCriticalSection((LPCRITICAL_SECTION)(param_1 + 1));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e8f0 at 0x0065E8F0 (size: 28) ---
|
|
|
|
|
|
void __fastcall FUN_0065e8f0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
DWORD DVar1;
|
|
|
|
|
|
|
|
EnterCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
|
|
|
|
DVar1 = GetCurrentThreadId();
|
|
|
|
*(int *)(param_1 + 0x20) = *(int *)(param_1 + 0x20) + 1;
|
|
|
|
*(DWORD *)(param_1 + 0x1c) = DVar1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e910 at 0x0065E910 (size: 24) ---
|
|
|
|
|
|
void __fastcall FUN_0065e910(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int *piVar1;
|
|
|
|
|
|
|
|
piVar1 = (int *)(param_1 + 0x20);
|
|
|
|
*piVar1 = *piVar1 + -1;
|
|
|
|
if (*piVar1 == 0) {
|
|
|
|
*(undefined4 *)(param_1 + 0x1c) = 0;
|
|
|
|
}
|
|
|
|
LeaveCriticalSection((LPCRITICAL_SECTION)(param_1 + 4));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e930 at 0x0065E930 (size: 41) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065e930(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_007feb0c;
|
|
|
|
DeleteCriticalSection((LPCRITICAL_SECTION)(param_1 + 1));
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e960 at 0x0065E960 (size: 52) ---
|
|
|
|
|
|
void __fastcall FUN_0065e960(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 *local_4;
|
|
|
|
|
|
|
|
*param_1 = &PTR_LAB_007feb14;
|
|
|
|
local_4 = param_1;
|
|
|
|
if (*(char *)(param_1 + 3) != '\0') {
|
|
|
|
local_4 = (undefined4 *)0x0;
|
|
|
|
GetExitCodeThread((HANDLE)param_1[1],(LPDWORD)&local_4);
|
|
|
|
}
|
|
|
|
CloseHandle((HANDLE)param_1[1]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065e9a0 at 0x0065E9A0 (size: 51) ---
|
|
|
|
|
|
undefined4 __fastcall FUN_0065e9a0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
DWORD DVar2;
|
|
|
|
|
|
|
|
DVar2 = ResumeThread(*(HANDLE *)(param_1 + 4));
|
|
|
|
if (DVar2 == 1) {
|
|
|
|
cVar1 = *(char *)(param_1 + 0xe);
|
|
|
|
while (cVar1 == '\0') {
|
|
|
|
Sleep(0);
|
|
|
|
cVar1 = *(char *)(param_1 + 0xe);
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ea50 at 0x0065EA50 (size: 57) ---
|
|
|
|
|
|
void FUN_0065ea50(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
|
|
|
|
*(undefined1 *)(param_1 + 3) = 1;
|
|
|
|
*(undefined1 *)((int)param_1 + 0xe) = 1;
|
|
|
|
cVar1 = FUN_00405e90(0x400);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
FUN_00405fa0(1,8);
|
|
|
|
}
|
|
|
|
(**(code **)(*param_1 + 4))();
|
|
|
|
*(undefined1 *)(param_1 + 3) = 0;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ea90 at 0x0065EA90 (size: 73) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065ea90(undefined4 *param_1,SIZE_T param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
HANDLE pvVar1;
|
|
|
|
|
|
|
|
*param_1 = &PTR_LAB_007feb14;
|
|
|
|
param_1[1] = 0;
|
|
|
|
*(undefined1 *)(param_1 + 3) = 0;
|
|
|
|
*(undefined1 *)((int)param_1 + 0xd) = 0;
|
|
|
|
*(undefined1 *)((int)param_1 + 0xe) = 0;
|
|
|
|
pvVar1 = CreateThread((LPSECURITY_ATTRIBUTES)0x0,param_2,FUN_0065ea50,param_1,4,param_1 + 2);
|
|
|
|
param_1[1] = pvVar1;
|
|
|
|
if (pvVar1 == (HANDLE)0x0) {
|
|
|
|
GetLastError();
|
|
|
|
FUN_00661190();
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eae0 at 0x0065EAE0 (size: 29) ---
|
|
|
|
|
|
undefined4 * __fastcall FUN_0065eae0(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
HANDLE pvVar1;
|
|
|
|
|
|
|
|
*param_1 = 0;
|
|
|
|
pvVar1 = CreateEventA((LPSECURITY_ATTRIBUTES)0x0,0,0,(LPCSTR)0x0);
|
|
|
|
*param_1 = pvVar1;
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb00 at 0x0065EB00 (size: 24) ---
|
|
|
|
|
|
void __fastcall FUN_0065eb00(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
if ((HANDLE)*param_1 != (HANDLE)0x0) {
|
|
|
|
CloseHandle((HANDLE)*param_1);
|
|
|
|
*param_1 = 0;
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb20 at 0x0065EB20 (size: 15) ---
|
|
|
|
|
|
bool __fastcall FUN_0065eb20(undefined4 *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
BOOL BVar1;
|
|
|
|
|
|
|
|
BVar1 = SetEvent((HANDLE)*param_1);
|
|
|
|
return BVar1 != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb30 at 0x0065EB30 (size: 28) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065eb30(undefined4 *param_1,DWORD param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
DWORD DVar1;
|
|
|
|
|
|
|
|
DVar1 = WaitForSingleObject((HANDLE)*param_1,param_2);
|
|
|
|
if (DVar1 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb50 at 0x0065EB50 (size: 8) ---
|
|
|
|
|
|
void __fastcall FUN_0065eb50(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
/* WARNING: Could not recover jumptable at 0x0065eb55. Too many branches */
|
|
|
|
/* WARNING: Treating indirect jump as call */
|
|
|
|
(**(code **)(**(int **)(param_1 + 0x14) + 0x18))();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb60 at 0x0065EB60 (size: 8) ---
|
|
|
|
|
|
void __fastcall FUN_0065eb60(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
/* WARNING: Could not recover jumptable at 0x0065eb65. Too many branches */
|
|
|
|
/* WARNING: Treating indirect jump as call */
|
|
|
|
(**(code **)(**(int **)(param_1 + 0x14) + 0x1c))();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eb70 at 0x0065EB70 (size: 81) ---
|
|
|
|
|
|
void __thiscall FUN_0065eb70(int param_1,undefined4 *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 *puVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
|
|
|
|
puVar1 = *(undefined4 **)(param_1 + 0x170);
|
|
|
|
if (puVar1 != param_2) {
|
|
|
|
if (puVar1 != (undefined4 *)0x0) {
|
|
|
|
LVar2 = InterlockedDecrement(puVar1 + 1);
|
|
|
|
if ((LVar2 == 0) && (puVar1 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar1)(1);
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1 + 0x170) = 0;
|
|
|
|
}
|
|
|
|
*(undefined4 **)(param_1 + 0x170) = param_2;
|
|
|
|
InterlockedIncrement(param_2 + 1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ebd0 at 0x0065EBD0 (size: 64) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065ebd0(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_007feb24;
|
|
|
|
if ((undefined4 *)param_1[0x18] != param_1 + 1) {
|
|
|
|
operator_delete__((undefined4 *)param_1[0x18]);
|
|
|
|
}
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ec10 at 0x0065EC10 (size: 64) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065ec10(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_007feb28;
|
|
|
|
if ((undefined4 *)param_1[0x18] != param_1 + 1) {
|
|
|
|
operator_delete__((undefined4 *)param_1[0x18]);
|
|
|
|
}
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ec50 at 0x0065EC50 (size: 64) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065ec50(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
*param_1 = &PTR_FUN_007feb2c;
|
|
|
|
if ((undefined4 *)param_1[0x18] != param_1 + 1) {
|
|
|
|
operator_delete__((undefined4 *)param_1[0x18]);
|
|
|
|
}
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ec90 at 0x0065EC90 (size: 76) ---
|
|
|
|
|
|
void __thiscall FUN_0065ec90(int param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined4 *puVar1;
|
|
|
|
uint uVar2;
|
|
|
|
int iVar3;
|
|
|
|
|
|
|
|
*(uint *)(param_1 + 0x68) = param_2;
|
|
|
|
if (param_2 < 0x18) {
|
|
|
|
puVar1 = (undefined4 *)(param_1 + 4);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
puVar1 = (undefined4 *)thunk_FUN_005df0f5(param_2 * 4);
|
|
|
|
}
|
|
|
|
*(undefined4 **)(param_1 + 100) = puVar1 + *(uint *)(param_1 + 0x68);
|
|
|
|
*(undefined4 **)(param_1 + 0x60) = puVar1;
|
|
|
|
for (uVar2 = *(uint *)(param_1 + 0x68) & 0x3fffffff; uVar2 != 0; uVar2 = uVar2 - 1) {
|
|
|
|
*puVar1 = 0;
|
|
|
|
puVar1 = puVar1 + 1;
|
|
|
|
}
|
|
|
|
for (iVar3 = 0; iVar3 != 0; iVar3 = iVar3 + -1) {
|
|
|
|
*(undefined1 *)puVar1 = 0;
|
|
|
|
puVar1 = (undefined4 *)((int)puVar1 + 1);
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ece0 at 0x0065ECE0 (size: 32) ---
|
|
|
|
|
|
void __thiscall FUN_0065ece0(undefined4 *param_1,undefined4 param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
param_1[1] = param_2;
|
|
|
|
param_1[2] = 0;
|
|
|
|
param_1[3] = 0;
|
|
|
|
param_1[4] = 0;
|
|
|
|
*param_1 = &PTR_FUN_007feb30;
|
|
|
|
param_1[5] = 0;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ed80 at 0x0065ED80 (size: 91) ---
|
|
|
|
|
|
void __thiscall FUN_0065ed80(int param_1,int *param_2,int *param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
int iVar3;
|
|
|
|
char cVar4;
|
|
|
|
uint uVar5;
|
|
|
|
|
|
|
|
iVar1 = *param_3;
|
|
|
|
uVar5 = *(uint *)(iVar1 + -8);
|
|
|
|
uVar2 = *(uint *)(param_1 + 0x68);
|
|
|
|
if (uVar5 == 0xffffffff) {
|
|
|
|
uVar5 = FUN_0040a980(iVar1);
|
|
|
|
*(uint *)(iVar1 + -8) = uVar5;
|
|
|
|
}
|
|
|
|
uVar5 = uVar5 % uVar2;
|
|
|
|
iVar1 = *(int *)(param_1 + 0x60);
|
|
|
|
iVar3 = *(int *)(iVar1 + uVar5 * 4);
|
|
|
|
while ((iVar3 != 0 && (cVar4 = FUN_00401920(param_3), cVar4 == '\0'))) {
|
|
|
|
iVar3 = *(int *)(iVar3 + 4);
|
|
|
|
}
|
|
|
|
*param_2 = param_1;
|
|
|
|
param_2[2] = iVar3;
|
|
|
|
param_2[1] = iVar1 + uVar5 * 4;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ede0 at 0x0065EDE0 (size: 45) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065ede0(int param_1,uint *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
int iVar2;
|
|
|
|
bool bVar3;
|
|
|
|
|
|
|
|
uVar1 = *param_2;
|
|
|
|
iVar2 = *(int *)(*(int *)(param_1 + 0x60) + (uVar1 % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
bVar3 = iVar2 == 0;
|
|
|
|
if (!bVar3) {
|
|
|
|
do {
|
|
|
|
if (*(uint *)(iVar2 + 4) == uVar1) break;
|
|
|
|
iVar2 = *(int *)(iVar2 + 8);
|
|
|
|
} while (iVar2 != 0);
|
|
|
|
bVar3 = iVar2 == 0;
|
|
|
|
}
|
|
|
|
return CONCAT31((int3)((ulonglong)uVar1 / (ulonglong)*(uint *)(param_1 + 0x68) >> 8),!bVar3);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ee10 at 0x0065EE10 (size: 39) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065ee10(undefined4 *param_1,byte param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_004020c0();
|
|
|
|
*param_1 = &PTR_FUN_007952f4;
|
|
|
|
if ((param_2 & 1) != 0) {
|
|
|
|
operator_delete(param_1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ee40 at 0x0065EE40 (size: 164) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065ee40(int *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined8 uVar1;
|
|
|
|
int *piVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
int iVar4;
|
|
|
|
|
|
|
|
iVar4 = *(int *)(param_1[0x38] + (param_2 % (uint)param_1[0x3a]) * 4);
|
|
|
|
if (iVar4 != 0) {
|
|
|
|
while (*(uint *)(iVar4 + 8) != param_2) {
|
|
|
|
iVar4 = *(int *)(iVar4 + 0xc);
|
|
|
|
if (iVar4 == 0) {
|
|
|
|
return 5;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (iVar4 != 0) {
|
|
|
|
uVar1 = *(undefined8 *)(param_1[0x5c] + 0x60);
|
|
|
|
*(undefined4 *)(iVar4 + 0x24) = 1;
|
|
|
|
*(undefined8 *)(iVar4 + 0x38) = uVar1;
|
|
|
|
(**(code **)(*param_1 + 8))(param_2);
|
|
|
|
if ((param_1[0x1c] != 0) && (piVar2 = (int *)param_1[0x1d], piVar2 != (int *)0x0)) {
|
|
|
|
while (piVar2 + -3 != (int *)0x0) {
|
|
|
|
(**(code **)(piVar2[-3] + 4))(param_2);
|
|
|
|
piVar2 = (int *)*piVar2;
|
|
|
|
if ((piVar2 == (int *)0x0) || (piVar2 == (int *)0x8)) break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar3 = (**(code **)(*param_1 + 0x18))(param_2,param_2);
|
|
|
|
return uVar3;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return 5;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065eef0 at 0x0065EEF0 (size: 68) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065eef0(int param_1,uint param_2,int param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 0xe0) + (param_2 % *(uint *)(param_1 + 0xe8)) * 4);
|
|
|
|
while( true ) {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 8) == param_2) break;
|
|
|
|
iVar1 = *(int *)(iVar1 + 0xc);
|
|
|
|
}
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
return *(undefined4 *)(*(int *)(iVar1 + 0x18) + param_3 * 4);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ef40 at 0x0065EF40 (size: 74) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065ef40(int param_1,uint param_2,int param_3,undefined4 param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 0xe0) + (param_2 % *(uint *)(param_1 + 0xe8)) * 4);
|
|
|
|
while( true ) {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 8) == param_2) break;
|
|
|
|
iVar1 = *(int *)(iVar1 + 0xc);
|
|
|
|
}
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
*(undefined4 *)(*(int *)(iVar1 + 0x18) + param_3 * 4) = param_4;
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f170 at 0x0065F170 (size: 82) ---
|
|
|
|
|
|
void __fastcall FUN_0065f170(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
uint local_8;
|
|
|
|
undefined4 local_4;
|
|
|
|
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
local_4 = *(undefined4 *)(param_1 + 0x68);
|
|
|
|
local_8 = local_8 & 0xffffff00;
|
|
|
|
puVar2 = (undefined4 *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_8,0);
|
|
|
|
if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) {
|
|
|
|
puVar2 = puVar2 + 1;
|
|
|
|
}
|
|
|
|
FUN_0065f520(*puVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f1d0 at 0x0065F1D0 (size: 82) ---
|
|
|
|
|
|
void __fastcall FUN_0065f1d0(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
uint local_8;
|
|
|
|
undefined4 local_4;
|
|
|
|
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
local_4 = *(undefined4 *)(param_1 + 0x68);
|
|
|
|
local_8 = local_8 & 0xffffff00;
|
|
|
|
puVar2 = (undefined4 *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_8,0);
|
|
|
|
if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) {
|
|
|
|
puVar2 = puVar2 + 1;
|
|
|
|
}
|
|
|
|
FUN_0065f610(*puVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f230 at 0x0065F230 (size: 8) ---
|
|
|
|
|
|
void FUN_0065f230(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0065eef0();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f240 at 0x0065F240 (size: 8) ---
|
|
|
|
|
|
void FUN_0065f240(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
FUN_0065ef40();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f250 at 0x0065F250 (size: 67) ---
|
|
|
|
|
|
void __fastcall FUN_0065f250(int *param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
int unaff_ESI;
|
|
|
|
int *unaff_retaddr;
|
|
|
|
int *local_4;
|
|
|
|
|
|
|
|
local_4 = param_1;
|
|
|
|
(**(code **)(*param_1 + 4))(&local_4);
|
|
|
|
if (unaff_ESI != DAT_008f86a0) {
|
|
|
|
FUN_0065ee40(unaff_ESI,0x80000100);
|
|
|
|
*unaff_retaddr = unaff_ESI;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
*unaff_retaddr = unaff_ESI;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f2a0 at 0x0065F2A0 (size: 151) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065f2a0(undefined4 *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
uint *puVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
uint uVar4;
|
|
|
|
int iVar5;
|
|
|
|
undefined4 *puVar6;
|
|
|
|
uint local_4;
|
|
|
|
|
|
|
|
local_4 = param_2;
|
|
|
|
param_2 = param_2 & 0xffffff00;
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
*param_1 = &PTR_FUN_007feb24;
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
puVar2 = (uint *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,param_2,0);
|
|
|
|
if (puVar2 == (uint *)puVar1) {
|
|
|
|
puVar2 = puVar2 + -1;
|
|
|
|
}
|
|
|
|
uVar4 = *puVar2;
|
|
|
|
param_1[0x1a] = uVar4;
|
|
|
|
if (uVar4 < 0x18) {
|
|
|
|
param_1[0x18] = param_1 + 1;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar3 = thunk_FUN_005df0f5(uVar4 * 4);
|
|
|
|
param_1[0x18] = uVar3;
|
|
|
|
}
|
|
|
|
param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a];
|
|
|
|
puVar6 = (undefined4 *)param_1[0x18];
|
|
|
|
for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
|
|
*puVar6 = 0;
|
|
|
|
puVar6 = puVar6 + 1;
|
|
|
|
}
|
|
|
|
for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) {
|
|
|
|
*(undefined1 *)puVar6 = 0;
|
|
|
|
puVar6 = (undefined4 *)((int)puVar6 + 1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f340 at 0x0065F340 (size: 151) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065f340(undefined4 *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
uint *puVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
uint uVar4;
|
|
|
|
int iVar5;
|
|
|
|
undefined4 *puVar6;
|
|
|
|
uint local_4;
|
|
|
|
|
|
|
|
local_4 = param_2;
|
|
|
|
param_2 = param_2 & 0xffffff00;
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
*param_1 = &PTR_FUN_007feb28;
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
puVar2 = (uint *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,param_2,0);
|
|
|
|
if (puVar2 == (uint *)puVar1) {
|
|
|
|
puVar2 = puVar2 + -1;
|
|
|
|
}
|
|
|
|
uVar4 = *puVar2;
|
|
|
|
param_1[0x1a] = uVar4;
|
|
|
|
if (uVar4 < 0x18) {
|
|
|
|
param_1[0x18] = param_1 + 1;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar3 = thunk_FUN_005df0f5(uVar4 * 4);
|
|
|
|
param_1[0x18] = uVar3;
|
|
|
|
}
|
|
|
|
param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a];
|
|
|
|
puVar6 = (undefined4 *)param_1[0x18];
|
|
|
|
for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
|
|
*puVar6 = 0;
|
|
|
|
puVar6 = puVar6 + 1;
|
|
|
|
}
|
|
|
|
for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) {
|
|
|
|
*(undefined1 *)puVar6 = 0;
|
|
|
|
puVar6 = (undefined4 *)((int)puVar6 + 1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f3e0 at 0x0065F3E0 (size: 151) ---
|
|
|
|
|
|
undefined4 * __thiscall FUN_0065f3e0(undefined4 *param_1,uint param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
uint *puVar2;
|
|
|
|
undefined4 uVar3;
|
|
|
|
uint uVar4;
|
|
|
|
int iVar5;
|
|
|
|
undefined4 *puVar6;
|
|
|
|
uint local_4;
|
|
|
|
|
|
|
|
local_4 = param_2;
|
|
|
|
param_2 = param_2 & 0xffffff00;
|
|
|
|
param_1[0x18] = 0;
|
|
|
|
param_1[0x19] = 0;
|
|
|
|
param_1[0x1a] = 0;
|
|
|
|
param_1[0x1b] = 0;
|
|
|
|
*param_1 = &PTR_FUN_007feb2c;
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
puVar2 = (uint *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,param_2,0);
|
|
|
|
if (puVar2 == (uint *)puVar1) {
|
|
|
|
puVar2 = puVar2 + -1;
|
|
|
|
}
|
|
|
|
uVar4 = *puVar2;
|
|
|
|
param_1[0x1a] = uVar4;
|
|
|
|
if (uVar4 < 0x18) {
|
|
|
|
param_1[0x18] = param_1 + 1;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
uVar3 = thunk_FUN_005df0f5(uVar4 * 4);
|
|
|
|
param_1[0x18] = uVar3;
|
|
|
|
}
|
|
|
|
param_1[0x19] = (undefined4 *)param_1[0x18] + param_1[0x1a];
|
|
|
|
puVar6 = (undefined4 *)param_1[0x18];
|
|
|
|
for (uVar4 = param_1[0x1a] & 0x3fffffff; uVar4 != 0; uVar4 = uVar4 - 1) {
|
|
|
|
*puVar6 = 0;
|
|
|
|
puVar6 = puVar6 + 1;
|
|
|
|
}
|
|
|
|
for (iVar5 = 0; iVar5 != 0; iVar5 = iVar5 + -1) {
|
|
|
|
*(undefined1 *)puVar6 = 0;
|
|
|
|
puVar6 = (undefined4 *)((int)puVar6 + 1);
|
|
|
|
}
|
|
|
|
return param_1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f480 at 0x0065F480 (size: 82) ---
|
|
|
|
|
|
void __fastcall FUN_0065f480(int param_1)
|
|
|
|
|
|
|
|
{
|
|
|
|
undefined *puVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
uint local_8;
|
|
|
|
undefined4 local_4;
|
|
|
|
|
|
|
|
puVar1 = PTR_DAT_00818558;
|
|
|
|
local_4 = *(undefined4 *)(param_1 + 0x68);
|
|
|
|
local_8 = local_8 & 0xffffff00;
|
|
|
|
puVar2 = (undefined4 *)FUN_004064a0(PTR_DAT_00818554,PTR_DAT_00818558,&local_4,local_8,0);
|
|
|
|
if ((puVar2 != (undefined4 *)puVar1) || (puVar2 = puVar2 + -1, puVar2 != (undefined4 *)puVar1)) {
|
|
|
|
puVar2 = puVar2 + 1;
|
|
|
|
}
|
|
|
|
FUN_0065f770(*puVar2);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f4e0 at 0x0065F4E0 (size: 58) ---
|
|
|
|
|
|
void __thiscall FUN_0065f4e0(int param_1,undefined4 param_2,int *param_3,int param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
iVar2 = *param_3;
|
|
|
|
if (iVar2 != param_4) {
|
|
|
|
do {
|
|
|
|
iVar1 = iVar2;
|
|
|
|
iVar2 = *(int *)(iVar1 + 0xc);
|
|
|
|
} while (iVar2 != param_4);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
*(undefined4 *)(iVar1 + 0xc) = *(undefined4 *)(iVar2 + 0xc);
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*param_3 = *(int *)(iVar2 + 0xc);
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f520 at 0x0065F520 (size: 235) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065f520(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
int *piVar3;
|
|
|
|
uint uVar4;
|
|
|
|
int iVar5;
|
|
|
|
|
|
|
|
if (param_2 == *(int *)(param_1 + 0x68)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(param_1 + 0x6c);
|
|
|
|
iVar2 = 0;
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) {
|
|
|
|
operator_delete__(*(void **)(param_1 + 0x60));
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1 + 0x60) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 100) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x68) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x6c) = 0;
|
|
|
|
FUN_0065ec90(param_2);
|
|
|
|
while (iVar2 != 0) {
|
|
|
|
iVar1 = *(int *)(iVar2 + 8);
|
|
|
|
if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f170();
|
|
|
|
}
|
|
|
|
uVar4 = *(uint *)(iVar2 + 4) % *(uint *)(param_1 + 0x68);
|
|
|
|
iVar5 = *(int *)(param_1 + 0x60);
|
|
|
|
*(undefined4 *)(iVar2 + 8) = *(undefined4 *)(iVar5 + uVar4 * 4);
|
|
|
|
*(int *)(iVar5 + uVar4 * 4) = iVar2;
|
|
|
|
uVar4 = iVar5 + uVar4 * 4;
|
|
|
|
if (uVar4 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar4;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
iVar2 = iVar1;
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
piVar3 = *(int **)(param_1 + 100);
|
|
|
|
while (piVar3 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) {
|
|
|
|
if (**(int **)(param_1 + 100) != 0) {
|
|
|
|
piVar3 = *(int **)(param_1 + 100);
|
|
|
|
iVar5 = *piVar3;
|
|
|
|
goto LAB_0065f56e;
|
|
|
|
}
|
|
|
|
piVar3 = *(int **)(param_1 + 100) + 1;
|
|
|
|
*(int **)(param_1 + 100) = piVar3;
|
|
|
|
}
|
|
|
|
piVar3 = (int *)0x0;
|
|
|
|
iVar5 = 0;
|
|
|
|
LAB_0065f56e:
|
|
|
|
FUN_0065fc20(param_1,piVar3,iVar5);
|
|
|
|
*(int *)(iVar5 + 8) = iVar2;
|
|
|
|
iVar1 = *(int *)(param_1 + 0x6c);
|
|
|
|
iVar2 = iVar5;
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f610 at 0x0065F610 (size: 248) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065f610(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
int iVar3;
|
|
|
|
int iVar4;
|
|
|
|
uint uVar5;
|
|
|
|
int *piVar6;
|
|
|
|
|
|
|
|
if (param_2 == *(int *)(param_1 + 0x68)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
iVar3 = *(int *)(param_1 + 0x6c);
|
|
|
|
iVar1 = 0;
|
|
|
|
do {
|
|
|
|
if (iVar3 == 0) {
|
|
|
|
if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) {
|
|
|
|
operator_delete__(*(void **)(param_1 + 0x60));
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1 + 0x60) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 100) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x68) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x6c) = 0;
|
|
|
|
FUN_0065ec90(param_2);
|
|
|
|
while (iVar1 != 0) {
|
|
|
|
iVar3 = *(int *)(iVar1 + 0xc);
|
|
|
|
if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f1d0();
|
|
|
|
}
|
|
|
|
uVar5 = *(uint *)(iVar1 + 8) % *(uint *)(param_1 + 0x68);
|
|
|
|
iVar4 = *(int *)(param_1 + 0x60);
|
|
|
|
*(undefined4 *)(iVar1 + 0xc) = *(undefined4 *)(iVar4 + uVar5 * 4);
|
|
|
|
*(int *)(iVar4 + uVar5 * 4) = iVar1;
|
|
|
|
uVar5 = iVar4 + uVar5 * 4;
|
|
|
|
if (uVar5 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar5;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
iVar1 = iVar3;
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
piVar6 = *(int **)(param_1 + 100);
|
|
|
|
while (piVar6 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) {
|
|
|
|
if (**(int **)(param_1 + 100) != 0) {
|
|
|
|
piVar6 = *(int **)(param_1 + 100);
|
|
|
|
iVar4 = *piVar6;
|
|
|
|
goto LAB_0065f65f;
|
|
|
|
}
|
|
|
|
piVar6 = *(int **)(param_1 + 100) + 1;
|
|
|
|
*(int **)(param_1 + 100) = piVar6;
|
|
|
|
}
|
|
|
|
piVar6 = (int *)0x0;
|
|
|
|
iVar4 = 0;
|
|
|
|
LAB_0065f65f:
|
|
|
|
iVar3 = *piVar6;
|
|
|
|
if (iVar3 == iVar4) {
|
|
|
|
LAB_0065f673:
|
|
|
|
*piVar6 = *(int *)(iVar3 + 0xc);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
do {
|
|
|
|
iVar2 = iVar3;
|
|
|
|
iVar3 = *(int *)(iVar2 + 0xc);
|
|
|
|
} while (iVar3 != iVar4);
|
|
|
|
if (iVar2 == 0) goto LAB_0065f673;
|
|
|
|
*(undefined4 *)(iVar2 + 0xc) = *(undefined4 *)(iVar3 + 0xc);
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
*(int *)(iVar4 + 0xc) = iVar1;
|
|
|
|
iVar3 = *(int *)(param_1 + 0x6c);
|
|
|
|
iVar1 = iVar4;
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f710 at 0x0065F710 (size: 95) ---
|
|
|
|
|
|
void __thiscall FUN_0065f710(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
uint uVar1;
|
|
|
|
int iVar2;
|
|
|
|
uint uVar3;
|
|
|
|
|
|
|
|
if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f480();
|
|
|
|
}
|
|
|
|
uVar1 = *(uint *)(param_1 + 0x68);
|
|
|
|
iVar2 = *param_2;
|
|
|
|
uVar3 = *(uint *)(iVar2 + -8);
|
|
|
|
if (uVar3 == 0xffffffff) {
|
|
|
|
uVar3 = FUN_0040a980(iVar2);
|
|
|
|
*(uint *)(iVar2 + -8) = uVar3;
|
|
|
|
}
|
|
|
|
uVar3 = uVar3 % uVar1;
|
|
|
|
iVar2 = *(int *)(param_1 + 0x60);
|
|
|
|
param_2[1] = *(int *)(iVar2 + uVar3 * 4);
|
|
|
|
*(int **)(iVar2 + uVar3 * 4) = param_2;
|
|
|
|
uVar1 = iVar2 + uVar3 * 4;
|
|
|
|
if (uVar1 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar1;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f770 at 0x0065F770 (size: 278) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065f770(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
int *piVar3;
|
|
|
|
int *piVar4;
|
|
|
|
uint uVar5;
|
|
|
|
int *piVar6;
|
|
|
|
int *piVar7;
|
|
|
|
int *piVar8;
|
|
|
|
|
|
|
|
if (param_2 == *(int *)(param_1 + 0x68)) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
piVar7 = (int *)0x0;
|
|
|
|
if (*(int *)(param_1 + 0x6c) != 0) {
|
|
|
|
piVar8 = (int *)0x0;
|
|
|
|
do {
|
|
|
|
piVar7 = *(int **)(param_1 + 100);
|
|
|
|
while (piVar7 != (int *)(*(int *)(param_1 + 0x60) + *(int *)(param_1 + 0x68) * 4)) {
|
|
|
|
if (**(int **)(param_1 + 100) != 0) {
|
|
|
|
piVar6 = *(int **)(param_1 + 100);
|
|
|
|
piVar7 = (int *)*piVar6;
|
|
|
|
goto LAB_0065f7be;
|
|
|
|
}
|
|
|
|
piVar7 = *(int **)(param_1 + 100) + 1;
|
|
|
|
*(int **)(param_1 + 100) = piVar7;
|
|
|
|
}
|
|
|
|
piVar6 = (int *)0x0;
|
|
|
|
piVar7 = (int *)0x0;
|
|
|
|
LAB_0065f7be:
|
|
|
|
piVar4 = (int *)*piVar6;
|
|
|
|
if (piVar4 == piVar7) {
|
|
|
|
LAB_0065f7d2:
|
|
|
|
*piVar6 = piVar4[1];
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
do {
|
|
|
|
piVar3 = piVar4;
|
|
|
|
piVar4 = (int *)piVar3[1];
|
|
|
|
} while (piVar4 != piVar7);
|
|
|
|
if (piVar3 == (int *)0x0) goto LAB_0065f7d2;
|
|
|
|
piVar3[1] = piVar4[1];
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
piVar7[1] = (int)piVar8;
|
|
|
|
piVar8 = piVar7;
|
|
|
|
} while (*(int *)(param_1 + 0x6c) != 0);
|
|
|
|
}
|
|
|
|
if (*(void **)(param_1 + 0x60) != (void *)(param_1 + 4)) {
|
|
|
|
operator_delete__(*(void **)(param_1 + 0x60));
|
|
|
|
}
|
|
|
|
*(undefined4 *)(param_1 + 0x60) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 100) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x68) = 0;
|
|
|
|
*(undefined4 *)(param_1 + 0x6c) = 0;
|
|
|
|
FUN_0065ec90(param_2);
|
|
|
|
while (piVar7 != (int *)0x0) {
|
|
|
|
piVar8 = (int *)piVar7[1];
|
|
|
|
if (*(int *)(param_1 + 0x68) * 2 < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f480();
|
|
|
|
}
|
|
|
|
iVar1 = *piVar7;
|
|
|
|
uVar5 = *(uint *)(iVar1 + -8);
|
|
|
|
uVar2 = *(uint *)(param_1 + 0x68);
|
|
|
|
if (uVar5 == 0xffffffff) {
|
|
|
|
uVar5 = FUN_0040a980(iVar1);
|
|
|
|
*(uint *)(iVar1 + -8) = uVar5;
|
|
|
|
}
|
|
|
|
uVar5 = uVar5 % uVar2;
|
|
|
|
iVar1 = *(int *)(param_1 + 0x60);
|
|
|
|
piVar7[1] = *(int *)(iVar1 + uVar5 * 4);
|
|
|
|
*(int **)(iVar1 + uVar5 * 4) = piVar7;
|
|
|
|
uVar5 = iVar1 + uVar5 * 4;
|
|
|
|
if (uVar5 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar5;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
piVar7 = piVar8;
|
|
|
|
}
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f890 at 0x0065F890 (size: 119) ---
|
|
|
|
|
|
uint __thiscall FUN_0065f890(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(uint *)(param_1 + 0x60) +
|
|
|
|
(*(uint *)(param_2 + 4) % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065f8bc:
|
|
|
|
if ((int)(*(uint *)(param_1 + 0x68) * 2) < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f170();
|
|
|
|
}
|
|
|
|
uVar2 = *(uint *)(param_2 + 4) % *(uint *)(param_1 + 0x68);
|
|
|
|
iVar1 = *(int *)(param_1 + 0x60);
|
|
|
|
*(undefined4 *)(param_2 + 8) = *(undefined4 *)(iVar1 + uVar2 * 4);
|
|
|
|
*(int *)(iVar1 + uVar2 * 4) = param_2;
|
|
|
|
uVar2 = iVar1 + uVar2 * 4;
|
|
|
|
if (uVar2 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar2;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
return CONCAT31((int3)(uVar2 >> 8),1);
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 4) == *(uint *)(param_2 + 4)) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return *(uint *)(param_1 + 0x60) & 0xffffff00;
|
|
|
|
}
|
|
|
|
goto LAB_0065f8bc;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 8);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f910 at 0x0065F910 (size: 119) ---
|
|
|
|
|
|
uint __thiscall FUN_0065f910(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(uint *)(param_1 + 0x60) +
|
|
|
|
(*(uint *)(param_2 + 8) % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065f93c:
|
|
|
|
if ((int)(*(uint *)(param_1 + 0x68) * 2) < *(int *)(param_1 + 0x6c) + 1) {
|
|
|
|
FUN_0065f1d0();
|
|
|
|
}
|
|
|
|
uVar2 = *(uint *)(param_2 + 8) % *(uint *)(param_1 + 0x68);
|
|
|
|
iVar1 = *(int *)(param_1 + 0x60);
|
|
|
|
*(undefined4 *)(param_2 + 0xc) = *(undefined4 *)(iVar1 + uVar2 * 4);
|
|
|
|
*(int *)(iVar1 + uVar2 * 4) = param_2;
|
|
|
|
uVar2 = iVar1 + uVar2 * 4;
|
|
|
|
if (uVar2 < *(uint *)(param_1 + 100)) {
|
|
|
|
*(uint *)(param_1 + 100) = uVar2;
|
|
|
|
}
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + 1;
|
|
|
|
return CONCAT31((int3)(uVar2 >> 8),1);
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 8) == *(uint *)(param_2 + 8)) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return *(uint *)(param_1 + 0x60) & 0xffffff00;
|
|
|
|
}
|
|
|
|
goto LAB_0065f93c;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 0xc);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f990 at 0x0065F990 (size: 82) ---
|
|
|
|
|
|
int __thiscall FUN_0065f990(int param_1,uint *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
|
|
|
|
uVar2 = *param_2 % *(uint *)(param_1 + 0x68);
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 0x60) + uVar2 * 4);
|
|
|
|
while( true ) {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 8) == *param_2) break;
|
|
|
|
iVar1 = *(int *)(iVar1 + 0xc);
|
|
|
|
}
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
FUN_0065f4e0(param_1,*(int *)(param_1 + 0x60) + uVar2 * 4,iVar1);
|
|
|
|
return iVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065f9f0 at 0x0065F9F0 (size: 129) ---
|
|
|
|
|
|
uint __thiscall FUN_0065f9f0(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
undefined4 *puVar2;
|
|
|
|
undefined3 uVar3;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(uint *)(param_1 + 0x60) +
|
|
|
|
(*(uint *)(param_2 + 4) % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065fa1c:
|
|
|
|
FUN_0065f890(param_2);
|
|
|
|
if (param_2 == -4) {
|
|
|
|
puVar2 = (undefined4 *)0x0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
puVar2 = (undefined4 *)(param_2 + 0xc);
|
|
|
|
}
|
|
|
|
*puVar2 = *(undefined4 *)(param_1 + 0x70);
|
|
|
|
uVar3 = (undefined3)((uint)puVar2 >> 8);
|
|
|
|
if (*(int *)(param_1 + 0x70) == 0) {
|
|
|
|
*(undefined4 **)(param_1 + 0x74) = puVar2;
|
|
|
|
*(undefined4 **)(param_1 + 0x70) = puVar2;
|
|
|
|
puVar2[1] = 0;
|
|
|
|
return CONCAT31(uVar3,1);
|
|
|
|
}
|
|
|
|
*(undefined4 **)(*(int *)(param_1 + 0x70) + 4) = puVar2;
|
|
|
|
*(undefined4 **)(param_1 + 0x70) = puVar2;
|
|
|
|
puVar2[1] = 0;
|
|
|
|
return CONCAT31(uVar3,1);
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 4) == *(uint *)(param_2 + 4)) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return *(uint *)(param_1 + 0x60) & 0xffffff00;
|
|
|
|
}
|
|
|
|
goto LAB_0065fa1c;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 8);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fa80 at 0x0065FA80 (size: 96) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065fa80(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 0x60) +
|
|
|
|
(*(uint *)(param_2 + 4) % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065faac:
|
|
|
|
FUN_0065f890(param_2);
|
|
|
|
if (param_2 == -4) {
|
|
|
|
param_2 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
param_2 = param_2 + 0xc;
|
|
|
|
}
|
|
|
|
FUN_00410820(param_2,*(undefined4 *)(param_1 + 0x74));
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 4) == *(uint *)(param_2 + 4)) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
goto LAB_0065faac;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 8);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fae0 at 0x0065FAE0 (size: 124) ---
|
|
|
|
|
|
undefined4 FUN_0065fae0(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
char cVar1;
|
|
|
|
undefined4 uVar2;
|
|
|
|
|
|
|
|
if (param_1 == 0) {
|
|
|
|
uVar2 = FUN_0065f9f0(param_2);
|
|
|
|
return uVar2;
|
|
|
|
}
|
|
|
|
cVar1 = FUN_0065ede0(param_2 + 4);
|
|
|
|
if (cVar1 != '\0') {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
FUN_0065f890(param_2);
|
|
|
|
if (param_1 == -4) {
|
|
|
|
param_1 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
param_1 = param_1 + 0xc;
|
|
|
|
}
|
|
|
|
if (param_2 + 4 != 0) {
|
|
|
|
FUN_00410820(param_2 + 0xc,param_1);
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
FUN_00410820(0,param_1);
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fb60 at 0x0065FB60 (size: 96) ---
|
|
|
|
|
|
undefined4 __thiscall FUN_0065fb60(int param_1,int param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 0x60) +
|
|
|
|
(*(uint *)(param_2 + 8) % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065fb8c:
|
|
|
|
FUN_0065f910(param_2);
|
|
|
|
if (param_2 == -8) {
|
|
|
|
param_2 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
param_2 = param_2 + 0x10;
|
|
|
|
}
|
|
|
|
FUN_00410820(param_2,*(undefined4 *)(param_1 + 0x74));
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 8) == *(uint *)(param_2 + 8)) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
goto LAB_0065fb8c;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 0xc);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fbc0 at 0x0065FBC0 (size: 95) ---
|
|
|
|
|
|
int __thiscall FUN_0065fbc0(int param_1,uint *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
iVar2 = *(int *)(*(int *)(param_1 + 0x60) + (*param_2 % *(uint *)(param_1 + 0x68)) * 4);
|
|
|
|
if (iVar2 != 0) {
|
|
|
|
while (*(uint *)(iVar2 + 8) != *param_2) {
|
|
|
|
iVar2 = *(int *)(iVar2 + 0xc);
|
|
|
|
if (iVar2 == 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (iVar2 != 0) {
|
|
|
|
if (iVar2 == -8) {
|
|
|
|
iVar1 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = iVar2 + 0x10;
|
|
|
|
}
|
|
|
|
FUN_00410880(iVar1);
|
|
|
|
FUN_0065f990(param_2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return iVar2;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fc20 at 0x0065FC20 (size: 58) ---
|
|
|
|
|
|
void __thiscall FUN_0065fc20(int param_1,undefined4 param_2,int *param_3,int param_4)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int iVar2;
|
|
|
|
|
|
|
|
iVar2 = *param_3;
|
|
|
|
if (iVar2 != param_4) {
|
|
|
|
do {
|
|
|
|
iVar1 = iVar2;
|
|
|
|
iVar2 = *(int *)(iVar1 + 8);
|
|
|
|
} while (iVar2 != param_4);
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
*(undefined4 *)(iVar1 + 8) = *(undefined4 *)(iVar2 + 8);
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
*param_3 = *(int *)(iVar2 + 8);
|
|
|
|
*(int *)(param_1 + 0x6c) = *(int *)(param_1 + 0x6c) + -1;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fc60 at 0x0065FC60 (size: 327) ---
|
|
|
|
|
|
undefined1 __thiscall FUN_0065fc60(int param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
uint uVar2;
|
|
|
|
int iVar3;
|
|
|
|
int local_10;
|
|
|
|
|
|
|
|
local_10 = 0;
|
|
|
|
if (*(int *)(param_1 + 0x70) != 0) {
|
|
|
|
if (*(int *)(param_1 + 0x74) == 0) {
|
|
|
|
local_10 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
local_10 = *(int *)(param_1 + 0x74) + -0xc;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar3 = 0;
|
|
|
|
if (*(int *)(param_1 + 0x70) != 0) {
|
|
|
|
if (*(int *)(param_1 + 0x78) == 0) {
|
|
|
|
iVar3 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar3 = *(int *)(param_1 + 0x78) + -0xc;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uVar2 = param_2[1];
|
|
|
|
if ((int)uVar2 < -0x7fffff00) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
if (0x7ffffeff < (int)uVar2) {
|
|
|
|
if (uVar2 == 0x7ffffffd) {
|
|
|
|
iVar1 = iVar3;
|
|
|
|
for (uVar2 = 0x7ffffeff; (iVar1 != 0 && (*(uint *)(iVar1 + 4) == uVar2)); uVar2 = uVar2 - 1) {
|
|
|
|
iVar1 = *(int *)(iVar1 + 0x10);
|
|
|
|
if ((iVar1 == 0) || (iVar1 == 8)) {
|
|
|
|
iVar1 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = iVar1 + -0xc;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
param_2[1] = uVar2;
|
|
|
|
}
|
|
|
|
if (0x7ffffeff < (int)uVar2) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(*(int *)(param_1 + 100) + (uVar2 % *(uint *)(param_1 + 0x6c)) * 4);
|
|
|
|
do {
|
|
|
|
if (iVar1 == 0) {
|
|
|
|
LAB_0065fd1d:
|
|
|
|
if ((iVar3 == 0) || (*(int *)(iVar3 + 4) < (int)uVar2)) {
|
|
|
|
FUN_0065fa80(param_2);
|
|
|
|
}
|
|
|
|
else if ((int)uVar2 < *(int *)(local_10 + 4)) {
|
|
|
|
FUN_0065f9f0(param_2);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (local_10 == iVar3) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
while( true ) {
|
|
|
|
iVar3 = *(int *)(iVar3 + 0x10);
|
|
|
|
if ((iVar3 == 0) || (iVar3 == 8)) {
|
|
|
|
iVar3 = 0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar3 = iVar3 + -0xc;
|
|
|
|
}
|
|
|
|
if (*(int *)(iVar3 + 4) < (int)uVar2) break;
|
|
|
|
if (local_10 == iVar3) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
FUN_0065fae0(iVar3,param_2);
|
|
|
|
}
|
|
|
|
param_2[5] = param_1;
|
|
|
|
(**(code **)(*param_2 + 0x18))();
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if (*(uint *)(iVar1 + 4) == uVar2) {
|
|
|
|
if (iVar1 != 0) {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
goto LAB_0065fd1d;
|
|
|
|
}
|
|
|
|
iVar1 = *(int *)(iVar1 + 8);
|
|
|
|
} while( true );
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fe70 at 0x0065FE70 (size: 316) ---
|
|
|
|
|
|
void __thiscall FUN_0065fe70(int *param_1,uint param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
LONG LVar2;
|
|
|
|
int *unaff_EBP;
|
|
|
|
undefined4 *puVar3;
|
|
|
|
int *piVar4;
|
|
|
|
undefined1 auStack_8 [4];
|
|
|
|
int *local_4;
|
|
|
|
|
|
|
|
local_4 = param_1 + 0x20;
|
|
|
|
puVar3 = *(undefined4 **)(param_1[0x38] + (param_2 % (uint)param_1[0x3a]) * 4);
|
|
|
|
if (puVar3 != (undefined4 *)0x0) {
|
|
|
|
while (puVar3[2] != param_2) {
|
|
|
|
puVar3 = (undefined4 *)puVar3[3];
|
|
|
|
if (puVar3 == (undefined4 *)0x0) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ((puVar3 != (undefined4 *)0x0) && (iVar1 = puVar3[9], iVar1 < 2)) {
|
|
|
|
puVar3[9] = param_3;
|
|
|
|
if ((iVar1 == 1) && ((int *)puVar3[0xc] != (int *)0x0)) {
|
|
|
|
(**(code **)(*(int *)puVar3[0xc] + 0xc))(param_2,param_3);
|
|
|
|
}
|
|
|
|
piVar4 = (int *)0x0;
|
|
|
|
if (param_1[0x1c] != 0) {
|
|
|
|
if (param_1[0x1d] == 0) {
|
|
|
|
piVar4 = (int *)0x0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
piVar4 = (int *)(param_1[0x1d] + -0xc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
(**(code **)(*param_1 + 0xc))(param_2,param_3);
|
|
|
|
while (piVar4 != (int *)0x0) {
|
|
|
|
(**(code **)(*piVar4 + 0x10))(param_2,param_3);
|
|
|
|
iVar1 = piVar4[3];
|
|
|
|
if ((iVar1 == 0) || (iVar1 == 8)) break;
|
|
|
|
piVar4 = (int *)(iVar1 + -0xc);
|
|
|
|
}
|
|
|
|
(**(code **)(*unaff_EBP + 0x10))(param_2);
|
|
|
|
piVar4 = (int *)0x0;
|
|
|
|
if (local_4[0x1b] != 0) {
|
|
|
|
if (local_4[0x1c] == 0) {
|
|
|
|
piVar4 = (int *)0x0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
piVar4 = (int *)(local_4[0x1c] + -0xc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
while (piVar4 != (int *)0x0) {
|
|
|
|
(**(code **)(*piVar4 + 0x14))(param_2);
|
|
|
|
iVar1 = piVar4[3];
|
|
|
|
if ((iVar1 == 0) || (iVar1 == 8)) break;
|
|
|
|
piVar4 = (int *)(iVar1 + -0xc);
|
|
|
|
}
|
|
|
|
FUN_0065fbc0(auStack_8);
|
|
|
|
LVar2 = InterlockedDecrement(puVar3 + 1);
|
|
|
|
if (LVar2 == 0) {
|
|
|
|
(**(code **)*puVar3)(1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065ffb0 at 0x0065FFB0 (size: 46) ---
|
|
|
|
|
|
int __thiscall FUN_0065ffb0(int *param_1,undefined4 param_2,undefined4 param_3)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
|
|
|
|
iVar1 = (**(code **)(*param_1 + 0x14))(param_2,param_3);
|
|
|
|
if (iVar1 != 1) {
|
|
|
|
FUN_0065fe70(param_2,iVar1);
|
|
|
|
}
|
|
|
|
return iVar1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// --- FUN_0065fff0 at 0x0065FFF0 (size: 156) ---
|
|
|
|
|
|
undefined4 FUN_0065fff0(int *param_1,int *param_2)
|
|
|
|
|
|
|
|
{
|
|
|
|
int iVar1;
|
|
|
|
int *piVar2;
|
|
|
|
LONG LVar3;
|
|
|
|
undefined4 *puVar4;
|
|
|
|
undefined1 local_c [8];
|
|
|
|
int local_4;
|
|
|
|
|
|
|
|
piVar2 = (int *)FUN_005df0f5(0xc);
|
|
|
|
if (piVar2 == (int *)0x0) {
|
|
|
|
piVar2 = (int *)0x0;
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
iVar1 = *param_1;
|
|
|
|
*piVar2 = iVar1;
|
|
|
|
InterlockedIncrement((LONG *)(iVar1 + -0x10));
|
|
|
|
piVar2[1] = 0;
|
|
|
|
piVar2[2] = *param_2;
|
|
|
|
}
|
|
|
|
FUN_0065ed80(local_c,piVar2);
|
|
|
|
if (local_4 == 0) {
|
|
|
|
FUN_0065f710(piVar2);
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if (piVar2 != (int *)0x0) {
|
|
|
|
puVar4 = (undefined4 *)(*piVar2 + -0x14);
|
|
|
|
LVar3 = InterlockedDecrement((LONG *)(*piVar2 + -0x10));
|
|
|
|
if ((LVar3 == 0) && (puVar4 != (undefined4 *)0x0)) {
|
|
|
|
(**(code **)*puVar4)(1);
|
|
|
|
}
|
|
|
|
operator_delete(piVar2);
|
|
|
|
}
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|