{"type": "func", "start": 6442480704, "end": 6442481062, "name": "cocos2d::extension::CCControlButton::ccTouchMoved", "pseudocode": "// \n// cocos2d::extension::CCControlButton::ccTouchMoved from 0x180007440 to 0x1800075a6 (358 bytes)\n// \n// 4 xrefs:\n// > <???> @ 0x180023ca0\n// > <???> @ 0x180027ae8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049744\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::CCControlButton::ccTouchMoved(\n        cocos2d::extension::CCControlButton *this,\n        struct cocos2d::CCTouch *a2,\n        struct cocos2d::CCEvent *a3)\n{\n  char *v3; // rbx\n  char v6; // al\n  __int64 v7; // rdx\n  char v8; // al\n  __int64 v9; // rdx\n  __int64 v10; // r8\n  bool v11; // zf\n  __int64 v12; // rax\n\n  v3 = (char *)this - 320;\n  if ( (*(unsigned __int8 (__fastcall **)(char *, struct cocos2d::CCTouch *, struct cocos2d::CCEvent *))(*((_QWORD *)this - 40) + 1024LL))(\n         (char *)this - 320,\n         a2,\n         a3)\n    && *((_BYTE *)this + 204)\n    && !(*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 1040LL))(v3) )\n  {\n    v6 = (*(__int64 (__fastcall **)(char *, struct cocos2d::CCTouch *))(*(_QWORD *)v3 + 1104LL))(v3, a2);\n    v7 = *(_QWORD *)v3;\n    if ( v6 )\n    {\n      v8 = (*(__int64 (__fastcall **)(char *))(v7 + 1056))(v3);\n      v10 = *(_QWORD *)v3;\n      if ( v8 )\n      {\n        if ( (*(unsigned __int8 (__fastcall **)(char *))(v10 + 1056))(v3) )\n          (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 2);\n      }\n      else\n      {\n        LOBYTE(v9) = 1;\n        (*(void (__fastcall **)(char *, __int64))(v10 + 1048))(v3, v9);\n        (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 8);\n      }\n    }\n    else\n    {\n      v11 = (*(unsigned __int8 (__fastcall **)(char *))(v7 + 1056))(v3) == 0;\n      v12 = *(_QWORD *)v3;\n      if ( v11 )\n      {\n        if ( !(*(unsigned __int8 (__fastcall **)(char *))(v12 + 1056))(v3) )\n          (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 4);\n      }\n      else\n      {\n        (*(void (__fastcall **)(char *, _QWORD))(v12 + 1048))(v3, 0);\n        (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 16);\n      }\n    }\n  }\n  else if ( (*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 1056LL))(v3) )\n  {\n    (*(void (__fastcall **)(char *, _QWORD))(*(_QWORD *)v3 + 1048LL))(v3, 0);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCControlButton::ccTouchMoved from 0x180007440 to 0x1800075a6 (358 bytes)\n; \n; 4 xrefs:\n; > <???> @ 0x180023ca0\n; > <???> @ 0x180027ae8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049744\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, 0x180007440\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180007445\npush    rdi                                                            ; +0xa, 0x18000744a\nsub     rsp, 20h                                                       ; +0xb, 0x18000744b\nlea     rbx, [rcx-140h]                                                ; +0xf, 0x18000744f\nmov     rdi, rcx                                                       ; +0x16, 0x180007456\nmov     rax, [rbx]                                                     ; +0x19, 0x180007459\nmov     rcx, rbx                                                       ; +0x1c, 0x18000745c\nmov     rsi, rdx                                                       ; +0x1f, 0x18000745f\ncall    qword ptr [rax+400h]                                           ; +0x22, 0x180007462\ntest    al, al                                                         ; +0x28, 0x180007468\njz      loc_180007578                                                  ; +0x2a, 0x18000746a\ncmp     byte ptr [rdi+0CCh], 0                                         ; +0x30, 0x180007470\njz      loc_180007578                                                  ; +0x37, 0x180007477\nmov     rax, [rbx]                                                     ; +0x3d, 0x18000747d\nmov     rcx, rbx                                                       ; +0x40, 0x180007480\ncall    qword ptr [rax+410h]                                           ; +0x43, 0x180007483\ntest    al, al                                                         ; +0x49, 0x180007489\njnz     loc_180007578                                                  ; +0x4b, 0x18000748b\nmov     rax, [rbx]                                                     ; +0x51, 0x180007491\nmov     rdx, rsi                                                       ; +0x54, 0x180007494\nmov     rcx, rbx                                                       ; +0x57, 0x180007497\ncall    qword ptr [rax+450h]                                           ; +0x5a, 0x18000749a\nmov     rdx, [rbx]                                                     ; +0x60, 0x1800074a0\nmov     rcx, rbx                                                       ; +0x63, 0x1800074a3\ntest    al, al                                                         ; +0x66, 0x1800074a6\njz      short loc_180007514                                            ; +0x68, 0x1800074a8\ncall    qword ptr [rdx+420h]                                           ; +0x6a, 0x1800074aa\nmov     r8, [rbx]                                                      ; +0x70, 0x1800074b0\nmov     rcx, rbx                                                       ; +0x73, 0x1800074b3\ntest    al, al                                                         ; +0x76, 0x1800074b6\njnz     short loc_1800074E4                                            ; +0x78, 0x1800074b8\nmov     dl, 1                                                          ; +0x7a, 0x1800074ba\ncall    qword ptr [r8+418h]                                            ; +0x7c, 0x1800074bc\nmov     rax, [rbx]                                                     ; +0x83, 0x1800074c3\nmov     edx, 8                                                         ; +0x86, 0x1800074c6\nmov     rcx, rbx                                                       ; +0x8b, 0x1800074cb\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x8e, 0x1800074ce\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x93, 0x1800074d3\nadd     rsp, 20h                                                       ; +0x98, 0x1800074d8\npop     rdi                                                            ; +0x9c, 0x1800074dc\njmp     qword ptr [rax+430h]                                           ; +0x9d, 0x1800074dd\ncall    qword ptr [r8+420h]                                            ; +0xa4, 0x1800074e4\ntest    al, al                                                         ; +0xab, 0x1800074eb\njz      loc_180007596                                                  ; +0xad, 0x1800074ed\nmov     rax, [rbx]                                                     ; +0xb3, 0x1800074f3\nmov     edx, 2                                                         ; +0xb6, 0x1800074f6\nmov     rcx, rbx                                                       ; +0xbb, 0x1800074fb\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xbe, 0x1800074fe\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xc3, 0x180007503\nadd     rsp, 20h                                                       ; +0xc8, 0x180007508\npop     rdi                                                            ; +0xcc, 0x18000750c\njmp     qword ptr [rax+430h]                                           ; +0xcd, 0x18000750d\ncall    qword ptr [rdx+420h]                                           ; +0xd4, 0x180007514\ntest    al, al                                                         ; +0xda, 0x18000751a\nmov     rcx, rbx                                                       ; +0xdc, 0x18000751c\nmov     rax, [rbx]                                                     ; +0xdf, 0x18000751f\njz      short loc_18000754D                                            ; +0xe2, 0x180007522\nxor     edx, edx                                                       ; +0xe4, 0x180007524\ncall    qword ptr [rax+418h]                                           ; +0xe6, 0x180007526\nmov     rax, [rbx]                                                     ; +0xec, 0x18000752c\nmov     edx, 10h                                                       ; +0xef, 0x18000752f\nmov     rcx, rbx                                                       ; +0xf4, 0x180007534\nmov     rbx, [rsp+28h+arg_0]                                           ; +0xf7, 0x180007537\nmov     rsi, [rsp+28h+arg_8]                                           ; +0xfc, 0x18000753c\nadd     rsp, 20h                                                       ; +0x101, 0x180007541\npop     rdi                                                            ; +0x105, 0x180007545\njmp     qword ptr [rax+430h]                                           ; +0x106, 0x180007546\ncall    qword ptr [rax+420h]                                           ; +0x10d, 0x18000754d\ntest    al, al                                                         ; +0x113, 0x180007553\njnz     short loc_180007596                                            ; +0x115, 0x180007555\nmov     rax, [rbx]                                                     ; +0x117, 0x180007557\nmov     edx, 4                                                         ; +0x11a, 0x18000755a\nmov     rcx, rbx                                                       ; +0x11f, 0x18000755f\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x122, 0x180007562\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x127, 0x180007567\nadd     rsp, 20h                                                       ; +0x12c, 0x18000756c\npop     rdi                                                            ; +0x130, 0x180007570\njmp     qword ptr [rax+430h]                                           ; +0x131, 0x180007571\nmov     rax, [rbx]                                                     ; +0x138, 0x180007578\nmov     rcx, rbx                                                       ; +0x13b, 0x18000757b\ncall    qword ptr [rax+420h]                                           ; +0x13e, 0x18000757e\ntest    al, al                                                         ; +0x144, 0x180007584\njz      short loc_180007596                                            ; +0x146, 0x180007586\nmov     rax, [rbx]                                                     ; +0x148, 0x180007588\nxor     edx, edx                                                       ; +0x14b, 0x18000758b\nmov     rcx, rbx                                                       ; +0x14d, 0x18000758d\ncall    qword ptr [rax+418h]                                           ; +0x150, 0x180007590\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x156, 0x180007596\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x15b, 0x18000759b\nadd     rsp, 20h                                                       ; +0x160, 0x1800075a0\npop     rdi                                                            ; +0x164, 0x1800075a4\nretn                                                                   ; +0x165, 0x1800075a5", "xrefs": ["<???> @ 0x180023ca0", "<???> @ 0x180027ae8", "<???> @ 0x18002fdf8", "<???> @ 0x180049744"], "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"}