{"type": "func", "start": 6442493344, "end": 6442494083, "name": "cocos2d::extension::CCControlSlider::initWithSprites", "pseudocode": "// \n// cocos2d::extension::CCControlSlider::initWithSprites from 0x18000a5a0 to 0x18000a883 (739 bytes)\n// \n// 5 xrefs:\n// > <???> @ 0x180025f20\n// > <???> @ 0x18002de18\n// > <???> @ 0x18002de28\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049b4c\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::CCControlSlider::initWithSprites(\n        cocos2d::extension::CCControlSlider *this,\n        struct cocos2d::CCSprite *a2,\n        struct cocos2d::CCSprite *a3,\n        struct cocos2d::CCSprite *a4)\n{\n  __int64 v8; // rdx\n  cocos2d::CCObject *v9; // rcx\n  cocos2d::CCObject *v10; // rcx\n  cocos2d::CCObject *v11; // rcx\n  __int64 v12; // rbx\n  __int64 v13; // rax\n  __int64 v14; // rbx\n  __int64 v15; // rax\n  __int64 v16; // rbx\n  __int64 v17; // rax\n  __int64 v18; // rbx\n  float v19; // xmm6_4\n  float *v20; // rax\n  __int64 v21; // rax\n  __int64 v22; // rbx\n  __int64 v23; // rax\n  __int64 v24; // rbx\n  __int64 v25; // rax\n  __int64 v26; // rax\n  __int64 v27; // rbx\n  __int64 v28; // rax\n  __int64 v29; // rax\n  __int64 v30; // rax\n  _BYTE v32[16]; // [rsp+20h] [rbp-58h] BYREF\n  _BYTE v33[8]; // [rsp+30h] [rbp-48h] BYREF\n  float v34; // [rsp+38h] [rbp-40h]\n  float v35; // [rsp+3Ch] [rbp-3Ch]\n  _BYTE v36[16]; // [rsp+40h] [rbp-38h] BYREF\n\n  if ( !cocos2d::extension::CCControl::init(this) )\n    return 0;\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, _QWORD))(*(_QWORD *)this + 416LL))(this, 0);\n  LOBYTE(v8) = 1;\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, __int64))(*(_QWORD *)this + 904LL))(this, v8);\n  if ( *((struct cocos2d::CCSprite **)this + 64) != a2 )\n  {\n    if ( a2 )\n      cocos2d::CCObject::retain(a2);\n    v9 = *((cocos2d::CCObject **)this + 64);\n    if ( v9 )\n      cocos2d::CCObject::release(v9);\n    *((_QWORD *)this + 64) = a2;\n  }\n  if ( *((struct cocos2d::CCSprite **)this + 63) != a3 )\n  {\n    if ( a3 )\n      cocos2d::CCObject::retain(a3);\n    v10 = *((cocos2d::CCObject **)this + 63);\n    if ( v10 )\n      cocos2d::CCObject::release(v10);\n    *((_QWORD *)this + 63) = a3;\n  }\n  if ( *((struct cocos2d::CCSprite **)this + 62) != a4 )\n  {\n    if ( a4 )\n      cocos2d::CCObject::retain(a4);\n    v11 = *((cocos2d::CCObject **)this + 62);\n    if ( v11 )\n      cocos2d::CCObject::release(v11);\n    *((_QWORD *)this + 62) = a4;\n  }\n  v12 = cocos2d::CCNode::boundingBox(a4, v32);\n  v13 = cocos2d::CCNode::boundingBox(a2, v36);\n  cocos2d::extension::CCControlUtils::CCRectUnion(v33, v13, v12);\n  v14 = *(_QWORD *)this;\n  v15 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)v32, v34, v35);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, __int64))(v14 + 296))(this, v15);\n  v16 = **((_QWORD **)this + 64);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v32, 0.5, 0.5);\n  (*(void (__fastcall **)(_QWORD, __int64))(v16 + 272))(*((_QWORD *)this + 64), v17);\n  v18 = **((_QWORD **)this + 64);\n  v19 = *(float *)((*(__int64 (__fastcall **)(cocos2d::extension::CCControlSlider *))(*(_QWORD *)this + 304LL))(this) + 4);\n  v20 = (float *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlSlider *))(*(_QWORD *)this + 304LL))(this);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v32, *v20 * 0.5, v19 * 0.5);\n  (*(void (__fastcall **)(_QWORD, __int64))(v18 + 184))(*((_QWORD *)this + 64), v21);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, _QWORD))(*(_QWORD *)this + 448LL))(\n    this,\n    *((_QWORD *)this + 64));\n  v22 = **((_QWORD **)this + 63);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v32, 0.0, 0.5);\n  (*(void (__fastcall **)(_QWORD, __int64))(v22 + 272))(*((_QWORD *)this + 63), v23);\n  v24 = **((_QWORD **)this + 63);\n  v25 = (*(__int64 (__fastcall **)(cocos2d::extension::CCControlSlider *))(*(_QWORD *)this + 304LL))(this);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v32, 0.0, *(float *)(v25 + 4) * 0.5);\n  (*(void (__fastcall **)(_QWORD, __int64))(v24 + 184))(*((_QWORD *)this + 63), v26);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, _QWORD))(*(_QWORD *)this + 448LL))(\n    this,\n    *((_QWORD *)this + 63));\n  v27 = **((_QWORD **)this + 62);\n  v28 = (*(__int64 (__fastcall **)(cocos2d::extension::CCControlSlider *))(*(_QWORD *)this + 304LL))(this);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)v32, 0.0, *(float *)(v28 + 4) * 0.5);\n  (*(void (__fastcall **)(_QWORD, __int64))(v27 + 184))(*((_QWORD *)this + 62), v29);\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *, _QWORD))(*(_QWORD *)this + 448LL))(\n    this,\n    *((_QWORD *)this + 62));\n  v30 = *(_QWORD *)this;\n  *((_DWORD *)this + 119) = 0;\n  *((_DWORD *)this + 120) = 1065353216;\n  (*(void (__fastcall **)(cocos2d::extension::CCControlSlider *))(v30 + 1112))(this);\n  return 1;\n}", "assembly": "; \n; cocos2d::extension::CCControlSlider::initWithSprites from 0x18000a5a0 to 0x18000a883 (739 bytes)\n; \n; 5 xrefs:\n; > <???> @ 0x180025f20\n; > <???> @ 0x18002de18\n; > <???> @ 0x18002de28\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049b4c\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_0], rbx                                               ; +0x0, 0x18000a5a0\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x18000a5a5\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x18000a5aa\npush    rdi                                                            ; +0xf, 0x18000a5af\nsub     rsp, 70h                                                       ; +0x10, 0x18000a5b0\nmov     rsi, r9                                                        ; +0x14, 0x18000a5b4\nmov     rbx, r8                                                        ; +0x17, 0x18000a5b7\nmov     rbp, rdx                                                       ; +0x1a, 0x18000a5ba\nmov     rdi, rcx                                                       ; +0x1d, 0x18000a5bd\ncall    ?init@CCControl@extension@cocos2d@@UEAA_NXZ; cocos2d::extension::CCControl::init(void) ; +0x20, 0x18000a5c0\ntest    al, al                                                         ; +0x25, 0x18000a5c5\njz      loc_18000A86B                                                  ; +0x27, 0x18000a5c7\nmov     rax, [rdi]                                                     ; +0x2d, 0x18000a5cd\nxor     edx, edx                                                       ; +0x30, 0x18000a5d0\nmovaps  [rsp+78h+var_18], xmm6                                         ; +0x32, 0x18000a5d2\nmov     rcx, rdi                                                       ; +0x37, 0x18000a5d7\nmovaps  [rsp+78h+var_28], xmm7                                         ; +0x3a, 0x18000a5da\ncall    qword ptr [rax+1A0h]                                           ; +0x3f, 0x18000a5df\nmov     rax, [rdi]                                                     ; +0x45, 0x18000a5e5\nmov     dl, 1                                                          ; +0x48, 0x18000a5e8\nmov     rcx, rdi                                                       ; +0x4a, 0x18000a5ea\ncall    qword ptr [rax+388h]                                           ; +0x4d, 0x18000a5ed\ncmp     [rdi+200h], rbp                                                ; +0x53, 0x18000a5f3\njz      short loc_18000A623                                            ; +0x5a, 0x18000a5fa\ntest    rbp, rbp                                                       ; +0x5c, 0x18000a5fc\njz      short loc_18000A60A                                            ; +0x5f, 0x18000a5ff\nmov     rcx, rbp                                                       ; +0x61, 0x18000a601\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x64, 0x18000a604\nmov     rcx, [rdi+200h]                                                ; +0x6a, 0x18000a60a\ntest    rcx, rcx                                                       ; +0x71, 0x18000a611\njz      short loc_18000A61C                                            ; +0x74, 0x18000a614\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x76, 0x18000a616\nmov     [rdi+200h], rbp                                                ; +0x7c, 0x18000a61c\ncmp     [rdi+1F8h], rbx                                                ; +0x83, 0x18000a623\njz      short loc_18000A653                                            ; +0x8a, 0x18000a62a\ntest    rbx, rbx                                                       ; +0x8c, 0x18000a62c\njz      short loc_18000A63A                                            ; +0x8f, 0x18000a62f\nmov     rcx, rbx                                                       ; +0x91, 0x18000a631\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x94, 0x18000a634\nmov     rcx, [rdi+1F8h]                                                ; +0x9a, 0x18000a63a\ntest    rcx, rcx                                                       ; +0xa1, 0x18000a641\njz      short loc_18000A64C                                            ; +0xa4, 0x18000a644\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xa6, 0x18000a646\nmov     [rdi+1F8h], rbx                                                ; +0xac, 0x18000a64c\ncmp     [rdi+1F0h], rsi                                                ; +0xb3, 0x18000a653\njz      short loc_18000A683                                            ; +0xba, 0x18000a65a\ntest    rsi, rsi                                                       ; +0xbc, 0x18000a65c\njz      short loc_18000A66A                                            ; +0xbf, 0x18000a65f\nmov     rcx, rsi                                                       ; +0xc1, 0x18000a661\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0xc4, 0x18000a664\nmov     rcx, [rdi+1F0h]                                                ; +0xca, 0x18000a66a\ntest    rcx, rcx                                                       ; +0xd1, 0x18000a671\njz      short loc_18000A67C                                            ; +0xd4, 0x18000a674\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0xd6, 0x18000a676\nmov     [rdi+1F0h], rsi                                                ; +0xdc, 0x18000a67c\nlea     rdx, [rsp+78h+var_58]                                          ; +0xe3, 0x18000a683\nmov     rcx, rsi                                                       ; +0xe8, 0x18000a688\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0xeb, 0x18000a68b\nlea     rdx, [rsp+78h+var_38]                                          ; +0xf1, 0x18000a691\nmov     rcx, rbp                                                       ; +0xf6, 0x18000a696\nmov     rbx, rax                                                       ; +0xf9, 0x18000a699\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0xfc, 0x18000a69c\nmov     r8, rbx                                                        ; +0x102, 0x18000a6a2\nlea     rcx, [rsp+78h+var_48]                                          ; +0x105, 0x18000a6a5\nmov     rdx, rax                                                       ; +0x10a, 0x18000a6aa\ncall    ?CCRectUnion@CCControlUtils@extension@cocos2d@@SA?AVCCRect@3@AEBV43@0@Z; cocos2d::extension::CCControlUtils::CCRectUnion(cocos2d::CCRect const &,cocos2d::CCRect const &) ; +0x10d, 0x18000a6ad\nmovss   xmm2, [rsp+78h+var_3C]                                         ; +0x112, 0x18000a6b2\nlea     rcx, [rsp+78h+var_58]                                          ; +0x118, 0x18000a6b8\nmovss   xmm1, [rsp+78h+var_40]                                         ; +0x11d, 0x18000a6bd\nmov     rbx, [rdi]                                                     ; +0x123, 0x18000a6c3\ncall    cs:??0CCSize@cocos2d@@QEAA@MM@Z; cocos2d::CCSize::CCSize(float,float) ; +0x126, 0x18000a6c6\nmov     rdx, rax                                                       ; +0x12c, 0x18000a6cc\nmov     rcx, rdi                                                       ; +0x12f, 0x18000a6cf\ncall    qword ptr [rbx+128h]                                           ; +0x132, 0x18000a6d2\nmov     rax, [rdi+200h]                                                ; +0x138, 0x18000a6d8\nlea     rcx, [rsp+78h+var_58]                                          ; +0x13f, 0x18000a6df\nmovss   xmm7, cs:dword_180029510                                       ; +0x144, 0x18000a6e4\nmovaps  xmm2, xmm7                                                     ; +0x14c, 0x18000a6ec\nmovaps  xmm1, xmm7                                                     ; +0x14f, 0x18000a6ef\nmov     rbx, [rax]                                                     ; +0x152, 0x18000a6f2\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x155, 0x18000a6f5\nmov     rcx, [rdi+200h]                                                ; +0x15b, 0x18000a6fb\nmov     rdx, rax                                                       ; +0x162, 0x18000a702\ncall    qword ptr [rbx+110h]                                           ; +0x165, 0x18000a705\nmov     rax, [rdi+200h]                                                ; +0x16b, 0x18000a70b\nmov     rcx, rdi                                                       ; +0x172, 0x18000a712\nmov     rbx, [rax]                                                     ; +0x175, 0x18000a715\nmov     rax, [rdi]                                                     ; +0x178, 0x18000a718\ncall    qword ptr [rax+130h]                                           ; +0x17b, 0x18000a71b\nmov     rcx, rdi                                                       ; +0x181, 0x18000a721\nmovss   xmm6, dword ptr [rax+4]                                        ; +0x184, 0x18000a724\nmov     rax, [rdi]                                                     ; +0x189, 0x18000a729\ncall    qword ptr [rax+130h]                                           ; +0x18c, 0x18000a72c\nmulss   xmm6, xmm7                                                     ; +0x192, 0x18000a732\nlea     rcx, [rsp+78h+var_58]                                          ; +0x196, 0x18000a736\nmovss   xmm1, dword ptr [rax]                                          ; +0x19b, 0x18000a73b\nmulss   xmm1, xmm7                                                     ; +0x19f, 0x18000a73f\nmovaps  xmm2, xmm6                                                     ; +0x1a3, 0x18000a743\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x1a6, 0x18000a746\nmov     rcx, [rdi+200h]                                                ; +0x1ac, 0x18000a74c\nmov     rdx, rax                                                       ; +0x1b3, 0x18000a753\ncall    qword ptr [rbx+0B8h]                                           ; +0x1b6, 0x18000a756\nmov     rax, [rdi]                                                     ; +0x1bc, 0x18000a75c\nmov     rcx, rdi                                                       ; +0x1bf, 0x18000a75f\nmov     rdx, [rdi+200h]                                                ; +0x1c2, 0x18000a762\ncall    qword ptr [rax+1C0h]                                           ; +0x1c9, 0x18000a769\nmov     rax, [rdi+1F8h]                                                ; +0x1cf, 0x18000a76f\nlea     rcx, [rsp+78h+var_58]                                          ; +0x1d6, 0x18000a776\nmovaps  xmm2, xmm7                                                     ; +0x1db, 0x18000a77b\nxorps   xmm1, xmm1                                                     ; +0x1de, 0x18000a77e\nmov     rbx, [rax]                                                     ; +0x1e1, 0x18000a781\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x1e4, 0x18000a784\nmov     rcx, [rdi+1F8h]                                                ; +0x1ea, 0x18000a78a\nmov     rdx, rax                                                       ; +0x1f1, 0x18000a791\ncall    qword ptr [rbx+110h]                                           ; +0x1f4, 0x18000a794\nmov     rax, [rdi+1F8h]                                                ; +0x1fa, 0x18000a79a\nmov     rcx, rdi                                                       ; +0x201, 0x18000a7a1\nmov     rbx, [rax]                                                     ; +0x204, 0x18000a7a4\nmov     rax, [rdi]                                                     ; +0x207, 0x18000a7a7\ncall    qword ptr [rax+130h]                                           ; +0x20a, 0x18000a7aa\nxorps   xmm1, xmm1                                                     ; +0x210, 0x18000a7b0\nlea     rcx, [rsp+78h+var_58]                                          ; +0x213, 0x18000a7b3\nmovss   xmm2, dword ptr [rax+4]                                        ; +0x218, 0x18000a7b8\nmulss   xmm2, xmm7                                                     ; +0x21d, 0x18000a7bd\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x221, 0x18000a7c1\nmov     rcx, [rdi+1F8h]                                                ; +0x227, 0x18000a7c7\nmov     rdx, rax                                                       ; +0x22e, 0x18000a7ce\ncall    qword ptr [rbx+0B8h]                                           ; +0x231, 0x18000a7d1\nmov     rax, [rdi]                                                     ; +0x237, 0x18000a7d7\nmov     rcx, rdi                                                       ; +0x23a, 0x18000a7da\nmov     rdx, [rdi+1F8h]                                                ; +0x23d, 0x18000a7dd\ncall    qword ptr [rax+1C0h]                                           ; +0x244, 0x18000a7e4\nmov     rax, [rdi+1F0h]                                                ; +0x24a, 0x18000a7ea\nmov     rcx, rdi                                                       ; +0x251, 0x18000a7f1\nmov     rbx, [rax]                                                     ; +0x254, 0x18000a7f4\nmov     rax, [rdi]                                                     ; +0x257, 0x18000a7f7\ncall    qword ptr [rax+130h]                                           ; +0x25a, 0x18000a7fa\nxorps   xmm1, xmm1                                                     ; +0x260, 0x18000a800\nlea     rcx, [rsp+78h+var_58]                                          ; +0x263, 0x18000a803\nmovss   xmm2, dword ptr [rax+4]                                        ; +0x268, 0x18000a808\nmulss   xmm2, xmm7                                                     ; +0x26d, 0x18000a80d\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x271, 0x18000a811\nmov     rcx, [rdi+1F0h]                                                ; +0x277, 0x18000a817\nmov     rdx, rax                                                       ; +0x27e, 0x18000a81e\ncall    qword ptr [rbx+0B8h]                                           ; +0x281, 0x18000a821\nmov     rax, [rdi]                                                     ; +0x287, 0x18000a827\nmov     rcx, rdi                                                       ; +0x28a, 0x18000a82a\nmov     rdx, [rdi+1F0h]                                                ; +0x28d, 0x18000a82d\ncall    qword ptr [rax+1C0h]                                           ; +0x294, 0x18000a834\nmov     rax, [rdi]                                                     ; +0x29a, 0x18000a83a\nxorps   xmm1, xmm1                                                     ; +0x29d, 0x18000a83d\nmov     rcx, rdi                                                       ; +0x2a0, 0x18000a840\nmov     dword ptr [rdi+1DCh], 0                                        ; +0x2a3, 0x18000a843\nmov     dword ptr [rdi+1E0h], 3F800000h                                ; +0x2ad, 0x18000a84d\ncall    qword ptr [rax+458h]                                           ; +0x2b7, 0x18000a857\nmovaps  xmm7, [rsp+78h+var_28]                                         ; +0x2bd, 0x18000a85d\nmov     al, 1                                                          ; +0x2c2, 0x18000a862\nmovaps  xmm6, [rsp+78h+var_18]                                         ; +0x2c4, 0x18000a864\njmp     short loc_18000A86D                                            ; +0x2c9, 0x18000a869\nxor     al, al                                                         ; +0x2cb, 0x18000a86b\nlea     r11, [rsp+78h+var_8]                                           ; +0x2cd, 0x18000a86d\nmov     rbx, [r11+10h]                                                 ; +0x2d2, 0x18000a872\nmov     rbp, [r11+18h]                                                 ; +0x2d6, 0x18000a876\nmov     rsi, [r11+20h]                                                 ; +0x2da, 0x18000a87a\nmov     rsp, r11                                                       ; +0x2de, 0x18000a87e\npop     rdi                                                            ; +0x2e1, 0x18000a881\nretn                                                                   ; +0x2e2, 0x18000a882", "xrefs": ["<???> @ 0x180025f20", "<???> @ 0x18002de18", "<???> @ 0x18002de28", "<???> @ 0x18002fdf8", "<???> @ 0x180049b4c"], "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"}