{"type": "func", "start": 6442476112, "end": 6442476328, "name": "cocos2d::extension::CCControlButton::setPreferredSize", "pseudocode": "// \n// cocos2d::extension::CCControlButton::setPreferredSize from 0x180006250 to 0x180006328 (216 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x180024150\n// > <???> @ 0x180027f98\n// > <???> @ 0x18002d7f4\n// > <???> @ 0x18002d82c\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x1800495d0\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\n__int64 __fastcall cocos2d::extension::CCControlButton::setPreferredSize(__int64 a1, float *a2)\n{\n  __int64 v4; // rbx\n  __int64 v5; // rbx\n  __int64 i; // rsi\n  __int64 *v7; // rbx\n  __int64 v8; // rdi\n  __int64 v9; // rax\n  char v11; // [rsp+40h] [rbp+8h] BYREF\n\n  if ( *a2 == 0.0 && a2[1] == 0.0 )\n  {\n    *(_BYTE *)(a1 + 483) = 1;\n  }\n  else\n  {\n    v4 = *(_QWORD *)(a1 + 552);\n    *(_BYTE *)(a1 + 483) = 0;\n    if ( v4 )\n    {\n      v5 = *(_QWORD *)(v4 + 56);\n      if ( v5 )\n      {\n        for ( i = *(_QWORD *)(v5 + 288); ; i = *(_QWORD *)(i + 288) )\n        {\n          v7 = *(__int64 **)(v5 + 264);\n          v8 = *v7;\n          v9 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v11, (const struct cocos2d::CCSize *)a2);\n          (*(void (__fastcall **)(__int64 *, __int64))(v8 + 880))(v7, v9);\n          v5 = i;\n          if ( !i )\n            break;\n        }\n      }\n    }\n  }\n  cocos2d::CCSize::operator=(a1 + 504, a2);\n  return (*(__int64 (__fastcall **)(__int64))(*(_QWORD *)a1 + 1064LL))(a1);\n}", "assembly": "; \n; cocos2d::extension::CCControlButton::setPreferredSize from 0x180006250 to 0x180006328 (216 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x180024150\n; > <???> @ 0x180027f98\n; > <???> @ 0x18002d7f4\n; > <???> @ 0x18002d82c\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x1800495d0\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    rbp                                                            ; +0x0, 0x180006250\npush    r14                                                            ; +0x2, 0x180006252\nsub     rsp, 28h                                                       ; +0x4, 0x180006254\nmovss   xmm0, dword ptr [rdx]                                          ; +0x8, 0x180006258\nxorps   xmm1, xmm1                                                     ; +0xc, 0x18000625c\nucomiss xmm0, xmm1                                                     ; +0xf, 0x18000625f\nmov     rbp, rdx                                                       ; +0x12, 0x180006262\nmov     r14, rcx                                                       ; +0x15, 0x180006265\njp      short loc_180006284                                            ; +0x18, 0x180006268\njnz     short loc_180006284                                            ; +0x1a, 0x18000626a\nmovss   xmm0, dword ptr [rdx+4]                                        ; +0x1c, 0x18000626c\nucomiss xmm0, xmm1                                                     ; +0x21, 0x180006271\njp      short loc_180006284                                            ; +0x24, 0x180006274\njnz     short loc_180006284                                            ; +0x26, 0x180006276\nmov     byte ptr [rcx+1E3h], 1                                         ; +0x28, 0x180006278\njmp     loc_180006304                                                  ; +0x2f, 0x18000627f\nmov     [rsp+38h+arg_8], rbx                                           ; +0x34, 0x180006284\nmov     rbx, [rcx+228h]                                                ; +0x39, 0x180006289\nmov     byte ptr [rcx+1E3h], 0                                         ; +0x40, 0x180006290\ntest    rbx, rbx                                                       ; +0x47, 0x180006297\njz      short loc_1800062FF                                            ; +0x4a, 0x18000629a\nmov     rbx, [rbx+38h]                                                 ; +0x4c, 0x18000629c\ntest    rbx, rbx                                                       ; +0x50, 0x1800062a0\njz      short loc_1800062FF                                            ; +0x53, 0x1800062a3\nmov     [rsp+38h+arg_10], rsi                                          ; +0x55, 0x1800062a5\nmov     rsi, [rbx+120h]                                                ; +0x5a, 0x1800062aa\nmov     [rsp+38h+var_18], rdi                                          ; +0x61, 0x1800062b1\nnop     word ptr [rax+rax+00000000h]                                   ; +0x66, 0x1800062b6\nmov     rbx, [rbx+108h]                                                ; +0x70, 0x1800062c0\nlea     rcx, [rsp+38h+arg_0]                                           ; +0x77, 0x1800062c7\nmov     rdx, rbp                                                       ; +0x7c, 0x1800062cc\nmov     rdi, [rbx]                                                     ; +0x7f, 0x1800062cf\ncall    cs:??0CCSize@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCSize::CCSize(cocos2d::CCSize const &) ; +0x82, 0x1800062d2\nmov     rdx, rax                                                       ; +0x88, 0x1800062d8\nmov     rcx, rbx                                                       ; +0x8b, 0x1800062db\ncall    qword ptr [rdi+370h]                                           ; +0x8e, 0x1800062de\nmov     rbx, rsi                                                       ; +0x94, 0x1800062e4\ntest    rsi, rsi                                                       ; +0x97, 0x1800062e7\njz      short loc_1800062F5                                            ; +0x9a, 0x1800062ea\nmov     rsi, [rsi+120h]                                                ; +0x9c, 0x1800062ec\njmp     short loc_1800062C0                                            ; +0xa3, 0x1800062f3\nmov     rsi, [rsp+38h+arg_10]                                          ; +0xa5, 0x1800062f5\nmov     rdi, [rsp+38h+var_18]                                          ; +0xaa, 0x1800062fa\nmov     rbx, [rsp+38h+arg_8]                                           ; +0xaf, 0x1800062ff\nlea     rcx, [r14+1F8h]                                                ; +0xb4, 0x180006304\nmov     rdx, rbp                                                       ; +0xbb, 0x18000630b\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0xbe, 0x18000630e\nmov     rax, [r14]                                                     ; +0xc4, 0x180006314\nmov     rcx, r14                                                       ; +0xc7, 0x180006317\nadd     rsp, 28h                                                       ; +0xca, 0x18000631a\npop     r14                                                            ; +0xce, 0x18000631e\npop     rbp                                                            ; +0xd0, 0x180006320\njmp     qword ptr [rax+428h]                                           ; +0xd1, 0x180006321", "xrefs": ["<???> @ 0x180024150", "<???> @ 0x180027f98", "<???> @ 0x18002d7f4", "<???> @ 0x18002d82c", "<???> @ 0x18002fdf8", "<???> @ 0x1800495d0"], "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"}