{"type": "func", "start": 6442536624, "end": 6442537016, "name": "cocos2d::extension::CCTableView::~CCTableView", "pseudocode": "// \n// cocos2d::extension::CCTableView::~CCTableView from 0x180014eb0 to 0x180015038 (392 bytes)\n// \n// 5 xrefs:\n// > sub_180016C20 @ 0x180016c7e\n// > sub_180016C20 @ 0x180016c3c\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a728\n// > <???> @ 0x18004a734\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::~CCTableView(cocos2d::extension::CCTableView *this)\n{\n  void **v2; // rsi\n  _QWORD *v3; // rdi\n  void *v4; // rcx\n  cocos2d::CCObject *v5; // rcx\n  cocos2d::CCObject *v6; // rcx\n  _QWORD *v7; // rcx\n\n  *(_QWORD *)this = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCNode'};\n  *((_QWORD *)this + 40) = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCTouchDelegate'};\n  *((_QWORD *)this + 41) = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCAccelerometerDelegate'};\n  *((_QWORD *)this + 42) = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCKeypadDelegate'};\n  *((_QWORD *)this + 43) = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCKeyboardDelegate'};\n  *((_QWORD *)this + 44) = &cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCMouseDelegate'};\n  *((_QWORD *)this + 71) = &cocos2d::extension::CCTableView::`vftable';\n  v2 = *((void ***)this + 74);\n  if ( v2 )\n  {\n    v3 = *((_QWORD **)*v2 + 1);\n    while ( !*((_BYTE *)v3 + 25) )\n    {\n      sub_1800169B0(v2, v2, v3[2]);\n      v4 = v3;\n      v3 = (_QWORD *)*v3;\n      j_j_free(v4);\n    }\n    j_j_free(*v2);\n    j_j_free(v2);\n    *((_QWORD *)this + 74) = 0;\n  }\n  v5 = *((cocos2d::CCObject **)this + 78);\n  if ( v5 )\n    cocos2d::CCObject::release(v5);\n  v6 = *((cocos2d::CCObject **)this + 79);\n  if ( v6 )\n    cocos2d::CCObject::release(v6);\n  cocos2d::extension::CCTableView::unregisterAllScriptHandler(this);\n  v7 = *((_QWORD **)this + 75);\n  if ( v7 )\n  {\n    if ( ((*((_QWORD *)this + 77) - (_QWORD)v7) & 0xFFFFFFFFFFFFFFFCuLL) >= 0x1000 )\n    {\n      if ( (unsigned __int64)v7 - *(v7 - 1) - 8 > 0x1F )\n        invalid_parameter_noinfo_noreturn();\n      v7 = (_QWORD *)*(v7 - 1);\n    }\n    j_j_free(v7);\n    *((_QWORD *)this + 75) = 0;\n    *((_QWORD *)this + 76) = 0;\n    *((_QWORD *)this + 77) = 0;\n  }\n  *((_QWORD *)this + 71) = &cocos2d::extension::CCScrollViewDelegate::`vftable';\n  cocos2d::extension::CCScrollView::~CCScrollView(this);\n}", "assembly": "; \n; cocos2d::extension::CCTableView::~CCTableView from 0x180014eb0 to 0x180015038 (392 bytes)\n; \n; 5 xrefs:\n; > sub_180016C20 @ 0x180016c7e\n; > sub_180016C20 @ 0x180016c3c\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a728\n; > <???> @ 0x18004a734\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, 0x180014eb0\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x180014eb5\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x180014eba\npush    rdi                                                            ; +0xf, 0x180014ebf\nsub     rsp, 20h                                                       ; +0x10, 0x180014ec0\nmov     rbx, rcx                                                       ; +0x14, 0x180014ec4\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCNode@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCNode'} ; +0x17, 0x180014ec7\nmov     [rcx], rax                                                     ; +0x1e, 0x180014ece\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCTouchDelegate@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCTouchDelegate'} ; +0x21, 0x180014ed1\nmov     [rcx+140h], rax                                                ; +0x28, 0x180014ed8\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCAccelerometerDelegate@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCAccelerometerDelegate'} ; +0x2f, 0x180014edf\nmov     [rcx+148h], rax                                                ; +0x36, 0x180014ee6\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCKeypadDelegate@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCKeypadDelegate'} ; +0x3d, 0x180014eed\nmov     [rcx+150h], rax                                                ; +0x44, 0x180014ef4\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCKeyboardDelegate@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCKeyboardDelegate'} ; +0x4b, 0x180014efb\nmov     [rcx+158h], rax                                                ; +0x52, 0x180014f02\nlea     rax, ??_7CCTableView@extension@cocos2d@@6BCCMouseDelegate@2@@; const cocos2d::extension::CCTableView::`vftable'{for `cocos2d::CCMouseDelegate'} ; +0x59, 0x180014f09\nmov     [rcx+160h], rax                                                ; +0x60, 0x180014f10\nlea     rax, ??_7CCTableView@extension@cocos2d@@6B@; const cocos2d::extension::CCTableView::`vftable' ; +0x67, 0x180014f17\nmov     [rcx+238h], rax                                                ; +0x6e, 0x180014f1e\nmov     rsi, [rcx+250h]                                                ; +0x75, 0x180014f25\nxor     ebp, ebp                                                       ; +0x7c, 0x180014f2c\ntest    rsi, rsi                                                       ; +0x7e, 0x180014f2e\njz      short loc_180014F86                                            ; +0x81, 0x180014f31\nmov     rax, [rsi]                                                     ; +0x83, 0x180014f33\nmov     rdi, [rax+8]                                                   ; +0x86, 0x180014f36\ncmp     [rdi+19h], bpl                                                 ; +0x8a, 0x180014f3a\njnz     short loc_180014F65                                            ; +0x8e, 0x180014f3e\nmov     r8, [rdi+10h]                                                  ; +0x90, 0x180014f40\nmov     rdx, rsi                                                       ; +0x94, 0x180014f44\nmov     rcx, rsi                                                       ; +0x97, 0x180014f47\ncall    sub_1800169B0                                                  ; +0x9a, 0x180014f4a\nmov     rcx, rdi; Block                                                ; +0x9f, 0x180014f4f\nmov     rdi, [rdi]                                                     ; +0xa2, 0x180014f52\nmov     edx, 20h ; ' '                                                 ; +0xa5, 0x180014f55\ncall    j_j_free                                                       ; +0xaa, 0x180014f5a\ncmp     [rdi+19h], bpl                                                 ; +0xaf, 0x180014f5f\njz      short loc_180014F40                                            ; +0xb3, 0x180014f63\nmov     edx, 20h ; ' '                                                 ; +0xb5, 0x180014f65\nmov     rcx, [rsi]; Block                                              ; +0xba, 0x180014f6a\ncall    j_j_free                                                       ; +0xbd, 0x180014f6d\nmov     edx, 10h                                                       ; +0xc2, 0x180014f72\nmov     rcx, rsi; Block                                                ; +0xc7, 0x180014f77\ncall    j_j_free                                                       ; +0xca, 0x180014f7a\nmov     [rbx+250h], rbp                                                ; +0xcf, 0x180014f7f\nmov     rcx, [rbx+270h]                                                ; +0xd6, 0x180014f86\ntest    rcx, rcx                                                       ; +0xdd, 0x180014f8d\njz      short loc_180014F98                                            ; +0xe0, 0x180014f90\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xe2, 0x180014f92\nmov     rcx, [rbx+278h]                                                ; +0xe8, 0x180014f98\ntest    rcx, rcx                                                       ; +0xef, 0x180014f9f\njz      short loc_180014FAA                                            ; +0xf2, 0x180014fa2\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xf4, 0x180014fa4\nmov     rcx, rbx; this                                                 ; +0xfa, 0x180014faa\ncall    ?unregisterAllScriptHandler@CCTableView@extension@cocos2d@@QEAAXXZ; cocos2d::extension::CCTableView::unregisterAllScriptHandler(void) ; +0xfd, 0x180014fad\nmov     rcx, [rbx+258h]                                                ; +0x102, 0x180014fb2\ntest    rcx, rcx                                                       ; +0x109, 0x180014fb9\njz      short loc_180015007                                            ; +0x10c, 0x180014fbc\nmov     rdx, [rbx+268h]                                                ; +0x10e, 0x180014fbe\nsub     rdx, rcx                                                       ; +0x115, 0x180014fc5\nand     rdx, 0FFFFFFFFFFFFFFFCh                                        ; +0x118, 0x180014fc8\ncmp     rdx, 1000h                                                     ; +0x11c, 0x180014fcc\njb      short loc_180014FED                                            ; +0x123, 0x180014fd3\nadd     rdx, 27h ; '''                                                 ; +0x125, 0x180014fd5\nmov     r8, [rcx-8]                                                    ; +0x129, 0x180014fd9\nsub     rcx, r8                                                        ; +0x12d, 0x180014fdd\nlea     rax, [rcx-8]                                                   ; +0x130, 0x180014fe0\ncmp     rax, 1Fh                                                       ; +0x134, 0x180014fe4\nja      short loc_180015031                                            ; +0x138, 0x180014fe8\nmov     rcx, r8; Block                                                 ; +0x13a, 0x180014fea\ncall    j_j_free                                                       ; +0x13d, 0x180014fed\nmov     [rbx+258h], rbp                                                ; +0x142, 0x180014ff2\nmov     [rbx+260h], rbp                                                ; +0x149, 0x180014ff9\nmov     [rbx+268h], rbp                                                ; +0x150, 0x180015000\nlea     rax, ??_7CCScrollViewDelegate@extension@cocos2d@@6B@; const cocos2d::extension::CCScrollViewDelegate::`vftable' ; +0x157, 0x180015007\nmov     [rbx+238h], rax                                                ; +0x15e, 0x18001500e\nmov     rcx, rbx; this                                                 ; +0x165, 0x180015015\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x168, 0x180015018\nmov     rbp, [rsp+28h+arg_8]                                           ; +0x16d, 0x18001501d\nmov     rsi, [rsp+28h+arg_10]                                          ; +0x172, 0x180015022\nadd     rsp, 20h                                                       ; +0x177, 0x180015027\npop     rdi                                                            ; +0x17b, 0x18001502b\njmp     ??1CCScrollView@extension@cocos2d@@UEAA@XZ; cocos2d::extension::CCScrollView::~CCScrollView(void) ; +0x17c, 0x18001502c\ncall    cs:_invalid_parameter_noinfo_noreturn                          ; +0x181, 0x180015031\ndb 0CCh                                                                ; +0x187, 0x180015037", "xrefs": ["sub_180016C20 @ 0x180016c7e", "sub_180016C20 @ 0x180016c3c", "<???> @ 0x18002fdf8", "<???> @ 0x18004a728", "<???> @ 0x18004a734"], "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"}