// // cocos2d::extension::CCScrollView::registerScriptHandler from 0x1800141c0 to 0x1800142c2 (258 bytes) // // 2 xrefs: // > @ 0x18002fdf8 // > @ 0x18004a5f0 // // 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 // // Hidden C++ exception states: #wind=1 void __fastcall cocos2d::extension::CCScrollView::registerScriptHandler( cocos2d::extension::CCScrollView *this, int a2, int a3) { __int64 *v6; // rbx __int64 v7; // rsi __int64 v8; // rax __int64 v9; // rcx _DWORD *v10; // rax __int128 v11; // [rsp+20h] [rbp-38h] BYREF __int128 v12; // [rsp+30h] [rbp-28h] cocos2d::extension::CCScrollView::unregisterScriptHandler(this, a3); v6 = (__int64 *)((char *)this + 552); v7 = *v6; v8 = *(_QWORD *)(*v6 + 8); *(_QWORD *)&v12 = v8; DWORD2(v12) = 0; v9 = v7; while ( !*(_BYTE *)(v8 + 25) ) { *(_QWORD *)&v12 = v8; if ( *(_DWORD *)(v8 + 28) >= a3 ) { DWORD2(v12) = 1; v9 = v8; v8 = *(_QWORD *)v8; } else { DWORD2(v12) = 0; v8 = *(_QWORD *)(v8 + 16); } } if ( *(_BYTE *)(v9 + 25) || a3 < *(_DWORD *)(v9 + 28) ) { if ( v6[1] == 0x666666666666666LL ) sub_1800054D0(); v10 = operator new(0x28u); v10[7] = a3; v10[8] = 0; *(_QWORD *)v10 = v7; *((_QWORD *)v10 + 1) = v7; *((_QWORD *)v10 + 2) = v7; *((_WORD *)v10 + 12) = 0; v11 = v12; v9 = sub_180004DA0(v6, (__int64)&v11, (__int64)v10); } *(_DWORD *)(v9 + 32) = a2; }