// // cocos2d::extension::CCTableView::_updateCellPositions from 0x180015ee0 to 0x180016030 (336 bytes) // // 7 xrefs: // > cocos2d::extension::CCTableView::create @ 0x180014ca6 // > cocos2d::extension::CCTableView::reloadData @ 0x1800151e4 // > cocos2d::extension::CCTableView::insertCellAtIndex @ 0x180015537 // > cocos2d::extension::CCTableView::removeCellAtIndex @ 0x180015773 // > @ 0x18002fdf8 // > @ 0x18004a884 // > @ 0x18004a890 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // void __fastcall cocos2d::extension::CCTableView::_updateCellPositions(cocos2d::extension::CCTableView *this) { int v2; // eax _QWORD *v3; // rsi __int64 v4; // rbp char *v5; // rdi float v6; // xmm6_4 unsigned __int64 v7; // rbx __int64 v8; // rdx unsigned __int64 v9; // rcx size_t v10; // rbx unsigned int v11; // edi __int64 i; // rbx __int64 v13; // rax float v14; // [rsp+50h] [rbp+8h] BYREF float v15; // [rsp+54h] [rbp+Ch] char v16; // [rsp+58h] [rbp+10h] BYREF v2 = (*(__int64 (__fastcall **)(_QWORD, cocos2d::extension::CCTableView *))(**((_QWORD **)this + 80) + 32LL))( *((_QWORD *)this + 80), this); v3 = (_QWORD *)((char *)this + 600); v4 = v2; v5 = *((char **)this + 76); v6 = 0.0; v14 = 0.0; v7 = v2 + 1; v8 = *((_QWORD *)this + 75); v9 = (__int64)&v5[-v8] >> 2; if ( v7 >= v9 ) { if ( v7 > v9 ) { if ( v7 <= (*((_QWORD *)this + 77) - v8) >> 2 ) { v10 = 4 * (v7 - v9); memset(v5, 0, v10); *((_QWORD *)this + 76) = &v5[v10]; } else { sub_180016A10((char *)this + 600, v7, &v14); } } } else { *((_QWORD *)this + 76) = v8 + 4 * v7; } if ( (int)v4 > 0 ) { cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v14); v11 = 0; for ( i = 0; i < v4; ++i ) { *(float *)(*v3 + 4 * i) = v6; v13 = (*(__int64 (__fastcall **)(_QWORD, char *, cocos2d::extension::CCTableView *, _QWORD))(**((_QWORD **)this + 80) + 8LL))( *((_QWORD *)this + 80), &v16, this, v11); cocos2d::CCSize::operator=(&v14, v13); if ( *((_DWORD *)this + 108) ) v6 = v6 + v15; else v6 = v6 + v14; ++v11; } *(float *)(*v3 + 4 * v4) = v6; } }