{"type": "func", "start": 6442483888, "end": 6442484190, "name": "cocos2d::extension::CCControlColourPicker::hueSliderValueChanged", "pseudocode": "// \n// cocos2d::extension::CCControlColourPicker::hueSliderValueChanged from 0x1800080b0 to 0x1800081de (302 bytes)\n// \n// 3 xrefs:\n// > cocos2d::extension::CCControlColourPicker::init @ 0x180007dac\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004984c\n// \n// This function is hookable on this platform!\n// \n// Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA\n// Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings\n// \n\nvoid __fastcall cocos2d::extension::CCControlColourPicker::hueSliderValueChanged(\n        cocos2d::extension::CCControlColourPicker *this,\n        struct cocos2d::CCObject *a2)\n{\n  __int64 v3; // xmm1_8\n  __m128d *v4; // rax\n  double v5; // xmm2_8\n  double v6; // xmm3_8\n  __int64 *v7; // rcx\n  __int64 v8; // xmm1_8\n  __int64 v9; // rax\n  __int64 v10; // rcx\n  void (__fastcall ***v11)(_QWORD, __int16 *); // rcx\n  __int128 v12; // [rsp+20h] [rbp-48h] BYREF\n  __int64 v13; // [rsp+30h] [rbp-38h]\n  _BYTE v14[40]; // [rsp+40h] [rbp-28h] BYREF\n  __int16 v15; // [rsp+70h] [rbp+8h] BYREF\n  char v16; // [rsp+72h] [rbp+Ah]\n\n  *((double *)this + 60) = *((float *)a2 + 118);\n  v3 = *((_QWORD *)this + 62);\n  v12 = *((_OWORD *)this + 30);\n  v13 = v3;\n  v4 = (__m128d *)cocos2d::extension::CCControlUtils::RGBfromHSV(v14, &v12);\n  v5 = _mm_unpackhi_pd(*v4, *v4).m128d_f64[0] * 255.0;\n  v6 = v4[1].m128d_f64[0] * 255.0;\n  *((_BYTE *)this + 472) = (int)(v4->m128d_f64[0] * 255.0);\n  *((_BYTE *)this + 473) = (int)v5;\n  *((_BYTE *)this + 474) = (int)v6;\n  (*(void (__fastcall **)(cocos2d::extension::CCControlColourPicker *, __int64))(*(_QWORD *)this + 1072LL))(this, 256);\n  (*(void (__fastcall **)(_QWORD))(**((_QWORD **)this + 64) + 1112LL))(*((_QWORD *)this + 64));\n  v7 = *((__int64 **)this + 63);\n  v8 = *((_QWORD *)this + 62);\n  v9 = *v7;\n  v12 = *((_OWORD *)this + 30);\n  v13 = v8;\n  (*(void (__fastcall **)(__int64 *, __int128 *))(v9 + 1120))(v7, &v12);\n  v10 = *((_QWORD *)this + 66);\n  if ( v10 )\n    (**(void (__fastcall ***)(__int64, char *))(v10 + 320))(v10 + 320, (char *)this + 472);\n  v11 = *((void (__fastcall ****)(_QWORD, __int16 *))this + 67);\n  if ( v11 )\n  {\n    v15 = *((_WORD *)this + 236);\n    v16 = *((_BYTE *)this + 474);\n    (**v11)(v11, &v15);\n  }\n}", "assembly": "; \n; cocos2d::extension::CCControlColourPicker::hueSliderValueChanged from 0x1800080b0 to 0x1800081de (302 bytes)\n; \n; 3 xrefs:\n; > cocos2d::extension::CCControlColourPicker::init @ 0x180007dac\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004984c\n; \n; This function is hookable on this platform!\n; \n; Using BromaIDA 8.0.0 @ https:;github.com/Stazzical/BromaIDA\n; Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https:;github.com/geode-sdk/bindings\n; \n\nmov     [rsp+arg_8], rbx                                               ; +0x0, 0x1800080b0\npush    rdi                                                            ; +0x5, 0x1800080b5\nsub     rsp, 60h                                                       ; +0x6, 0x1800080b6\nmovss   xmm0, dword ptr [rdx+1D8h]                                     ; +0xa, 0x1800080ba\nmov     rdi, rcx                                                       ; +0x12, 0x1800080c2\ncvtps2pd xmm0, xmm0                                                    ; +0x15, 0x1800080c5\nlea     rdx, [rsp+68h+var_48]                                          ; +0x18, 0x1800080c8\nmovsd   qword ptr [rcx+1E0h], xmm0                                     ; +0x1d, 0x1800080cd\nmovups  xmm0, xmmword ptr [rcx+1E0h]                                   ; +0x25, 0x1800080d5\nmovsd   xmm1, qword ptr [rcx+1F0h]                                     ; +0x2c, 0x1800080dc\nlea     rcx, [rsp+68h+var_28]                                          ; +0x34, 0x1800080e4\nmovaps  [rsp+68h+var_48], xmm0                                         ; +0x39, 0x1800080e9\nmovsd   [rsp+68h+var_38], xmm1                                         ; +0x3e, 0x1800080ee\ncall    ?RGBfromHSV@CCControlUtils@extension@cocos2d@@SA?AURGBA@23@UHSV@23@@Z; cocos2d::extension::CCControlUtils::RGBfromHSV(cocos2d::extension::HSV) ; +0x44, 0x1800080f4\nmovsd   xmm1, cs:qword_180029570                                       ; +0x49, 0x1800080f9\nlea     rbx, [rdi+1D8h]                                                ; +0x51, 0x180008101\nmov     edx, 100h                                                      ; +0x58, 0x180008108\nmov     rcx, rdi                                                       ; +0x5d, 0x18000810d\nmovups  xmm2, xmmword ptr [rax]                                        ; +0x60, 0x180008110\nmovups  xmm3, xmmword ptr [rax+10h]                                    ; +0x63, 0x180008113\nmovaps  xmm0, xmm2                                                     ; +0x67, 0x180008117\nunpckhpd xmm2, xmm2                                                    ; +0x6a, 0x18000811a\nmulsd   xmm0, xmm1                                                     ; +0x6e, 0x18000811e\nmulsd   xmm2, xmm1                                                     ; +0x72, 0x180008122\nmulsd   xmm3, xmm1                                                     ; +0x76, 0x180008126\ncvttsd2si eax, xmm0                                                    ; +0x7a, 0x18000812a\nmov     [rbx], al                                                      ; +0x7e, 0x18000812e\ncvttsd2si eax, xmm2                                                    ; +0x80, 0x180008130\nmov     [rbx+1], al                                                    ; +0x84, 0x180008134\ncvttsd2si eax, xmm3                                                    ; +0x87, 0x180008137\nmov     [rbx+2], al                                                    ; +0x8b, 0x18000813b\nmov     rax, [rdi]                                                     ; +0x8e, 0x18000813e\ncall    qword ptr [rax+430h]                                           ; +0x91, 0x180008141\nmov     rcx, [rdi+200h]                                                ; +0x97, 0x180008147\nmovsd   xmm1, qword ptr [rdi+1E0h]                                     ; +0x9e, 0x18000814e\ncvtpd2ps xmm1, xmm1                                                    ; +0xa6, 0x180008156\nmov     rax, [rcx]                                                     ; +0xaa, 0x18000815a\ncall    qword ptr [rax+458h]                                           ; +0xad, 0x18000815d\nmov     rcx, [rdi+1F8h]                                                ; +0xb3, 0x180008163\nlea     rdx, [rsp+68h+var_48]                                          ; +0xba, 0x18000816a\nmovups  xmm0, xmmword ptr [rdi+1E0h]                                   ; +0xbf, 0x18000816f\nmovsd   xmm1, qword ptr [rdi+1F0h]                                     ; +0xc6, 0x180008176\nmov     rax, [rcx]                                                     ; +0xce, 0x18000817e\nmovaps  [rsp+68h+var_48], xmm0                                         ; +0xd1, 0x180008181\nmovsd   [rsp+68h+var_38], xmm1                                         ; +0xd6, 0x180008186\ncall    qword ptr [rax+460h]                                           ; +0xdc, 0x18000818c\nmov     rcx, [rdi+210h]                                                ; +0xe2, 0x180008192\ntest    rcx, rcx                                                       ; +0xe9, 0x180008199\njz      short loc_1800081AD                                            ; +0xec, 0x18000819c\nadd     rcx, 140h                                                      ; +0xee, 0x18000819e\nmov     rdx, rbx                                                       ; +0xf5, 0x1800081a5\nmov     rax, [rcx]                                                     ; +0xf8, 0x1800081a8\ncall    qword ptr [rax]                                                ; +0xfb, 0x1800081ab\nmov     rcx, [rdi+218h]                                                ; +0xfd, 0x1800081ad\ntest    rcx, rcx                                                       ; +0x104, 0x1800081b4\njz      short loc_1800081D3                                            ; +0x107, 0x1800081b7\nmovzx   eax, word ptr [rbx]                                            ; +0x109, 0x1800081b9\nlea     rdx, [rsp+68h+arg_0]                                           ; +0x10c, 0x1800081bc\nmov     [rsp+68h+arg_0], ax                                            ; +0x111, 0x1800081c1\nmovzx   eax, byte ptr [rbx+2]                                          ; +0x116, 0x1800081c6\nmov     [rsp+68h+arg_2], al                                            ; +0x11a, 0x1800081ca\nmov     rax, [rcx]                                                     ; +0x11e, 0x1800081ce\ncall    qword ptr [rax]                                                ; +0x121, 0x1800081d1\nmov     rbx, [rsp+68h+arg_8]                                           ; +0x123, 0x1800081d3\nadd     rsp, 60h                                                       ; +0x128, 0x1800081d8\npop     rdi                                                            ; +0x12c, 0x1800081dc\nretn                                                                   ; +0x12d, 0x1800081dd", "xrefs": ["cocos2d::extension::CCControlColourPicker::init @ 0x180007dac", "<???> @ 0x18002fdf8", "<???> @ 0x18004984c"], "is_objc": false, "is_arm32": false, "is_arm64": false, "bida_info": "8.0.0 @ https://github.com/Stazzical/BromaIDA", "bindings_info": "commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings"}