{"type": "func", "start": 6442542736, "end": 6442542890, "name": "cocos2d::extension::CCTableView::ccTouchCancelled", "pseudocode": "// \n// cocos2d::extension::CCTableView::ccTouchCancelled from 0x180016690 to 0x18001672a (154 bytes)\n// \n// 3 xrefs:\n// > <???> @ 0x180028868\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a920\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::ccTouchCancelled(\n        cocos2d::CCArray **this,\n        struct cocos2d::CCTouch *a2,\n        struct cocos2d::CCEvent *a3)\n{\n  __int64 v5; // rcx\n\n  if ( (*((unsigned __int8 (__fastcall **)(char *, struct cocos2d::CCTouch *, struct cocos2d::CCEvent *))*(this - 40)\n        + 41))(\n         (char *)this - 320,\n         a2,\n         a3) )\n  {\n    cocos2d::CCArray::removeObject(*(this + 23), a2, 1);\n    if ( !cocos2d::CCArray::count(*(this + 23)) )\n    {\n      *((_BYTE *)this + 116) = 0;\n      *((_BYTE *)this + 136) = 0;\n    }\n  }\n  if ( *(this + 32) )\n  {\n    v5 = (__int64)*(this + 41);\n    if ( v5 )\n      (*(void (__fastcall **)(__int64, char *))(*(_QWORD *)v5 + 40LL))(v5, (char *)this - 320);\n    *(this + 32) = nullptr;\n  }\n}", "assembly": "; \n; cocos2d::extension::CCTableView::ccTouchCancelled from 0x180016690 to 0x18001672a (154 bytes)\n; \n; 3 xrefs:\n; > <???> @ 0x180028868\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a920\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\nmov     [rsp+arg_0], rbx                                               ; +0x0, 0x180016690\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180016695\npush    rdi                                                            ; +0xa, 0x18001669a\nsub     rsp, 20h                                                       ; +0xb, 0x18001669b\nmov     rax, [rcx-140h]                                                ; +0xf, 0x18001669f\nmov     rbx, rcx                                                       ; +0x16, 0x1800166a6\nadd     rcx, 0FFFFFFFFFFFFFEC0h                                        ; +0x19, 0x1800166a9\nmov     rsi, rdx                                                       ; +0x20, 0x1800166b0\ncall    qword ptr [rax+148h]                                           ; +0x23, 0x1800166b3\ntest    al, al                                                         ; +0x29, 0x1800166b9\njz      short loc_1800166EA                                            ; +0x2b, 0x1800166bb\nmov     rcx, [rbx+0B8h]                                                ; +0x2d, 0x1800166bd\nmov     r8b, 1                                                         ; +0x34, 0x1800166c4\nmov     rdx, rsi                                                       ; +0x37, 0x1800166c7\ncall    cs:?removeObject@CCArray@cocos2d@@QEAAXPEAVCCObject@2@_N@Z; cocos2d::CCArray::removeObject(cocos2d::CCObject *,bool) ; +0x3a, 0x1800166ca\nmov     rcx, [rbx+0B8h]                                                ; +0x40, 0x1800166d0\ncall    cs:?count@CCArray@cocos2d@@QEBAIXZ; cocos2d::CCArray::count(void) ; +0x47, 0x1800166d7\ntest    eax, eax                                                       ; +0x4d, 0x1800166dd\njnz     short loc_1800166EA                                            ; +0x4f, 0x1800166df\nmov     [rbx+74h], al                                                  ; +0x51, 0x1800166e1\nmov     [rbx+88h], al                                                  ; +0x54, 0x1800166e4\nmov     r8, [rbx+100h]                                                 ; +0x5a, 0x1800166ea\ntest    r8, r8                                                         ; +0x61, 0x1800166f1\njz      short loc_18001671A                                            ; +0x64, 0x1800166f4\nmov     rcx, [rbx+148h]                                                ; +0x66, 0x1800166f6\ntest    rcx, rcx                                                       ; +0x6d, 0x1800166fd\njz      short loc_18001670F                                            ; +0x70, 0x180016700\nmov     rax, [rcx]                                                     ; +0x72, 0x180016702\nlea     rdx, [rbx-140h]                                                ; +0x75, 0x180016705\ncall    qword ptr [rax+28h]                                            ; +0x7c, 0x18001670c\nmov     qword ptr [rbx+100h], 0                                        ; +0x7f, 0x18001670f\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x8a, 0x18001671a\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x8f, 0x18001671f\nadd     rsp, 20h                                                       ; +0x94, 0x180016724\npop     rdi                                                            ; +0x98, 0x180016728\nretn                                                                   ; +0x99, 0x180016729", "xrefs": ["<???> @ 0x180028868", "<???> @ 0x18002fdf8", "<???> @ 0x18004a920"], "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"}