// // cocos2d::extension::CCControlButton::ccTouchBegan from 0x180007330 to 0x18000743e (270 bytes) // // 5 xrefs: // > @ 0x180023c98 // > @ 0x180027ae0 // > @ 0x18002fdf8 // > @ 0x18004972c // > @ 0x180049738 // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // char __fastcall cocos2d::extension::CCControlButton::ccTouchBegan( cocos2d::extension::CCControlButton *this, struct cocos2d::CCTouch *a2, struct cocos2d::CCEvent *a3) { char *v3; // rdi __int64 v5; // rdx __int64 v6; // rbx __int64 v7; // rbx __int64 v8; // rax v3 = (char *)this - 320; if ( (*(unsigned __int8 (__fastcall **)(char *, struct cocos2d::CCTouch *, struct cocos2d::CCEvent *))(*((_QWORD *)this - 40) + 1104LL))( (char *)this - 320, a2, a3) && (*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 1024LL))(v3) && (*(unsigned __int8 (__fastcall **)(char *))(*(_QWORD *)v3 + 328LL))(v3) ) { v6 = (*(__int64 (__fastcall **)(char *))(*(_QWORD *)v3 + 488LL))(v3); if ( v6 ) { while ( (*(unsigned __int8 (__fastcall **)(__int64))(*(_QWORD *)v6 + 328LL))(v6) ) { v6 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v6 + 488LL))(v6); if ( !v6 ) goto LABEL_7; } } else { LABEL_7: v7 = *((_QWORD *)this - 13); if ( !v7 ) { LABEL_10: v8 = *(_QWORD *)v3; LOBYTE(v5) = 1; *((_BYTE *)this + 204) = 1; (*(void (__fastcall **)(char *, __int64))(v8 + 1048))(v3, v5); (*(void (__fastcall **)(char *, __int64))(*(_QWORD *)v3 + 1072LL))(v3, 1); return 1; } while ( (*(unsigned __int8 (__fastcall **)(__int64))(*(_QWORD *)v7 + 328LL))(v7) ) { v7 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v7 + 488LL))(v7); if ( !v7 ) goto LABEL_10; } } } return 0; }