signed int __thiscall MobBlockColl(void *this, Monumentum *monumentum_1, Monumentum *monumentum_2) { __int16 v3; // fps@1 double v4; // st7@1 int v5; // ecx@2 __int16 v6; // fps@2 double v7; // st7@2 int v8; // ecx@3 signed int result; // eax@4 __int16 v10; // fps@5 double v11; // st7@5 int v12; // ecx@6 __int16 v13; // fps@6 double v14; // st7@6 int v15; // ecx@7 __int16 v16; // fps@9 double v17; // st7@9 int v18; // ecx@10 __int16 v19; // fps@10 double v20; // st7@10 int v21; // ecx@11 __int16 v22; // fps@13 double v23; // st7@13 int v24; // ecx@14 __int16 v25; // fps@14 double v26; // st7@14 double v27; // [sp+8h] [bp-8h]@2 double v28; // [sp+8h] [bp-8h]@6 double v29; // [sp+8h] [bp-8h]@10 double v30; // [sp+8h] [bp-8h]@14 v4 = monumentum_1->Height + monumentum_1->CurYPos - monumentum_1->CurYSpeed - 2.5; UNDEF(v3); if ( v3 & 0xD || (_vbaFpR8(this), v27 = v4, v7 = monumentum_2->CurYPos - monumentum_2->CurYSpeed, UNDEF(v6), v6 & 0xD) ) goto LABEL_21; _vbaFpR8(v5); if ( v7 >= v27 ) return 1; // first object collides on top of second object v11 = monumentum_1->CurXPos - monumentum_1->CurXSpeed; UNDEF(v10); if ( v10 & 0xD || (_vbaFpR8(v8), v28 = v11, v14 = monumentum_2->Width + monumentum_2->CurXPos - monumentum_2->CurXSpeed, UNDEF(v13), v13 & 0xD) ) goto LABEL_21; _vbaFpR8(v12); if ( v14 <= v28 ) return 2; // first object collides on right side of second object v17 = monumentum_1->Width + monumentum_1->CurXPos - monumentum_1->CurXSpeed; UNDEF(v16); if ( v16 & 0xD || (_vbaFpR8(v15), v29 = v17, v20 = monumentum_2->CurXPos - monumentum_2->CurXSpeed, UNDEF(v19), v19 & 0xD) ) goto LABEL_21; _vbaFpR8(v18); if ( v20 >= v29 ) return 4; // first object colllides on left side of second object v23 = monumentum_1->CurYPos - monumentum_1->CurYSpeed; UNDEF(v22); if ( v22 & 0xD || (_vbaFpR8(v21), v30 = v23, v26 = monumentum_2->Height + monumentum_2->CurYPos - monumentum_2->CurYSpeed, UNDEF(v25), v25 & 0xD) ) LABEL_21: JUMPOUT(loc_40BA6C); _vbaFpR8(v24); result = 3; // first object collides on bottomd side of second object if ( v26 > v30 ) result = 5; return result; }