{"type": "func", "start": 6442480432, "end": 6442480702, "name": "cocos2d::extension::CCControlButton::ccTouchBegan", "pseudocode": "// \n// cocos2d::extension::CCControlButton::ccTouchBegan from 0x180007330 to 0x18000743e (270 bytes)\n// \n// 5 xrefs:\n// > <???> @ 0x180023c98\n// > <???> @ 0x180027ae0\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004972c\n// > <???> @ 0x180049738\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\nchar __fastcall cocos2d::extension::CCControlButton::ccTouchBegan(\n        cocos2d::extension::CCControlButton *this,\n        struct cocos2d::CCTouch *a2,\n        struct cocos2d::CCEvent *a3)\n{\n  char *v3; // rdi\n  __int64 v5; // rdx\n  __int64 v6; // rbx\n  __int64 v7; // rbx\n  __int64 v8; // rax\n\n  v3 = (char *)this - 320;\n  if ( (*(unsigned __int8 (__fastcall **)(char *, struct cocos2d::CCTouch *, struct cocos2d::CCEvent *))(*((_QWORD *)this - 40) + 1104LL))(\n         (char *)this - 320,\n         a2,\n         a3)\n    && (*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 1024LL))(v3)\n    && (*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 328LL))(v3) )\n  {\n    v6 = (*(__int64 (__fastcall **)(char *))(*(_QWORD *)v3 + 488LL))(v3);\n    if ( v6 )\n    {\n      while ( (*(unsigned __int8 (__fastcall **)(__int64))(*(_QWORD *)v6 + 328LL))(v6) )\n      {\n        v6 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v6 + 488LL))(v6);\n        if ( !v6 )\n          goto LABEL_7;\n      }\n    }\n    else\n    {\nLABEL_7:\n      v7 = *((_QWORD *)this - 13);\n      if ( !v7 )\n      {\nLABEL_10:\n        v8 = *(_QWORD *)v3;\n        LOBYTE(v5) = 1;\n        *((_BYTE *)this + 204) = 1;\n        (*(void (__fastcall **)(char *, __int64))(v8 + 1048))(v3, v5);\n        (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 1);\n        return 1;\n      }\n      while ( (*(unsigned __int8 (__fastcall **)(__int64))(*(_QWORD *)v7 + 328LL))(v7) )\n      {\n        v7 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v7 + 488LL))(v7);\n        if ( !v7 )\n          goto LABEL_10;\n      }\n    }\n  }\n  return 0;\n}", "assembly": "; \n; cocos2d::extension::CCControlButton::ccTouchBegan from 0x180007330 to 0x18000743e (270 bytes)\n; \n; 5 xrefs:\n; > <???> @ 0x180023c98\n; > <???> @ 0x180027ae0\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004972c\n; > <???> @ 0x180049738\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, 0x180007330\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180007335\npush    rdi                                                            ; +0xa, 0x18000733a\nsub     rsp, 20h                                                       ; +0xb, 0x18000733b\nlea     rdi, [rcx-140h]                                                ; +0xf, 0x18000733f\nmov     rsi, rcx                                                       ; +0x16, 0x180007346\nmov     rax, [rdi]                                                     ; +0x19, 0x180007349\nmov     rcx, rdi                                                       ; +0x1c, 0x18000734c\ncall    qword ptr [rax+450h]                                           ; +0x1f, 0x18000734f\ntest    al, al                                                         ; +0x25, 0x180007355\njz      loc_18000742C                                                  ; +0x27, 0x180007357\nmov     rax, [rdi]                                                     ; +0x2d, 0x18000735d\nmov     rcx, rdi                                                       ; +0x30, 0x180007360\ncall    qword ptr [rax+400h]                                           ; +0x33, 0x180007363\ntest    al, al                                                         ; +0x39, 0x180007369\njz      loc_18000742C                                                  ; +0x3b, 0x18000736b\nmov     rax, [rdi]                                                     ; +0x41, 0x180007371\nmov     rcx, rdi                                                       ; +0x44, 0x180007374\ncall    qword ptr [rax+148h]                                           ; +0x47, 0x180007377\ntest    al, al                                                         ; +0x4d, 0x18000737d\njz      loc_18000742C                                                  ; +0x4f, 0x18000737f\nmov     rax, [rdi]                                                     ; +0x55, 0x180007385\nmov     rcx, rdi                                                       ; +0x58, 0x180007388\ncall    qword ptr [rax+1E8h]                                           ; +0x5b, 0x18000738b\nmov     rbx, rax                                                       ; +0x61, 0x180007391\ntest    rax, rax                                                       ; +0x64, 0x180007394\njz      short loc_1800073C4                                            ; +0x67, 0x180007397\nnop     dword ptr [rax+00000000h]                                      ; +0x69, 0x180007399\nmov     rdx, [rbx]                                                     ; +0x70, 0x1800073a0\nmov     rcx, rbx                                                       ; +0x73, 0x1800073a3\ncall    qword ptr [rdx+148h]                                           ; +0x76, 0x1800073a6\ntest    al, al                                                         ; +0x7c, 0x1800073ac\njz      short loc_18000742C                                            ; +0x7e, 0x1800073ae\nmov     rdx, [rbx]                                                     ; +0x80, 0x1800073b0\nmov     rcx, rbx                                                       ; +0x83, 0x1800073b3\ncall    qword ptr [rdx+1E8h]                                           ; +0x86, 0x1800073b6\nmov     rbx, rax                                                       ; +0x8c, 0x1800073bc\ntest    rax, rax                                                       ; +0x8f, 0x1800073bf\njnz     short loc_1800073A0                                            ; +0x92, 0x1800073c2\nmov     rbx, [rsi-68h]                                                 ; +0x94, 0x1800073c4\ntest    rbx, rbx                                                       ; +0x98, 0x1800073c8\njz      short loc_1800073F4                                            ; +0x9b, 0x1800073cb\nnop     dword ptr [rax]                                                ; +0x9d, 0x1800073cd\nmov     rax, [rbx]                                                     ; +0xa0, 0x1800073d0\nmov     rcx, rbx                                                       ; +0xa3, 0x1800073d3\ncall    qword ptr [rax+148h]                                           ; +0xa6, 0x1800073d6\ntest    al, al                                                         ; +0xac, 0x1800073dc\njz      short loc_18000742C                                            ; +0xae, 0x1800073de\nmov     rax, [rbx]                                                     ; +0xb0, 0x1800073e0\nmov     rcx, rbx                                                       ; +0xb3, 0x1800073e3\ncall    qword ptr [rax+1E8h]                                           ; +0xb6, 0x1800073e6\nmov     rbx, rax                                                       ; +0xbc, 0x1800073ec\ntest    rax, rax                                                       ; +0xbf, 0x1800073ef\njnz     short loc_1800073D0                                            ; +0xc2, 0x1800073f2\nmov     rax, [rdi]                                                     ; +0xc4, 0x1800073f4\nmov     dl, 1                                                          ; +0xc7, 0x1800073f7\nmov     rcx, rdi                                                       ; +0xc9, 0x1800073f9\nmov     byte ptr [rsi+0CCh], 1                                         ; +0xcc, 0x1800073fc\ncall    qword ptr [rax+418h]                                           ; +0xd3, 0x180007403\nmov     rax, [rdi]                                                     ; +0xd9, 0x180007409\nmov     edx, 1                                                         ; +0xdc, 0x18000740c\nmov     rcx, rdi                                                       ; +0xe1, 0x180007411\ncall    qword ptr [rax+430h]                                           ; +0xe4, 0x180007414\nmov     al, 1                                                          ; +0xea, 0x18000741a\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xec, 0x18000741c\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xf1, 0x180007421\nadd     rsp, 20h                                                       ; +0xf6, 0x180007426\npop     rdi                                                            ; +0xfa, 0x18000742a\nretn                                                                   ; +0xfb, 0x18000742b\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xfc, 0x18000742c\nxor     al, al                                                         ; +0x101, 0x180007431\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x103, 0x180007433\nadd     rsp, 20h                                                       ; +0x108, 0x180007438\npop     rdi                                                            ; +0x10c, 0x18000743c\nretn                                                                   ; +0x10d, 0x18000743d", "xrefs": ["<???> @ 0x180023c98", "<???> @ 0x180027ae0", "<???> @ 0x18002fdf8", "<???> @ 0x18004972c", "<???> @ 0x180049738"], "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"}