Advertisement
Rootware

Cursed Death Link

Sep 17th, 2019
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.51 KB | None | 0 0
  1. bool __cdecl CSkillEffect_i_death_link::Instant(struct CSkillEffect_i_death_link *this, struct CCreature *creature, struct CObject *target, const struct CSkillInfo *skillInfo, struct CSkillAction2 *skillAction2, double d)
  2. {
  3.   __m128i *v6; // xmm0_8
  4.   __m128i v7; // xmm6
  5.   __m128i v8; // xmm7
  6.   __m128i *v9; // xmm8_8
  7.   __m128i *v10; // xmm9_8
  8.   __m128i *v11; // xmm10_8
  9.   __int64 v16; // rdi
  10.   __int64 v17; // r10
  11.   __int64 v18; // r8
  12.   bool result; // al
  13.   CSharedCreatureData *sd; // rax
  14.   double v21; // xmm7_8
  15.   __int64 v22; // xmm6_8
  16.   double v23; // xmm0_8
  17.   double v24; // ST38_8
  18.   char v25; // [rsp+58h] [rbp-B0h]
  19.   double v26; // [rsp+60h] [rbp-A8h]
  20.   char v27; // [rsp+78h] [rbp-90h]
  21.   double v28; // [rsp+88h] [rbp-80h]
  22.   double v29; // [rsp+90h] [rbp-78h]
  23.   __int128 v30; // [rsp+B0h] [rbp-58h]
  24.   __int128 v31; // [rsp+C0h] [rbp-48h]
  25.  
  26.   _mm_store_si128((__m128i *)&v31, v7);
  27.   _mm_store_si128((__m128i *)&v30, v8);
  28.   v16 = *(_QWORD *)(__readgsqword(0x58u) + 8i64 * (unsigned int)TlsIndex);
  29.   v17 = *(signed int *)(v16 + 32024);
  30.   v18 = GuardData1[v17 + 0x100000];
  31.   GuardData1[v17 + 0x100000] = v18 + 1;
  32.   GuardData2[v18 + 1000 * v17] = (__int64)L"bool __cdecl CSkillEffect_i_death_link::Instant(class CCreature *,class CObjec"
  33.                                            "t *,const class CSkillInfo *,class CSkillAction2 *,double)";
  34.   if ( sub_82CC14((__int64)target) )
  35.   {
  36.     sub_82D1C8((__int64)&v25, (__int64)creature);
  37.     sub_82D300(
  38.       (__int64)creature,
  39.       (__int64)&v27,
  40.       (__int64)target,
  41.       (__int64)skillInfo,
  42.       v6,
  43.       (__int128 *)v7.m128i_i64[0],
  44.       (__m128i *)v8.m128i_i64[0]);
  45.     sd = creature->sd;
  46.     v21 = 0.0;
  47.     if ( (100.0 - (sd->hp * 100.0 / sd->maxHp - 40.0) * 2.0) / 100.0 >= 0.0 )
  48.       v21 = (100.0 - (sd->hp * 100.0 / sd->maxHp - 40.0) * 2.0) / 100.0;
  49.     v22 = *((__int64 *)this + 2);
  50.     v23 = sqrt(v26);
  51.     v24 = v23 * *(double *)&v22 * 91.0 / v28 * v29 * v21 + 1.0;
  52.     sub_84A92C(
  53.       (__int64)creature,
  54.       (__int64)target,
  55.       (__int64)skillInfo,
  56.       (__int64)&v25,
  57.       d,
  58.       (__m128i *)v22,
  59.       *(__m128i **)&v21,
  60.       v9,
  61.       v10,
  62.       v11,
  63.       (__int64)&v27,
  64.       v22,
  65.       *(__int128 **)&d,
  66.       SLOBYTE(v24));
  67.     sub_82D508((__int64)target, (__int64)creature, 0, (__m128i *)v22, *(__m128i **)&v21, v9);
  68.     --GuardData1[*(signed int *)(v16 + 32024) + 0x100000];
  69.     result = 1;
  70.   }
  71.   else
  72.   {
  73.     --GuardData1[*(signed int *)(v16 + 32024) + 0x100000];
  74.     result = 0;
  75.   }
  76.   return result;
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement