{"type": "func", "start": 6442525728, "end": 6442526116, "name": "cocos2d::extension::CCScrollView::initWithViewSize", "pseudocode": "// \n// cocos2d::extension::CCScrollView::initWithViewSize from 0x180012420 to 0x1800125a4 (388 bytes)\n// \n// 5 xrefs:\n// > cocos2d::extension::CCScrollView::create @ 0x18001237b\n// > cocos2d::extension::CCScrollView::init @ 0x1800125d8\n// > cocos2d::extension::CCTableView::initWithViewSize @ 0x180014cf9\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a344\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// Hidden C++ exception states: #wind=1\nchar __fastcall cocos2d::extension::CCScrollView::initWithViewSize(\n        __int64 a1,\n        const struct cocos2d::CCSize *a2,\n        __int64 a3)\n{\n  __int64 v6; // rax\n  __int64 v7; // rbx\n  __int64 v8; // rax\n  const struct cocos2d::CCSize *v9; // rbx\n  __int64 v10; // rdx\n  cocos2d::CCArray *v11; // rbx\n  __int64 v12; // rbx\n  __int64 v13; // rax\n  cocos2d::CCArray *v15; // [rsp+48h] [rbp+20h] BYREF\n\n  if ( !cocos2d::CCLayer::init((cocos2d::CCLayer *)a1) )\n    return 0;\n  *(_QWORD *)(a1 + 448) = a3;\n  if ( !a3 )\n  {\n    v6 = cocos2d::CCLayer::create();\n    *(_QWORD *)(a1 + 448) = v6;\n    (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)v6 + 416LL))(v6, 0);\n    v7 = **(_QWORD **)(a1 + 448);\n    cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v15, 0.0, 0.0);\n    (*(void (__fastcall **)(_QWORD, __int64))(v7 + 272))(*(_QWORD *)(a1 + 448), v8);\n  }\n  v9 = (const struct cocos2d::CCSize *)cocos2d::CCSize::CCSize((cocos2d::CCSize *)&v15, a2);\n  cocos2d::CCSize::operator=(a1 + 512, v9);\n  cocos2d::CCNode::setContentSize((cocos2d::CCNode *)a1, v9);\n  LOBYTE(v10) = 1;\n  (*(void (__fastcall **)(__int64, __int64))(*(_QWORD *)a1 + 904LL))(a1, v10);\n  v11 = (cocos2d::CCArray *)operator new(0x40u);\n  v15 = v11;\n  cocos2d::CCArray::CCArray(v11);\n  *(_QWORD *)v11 = &cocos2d::CCArray::`vftable';\n  *(_QWORD *)(a1 + 504) = v11;\n  *(_QWORD *)(a1 + 424) = 0;\n  *(_WORD *)(a1 + 476) = 257;\n  *(_DWORD *)(a1 + 432) = 2;\n  v12 = **(_QWORD **)(a1 + 448);\n  cocos2d::CCPoint::CCPoint((cocos2d::CCPoint *)&v15, 0.0, 0.0);\n  (*(void (__fastcall **)(_QWORD, __int64))(v12 + 184))(*(_QWORD *)(a1 + 448), v13);\n  *(_DWORD *)(a1 + 496) = 0;\n  (*(void (__fastcall **)(__int64, _QWORD))(*(_QWORD *)a1 + 448LL))(a1, *(_QWORD *)(a1 + 448));\n  *(_DWORD *)(a1 + 524) = 1065353216;\n  *(_DWORD *)(a1 + 520) = 1065353216;\n  sub_180005510((_QWORD *)(a1 + 552));\n  return 1;\n}", "assembly": "; \n; cocos2d::extension::CCScrollView::initWithViewSize from 0x180012420 to 0x1800125a4 (388 bytes)\n; \n; 5 xrefs:\n; > cocos2d::extension::CCScrollView::create @ 0x18001237b\n; > cocos2d::extension::CCScrollView::init @ 0x1800125d8\n; > cocos2d::extension::CCTableView::initWithViewSize @ 0x180014cf9\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a344\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, 0x180012420\nmov     [rsp+arg_8], rsi                                               ; +0x5, 0x180012425\npush    rdi                                                            ; +0xa, 0x18001242a\nsub     rsp, 20h                                                       ; +0xb, 0x18001242b\nmov     rbx, r8                                                        ; +0xf, 0x18001242f\nmov     rsi, rdx                                                       ; +0x12, 0x180012432\nmov     rdi, rcx                                                       ; +0x15, 0x180012435\ncall    cs:?init@CCLayer@cocos2d@@UEAA_NXZ; cocos2d::CCLayer::init(void) ; +0x18, 0x180012438\ntest    al, al                                                         ; +0x1e, 0x18001243e\njz      loc_180012592                                                  ; +0x20, 0x180012440\nmov     [rdi+1C0h], rbx                                                ; +0x26, 0x180012446\ntest    rbx, rbx                                                       ; +0x2d, 0x18001244d\njnz     short loc_180012499                                            ; +0x30, 0x180012450\ncall    cs:?create@CCLayer@cocos2d@@SAPEAV12@XZ; cocos2d::CCLayer::create(void) ; +0x32, 0x180012452\nmov     [rdi+1C0h], rax                                                ; +0x38, 0x180012458\nmov     r8, [rax]                                                      ; +0x3f, 0x18001245f\nxor     edx, edx                                                       ; +0x42, 0x180012462\nmov     rcx, rax                                                       ; +0x44, 0x180012464\ncall    qword ptr [r8+1A0h]                                            ; +0x47, 0x180012467\nmov     rax, [rdi+1C0h]                                                ; +0x4e, 0x18001246e\nmov     rbx, [rax]                                                     ; +0x55, 0x180012475\nxorps   xmm2, xmm2                                                     ; +0x58, 0x180012478\nxorps   xmm1, xmm1                                                     ; +0x5b, 0x18001247b\nlea     rcx, [rsp+28h+arg_18]                                          ; +0x5e, 0x18001247e\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x63, 0x180012483\nmov     rdx, rax                                                       ; +0x69, 0x180012489\nmov     rcx, [rdi+1C0h]                                                ; +0x6c, 0x18001248c\ncall    qword ptr [rbx+110h]                                           ; +0x73, 0x180012493\nmov     rdx, rsi                                                       ; +0x79, 0x180012499\nlea     rcx, [rsp+28h+arg_18]                                          ; +0x7c, 0x18001249c\ncall    cs:??0CCSize@cocos2d@@QEAA@AEBV01@@Z; cocos2d::CCSize::CCSize(cocos2d::CCSize const &) ; +0x81, 0x1800124a1\nmov     rbx, rax                                                       ; +0x87, 0x1800124a7\nlea     rcx, [rdi+200h]                                                ; +0x8a, 0x1800124aa\nmov     rdx, rax                                                       ; +0x91, 0x1800124b1\ncall    cs:??4CCSize@cocos2d@@QEAAAEAV01@AEBV01@@Z; cocos2d::CCSize::operator=(cocos2d::CCSize const &) ; +0x94, 0x1800124b4\nmov     rdx, rbx                                                       ; +0x9a, 0x1800124ba\nmov     rcx, rdi                                                       ; +0x9d, 0x1800124bd\ncall    cs:__imp_?setContentSize@CCNode@cocos2d@@UEAAXAEBVCCSize@2@@Z; cocos2d::CCNode::setContentSize(cocos2d::CCSize const &) ; +0xa0, 0x1800124c0\nmov     rax, [rdi]                                                     ; +0xa6, 0x1800124c6\nmov     dl, 1                                                          ; +0xa9, 0x1800124c9\nmov     rcx, rdi                                                       ; +0xab, 0x1800124cb\ncall    qword ptr [rax+388h]                                           ; +0xae, 0x1800124ce\nmov     ecx, 40h ; '@'; Size                                           ; +0xb4, 0x1800124d4\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0xb9, 0x1800124d9\nmov     rbx, rax                                                       ; +0xbe, 0x1800124de\nmov     [rsp+28h+arg_18], rax                                          ; +0xc1, 0x1800124e1\nmov     rcx, rax                                                       ; +0xc6, 0x1800124e6\ncall    cs:??0CCArray@cocos2d@@QEAA@XZ; cocos2d::CCArray::CCArray(void) ; +0xc9, 0x1800124e9\nlea     rax, ??_7CCArray@cocos2d@@6B@; const cocos2d::CCArray::`vftable' ; +0xcf, 0x1800124ef\nmov     [rbx], rax                                                     ; +0xd6, 0x1800124f6\nmov     [rdi+1F8h], rbx                                                ; +0xd9, 0x1800124f9\nxor     esi, esi                                                       ; +0xe0, 0x180012500\nmov     [rdi+1A8h], rsi                                                ; +0xe2, 0x180012502\nmov     word ptr [rdi+1DCh], 101h                                      ; +0xe9, 0x180012509\nmov     dword ptr [rdi+1B0h], 2                                        ; +0xf2, 0x180012512\nmov     rax, [rdi+1C0h]                                                ; +0xfc, 0x18001251c\nmov     rbx, [rax]                                                     ; +0x103, 0x180012523\nxorps   xmm2, xmm2                                                     ; +0x106, 0x180012526\nxorps   xmm1, xmm1                                                     ; +0x109, 0x180012529\nlea     rcx, [rsp+28h+arg_18]                                          ; +0x10c, 0x18001252c\ncall    cs:??0CCPoint@cocos2d@@QEAA@MM@Z; cocos2d::CCPoint::CCPoint(float,float) ; +0x111, 0x180012531\nmov     rdx, rax                                                       ; +0x117, 0x180012537\nmov     rcx, [rdi+1C0h]                                                ; +0x11a, 0x18001253a\ncall    qword ptr [rbx+0B8h]                                           ; +0x121, 0x180012541\nmov     [rdi+1F0h], esi                                                ; +0x127, 0x180012547\nmov     rax, [rdi]                                                     ; +0x12d, 0x18001254d\nmov     rdx, [rdi+1C0h]                                                ; +0x130, 0x180012550\nmov     rcx, rdi                                                       ; +0x137, 0x180012557\ncall    qword ptr [rax+1C0h]                                           ; +0x13a, 0x18001255a\nmov     dword ptr [rdi+20Ch], 3F800000h                                ; +0x140, 0x180012560\nmov     dword ptr [rdi+208h], 3F800000h                                ; +0x14a, 0x18001256a\nlea     rcx, [rdi+228h]                                                ; +0x154, 0x180012574\ncall    sub_180005510                                                  ; +0x15b, 0x18001257b\nmov     al, 1                                                          ; +0x160, 0x180012580\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x162, 0x180012582\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x167, 0x180012587\nadd     rsp, 20h                                                       ; +0x16c, 0x18001258c\npop     rdi                                                            ; +0x170, 0x180012590\nretn                                                                   ; +0x171, 0x180012591\nxor     al, al                                                         ; +0x172, 0x180012592\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x174, 0x180012594\nmov     rsi, [rsp+28h+arg_8]                                           ; +0x179, 0x180012599\nadd     rsp, 20h                                                       ; +0x17e, 0x18001259e\npop     rdi                                                            ; +0x182, 0x1800125a2\nretn                                                                   ; +0x183, 0x1800125a3", "xrefs": ["cocos2d::extension::CCScrollView::create @ 0x18001237b", "cocos2d::extension::CCScrollView::init @ 0x1800125d8", "cocos2d::extension::CCTableView::initWithViewSize @ 0x180014cf9", "<???> @ 0x18002fdf8", "<???> @ 0x18004a344"], "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"}