{"type": "func", "start": 6442492160, "end": 6442492435, "name": "cocos2d::extension::CCControlSaturationBrightnessPicker::checkSliderPosition", "pseudocode": "// \n// cocos2d::extension::CCControlSaturationBrightnessPicker::checkSliderPosition from 0x18000a100 to 0x18000a213 (275 bytes)\n// \n// 4 xrefs:\n// > cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchBegan @ 0x18000a281\n// > cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchMoved @ 0x18000a2da\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049aec\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\nchar __fastcall cocos2d::extension::CCControlSaturationBrightnessPicker::checkSliderPosition(\n        __int64 a1,\n        float *a2,\n        char a3)\n{\n  float v6; // xmm6_4\n  float v7; // xmm2_4\n  float v8; // xmm2_4\n  float v9; // xmm6_4\n  float *v11; // rax\n  _BYTE v12[16]; // [rsp+20h] [rbp-28h] BYREF\n  char v13; // [rsp+50h] [rbp+8h] BYREF\n\n  v6 = (float)(*(float *)(cocos2d::CCNode::boundingBox(*(_QWORD *)(a1 + 480), v12) + 8) * 0.5) + *(float *)(a1 + 512);\n  v7 = a2[1]\n     - (float)((float)(*(float *)(cocos2d::CCNode::boundingBox(*(_QWORD *)(a1 + 480), v12) + 12) * 0.5)\n             + *(float *)(a1 + 516));\n  v8 = (float)(v7 * v7) + (float)((float)(*a2 - v6) * (float)(*a2 - v6));\n  if ( v8 < 0.0 )\n    v9 = sqrtf(v8);\n  else\n    v9 = fsqrt(v8);\n  if ( (float)(*(float *)(cocos2d::CCNode::boundingBox(*(_QWORD *)(a1 + 480), v12) + 8) * 0.5) < v9 && !a3 )\n    return 0;\n  v11 = (float *)cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v13, (const struct cocos2d::CCPoint *)a2);\n  cocos2d::extension::CCControlSaturationBrightnessPicker::updateSliderPosition(a1, v11);\n  (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)a1 + 1072LL))(a1, 256);\n  return 1;\n}", "assembly": "; \n; cocos2d::extension::CCControlSaturationBrightnessPicker::checkSliderPosition from 0x18000a100 to 0x18000a213 (275 bytes)\n; \n; 4 xrefs:\n; > cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchBegan @ 0x18000a281\n; > cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchMoved @ 0x18000a2da\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049aec\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, 0x18000a100\nmov     [rsp+arg_10], rsi                                              ; +0x5, 0x18000a105\npush    rdi                                                            ; +0xa, 0x18000a10a\nsub     rsp, 40h                                                       ; +0xb, 0x18000a10b\nmov     rdi, rdx                                                       ; +0xf, 0x18000a10f\nmovaps  [rsp+48h+var_18], xmm6                                         ; +0x12, 0x18000a112\nmov     rbx, rcx                                                       ; +0x17, 0x18000a117\nlea     rdx, [rsp+48h+var_28]                                          ; +0x1a, 0x18000a11a\nmov     rcx, [rcx+1E0h]                                                ; +0x1f, 0x18000a11f\nmovzx   esi, r8b                                                       ; +0x26, 0x18000a126\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0x2a, 0x18000a12a\nmov     rcx, [rbx+1E0h]                                                ; +0x30, 0x18000a130\nlea     rdx, [rsp+48h+var_28]                                          ; +0x37, 0x18000a137\nmovss   xmm6, dword ptr [rax+8]                                        ; +0x3c, 0x18000a13c\nmulss   xmm6, cs:dword_180029510                                       ; +0x41, 0x18000a141\naddss   xmm6, dword ptr [rbx+200h]                                     ; +0x49, 0x18000a149\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0x51, 0x18000a151\nmovss   xmm1, dword ptr [rdi]                                          ; +0x57, 0x18000a157\nmovss   xmm2, dword ptr [rdi+4]                                        ; +0x5b, 0x18000a15b\nsubss   xmm1, xmm6                                                     ; +0x60, 0x18000a160\nmovss   xmm0, dword ptr [rax+0Ch]                                      ; +0x64, 0x18000a164\nmulss   xmm0, cs:dword_180029510                                       ; +0x69, 0x18000a169\nmulss   xmm1, xmm1                                                     ; +0x71, 0x18000a171\naddss   xmm0, dword ptr [rbx+204h]                                     ; +0x75, 0x18000a175\nsubss   xmm2, xmm0                                                     ; +0x7d, 0x18000a17d\nxorps   xmm0, xmm0                                                     ; +0x81, 0x18000a181\nmulss   xmm2, xmm2                                                     ; +0x84, 0x18000a184\naddss   xmm2, xmm1                                                     ; +0x88, 0x18000a188\nucomiss xmm0, xmm2                                                     ; +0x8c, 0x18000a18c\nja      short loc_18000A19A                                            ; +0x8f, 0x18000a18f\nxorps   xmm6, xmm6                                                     ; +0x91, 0x18000a191\nsqrtss  xmm6, xmm2                                                     ; +0x94, 0x18000a194\njmp     short loc_18000A1A5                                            ; +0x98, 0x18000a198\nmovaps  xmm0, xmm2; X                                                  ; +0x9a, 0x18000a19a\ncall    sqrtf                                                          ; +0x9d, 0x18000a19d\nmovaps  xmm6, xmm0                                                     ; +0xa2, 0x18000a1a2\nmov     rcx, [rbx+1E0h]                                                ; +0xa5, 0x18000a1a5\nlea     rdx, [rsp+48h+var_28]                                          ; +0xac, 0x18000a1ac\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0xb1, 0x18000a1b1\nmovss   xmm1, dword ptr [rax+8]                                        ; +0xb7, 0x18000a1b7\nmulss   xmm1, cs:dword_180029510                                       ; +0xbc, 0x18000a1bc\ncomiss  xmm1, xmm6                                                     ; +0xc4, 0x18000a1c4\njnb     short loc_18000A1D2                                            ; +0xc7, 0x18000a1c7\ntest    sil, sil                                                       ; +0xc9, 0x18000a1c9\njnz     short loc_18000A1D2                                            ; +0xcc, 0x18000a1cc\nxor     al, al                                                         ; +0xce, 0x18000a1ce\njmp     short loc_18000A1FE                                            ; +0xd0, 0x18000a1d0\nmov     rdx, rdi                                                       ; +0xd2, 0x18000a1d2\nlea     rcx, [rsp+48h+arg_0]                                           ; +0xd5, 0x18000a1d5\ncall    cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0xda, 0x18000a1da\nmov     rdx, rax                                                       ; +0xe0, 0x18000a1e0\nmov     rcx, rbx                                                       ; +0xe3, 0x18000a1e3\ncall    ?updateSliderPosition@CCControlSaturationBrightnessPicker@extension@cocos2d@@IEAAXVCCPoint@3@@Z; cocos2d::extension::CCControlSaturationBrightnessPicker::updateSliderPosition(cocos2d::CCPoint) ; +0xe6, 0x18000a1e6\nmov     rax, [rbx]                                                     ; +0xeb, 0x18000a1eb\nmov     edx, 100h                                                      ; +0xee, 0x18000a1ee\nmov     rcx, rbx                                                       ; +0xf3, 0x18000a1f3\ncall    qword ptr [rax+430h]                                           ; +0xf6, 0x18000a1f6\nmov     al, 1                                                          ; +0xfc, 0x18000a1fc\nmov     rbx, [rsp+48h+arg_8]                                           ; +0xfe, 0x18000a1fe\nmov     rsi, [rsp+48h+arg_10]                                          ; +0x103, 0x18000a203\nmovaps  xmm6, [rsp+48h+var_18]                                         ; +0x108, 0x18000a208\nadd     rsp, 40h                                                       ; +0x10d, 0x18000a20d\npop     rdi                                                            ; +0x111, 0x18000a211\nretn                                                                   ; +0x112, 0x18000a212", "xrefs": ["cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchBegan @ 0x18000a281", "cocos2d::extension::CCControlSaturationBrightnessPicker::ccTouchMoved @ 0x18000a2da", "<???> @ 0x18002fdf8", "<???> @ 0x180049aec"], "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"}