// // sub_18000C670 from 0x18000c670 to 0x18000c9b3 (835 bytes) // // 7 xrefs: // > sub_18000C110 @ 0x18000c439 // > sub_18000C4A0 @ 0x18000c4c1 // > cocos2d::extension::CCControlSwitch::setOn @ 0x18000cecd // > cocos2d::extension::CCControlSwitch::setOn @ 0x18000cf8e // > cocos2d::extension::CCControlSwitch::ccTouchBegan @ 0x18000d0bc // > cocos2d::extension::CCControlSwitch::ccTouchMoved @ 0x18000d18e // > @ 0x180049d5c // // 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 // void __fastcall sub_18000C670(__int64 a1) { __int64 *v2; // rcx __int64 v3; // rbx float v4; // xmm6_4 float *v5; // rax __int64 v6; // rax __int64 *v7; // rcx __int64 v8; // rbx float v9; // xmm7_4 float v10; // xmm6_4 float v11; // xmm6_4 __int64 v12; // rax __int64 v13; // rbx float v14; // xmm6_4 float *v15; // rax __int64 v16; // rax __int64 *v17; // rdi __int64 v18; // rdi float v19; // xmm6_4 float *v20; // rbx float *v21; // rax __int64 v22; // rax __int64 *v23; // rbx __int64 v24; // rbx float v25; // xmm7_4 float v26; // xmm6_4 float v27; // xmm6_4 __int64 v28; // rax float v29; // xmm6_4 float *v30; // rax cocos2d::CCRenderTexture *v31; // rbx __int64 v32; // rcx __int64 v33; // rcx __int64 v34; // rax __int64 v35; // rdi __int64 v36; // rax char v37; // [rsp+60h] [rbp+8h] BYREF char v38; // [rsp+68h] [rbp+10h] BYREF v2 = *(__int64 **)(a1 + 640); v3 = *v2; v4 = *(float *)((*(__int64 (__fastcall **)(__int64 *))(*v2 + 304))(v2) + 4); v5 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 304LL))(*(_QWORD *)(a1 + 640)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v37, (float)(*v5 * 0.5) + *(float *)(a1 + 608), v4 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v3 + 184))(*(_QWORD *)(a1 + 640), v6); v7 = *(__int64 **)(a1 + 648); v8 = *v7; v9 = *(float *)((*(__int64 (__fastcall **)(__int64 *))(*v7 + 304))(v7) + 4); v10 = *(float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 648) + 304LL))(*(_QWORD *)(a1 + 648)); v11 = (float)((float)(v10 * 0.5) + *(float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 304LL))(*(_QWORD *)(a1 + 640))) + *(float *)(a1 + 608); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v37, v11, v9 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v8 + 184))(*(_QWORD *)(a1 + 648), v12); v13 = **(_QWORD **)(a1 + 656); v14 = *(float *)((*(__int64 (__fastcall **)(_QWORD, char *))(**(_QWORD **)(a1 + 624) + 136LL))( *(_QWORD *)(a1 + 624), &v37) + 4); v15 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 304LL))(*(_QWORD *)(a1 + 640)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v38, *(float *)(a1 + 608) + *v15, v14 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v13 + 184))(*(_QWORD *)(a1 + 656), v16); v17 = *(__int64 **)(a1 + 664); if ( v17 ) { v18 = *v17; v19 = *(float *)((*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 304LL))(*(_QWORD *)(a1 + 640)) + 4); v20 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 200LL))(*(_QWORD *)(a1 + 640)); v21 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 656) + 304LL))(*(_QWORD *)(a1 + 656)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v37, *v20 - (float)(*v21 / 6.0), v19 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v18 + 184))(*(_QWORD *)(a1 + 664), v22); } v23 = *(__int64 **)(a1 + 672); if ( v23 ) { v24 = *v23; v25 = *(float *)((*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 648) + 304LL))(*(_QWORD *)(a1 + 648)) + 4); v26 = *(float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 656) + 304LL))(*(_QWORD *)(a1 + 656)); v27 = (float)(v26 / 6.0) + *(float *)(*(__int64 (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 648) + 200LL))(*(_QWORD *)(a1 + 648)); cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v37, v27, v25 * 0.5); (*(void (__fastcall **)(_QWORD, __int64))(v24 + 184))(*(_QWORD *)(a1 + 672), v28); } v29 = *(float *)((*(__int64 (__fastcall **)(_QWORD, char *))(**(_QWORD **)(a1 + 624) + 136LL))( *(_QWORD *)(a1 + 624), &v37) + 4); v30 = (float *)(*(__int64 (__fastcall **)(_QWORD, char *))(**(_QWORD **)(a1 + 624) + 136LL))( *(_QWORD *)(a1 + 624), &v38); v31 = cocos2d::CCRenderTexture::create((int)*v30, (int)v29); cocos2d::CCRenderTexture::begin(v31); (*(void (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 640) + 728LL))(*(_QWORD *)(a1 + 640)); (*(void (__fastcall **)(_QWORD))(**(_QWORD **)(a1 + 648) + 728LL))(*(_QWORD *)(a1 + 648)); v32 = *(_QWORD *)(a1 + 664); if ( v32 ) (*(void (__fastcall **)(__int64))(*(_QWORD *)v32 + 728LL))(v32); v33 = *(_QWORD *)(a1 + 672); if ( v33 ) (*(void (__fastcall **)(__int64))(*(_QWORD *)v33 + 728LL))(v33); cocos2d::CCRenderTexture::end(v31); v34 = (*(__int64 (__fastcall **)(cocos2d::CCRenderTexture *))(*(_QWORD *)v31 + 872LL))(v31); v35 = *(_QWORD *)(a1 + 344); v36 = (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)(v34 + 344) + 16LL))(v34 + 344); (*(void (__fastcall **)(__int64, __int64))(v35 + 24))(a1 + 344, v36); cocos2d::CCSprite::setFlipY((cocos2d::CCSprite *)a1, 1); }