{"type": "func", "start": 6442495264, "end": 6442495553, "name": "cocos2d::extension::CCControlSlider::needsLayout", "pseudocode": "// \n// cocos2d::extension::CCControlSlider::needsLayout from 0x18000ad20 to 0x18000ae41 (289 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x180025ed8\n// > <???> @ 0x18002de48\n// > <???> @ 0x18002de58\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049bb8\n// > <???> @ 0x180049bc4\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::CCControlSlider::needsLayout(cocos2d::extension::CCControlSlider *this)\n{\n  __int64 v2; // rcx\n  float v3; // xmm6_4\n  const struct cocos2d::CCPoint *v4; // rax\n  float *v5; // rax\n  __int64 v6; // rcx\n  __int64 v7; // rax\n  float v8[2]; // [rsp+30h] [rbp-38h] BYREF\n  _BYTE v9[4]; // [rsp+38h] [rbp-30h] BYREF\n  float v10; // [rsp+3Ch] [rbp-2Ch]\n  _BYTE v11[16]; // [rsp+40h] [rbp-28h] BYREF\n  float v12; // [rsp+70h] [rbp+8h] BYREF\n\n  v2 = *((_QWORD *)this + 62);\n  if ( v2 && *((_QWORD *)this + 64) )\n  {\n    if ( *((_QWORD *)this + 63) )\n    {\n      v3 = (float)(*((float *)this + 118) - *((float *)this + 119))\n         / (float)(*((float *)this + 120) - *((float *)this + 119));\n      v4 = (const struct cocos2d::CCPoint *)(*(__int64 (**)(void))(*(_QWORD *)v2 + 200LL))();\n      cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v12, v4);\n      v5 = (float *)(*(__int64 (__fastcall **)(_QWORD))(**((_QWORD **)this + 64) + 304LL))(*((_QWORD *)this + 64));\n      v6 = *((_QWORD *)this + 62);\n      v12 = v3 * *v5;\n      (*(void (__fastcall **)(__int64, float *))(*(_QWORD *)v6 + 184LL))(v6, &v12);\n      cocos2d::CCRect::CCRect((cocos2d::CCRect *)v8, (const struct cocos2d::CCRect *)(*((_QWORD *)this + 63) + 424LL));\n      v7 = cocos2d::CCRect::CCRect((cocos2d::CCRect *)v11, v8[0], v8[1], v12, v10);\n      cocos2d::CCRect::operator=(v8, v7);\n      (*(void (__fastcall **)(_QWORD, float *, _QWORD, _BYTE *))(**((_QWORD **)this + 63) + 968LL))(\n        *((_QWORD *)this + 63),\n        v8,\n        *(unsigned __int8 *)(*((_QWORD *)this + 63) + 440LL),\n        v9);\n    }\n  }\n}", "assembly": "; \n; cocos2d::extension::CCControlSlider::needsLayout from 0x18000ad20 to 0x18000ae41 (289 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x180025ed8\n; > <???> @ 0x18002de48\n; > <???> @ 0x18002de58\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049bb8\n; > <???> @ 0x180049bc4\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\npush    rbx                                                            ; +0x0, 0x18000ad20\nsub     rsp, 60h                                                       ; +0x2, 0x18000ad22\nmov     rbx, rcx                                                       ; +0x6, 0x18000ad26\nmov     rcx, [rcx+1F0h]                                                ; +0x9, 0x18000ad29\ntest    rcx, rcx                                                       ; +0x10, 0x18000ad30\njz      loc_18000AE3B                                                  ; +0x13, 0x18000ad33\ncmp     qword ptr [rbx+200h], 0                                        ; +0x19, 0x18000ad39\njz      loc_18000AE3B                                                  ; +0x21, 0x18000ad41\ncmp     qword ptr [rbx+1F8h], 0                                        ; +0x27, 0x18000ad47\njz      loc_18000AE3B                                                  ; +0x2f, 0x18000ad4f\nmovss   xmm1, dword ptr [rbx+1DCh]                                     ; +0x35, 0x18000ad55\nmovss   xmm0, dword ptr [rbx+1E0h]                                     ; +0x3d, 0x18000ad5d\nmov     rax, [rcx]                                                     ; +0x45, 0x18000ad65\nsubss   xmm0, xmm1                                                     ; +0x48, 0x18000ad68\nmovaps  [rsp+68h+var_18], xmm6                                         ; +0x4c, 0x18000ad6c\nmovss   xmm6, dword ptr [rbx+1D8h]                                     ; +0x51, 0x18000ad71\nsubss   xmm6, xmm1                                                     ; +0x59, 0x18000ad79\ndivss   xmm6, xmm0                                                     ; +0x5d, 0x18000ad7d\ncall    qword ptr [rax+0C8h]                                           ; +0x61, 0x18000ad81\nmov     rdx, rax                                                       ; +0x67, 0x18000ad87\nlea     rcx, [rsp+68h+arg_0]                                           ; +0x6a, 0x18000ad8a\ncall    cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x6f, 0x18000ad8f\nmov     rcx, [rbx+200h]                                                ; +0x75, 0x18000ad95\nmov     rax, [rcx]                                                     ; +0x7c, 0x18000ad9c\ncall    qword ptr [rax+130h]                                           ; +0x7f, 0x18000ad9f\nmov     rcx, [rbx+1F0h]                                                ; +0x85, 0x18000ada5\nlea     rdx, [rsp+68h+arg_0]                                           ; +0x8c, 0x18000adac\nmulss   xmm6, dword ptr [rax]                                          ; +0x91, 0x18000adb1\nmovss   [rsp+68h+arg_0], xmm6                                          ; +0x95, 0x18000adb5\nmov     rax, [rcx]                                                     ; +0x9b, 0x18000adbb\ncall    qword ptr [rax+0B8h]                                           ; +0x9e, 0x18000adbe\nmov     rdx, [rbx+1F8h]                                                ; +0xa4, 0x18000adc4\nlea     rcx, [rsp+68h+var_38]                                          ; +0xab, 0x18000adcb\nadd     rdx, 1A8h                                                      ; +0xb0, 0x18000add0\ncall    cs:??0CCRect@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCRect::CCRect(cocos2d::CCRect const &) ; +0xb7, 0x18000add7\nmovss   xmm0, [rsp+68h+var_2C]                                         ; +0xbd, 0x18000addd\nlea     rcx, [rsp+68h+var_28]                                          ; +0xc3, 0x18000ade3\nmovss   xmm3, [rsp+68h+arg_0]                                          ; +0xc8, 0x18000ade8\nmovss   xmm2, [rsp+68h+var_34]                                         ; +0xce, 0x18000adee\nmovss   xmm1, [rsp+68h+var_38]                                         ; +0xd4, 0x18000adf4\nmovss   [rsp+68h+var_48], xmm0                                         ; +0xda, 0x18000adfa\ncall    cs:??0CCRect@cocos2d@@QEAA@MMMM@Z; cocos2d::CCRect::CCRect(float,float,float,float) ; +0xe0, 0x18000ae00\nmov     rdx, rax                                                       ; +0xe6, 0x18000ae06\nlea     rcx, [rsp+68h+var_38]                                          ; +0xe9, 0x18000ae09\ncall    cs:??4CCRect@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCRect::operator=(cocos2d::CCRect const &) ; +0xee, 0x18000ae0e\nmov     rcx, [rbx+1F8h]                                                ; +0xf4, 0x18000ae14\nlea     r9, [rsp+68h+var_30]                                           ; +0xfb, 0x18000ae1b\nlea     rdx, [rsp+68h+var_38]                                          ; +0x100, 0x18000ae20\nmov     rax, [rcx]                                                     ; +0x105, 0x18000ae25\nmovzx   r8d, byte ptr [rcx+1B8h]                                       ; +0x108, 0x18000ae28\ncall    qword ptr [rax+3C8h]                                           ; +0x110, 0x18000ae30\nmovaps  xmm6, [rsp+68h+var_18]                                         ; +0x116, 0x18000ae36\nadd     rsp, 60h                                                       ; +0x11b, 0x18000ae3b\npop     rbx                                                            ; +0x11f, 0x18000ae3f\nretn                                                                   ; +0x120, 0x18000ae40", "xrefs": ["<???> @ 0x180025ed8", "<???> @ 0x18002de48", "<???> @ 0x18002de58", "<???> @ 0x18002fdf8", "<???> @ 0x180049bb8", "<???> @ 0x180049bc4"], "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"}