Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // float avgx = 0, avgy = 0;
- cvtsi2ss xmm0,eax
- cvtsi2ss xmm1,eax
- cvtsi2ss xmm2,eax
- cvtsi2ss xmm3,eax
- cvtsi2ss xmm4,eax
- // float f;
- movss xmm3,[floatvalue]
- // int count = this->gmd.Read<int>(this->gmd.GetPointerAddress({ 0x3222D0, 0x168, 0x144, 0xB4, 0xB4, 0x3A0 }, GAME_NAME));
- mov ecx,[GeometryDash.exe+3222D0]
- add ecx,168
- mov ecx,[ecx]
- add ecx,144
- mov ecx,[ecx]
- add ecx,B4
- mov ecx,[ecx]
- add ecx,B4
- mov ecx,[ecx]
- add ecx,3A0
- mov ecx,[ecx]
- // for (auto i = 0; i < count; ++i)
- dec eax
- for1:
- inc eax
- // uint32_t obj = this->gmd.GetPointerAddress({ 0x3222D0, 0x168, 0x234, 0x20, 0x8, static_cast<uint32_t>(0x4 * i), 0 }, GAME_NAME);
- mov esi,[GeometryDash.exe+3222D0]
- add esi,168
- mov esi,[esi]
- add esi,234
- mov esi,[esi]
- add esi,20
- mov esi,[esi]
- add esi,8
- mov esi,[esi]
- add esi,eax
- add esi,eax
- add esi,eax
- add esi,eax
- mov esi,[esi]
- // if (this->gmd.Read<bool>(obj + OFFSET_SELECTED))
- cmp byte ptr[esi+3DA],0
- je exit1
- // selected.push_back(obj);
- inc edi
- mov [tableaddr+edi*4],esi
- // avgx += this->gmd.Read<float>(obj + OFFSET_X);
- // avgy += this->gmd.Read<float>(obj + OFFSET_Y);
- addss xmm0,[esi+34]
- addss xmm1,[esi+38]
- exit1:
- cmp eax,ecx
- jl for1 // loop for 1
- cvtsi2ss xmm2,edi // length
- // avgx /= selected.size();
- divss xmm0,xmm2
- // avgy /= selected.size();
- divss xmm1,xmm2
- xor eax,eax
- inc eax // counter starts at 1
- // for (const auto &obj : selected)
- dec eax
- for2:
- inc eax
- mov esi,[tableaddr+eax*4]
- // float scale = this->gmd.Read<float>(obj + OFFSET_SCALE)*f;
- movss xmm2,[esi+35C]
- mulss xmm2,xmm3
- // this->gmd.Write(obj + OFFSET_X, avgx + (this->gmd.Read<float>(obj + OFFSET_X) - avgx)*f);
- movss xmm4,[esi+34]
- subss xmm4,xmm0
- mulss xmm4,xmm3
- addss xmm4,xmm0
- movss [esi+34],xmm4
- // this->gmd.Write(obj + OFFSET_Y, avgy + (this->gmd.Read<float>(obj + OFFSET_Y) - avgy)*f);
- movss xmm4,[esi+38]
- subss xmm4,xmm1
- mulss xmm4,xmm3
- addss xmm4,xmm1
- movss [esi+38],xmm4
- // this->gmd.Write(obj + OFFSET_SCALE, scale);
- movss [esi+35C],xmm2
- // this->gmd.Write(obj + OFFSET_SCALE_X, scale);
- movss [esi+28],xmm2
- // this->gmd.Write(obj + OFFSET_SCALE_Y, scale);
- movss [esi+2C],xmm2
- cmp eax,edi
- jl for2
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement