// // cocos2d::extension::CCControlUtils::HSVfromRGB from 0x18000d430 to 0x18000d52b (251 bytes) // // 4 xrefs: // > cocos2d::extension::CCControlColourPicker::setColorValue @ 0x180007f38 // > @ 0x18002fdf8 // > @ 0x180049df8 // > @ 0x180049e04 // // 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::CCControlUtils::HSVfromRGB(__int64 a1, double *a2) { double v2; // xmm5_8 double v3; // xmm2_8 double v4; // xmm6_8 double v5; // xmm3_8 double v6; // xmm0_8 double v7; // xmm4_8 double v8; // xmm2_8 __int64 result; // rax double v10; // xmm0_8 v2 = *a2; v3 = a2[1]; v4 = a2[2]; v5 = fmax(v4, fmax(*a2, v3)); v6 = fmin(*a2, v3); *(double *)(a1 + 16) = v5; v7 = v5 - fmin(v4, v6); if ( v5 <= 0.0 ) { *(_QWORD *)(a1 + 8) = 0; *(_QWORD *)a1 = 0xBFF0000000000000uLL; return a1; } else { *(double *)(a1 + 8) = v7 / v5; if ( v2 < v5 ) { if ( v3 < v5 ) v8 = (v2 - v3) / v7 + 4.0; else v8 = (v4 - v2) / v7 + 2.0; } else if ( v7 == 0.0 ) { v8 = 0.0; } else { v8 = (v3 - v4) / v7; } *(double *)a1 = v8; result = a1; v10 = *(double *)a1 * 60.0; *(double *)a1 = v10; if ( v10 < 0.0 ) *(double *)a1 = v10 + 360.0; } return result; }