{"type": "func", "start": 6442478928, "end": 6442480432, "name": "cocos2d::extension::CCControlButton::needsLayout", "pseudocode": "// \n// cocos2d::extension::CCControlButton::needsLayout from 0x180006d50 to 0x180007330 (1504 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x180024118\n// > <???> @ 0x180027f60\n// > <???> @ 0x18002d90c\n// > <???> @ 0x18002d9ac\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x1800496e4\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::CCControlButton::needsLayout(cocos2d::extension::CCControlButton *this)\n{\n  __int64 v2; // rcx\n  __int64 v3; // rcx\n  __int64 v4; // rbx\n  __int64 v5; // rax\n  cocos2d::CCObject *v6; // rcx\n  cocos2d::CCObject *v7; // rax\n  __int64 v8; // rax\n  __int64 v9; // rdx\n  cocos2d::CCObject *v10; // rax\n  cocos2d::CCObject *v11; // rcx\n  cocos2d::CCObject *v12; // rbx\n  cocos2d::CCObject *v13; // rcx\n  void (__fastcall ***v14)(_QWORD, const char *); // rax\n  void (__fastcall ***v15)(_QWORD, const char *); // rsi\n  cocos2d::CCString *v16; // rcx\n  void (__fastcall **v17)(_QWORD, const char *); // rbx\n  const char *CString; // rax\n  void (__fastcall ***v19)(_QWORD, char *); // rax\n  __int64 *v20; // rbx\n  __int64 v21; // rbx\n  float v22; // xmm6_4\n  float *v23; // rax\n  __int64 v24; // rax\n  cocos2d::CCObject *v25; // rbx\n  cocos2d::CCObject *v26; // rax\n  cocos2d::CCObject *v27; // rcx\n  __int64 v28; // rbx\n  float v29; // xmm6_4\n  float *v30; // rax\n  __int64 v31; // rax\n  __int64 v32; // rcx\n  __int64 v33; // rax\n  __int64 *v34; // rcx\n  __int64 v35; // rbx\n  __int64 v36; // rax\n  __int64 v37; // rcx\n  __int64 v38; // rax\n  __int64 v39; // rcx\n  __int64 v40; // rax\n  float MinX; // xmm0_4\n  float v42; // xmm9_4\n  float MinY; // xmm0_4\n  float v44; // xmm8_4\n  float MaxX; // xmm0_4\n  float v46; // xmm7_4\n  float MaxY; // xmm0_4\n  float v48; // xmm6_4\n  __int64 v49; // rax\n  __int64 v50; // rax\n  __int64 v51; // rbx\n  __int64 v52; // rax\n  __int64 *v53; // rbx\n  __int64 v54; // rbx\n  float v55; // xmm6_4\n  float *v56; // rax\n  __int64 v57; // rax\n  __int64 v58; // rdx\n  __int64 *v59; // rbx\n  __int64 v60; // rbx\n  float v61; // xmm6_4\n  float *v62; // rax\n  __int64 v63; // rax\n  __int64 v64; // rdx\n  _BYTE v65[16]; // [rsp+38h] [rbp-49h] BYREF\n  _BYTE v66[16]; // [rsp+48h] [rbp-39h] BYREF\n  _BYTE v67[8]; // [rsp+58h] [rbp-29h] BYREF\n  float v68[2]; // [rsp+60h] [rbp-21h] BYREF\n  _BYTE v69[8]; // [rsp+68h] [rbp-19h] BYREF\n  float v70; // [rsp+E8h] [rbp+67h] BYREF\n  float v71; // [rsp+ECh] [rbp+6Bh]\n  float v72; // [rsp+F0h] [rbp+6Fh] BYREF\n  float v73; // [rsp+F4h] [rbp+73h]\n\n  if ( *((_BYTE *)this + 525) )\n  {\n    v2 = *((_QWORD *)this + 61);\n    if ( v2 )\n      (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v2 + 320LL))(v2, 0);\n    v3 = *((_QWORD *)this + 62);\n    if ( v3 )\n      (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v3 + 320LL))(v3, 0);\n    v4 = *(_QWORD *)this;\n    v5 = cocos2d::CCPoint::CCPoint(\n           (cocos2d::CCPoint *)&v70,\n           (cocos2d::extension::CCControlButton *)((char *)this + 516));\n    (*(void (__fastcall **)(cocos2d::extension::CCControlButton *, __int64))(v4 + 1152))(this, v5);\n    v6 = *((cocos2d::CCObject **)this + 59);\n    if ( v6 )\n      cocos2d::CCObject::release(v6);\n    v7 = (cocos2d::CCObject *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *, _QWORD))(*(_QWORD *)this + 1192LL))(\n                                this,\n                                *((unsigned int *)this + 109));\n    *((_QWORD *)this + 59) = v7;\n    if ( v7 )\n      cocos2d::CCObject::retain(v7);\n    v8 = (*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *, float *, _QWORD))(*(_QWORD *)this + 1208LL))(\n           this,\n           &v70,\n           *((unsigned int *)this + 109));\n    v9 = *((unsigned int *)this + 109);\n    *((_WORD *)this + 240) = *(_WORD *)v8;\n    *((_BYTE *)this + 482) = *(_BYTE *)(v8 + 2);\n    v10 = (cocos2d::CCObject *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *, __int64))(*(_QWORD *)this + 1224LL))(\n                                 this,\n                                 v9);\n    v11 = *((cocos2d::CCObject **)this + 61);\n    v12 = v10;\n    if ( v11 != v10 )\n    {\n      if ( v10 )\n        cocos2d::CCObject::retain(v10);\n      v13 = *((cocos2d::CCObject **)this + 61);\n      if ( v13 )\n        cocos2d::CCObject::release(v13);\n      *((_QWORD *)this + 61) = v12;\n      v11 = v12;\n    }\n    v14 = (void (__fastcall ***)(_QWORD, const char *))_RTDynamicCast(\n                                                         v11,\n                                                         0,\n                                                         &cocos2d::CCNode `RTTI Type Descriptor',\n                                                         &cocos2d::CCLabelProtocol `RTTI Type Descriptor',\n                                                         0);\n    v15 = v14;\n    if ( v14 )\n    {\n      v16 = *((cocos2d::CCString **)this + 59);\n      if ( v16 )\n      {\n        v17 = *v14;\n        CString = cocos2d::CCString::getCString(v16);\n        (*v17)(v15, CString);\n      }\n    }\n    v19 = (void (__fastcall ***)(_QWORD, char *))_RTDynamicCast(\n                                                   *((_QWORD *)this + 61),\n                                                   0,\n                                                   &cocos2d::CCNode `RTTI Type Descriptor',\n                                                   &cocos2d::CCRGBAProtocol `RTTI Type Descriptor',\n                                                   0);\n    if ( v19 )\n      (**v19)(v19, (char *)this + 480);\n    v20 = *((__int64 **)this + 61);\n    if ( v20 )\n    {\n      v21 = *v20;\n      v22 = *(float *)((*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this)\n                     + 4);\n      v23 = (float *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this);\n      v24 = cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v70, *v23 * 0.5, v22 * 0.5);\n      (*(void (__fastcall **)(_QWORD, __int64))(v21 + 184))(*((_QWORD *)this + 61), v24);\n    }\n    v25 = (cocos2d::CCObject *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *, _QWORD))(*(_QWORD *)this + 1288LL))(\n                                 this,\n                                 *((unsigned int *)this + 109));\n    v26 = *((cocos2d::CCObject **)this + 62);\n    if ( v26 != v25 )\n    {\n      if ( v25 )\n        cocos2d::CCObject::retain(v25);\n      v27 = *((cocos2d::CCObject **)this + 62);\n      if ( v27 )\n        cocos2d::CCObject::release(v27);\n      *((_QWORD *)this + 62) = v25;\n      v26 = v25;\n    }\n    if ( v26 )\n    {\n      v28 = *(_QWORD *)v26;\n      v29 = *(float *)((*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this)\n                     + 4);\n      v30 = (float *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this);\n      v31 = cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v70, *v30 * 0.5, v29 * 0.5);\n      (*(void (__fastcall **)(_QWORD, __int64))(v28 + 184))(*((_QWORD *)this + 62), v31);\n    }\n    cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v72);\n    v32 = *((_QWORD *)this + 61);\n    if ( v32 )\n    {\n      v33 = cocos2d::CCNode::boundingBox(v32, v69);\n      cocos2d::CCSize::operator=(&v72, v33 + 8);\n    }\n    v34 = *((__int64 **)this + 62);\n    if ( v34 )\n    {\n      if ( *((_BYTE *)this + 483) )\n      {\n        v35 = *v34;\n        v36 = cocos2d::CCSize::CCSize(\n                (cocos2d::CCSize *)&v70,\n                (float)(2 * *((_DWORD *)this + 141)) + v72,\n                (float)(2 * *((_DWORD *)this + 140)) + v73);\n        (*(void (__fastcall **)(_QWORD, __int64))(v35 + 296))(*((_QWORD *)this + 62), v36);\n      }\n      else\n      {\n        (*(void (__fastcall **)(__int64 *, float *))(*v34 + 872))(v34, &v70);\n        if ( v70 <= 0.0 )\n          v70 = v72;\n        if ( v71 <= 0.0 )\n          v71 = v73;\n        (*(void (__fastcall **)(_QWORD, float *))(**((_QWORD **)this + 62) + 296LL))(*((_QWORD *)this + 62), &v70);\n      }\n    }\n    cocos2d::CCRect::CCRect((cocos2d::CCRect *)v65);\n    v37 = *((_QWORD *)this + 61);\n    if ( v37 )\n    {\n      v38 = cocos2d::CCNode::boundingBox(v37, v69);\n      cocos2d::CCRect::operator=(v65, v38);\n    }\n    cocos2d::CCRect::CCRect((cocos2d::CCRect *)v66);\n    v39 = *((_QWORD *)this + 62);\n    if ( v39 )\n    {\n      v40 = cocos2d::CCNode::boundingBox(v39, v69);\n      cocos2d::CCRect::operator=(v66, v40);\n    }\n    cocos2d::CCRect::CCRect((cocos2d::CCRect *)v67);\n    MinX = cocos2d::CCRect::getMinX((cocos2d::CCRect *)v65);\n    v42 = fminf(MinX, cocos2d::CCRect::getMinX((cocos2d::CCRect *)v66));\n    MinY = cocos2d::CCRect::getMinY((cocos2d::CCRect *)v65);\n    v44 = fminf(MinY, cocos2d::CCRect::getMinY((cocos2d::CCRect *)v66));\n    MaxX = cocos2d::CCRect::getMaxX((cocos2d::CCRect *)v65);\n    v46 = fmaxf(MaxX, cocos2d::CCRect::getMaxX((cocos2d::CCRect *)v66));\n    MaxY = cocos2d::CCRect::getMaxY((cocos2d::CCRect *)v65);\n    v48 = fmaxf(MaxY, cocos2d::CCRect::getMaxY((cocos2d::CCRect *)v66));\n    v49 = cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v70, v42, v46);\n    cocos2d::CCPoint::operator=(v67, v49);\n    v50 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v70, v46 - v42, v48 - v44);\n    cocos2d::CCSize::operator=(v68, v50);\n    v51 = *(_QWORD *)this;\n    v52 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v70, v68[0], v68[1]);\n    (*(void (__fastcall **)(cocos2d::extension::CCControlButton *, __int64))(v51 + 296))(this, v52);\n    v53 = *((__int64 **)this + 61);\n    if ( v53 )\n    {\n      v54 = *v53;\n      v55 = *(float *)((*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this)\n                     + 4);\n      v56 = (float *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this);\n      v57 = cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v70, *v56 * 0.5, v55 * 0.5);\n      (*(void (__fastcall **)(_QWORD, __int64))(v54 + 184))(*((_QWORD *)this + 61), v57);\n      LOBYTE(v58) = 1;\n      (*(void (__fastcall **)(_QWORD, __int64))(**((_QWORD **)this + 61) + 320LL))(*((_QWORD *)this + 61), v58);\n    }\n    v59 = *((__int64 **)this + 62);\n    if ( v59 )\n    {\n      v60 = *v59;\n      v61 = *(float *)((*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this)\n                     + 4);\n      v62 = (float *)(*(__int64 (__fastcall **)(cocos2d::extension::CCControlButton *))(*(_QWORD *)this + 304LL))(this);\n      v63 = cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v70, *v62 * 0.5, v61 * 0.5);\n      (*(void (__fastcall **)(_QWORD, __int64))(v60 + 184))(*((_QWORD *)this + 62), v63);\n      LOBYTE(v64) = 1;\n      (*(void (__fastcall **)(_QWORD, __int64))(**((_QWORD **)this + 62) + 320LL))(*((_QWORD *)this + 62), v64);\n    }\n  }\n}", "assembly": "; \n; cocos2d::extension::CCControlButton::needsLayout from 0x180006d50 to 0x180007330 (1504 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x180024118\n; > <???> @ 0x180027f60\n; > <???> @ 0x18002d90c\n; > <???> @ 0x18002d9ac\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x1800496e4\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     rax, rsp                                                       ; +0x0, 0x180006d50\npush    rbp                                                            ; +0x3, 0x180006d53\npush    rdi                                                            ; +0x4, 0x180006d54\nlea     rbp, [rax-5Fh]                                                 ; +0x5, 0x180006d55\nsub     rsp, 0C8h                                                      ; +0x9, 0x180006d59\ncmp     byte ptr [rcx+20Dh], 0                                         ; +0x10, 0x180006d60\nmov     rdi, rcx                                                       ; +0x17, 0x180006d67\njz      loc_180007326                                                  ; +0x1a, 0x180006d6a\nmov     rcx, [rcx+1E8h]                                                ; +0x20, 0x180006d70\nmov     [rax+18h], rbx                                                 ; +0x27, 0x180006d77\nmov     [rax+20h], rsi                                                 ; +0x2b, 0x180006d7b\nmov     [rax-18h], r14                                                 ; +0x2f, 0x180006d7f\nmovaps  xmmword ptr [rax-28h], xmm6                                    ; +0x33, 0x180006d83\nmovaps  xmmword ptr [rax-38h], xmm7                                    ; +0x37, 0x180006d87\nmovaps  xmmword ptr [rax-48h], xmm8                                    ; +0x3b, 0x180006d8b\nmovaps  xmmword ptr [rax-58h], xmm9                                    ; +0x40, 0x180006d90\nmovaps  xmmword ptr [rax-68h], xmm10                                   ; +0x45, 0x180006d95\ntest    rcx, rcx                                                       ; +0x4a, 0x180006d9a\njz      short loc_180006DAA                                            ; +0x4d, 0x180006d9d\nmov     rax, [rcx]                                                     ; +0x4f, 0x180006d9f\nxor     edx, edx                                                       ; +0x52, 0x180006da2\ncall    qword ptr [rax+140h]                                           ; +0x54, 0x180006da4\nmov     rcx, [rdi+1F0h]                                                ; +0x5a, 0x180006daa\ntest    rcx, rcx                                                       ; +0x61, 0x180006db1\njz      short loc_180006DC1                                            ; +0x64, 0x180006db4\nmov     rax, [rcx]                                                     ; +0x66, 0x180006db6\nxor     edx, edx                                                       ; +0x69, 0x180006db9\ncall    qword ptr [rax+140h]                                           ; +0x6b, 0x180006dbb\nmov     rbx, [rdi]                                                     ; +0x71, 0x180006dc1\nlea     rdx, [rdi+204h]                                                ; +0x74, 0x180006dc4\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x7b, 0x180006dcb\ncall    cs:??0CCPoint@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCPoint::CCPoint(cocos2d::CCPoint const &) ; +0x7f, 0x180006dcf\nmov     rdx, rax                                                       ; +0x85, 0x180006dd5\nmov     rcx, rdi                                                       ; +0x88, 0x180006dd8\ncall    qword ptr [rbx+480h]                                           ; +0x8b, 0x180006ddb\nmov     rcx, [rdi+1D8h]                                                ; +0x91, 0x180006de1\ntest    rcx, rcx                                                       ; +0x98, 0x180006de8\njz      short loc_180006DF3                                            ; +0x9b, 0x180006deb\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x9d, 0x180006ded\nmov     rax, [rdi]                                                     ; +0xa3, 0x180006df3\nmov     rcx, rdi                                                       ; +0xa6, 0x180006df6\nmov     edx, [rdi+1B4h]                                                ; +0xa9, 0x180006df9\ncall    qword ptr [rax+4A8h]                                           ; +0xaf, 0x180006dff\nmov     [rdi+1D8h], rax                                                ; +0xb5, 0x180006e05\ntest    rax, rax                                                       ; +0xbc, 0x180006e0c\njz      short loc_180006E1A                                            ; +0xbf, 0x180006e0f\nmov     rcx, rax                                                       ; +0xc1, 0x180006e11\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0xc4, 0x180006e14\nmov     rax, [rdi]                                                     ; +0xca, 0x180006e1a\nlea     rdx, [rbp+57h+arg_0]                                           ; +0xcd, 0x180006e1d\nmov     r8d, [rdi+1B4h]                                                ; +0xd1, 0x180006e21\nmov     rcx, rdi                                                       ; +0xd8, 0x180006e28\ncall    qword ptr [rax+4B8h]                                           ; +0xdb, 0x180006e2b\nmov     edx, [rdi+1B4h]                                                ; +0xe1, 0x180006e31\nmovzx   ecx, word ptr [rax]                                            ; +0xe7, 0x180006e37\nmov     [rdi+1E0h], cx                                                 ; +0xea, 0x180006e3a\nmov     rcx, rdi                                                       ; +0xf1, 0x180006e41\nmovzx   eax, byte ptr [rax+2]                                          ; +0xf4, 0x180006e44\nmov     [rdi+1E2h], al                                                 ; +0xf8, 0x180006e48\nmov     rax, [rdi]                                                     ; +0xfe, 0x180006e4e\ncall    qword ptr [rax+4C8h]                                           ; +0x101, 0x180006e51\nmov     rcx, [rdi+1E8h]                                                ; +0x107, 0x180006e57\nmov     rbx, rax                                                       ; +0x10e, 0x180006e5e\ncmp     rcx, rax                                                       ; +0x111, 0x180006e61\njz      short loc_180006E90                                            ; +0x114, 0x180006e64\ntest    rax, rax                                                       ; +0x116, 0x180006e66\njz      short loc_180006E74                                            ; +0x119, 0x180006e69\nmov     rcx, rax                                                       ; +0x11b, 0x180006e6b\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x11e, 0x180006e6e\nmov     rcx, [rdi+1E8h]                                                ; +0x124, 0x180006e74\ntest    rcx, rcx                                                       ; +0x12b, 0x180006e7b\njz      short loc_180006E86                                            ; +0x12e, 0x180006e7e\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x130, 0x180006e80\nmov     [rdi+1E8h], rbx                                                ; +0x136, 0x180006e86\nmov     rcx, rbx                                                       ; +0x13d, 0x180006e8d\nlea     r9, ??_R0?AVCCLabelProtocol@cocos2d@@@8; cocos2d::CCLabelProtocol `RTTI Type Descriptor' ; +0x140, 0x180006e90\nmov     dword ptr [rsp+20h], 0                                         ; +0x147, 0x180006e97\nlea     r8, ??_R0?AVCCNode@cocos2d@@@8; cocos2d::CCNode `RTTI Type Descriptor' ; +0x14f, 0x180006e9f\nxor     edx, edx                                                       ; +0x156, 0x180006ea6\ncall    __RTDynamicCast                                                ; +0x158, 0x180006ea8\nmov     rsi, rax                                                       ; +0x15d, 0x180006ead\ntest    rax, rax                                                       ; +0x160, 0x180006eb0\njz      short loc_180006ED2                                            ; +0x163, 0x180006eb3\nmov     rcx, [rdi+1D8h]                                                ; +0x165, 0x180006eb5\ntest    rcx, rcx                                                       ; +0x16c, 0x180006ebc\njz      short loc_180006ED2                                            ; +0x16f, 0x180006ebf\nmov     rbx, [rax]                                                     ; +0x171, 0x180006ec1\ncall    cs:?getCString@CCString@cocos2d@@QEBAPEBDXZ; cocos2d::CCString::getCString(void) ; +0x174, 0x180006ec4\nmov     rdx, rax                                                       ; +0x17a, 0x180006eca\nmov     rcx, rsi                                                       ; +0x17d, 0x180006ecd\ncall    qword ptr [rbx]                                                ; +0x180, 0x180006ed0\nmov     rcx, [rdi+1E8h]                                                ; +0x182, 0x180006ed2\nlea     r9, ??_R0?AVCCRGBAProtocol@cocos2d@@@8; cocos2d::CCRGBAProtocol `RTTI Type Descriptor' ; +0x189, 0x180006ed9\nlea     r8, ??_R0?AVCCNode@cocos2d@@@8; cocos2d::CCNode `RTTI Type Descriptor' ; +0x190, 0x180006ee0\nmov     dword ptr [rsp+20h], 0                                         ; +0x197, 0x180006ee7\nxor     edx, edx                                                       ; +0x19f, 0x180006eef\ncall    __RTDynamicCast                                                ; +0x1a1, 0x180006ef1\nmov     rsi, [rsp+0D0h+arg_18]                                         ; +0x1a6, 0x180006ef6\ntest    rax, rax                                                       ; +0x1ae, 0x180006efe\njz      short loc_180006F13                                            ; +0x1b1, 0x180006f01\nmov     r8, [rax]                                                      ; +0x1b3, 0x180006f03\nlea     rdx, [rdi+1E0h]                                                ; +0x1b6, 0x180006f06\nmov     rcx, rax                                                       ; +0x1bd, 0x180006f0d\ncall    qword ptr [r8]                                                 ; +0x1c0, 0x180006f10\nmov     rbx, [rdi+1E8h]                                                ; +0x1c3, 0x180006f13\nmovss   xmm10, cs:dword_180029510                                      ; +0x1ca, 0x180006f1a\nmov     r14, [rsp+0C0h]                                                ; +0x1d3, 0x180006f23\ntest    rbx, rbx                                                       ; +0x1db, 0x180006f2b\njz      short loc_180006F7B                                            ; +0x1de, 0x180006f2e\nmov     rax, [rdi]                                                     ; +0x1e0, 0x180006f30\nmov     rcx, rdi                                                       ; +0x1e3, 0x180006f33\nmov     rbx, [rbx]                                                     ; +0x1e6, 0x180006f36\ncall    qword ptr [rax+130h]                                           ; +0x1e9, 0x180006f39\nmov     rcx, rdi                                                       ; +0x1ef, 0x180006f3f\nmovss   xmm6, dword ptr [rax+4]                                        ; +0x1f2, 0x180006f42\nmov     rax, [rdi]                                                     ; +0x1f7, 0x180006f47\ncall    qword ptr [rax+130h]                                           ; +0x1fa, 0x180006f4a\nmulss   xmm6, xmm10                                                    ; +0x200, 0x180006f50\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x205, 0x180006f55\nmovss   xmm1, dword ptr [rax]                                          ; +0x209, 0x180006f59\nmulss   xmm1, xmm10                                                    ; +0x20d, 0x180006f5d\nmovaps  xmm2, xmm6                                                     ; +0x212, 0x180006f62\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x215, 0x180006f65\nmov     rcx, [rdi+1E8h]                                                ; +0x21b, 0x180006f6b\nmov     rdx, rax                                                       ; +0x222, 0x180006f72\ncall    qword ptr [rbx+0B8h]                                           ; +0x225, 0x180006f75\nmov     rax, [rdi]                                                     ; +0x22b, 0x180006f7b\nmov     rcx, rdi                                                       ; +0x22e, 0x180006f7e\nmov     edx, [rdi+1B4h]                                                ; +0x231, 0x180006f81\ncall    qword ptr [rax+508h]                                           ; +0x237, 0x180006f87\nmov     rbx, rax                                                       ; +0x23d, 0x180006f8d\nmov     rax, [rdi+1F0h]                                                ; +0x240, 0x180006f90\ncmp     rax, rbx                                                       ; +0x247, 0x180006f97\njz      short loc_180006FC6                                            ; +0x24a, 0x180006f9a\ntest    rbx, rbx                                                       ; +0x24c, 0x180006f9c\njz      short loc_180006FAA                                            ; +0x24f, 0x180006f9f\nmov     rcx, rbx                                                       ; +0x251, 0x180006fa1\ncall    cs:?retain@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::retain(void) ; +0x254, 0x180006fa4\nmov     rcx, [rdi+1F0h]                                                ; +0x25a, 0x180006faa\ntest    rcx, rcx                                                       ; +0x261, 0x180006fb1\njz      short loc_180006FBC                                            ; +0x264, 0x180006fb4\ncall    cs:?release@CCObject@cocos2d@@QEAAXXZ; cocos2d::CCObject::release(void) ; +0x266, 0x180006fb6\nmov     [rdi+1F0h], rbx                                                ; +0x26c, 0x180006fbc\nmov     rax, rbx                                                       ; +0x273, 0x180006fc3\ntest    rax, rax                                                       ; +0x276, 0x180006fc6\njz      short loc_180007016                                            ; +0x279, 0x180006fc9\nmov     rbx, [rax]                                                     ; +0x27b, 0x180006fcb\nmov     rcx, rdi                                                       ; +0x27e, 0x180006fce\nmov     rax, [rdi]                                                     ; +0x281, 0x180006fd1\ncall    qword ptr [rax+130h]                                           ; +0x284, 0x180006fd4\nmov     rcx, rdi                                                       ; +0x28a, 0x180006fda\nmovss   xmm6, dword ptr [rax+4]                                        ; +0x28d, 0x180006fdd\nmov     rax, [rdi]                                                     ; +0x292, 0x180006fe2\ncall    qword ptr [rax+130h]                                           ; +0x295, 0x180006fe5\nmulss   xmm6, xmm10                                                    ; +0x29b, 0x180006feb\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x2a0, 0x180006ff0\nmovss   xmm1, dword ptr [rax]                                          ; +0x2a4, 0x180006ff4\nmulss   xmm1, xmm10                                                    ; +0x2a8, 0x180006ff8\nmovaps  xmm2, xmm6                                                     ; +0x2ad, 0x180006ffd\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x2b0, 0x180007000\nmov     rcx, [rdi+1F0h]                                                ; +0x2b6, 0x180007006\nmov     rdx, rax                                                       ; +0x2bd, 0x18000700d\ncall    qword ptr [rbx+0B8h]                                           ; +0x2c0, 0x180007010\nlea     rcx, [rbp+57h+arg_8]                                           ; +0x2c6, 0x180007016\ncall    cs:??0CCSize@cocos2d@@QEAA@XZ; cocos2d::CCSize::CCSize(void)   ; +0x2ca, 0x18000701a\nmov     rcx, [rdi+1E8h]                                                ; +0x2d0, 0x180007020\ntest    rcx, rcx                                                       ; +0x2d7, 0x180007027\njz      short loc_180007044                                            ; +0x2da, 0x18000702a\nlea     rdx, [rbp+57h+var_70]                                          ; +0x2dc, 0x18000702c\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0x2e0, 0x180007030\nlea     rcx, [rbp+57h+arg_8]                                           ; +0x2e6, 0x180007036\nlea     rdx, [rax+8]                                                   ; +0x2ea, 0x18000703a\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0x2ee, 0x18000703e\nmov     rcx, [rdi+1F0h]                                                ; +0x2f4, 0x180007044\ntest    rcx, rcx                                                       ; +0x2fb, 0x18000704b\njz      loc_1800070E8                                                  ; +0x2fe, 0x18000704e\ncmp     byte ptr [rdi+1E3h], 0                                         ; +0x304, 0x180007054\njz      short loc_1800070A4                                            ; +0x30b, 0x18000705b\nmov     eax, [rdi+230h]                                                ; +0x30d, 0x18000705d\nmov     rbx, [rcx]                                                     ; +0x313, 0x180007063\nadd     eax, eax                                                       ; +0x316, 0x180007066\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x318, 0x180007068\nmovd    xmm2, eax                                                      ; +0x31c, 0x18000706c\nmov     eax, [rdi+234h]                                                ; +0x320, 0x180007070\nadd     eax, eax                                                       ; +0x326, 0x180007076\ncvtdq2ps xmm2, xmm2                                                    ; +0x328, 0x180007078\nmovd    xmm1, eax                                                      ; +0x32b, 0x18000707b\naddss   xmm2, [rbp+57h+arg_C]                                          ; +0x32f, 0x18000707f\ncvtdq2ps xmm1, xmm1                                                    ; +0x334, 0x180007084\naddss   xmm1, [rbp+57h+arg_8]                                          ; +0x337, 0x180007087\ncall    cs:??0CCSize@cocos2d@@QEAA@MM@Z; cocos2d::CCSize::CCSize(float,float) ; +0x33c, 0x18000708c\nmov     rcx, [rdi+1F0h]                                                ; +0x342, 0x180007092\nmov     rdx, rax                                                       ; +0x349, 0x180007099\ncall    qword ptr [rbx+128h]                                           ; +0x34c, 0x18000709c\njmp     short loc_1800070E8                                            ; +0x352, 0x1800070a2\nmov     rax, [rcx]                                                     ; +0x354, 0x1800070a4\nlea     rdx, [rbp+57h+arg_0]                                           ; +0x357, 0x1800070a7\ncall    qword ptr [rax+368h]                                           ; +0x35b, 0x1800070ab\nxorps   xmm1, xmm1                                                     ; +0x361, 0x1800070b1\ncomiss  xmm1, [rbp+57h+arg_0]                                          ; +0x364, 0x1800070b4\njb      short loc_1800070C4                                            ; +0x368, 0x1800070b8\nmovss   xmm0, [rbp+57h+arg_8]                                          ; +0x36a, 0x1800070ba\nmovss   [rbp+57h+arg_0], xmm0                                          ; +0x36f, 0x1800070bf\ncomiss  xmm1, [rbp+57h+arg_4]                                          ; +0x374, 0x1800070c4\njb      short loc_1800070D4                                            ; +0x378, 0x1800070c8\nmovss   xmm0, [rbp+57h+arg_C]                                          ; +0x37a, 0x1800070ca\nmovss   [rbp+57h+arg_4], xmm0                                          ; +0x37f, 0x1800070cf\nmov     rcx, [rdi+1F0h]                                                ; +0x384, 0x1800070d4\nlea     rdx, [rbp+57h+arg_0]                                           ; +0x38b, 0x1800070db\nmov     rax, [rcx]                                                     ; +0x38f, 0x1800070df\ncall    qword ptr [rax+128h]                                           ; +0x392, 0x1800070e2\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x398, 0x1800070e8\ncall    cs:??0CCRect@cocos2d@@QEAA@XZ; cocos2d::CCRect::CCRect(void)   ; +0x39c, 0x1800070ec\nmov     rcx, [rdi+1E8h]                                                ; +0x3a2, 0x1800070f2\ntest    rcx, rcx                                                       ; +0x3a9, 0x1800070f9\njz      short loc_180007115                                            ; +0x3ac, 0x1800070fc\nlea     rdx, [rbp+57h+var_70]                                          ; +0x3ae, 0x1800070fe\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0x3b2, 0x180007102\nmov     rdx, rax                                                       ; +0x3b8, 0x180007108\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x3bb, 0x18000710b\ncall    cs:??4CCRect@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCRect::operator=(cocos2d::CCRect const &) ; +0x3bf, 0x18000710f\nlea     rcx, [rbp+57h+var_90]                                          ; +0x3c5, 0x180007115\ncall    cs:??0CCRect@cocos2d@@QEAA@XZ; cocos2d::CCRect::CCRect(void)   ; +0x3c9, 0x180007119\nmov     rcx, [rdi+1F0h]                                                ; +0x3cf, 0x18000711f\ntest    rcx, rcx                                                       ; +0x3d6, 0x180007126\njz      short loc_180007142                                            ; +0x3d9, 0x180007129\nlea     rdx, [rbp+57h+var_70]                                          ; +0x3db, 0x18000712b\ncall    cs:?boundingBox@CCNode@cocos2d@@QEAA?AVCCRect@2@XZ; cocos2d::CCNode::boundingBox(void) ; +0x3df, 0x18000712f\nmov     rdx, rax                                                       ; +0x3e5, 0x180007135\nlea     rcx, [rbp+57h+var_90]                                          ; +0x3e8, 0x180007138\ncall    cs:??4CCRect@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCRect::operator=(cocos2d::CCRect const &) ; +0x3ec, 0x18000713c\nlea     rcx, [rbp+57h+var_80]                                          ; +0x3f2, 0x180007142\ncall    cs:??0CCRect@cocos2d@@QEAA@XZ; cocos2d::CCRect::CCRect(void)   ; +0x3f6, 0x180007146\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x3fc, 0x18000714c\ncall    cs:?getMinX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinX(void) ; +0x400, 0x180007150\nlea     rcx, [rbp+57h+var_90]                                          ; +0x406, 0x180007156\nmovaps  xmm9, xmm0                                                     ; +0x40a, 0x18000715a\ncall    cs:?getMinX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinX(void) ; +0x40e, 0x18000715e\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x414, 0x180007164\nminss   xmm9, xmm0                                                     ; +0x418, 0x180007168\ncall    cs:?getMinY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinY(void) ; +0x41d, 0x18000716d\nlea     rcx, [rbp+57h+var_90]                                          ; +0x423, 0x180007173\nmovaps  xmm8, xmm0                                                     ; +0x427, 0x180007177\ncall    cs:?getMinY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinY(void) ; +0x42b, 0x18000717b\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x431, 0x180007181\nminss   xmm8, xmm0                                                     ; +0x435, 0x180007185\ncall    cs:?getMaxX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxX(void) ; +0x43a, 0x18000718a\nlea     rcx, [rbp+57h+var_90]                                          ; +0x440, 0x180007190\nmovaps  xmm7, xmm0                                                     ; +0x444, 0x180007194\ncall    cs:?getMaxX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxX(void) ; +0x447, 0x180007197\nlea     rcx, [rbp+57h+var_A0]                                          ; +0x44d, 0x18000719d\nmaxss   xmm7, xmm0                                                     ; +0x451, 0x1800071a1\ncall    cs:?getMaxY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxY(void) ; +0x455, 0x1800071a5\nlea     rcx, [rbp+57h+var_90]                                          ; +0x45b, 0x1800071ab\nmovaps  xmm6, xmm0                                                     ; +0x45f, 0x1800071af\ncall    cs:?getMaxY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxY(void) ; +0x462, 0x1800071b2\nmovaps  xmm2, xmm7                                                     ; +0x468, 0x1800071b8\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x46b, 0x1800071bb\nmovaps  xmm1, xmm9                                                     ; +0x46f, 0x1800071bf\nmaxss   xmm6, xmm0                                                     ; +0x473, 0x1800071c3\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x477, 0x1800071c7\nmov     rdx, rax                                                       ; +0x47d, 0x1800071cd\nlea     rcx, [rbp+57h+var_80]                                          ; +0x480, 0x1800071d0\ncall    cs:??4CCPoint@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCPoint::operator=(cocos2d::CCPoint const &) ; +0x484, 0x1800071d4\nsubss   xmm6, xmm8                                                     ; +0x48a, 0x1800071da\nsubss   xmm7, xmm9                                                     ; +0x48f, 0x1800071df\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x494, 0x1800071e4\nmovaps  xmm2, xmm6                                                     ; +0x498, 0x1800071e8\nmovaps  xmm1, xmm7                                                     ; +0x49b, 0x1800071eb\ncall    cs:??0CCSize@cocos2d@@QEAA@MM@Z; cocos2d::CCSize::CCSize(float,float) ; +0x49e, 0x1800071ee\nmov     rdx, rax                                                       ; +0x4a4, 0x1800071f4\nlea     rcx, [rbp+57h+var_78]                                          ; +0x4a7, 0x1800071f7\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0x4ab, 0x1800071fb\nmovss   xmm2, [rbp+57h+var_74]                                         ; +0x4b1, 0x180007201\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x4b6, 0x180007206\nmovss   xmm1, [rbp+57h+var_78]                                         ; +0x4ba, 0x18000720a\nmov     rbx, [rdi]                                                     ; +0x4bf, 0x18000720f\ncall    cs:??0CCSize@cocos2d@@QEAA@MM@Z; cocos2d::CCSize::CCSize(float,float) ; +0x4c2, 0x180007212\nmov     rdx, rax                                                       ; +0x4c8, 0x180007218\nmov     rcx, rdi                                                       ; +0x4cb, 0x18000721b\ncall    qword ptr [rbx+128h]                                           ; +0x4ce, 0x18000721e\nmov     rbx, [rdi+1E8h]                                                ; +0x4d4, 0x180007224\nmovaps  xmm9, [rsp+0D0h+var_58+8]                                      ; +0x4db, 0x18000722b\nmovaps  xmm8, [rsp+0D0h+var_48+8]                                      ; +0x4e4, 0x180007234\nmovaps  xmm7, [rsp+0D0h+var_38+8]                                      ; +0x4ed, 0x18000723d\ntest    rbx, rbx                                                       ; +0x4f5, 0x180007245\njz      short loc_1800072A7                                            ; +0x4f8, 0x180007248\nmov     rax, [rdi]                                                     ; +0x4fa, 0x18000724a\nmov     rcx, rdi                                                       ; +0x4fd, 0x18000724d\nmov     rbx, [rbx]                                                     ; +0x500, 0x180007250\ncall    qword ptr [rax+130h]                                           ; +0x503, 0x180007253\nmov     rcx, rdi                                                       ; +0x509, 0x180007259\nmovss   xmm6, dword ptr [rax+4]                                        ; +0x50c, 0x18000725c\nmov     rax, [rdi]                                                     ; +0x511, 0x180007261\ncall    qword ptr [rax+130h]                                           ; +0x514, 0x180007264\nmulss   xmm6, xmm10                                                    ; +0x51a, 0x18000726a\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x51f, 0x18000726f\nmovss   xmm1, dword ptr [rax]                                          ; +0x523, 0x180007273\nmulss   xmm1, xmm10                                                    ; +0x527, 0x180007277\nmovaps  xmm2, xmm6                                                     ; +0x52c, 0x18000727c\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x52f, 0x18000727f\nmov     rcx, [rdi+1E8h]                                                ; +0x535, 0x180007285\nmov     rdx, rax                                                       ; +0x53c, 0x18000728c\ncall    qword ptr [rbx+0B8h]                                           ; +0x53f, 0x18000728f\nmov     rcx, [rdi+1E8h]                                                ; +0x545, 0x180007295\nmov     dl, 1                                                          ; +0x54c, 0x18000729c\nmov     rax, [rcx]                                                     ; +0x54e, 0x18000729e\ncall    qword ptr [rax+140h]                                           ; +0x551, 0x1800072a1\nmov     rbx, [rdi+1F0h]                                                ; +0x557, 0x1800072a7\ntest    rbx, rbx                                                       ; +0x55e, 0x1800072ae\njz      short loc_180007310                                            ; +0x561, 0x1800072b1\nmov     rax, [rdi]                                                     ; +0x563, 0x1800072b3\nmov     rcx, rdi                                                       ; +0x566, 0x1800072b6\nmov     rbx, [rbx]                                                     ; +0x569, 0x1800072b9\ncall    qword ptr [rax+130h]                                           ; +0x56c, 0x1800072bc\nmov     rcx, rdi                                                       ; +0x572, 0x1800072c2\nmovss   xmm6, dword ptr [rax+4]                                        ; +0x575, 0x1800072c5\nmov     rax, [rdi]                                                     ; +0x57a, 0x1800072ca\ncall    qword ptr [rax+130h]                                           ; +0x57d, 0x1800072cd\nmulss   xmm6, xmm10                                                    ; +0x583, 0x1800072d3\nlea     rcx, [rbp+57h+arg_0]                                           ; +0x588, 0x1800072d8\nmovss   xmm1, dword ptr [rax]                                          ; +0x58c, 0x1800072dc\nmulss   xmm1, xmm10                                                    ; +0x590, 0x1800072e0\nmovaps  xmm2, xmm6                                                     ; +0x595, 0x1800072e5\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x598, 0x1800072e8\nmov     rcx, [rdi+1F0h]                                                ; +0x59e, 0x1800072ee\nmov     rdx, rax                                                       ; +0x5a5, 0x1800072f5\ncall    qword ptr [rbx+0B8h]                                           ; +0x5a8, 0x1800072f8\nmov     rcx, [rdi+1F0h]                                                ; +0x5ae, 0x1800072fe\nmov     dl, 1                                                          ; +0x5b5, 0x180007305\nmov     rax, [rcx]                                                     ; +0x5b7, 0x180007307\ncall    qword ptr [rax+140h]                                           ; +0x5ba, 0x18000730a\nmovaps  xmm6, [rsp+0D0h+var_28+8]                                      ; +0x5c0, 0x180007310\nmov     rbx, [rsp+0D0h+arg_10]                                         ; +0x5c8, 0x180007318\nmovaps  xmm10, [rsp+0D0h+var_68+8]                                     ; +0x5d0, 0x180007320\nadd     rsp, 0C8h                                                      ; +0x5d6, 0x180007326\npop     rdi                                                            ; +0x5dd, 0x18000732d\npop     rbp                                                            ; +0x5de, 0x18000732e\nretn                                                                   ; +0x5df, 0x18000732f", "xrefs": ["<???> @ 0x180024118", "<???> @ 0x180027f60", "<???> @ 0x18002d90c", "<???> @ 0x18002d9ac", "<???> @ 0x18002fdf8", "<???> @ 0x1800496e4"], "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"}