{"type": "func", "start": 6442537632, "end": 6442537858, "name": "cocos2d::extension::CCTableView::updateCellAtIndex", "pseudocode": "// \n// cocos2d::extension::CCTableView::updateCellAtIndex from 0x1800152a0 to 0x180015382 (226 bytes)\n// \n// 5 xrefs:\n// > cocos2d::extension::CCTableView::scrollViewDidScroll @ 0x180016334\n// > <???> @ 0x18002edb8\n// > <???> @ 0x18002edc8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a764\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nvoid __fastcall cocos2d::extension::CCTableView::updateCellAtIndex(\n        cocos2d::extension::CCTableView *this,\n        unsigned int a2)\n{\n  int v4; // eax\n  __int64 *v5; // rax\n  __int64 *v6; // rdx\n  __int64 *v7; // rcx\n  struct cocos2d::extension::CCSortableObject *v8; // rax\n  struct cocos2d::extension::CCTableViewCell *v9; // rbx\n\n  if ( a2 != -1 )\n  {\n    v4 = (*(__int64 (__fastcall **)(_QWORD, cocos2d::extension::CCTableView *))(**((_QWORD **)this + 80) + 32LL))(\n           *((_QWORD *)this + 80),\n           this);\n    if ( v4 )\n    {\n      if ( a2 <= v4 - 1 )\n      {\n        v5 = **((__int64 ***)this + 74);\n        v6 = v5;\n        v7 = (__int64 *)v5[1];\n        while ( !*((_BYTE *)v7 + 25) )\n        {\n          if ( *((_DWORD *)v7 + 7) >= a2 )\n          {\n            v6 = v7;\n            v7 = (__int64 *)*v7;\n          }\n          else\n          {\n            v7 = (__int64 *)v7[2];\n          }\n        }\n        if ( !*((_BYTE *)v6 + 25) && a2 >= *((_DWORD *)v6 + 7) && v6 != v5 )\n        {\n          v8 = cocos2d::extension::CCArrayForObjectSorting::objectWithObjectID(\n                 *((cocos2d::extension::CCArrayForObjectSorting **)this + 78),\n                 a2);\n          if ( v8 )\n          {\n            if ( v8 != (struct cocos2d::extension::CCSortableObject *)320 )\n              cocos2d::extension::CCTableView::_moveCellOutOfSight(\n                this,\n                (struct cocos2d::extension::CCSortableObject *)((char *)v8 - 320));\n          }\n        }\n        v9 = (struct cocos2d::extension::CCTableViewCell *)(*(__int64 (__fastcall **)(_QWORD, cocos2d::extension::CCTableView *, _QWORD))(**((_QWORD **)this + 80) + 24LL))(\n                                                             *((_QWORD *)this + 80),\n                                                             this,\n                                                             a2);\n        cocos2d::extension::CCTableView::_setIndexForCell(this, a2, v9);\n        cocos2d::extension::CCTableView::_addCellIfNecessary(this, v9);\n      }\n    }\n  }\n}", "assembly": "; \n; cocos2d::extension::CCTableView::updateCellAtIndex from 0x1800152a0 to 0x180015382 (226 bytes)\n; \n; 5 xrefs:\n; > cocos2d::extension::CCTableView::scrollViewDidScroll @ 0x180016334\n; > <???> @ 0x18002edb8\n; > <???> @ 0x18002edc8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a764\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\ncmp     edx, 0FFFFFFFFh                                                ; +0x0, 0x1800152a0\njz      locret_180015381                                               ; +0x3, 0x1800152a3\nmov     [rsp+arg_8], rsi                                               ; +0x9, 0x1800152a9\npush    rdi                                                            ; +0xe, 0x1800152ae\nsub     rsp, 20h                                                       ; +0xf, 0x1800152af\nmov     rsi, rcx                                                       ; +0x13, 0x1800152b3\nmov     edi, edx                                                       ; +0x16, 0x1800152b6\nmov     rcx, [rcx+280h]                                                ; +0x18, 0x1800152b8\nmov     rdx, rsi                                                       ; +0x1f, 0x1800152bf\nmov     rax, [rcx]                                                     ; +0x22, 0x1800152c2\ncall    qword ptr [rax+20h]                                            ; +0x25, 0x1800152c5\ntest    eax, eax                                                       ; +0x28, 0x1800152c8\njz      loc_180015377                                                  ; +0x2a, 0x1800152ca\ndec     eax                                                            ; +0x30, 0x1800152d0\ncmp     edi, eax                                                       ; +0x32, 0x1800152d2\nja      loc_180015377                                                  ; +0x34, 0x1800152d4\nmov     rax, [rsi+250h]                                                ; +0x3a, 0x1800152da\nmov     [rsp+28h+arg_0], rbx                                           ; +0x41, 0x1800152e1\nmov     rax, [rax]                                                     ; +0x46, 0x1800152e6\nmov     rdx, rax                                                       ; +0x49, 0x1800152e9\nmov     rcx, [rax+8]                                                   ; +0x4c, 0x1800152ec\ncmp     byte ptr [rcx+19h], 0                                          ; +0x50, 0x1800152f0\njnz     short loc_18001530D                                            ; +0x54, 0x1800152f4\ncmp     [rcx+1Ch], edi                                                 ; +0x56, 0x1800152f6\njnb     short loc_180015301                                            ; +0x59, 0x1800152f9\nmov     rcx, [rcx+10h]                                                 ; +0x5b, 0x1800152fb\njmp     short loc_180015307                                            ; +0x5f, 0x1800152ff\nmov     rdx, rcx                                                       ; +0x61, 0x180015301\nmov     rcx, [rcx]                                                     ; +0x64, 0x180015304\ncmp     byte ptr [rcx+19h], 0                                          ; +0x67, 0x180015307\njz      short loc_1800152F6                                            ; +0x6b, 0x18001530b\ncmp     byte ptr [rdx+19h], 0                                          ; +0x6d, 0x18001530d\njnz     short loc_180015344                                            ; +0x71, 0x180015311\ncmp     edi, [rdx+1Ch]                                                 ; +0x73, 0x180015313\njb      short loc_180015344                                            ; +0x76, 0x180015316\ncmp     rdx, rax                                                       ; +0x78, 0x180015318\njz      short loc_180015344                                            ; +0x7b, 0x18001531b\nmov     rcx, [rsi+270h]; this                                          ; +0x7d, 0x18001531d\nmov     edx, edi; unsigned int                                         ; +0x84, 0x180015324\ncall    ?objectWithObjectID@CCArrayForObjectSorting@extension@cocos2d@@QEAAPEAVCCSortableObject@23@I@Z; cocos2d::extension::CCArrayForObjectSorting::objectWithObjectID(uint) ; +0x86, 0x180015326\ntest    rax, rax                                                       ; +0x8b, 0x18001532b\njz      short loc_180015344                                            ; +0x8e, 0x18001532e\nlea     rdx, [rax-140h]; struct cocos2d::extension::CCTableViewCell *  ; +0x90, 0x180015330\ntest    rdx, rdx                                                       ; +0x97, 0x180015337\njz      short loc_180015344                                            ; +0x9a, 0x18001533a\nmov     rcx, rsi; this                                                 ; +0x9c, 0x18001533c\ncall    ?_moveCellOutOfSight@CCTableView@extension@cocos2d@@IEAAXPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_moveCellOutOfSight(cocos2d::extension::CCTableViewCell *) ; +0x9f, 0x18001533f\nmov     rcx, [rsi+280h]                                                ; +0xa4, 0x180015344\nmov     r8d, edi                                                       ; +0xab, 0x18001534b\nmov     rdx, rsi                                                       ; +0xae, 0x18001534e\nmov     rax, [rcx]                                                     ; +0xb1, 0x180015351\ncall    qword ptr [rax+18h]                                            ; +0xb4, 0x180015354\nmov     edx, edi; unsigned int                                         ; +0xb7, 0x180015357\nmov     rcx, rsi; this                                                 ; +0xb9, 0x180015359\nmov     r8, rax; struct cocos2d::extension::CCTableViewCell *          ; +0xbc, 0x18001535c\nmov     rbx, rax                                                       ; +0xbf, 0x18001535f\ncall    ?_setIndexForCell@CCTableView@extension@cocos2d@@IEAAXIPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_setIndexForCell(uint,cocos2d::extension::CCTableViewCell *) ; +0xc2, 0x180015362\nmov     rdx, rbx; struct cocos2d::extension::CCTableViewCell *         ; +0xc7, 0x180015367\nmov     rcx, rsi; this                                                 ; +0xca, 0x18001536a\ncall    ?_addCellIfNecessary@CCTableView@extension@cocos2d@@IEAAXPEAVCCTableViewCell@23@@Z; cocos2d::extension::CCTableView::_addCellIfNecessary(cocos2d::extension::CCTableViewCell *) ; +0xcd, 0x18001536d\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xd2, 0x180015372\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xd7, 0x180015377\nadd     rsp, 20h                                                       ; +0xdc, 0x18001537c\npop     rdi                                                            ; +0xe0, 0x180015380\nretn                                                                   ; +0xe1, 0x180015381", "xrefs": ["cocos2d::extension::CCTableView::scrollViewDidScroll @ 0x180016334", "<???> @ 0x18002edb8", "<???> @ 0x18002edc8", "<???> @ 0x18002fdf8", "<???> @ 0x18004a764"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}