// // cocos2d::extension::CCScrollView::setContentOffset from 0x180012890 to 0x18001299f (271 bytes) // // 7 xrefs: // > cocos2d::extension::CCScrollView::setZoomScale @ 0x180012bd0 // > cocos2d::extension::CCScrollView::relocateContainer @ 0x180012ebc // > cocos2d::extension::CCScrollView::deaccelerateScrolling @ 0x1800131ff // > cocos2d::extension::CCScrollView::ccTouchMoved @ 0x180013ea7 // > cocos2d::extension::CCTableView::_updateContentSize @ 0x180015a4a // > @ 0x18002fdf8 // > @ 0x18004a3e0 // // 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 // __int64 __fastcall cocos2d::extension::CCScrollView::setContentOffset(__int64 a1, float *a2, char a3) { const struct cocos2d::CCPoint *v5; // rax struct cocos2d::CCFiniteTimeAction *v6; // rbx __int64 v7; // rax struct cocos2d::CCAction *v8; // rax __int64 result; // rax float v10; // xmm0_4 float v11; // xmm1_4 float v12; // xmm0_4 float v13; // xmm1_4 __int64 v14; // rcx float v15; // [rsp+20h] [rbp-18h] BYREF float v16; // [rsp+24h] [rbp-14h] float v17; // [rsp+58h] [rbp+20h] BYREF float v18; // [rsp+5Ch] [rbp+24h] if ( a3 ) { v5 = (const struct cocos2d::CCPoint *)cocos2d::CCPoint::CCPoint( (cocos2d::CCPoint *)&v17, (const struct cocos2d::CCPoint *)a2); v6 = cocos2d::CCMoveTo::create(0.15000001, v5); v7 = cocos2d::CCCallFuncN::create(a1, cocos2d::extension::CCScrollView::stoppedAnimatedScroll); v8 = cocos2d::CCSequence::create(v6, v7, 0); cocos2d::CCNode::runAction(*(cocos2d::CCNode **)(a1 + 448), v8); return cocos2d::CCNode::schedule(a1, cocos2d::extension::CCScrollView::performedAnimatedScroll); } else { if ( !*(_BYTE *)(a1 + 476) ) { cocos2d::extension::CCScrollView::minContainerOffset(a1, &v15); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v17, 0.0, 0.0); v10 = fminf(v17, *a2); v11 = v15; if ( v15 <= v10 ) v11 = v10; v12 = fminf(v18, a2[1]); *a2 = v11; v13 = v16; if ( v16 <= v12 ) v13 = v12; a2[1] = v13; } result = (*(__int64 (__fastcall **)(_QWORD, float *))(**(_QWORD **)(a1 + 448) + 184LL))(*(_QWORD *)(a1 + 448), a2); v14 = *(_QWORD *)(a1 + 424); if ( v14 ) return (*(__int64 (__fastcall **)(__int64, __int64))(*(_QWORD *)v14 + 8LL))(v14, a1); } return result; }