// // cocos2d::extension::CCControlUtils::RGBfromHSV from 0x18000d530 to 0x18000d6b0 (384 bytes) // // 5 xrefs: // > cocos2d::extension::CCControlColourPicker::hueSliderValueChanged @ 0x1800080f4 // > cocos2d::extension::CCControlColourPicker::colourSliderValueChanged @ 0x180008237 // > cocos2d::extension::CCControlSaturationBrightnessPicker::updateWithHSV @ 0x180009d59 // > @ 0x18002fdf8 // > @ 0x180049e10 // // 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::RGBfromHSV(__int64 a1, double *a2) { double v2; // xmm3_8 double v3; // xmm6_8 __m128d v7; // xmm0 double v8; // xmm3_8 double v9; // xmm1_8 int v10; // eax double v11; // xmm2_8 double v12; // xmm3_8 double v13; // xmm5_8 double v14; // xmm4_8 v2 = *a2; v3 = a2[1]; *(_QWORD *)(a1 + 24) = 0x3FF0000000000000LL; if ( v3 > 0.0 ) { if ( v2 >= 360.0 ) v2 = 0.0; v8 = v2 * 0.01666666753590107; v9 = a2[2]; v10 = (int)v8; v11 = (1.0 - v3) * v9; v12 = v8 - (double)(int)v8; v13 = (1.0 - v3 * v12) * v9; v14 = (1.0 - (1.0 - v12) * v3) * v9; switch ( v10 ) { case 0: *(double *)(a1 + 8) = v14; *(double *)(a1 + 16) = v11; break; case 1: *(double *)(a1 + 8) = v9; v9 = (1.0 - v3 * v12) * v9; *(double *)(a1 + 16) = v11; break; case 2: *(double *)(a1 + 8) = v9; v9 = (1.0 - v3) * v9; *(double *)(a1 + 16) = v14; break; case 3: *(double *)(a1 + 16) = v9; v9 = (1.0 - v3) * v9; *(double *)(a1 + 8) = v13; break; case 4: *(double *)(a1 + 16) = v9; v9 = (1.0 - (1.0 - v12) * v3) * v9; goto LABEL_14; default: *(double *)(a1 + 16) = v13; LABEL_14: *(double *)(a1 + 8) = v11; break; } *(double *)a1 = v9; return a1; } else if ( isnan(v2) ) { *(_QWORD *)a1 = 0; *(_QWORD *)(a1 + 8) = 0; *(_QWORD *)(a1 + 16) = 0; return a1; } else { v7 = _mm_unpacklo_pd((__m128d)*((unsigned __int64 *)a2 + 2), (__m128d)*((unsigned __int64 *)a2 + 2)); *(double *)(a1 + 16) = v7.m128d_f64[0]; *(__m128d *)a1 = v7; return a1; } }