{"type": "func", "start": 6442505904, "end": 6442506174, "name": "cocos2d::extension::CCControlUtils::CCRectUnion", "pseudocode": "// \n// cocos2d::extension::CCControlUtils::CCRectUnion from 0x18000d6b0 to 0x18000d7be (270 bytes)\n// \n// 5 xrefs:\n// > cocos2d::extension::CCControlSlider::initWithSprites @ 0x18000a6ad\n// > cocos2d::extension::CCControlStepper::initWithMinusSpriteAndPlusSprite @ 0x18000b721\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049e10\n// > <???> @ 0x180049e1c\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\ncocos2d::CCRect *__fastcall cocos2d::extension::CCControlUtils::CCRectUnion(\n        cocos2d::CCRect *a1,\n        cocos2d::CCRect *a2,\n        cocos2d::CCRect *a3)\n{\n  float MinX; // xmm9_4\n  float v7; // xmm9_4\n  float MinY; // xmm8_4\n  float v9; // xmm8_4\n  float MaxX; // xmm7_4\n  float v11; // xmm7_4\n  float MaxY; // xmm6_4\n  float v13; // xmm6_4\n  __int64 v14; // rax\n  __int64 v15; // rax\n  char v17; // [rsp+70h] [rbp+8h] BYREF\n\n  cocos2d::CCRect::CCRect(a1);\n  MinX = cocos2d::CCRect::getMinX(a2);\n  v7 = fminf(MinX, cocos2d::CCRect::getMinX(a3));\n  MinY = cocos2d::CCRect::getMinY(a2);\n  v9 = fminf(MinY, cocos2d::CCRect::getMinY(a3));\n  MaxX = cocos2d::CCRect::getMaxX(a2);\n  v11 = fmaxf(MaxX, cocos2d::CCRect::getMaxX(a3));\n  MaxY = cocos2d::CCRect::getMaxY(a2);\n  v13 = fmaxf(MaxY, cocos2d::CCRect::getMaxY(a3));\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v17, v7, v11);\n  cocos2d::CCPoint::operator=(a1, v14);\n  v15 = cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v17, v11 - v7, v13 - v9);\n  cocos2d::CCSize::operator=((char *)a1 + 8, v15);\n  return a1;\n}", "assembly": "; \n; cocos2d::extension::CCControlUtils::CCRectUnion from 0x18000d6b0 to 0x18000d7be (270 bytes)\n; \n; 5 xrefs:\n; > cocos2d::extension::CCControlSlider::initWithSprites @ 0x18000a6ad\n; > cocos2d::extension::CCControlStepper::initWithMinusSpriteAndPlusSprite @ 0x18000b721\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049e10\n; > <???> @ 0x180049e1c\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, 0x18000d6b0\nmov     [rsp+arg_10], rsi                                              ; +0x5, 0x18000d6b5\npush    rdi                                                            ; +0xa, 0x18000d6ba\nsub     rsp, 60h                                                       ; +0xb, 0x18000d6bb\nmovaps  [rsp+68h+var_18], xmm6                                         ; +0xf, 0x18000d6bf\nmov     rdi, r8                                                        ; +0x14, 0x18000d6c4\nmovaps  [rsp+68h+var_28], xmm7                                         ; +0x17, 0x18000d6c7\nmov     rbx, rdx                                                       ; +0x1c, 0x18000d6cc\nmovaps  [rsp+68h+var_38], xmm8                                         ; +0x1f, 0x18000d6cf\nmov     rsi, rcx                                                       ; +0x25, 0x18000d6d5\nmovaps  [rsp+68h+var_48], xmm9                                         ; +0x28, 0x18000d6d8\ncall    cs:??0CCRect@cocos2d@@QEAA@XZ; cocos2d::CCRect::CCRect(void)   ; +0x2e, 0x18000d6de\nmov     rcx, rbx                                                       ; +0x34, 0x18000d6e4\ncall    cs:?getMinX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinX(void) ; +0x37, 0x18000d6e7\nmov     rcx, rdi                                                       ; +0x3d, 0x18000d6ed\nmovaps  xmm9, xmm0                                                     ; +0x40, 0x18000d6f0\ncall    cs:?getMinX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinX(void) ; +0x44, 0x18000d6f4\nmov     rcx, rbx                                                       ; +0x4a, 0x18000d6fa\nminss   xmm9, xmm0                                                     ; +0x4d, 0x18000d6fd\ncall    cs:?getMinY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinY(void) ; +0x52, 0x18000d702\nmov     rcx, rdi                                                       ; +0x58, 0x18000d708\nmovaps  xmm8, xmm0                                                     ; +0x5b, 0x18000d70b\ncall    cs:?getMinY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMinY(void) ; +0x5f, 0x18000d70f\nmov     rcx, rbx                                                       ; +0x65, 0x18000d715\nminss   xmm8, xmm0                                                     ; +0x68, 0x18000d718\ncall    cs:?getMaxX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxX(void) ; +0x6d, 0x18000d71d\nmov     rcx, rdi                                                       ; +0x73, 0x18000d723\nmovaps  xmm7, xmm0                                                     ; +0x76, 0x18000d726\ncall    cs:?getMaxX@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxX(void) ; +0x79, 0x18000d729\nmov     rcx, rbx                                                       ; +0x7f, 0x18000d72f\nmaxss   xmm7, xmm0                                                     ; +0x82, 0x18000d732\ncall    cs:?getMaxY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxY(void) ; +0x86, 0x18000d736\nmov     rcx, rdi                                                       ; +0x8c, 0x18000d73c\nmovaps  xmm6, xmm0                                                     ; +0x8f, 0x18000d73f\ncall    cs:?getMaxY@CCRect@cocos2d@@QEBAMXZ; cocos2d::CCRect::getMaxY(void) ; +0x92, 0x18000d742\nmovaps  xmm2, xmm7                                                     ; +0x98, 0x18000d748\nlea     rcx, [rsp+68h+arg_0]                                           ; +0x9b, 0x18000d74b\nmovaps  xmm1, xmm9                                                     ; +0xa0, 0x18000d750\nmaxss   xmm6, xmm0                                                     ; +0xa4, 0x18000d754\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0xa8, 0x18000d758\nmov     rdx, rax                                                       ; +0xae, 0x18000d75e\nmov     rcx, rsi                                                       ; +0xb1, 0x18000d761\ncall    cs:??4CCPoint@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCPoint::operator=(cocos2d::CCPoint const &) ; +0xb4, 0x18000d764\nsubss   xmm6, xmm8                                                     ; +0xba, 0x18000d76a\nsubss   xmm7, xmm9                                                     ; +0xbf, 0x18000d76f\nlea     rcx, [rsp+68h+arg_0]                                           ; +0xc4, 0x18000d774\nmovaps  xmm2, xmm6                                                     ; +0xc9, 0x18000d779\nmovaps  xmm1, xmm7                                                     ; +0xcc, 0x18000d77c\ncall    cs:??0CCSize@cocos2d@@QEAA@MM@Z; cocos2d::CCSize::CCSize(float,float) ; +0xcf, 0x18000d77f\nmov     rdx, rax                                                       ; +0xd5, 0x18000d785\nlea     rcx, [rsi+8]                                                   ; +0xd8, 0x18000d788\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0xdc, 0x18000d78c\nmov     rbx, [rsp+68h+arg_8]                                           ; +0xe2, 0x18000d792\nmov     rax, rsi                                                       ; +0xe7, 0x18000d797\nmov     rsi, [rsp+68h+arg_10]                                          ; +0xea, 0x18000d79a\nmovaps  xmm6, [rsp+68h+var_18]                                         ; +0xf2, 0x18000d7a2\nmovaps  xmm7, [rsp+68h+var_28]                                         ; +0xf7, 0x18000d7a7\nmovaps  xmm8, [rsp+68h+var_38]                                         ; +0xfc, 0x18000d7ac\nmovaps  xmm9, [rsp+68h+var_48]                                         ; +0x102, 0x18000d7b2\nadd     rsp, 60h                                                       ; +0x108, 0x18000d7b8\npop     rdi                                                            ; +0x10c, 0x18000d7bc\nretn                                                                   ; +0x10d, 0x18000d7bd", "xrefs": ["cocos2d::extension::CCControlSlider::initWithSprites @ 0x18000a6ad", "cocos2d::extension::CCControlStepper::initWithMinusSpriteAndPlusSprite @ 0x18000b721", "<???> @ 0x18002fdf8", "<???> @ 0x180049e10", "<???> @ 0x180049e1c"], "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"}