{"type": "func", "start": 6442530832, "end": 6442531200, "name": "cocos2d::extension::CCScrollView::visit", "pseudocode": "// \n// cocos2d::extension::CCScrollView::visit from 0x180013810 to 0x180013980 (368 bytes)\n// \n// 6 xrefs:\n// > <???> @ 0x180028608\n// > <???> @ 0x180028b80\n// > <???> @ 0x18002ea78\n// > <???> @ 0x18002eaac\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a53c\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::CCScrollView::visit(cocos2d::extension::CCScrollView *this)\n{\n  cocos2d::CCGridBase *v2; // rcx\n  __int64 v3; // rsi\n  __int64 v4; // rsi\n  __int64 i; // rbx\n  __int64 v6; // r14\n  __int64 v7; // rcx\n  __int64 v8; // rax\n  cocos2d::CCGridBase *v9; // rcx\n\n  if ( (*(unsigned __int8 (__fastcall **)(cocos2d::extension::CCScrollView *))(*(_QWORD *)this + 328LL))(this) )\n  {\n    kmGLPushMatrix();\n    v2 = *((cocos2d::CCGridBase **)this + 25);\n    if ( v2 && *((_BYTE *)v2 + 56) )\n    {\n      cocos2d::CCGridBase::beforeDraw(v2);\n      cocos2d::CCNode::transformAncestors(this);\n    }\n    cocos2d::CCNode::transform(this);\n    cocos2d::extension::CCScrollView::beforeDraw(this);\n    v3 = *((_QWORD *)this + 26);\n    if ( v3 )\n    {\n      v4 = *(_QWORD *)(v3 + 56);\n      for ( i = 0; (unsigned int)i < *(_DWORD *)v4; i = (unsigned int)(i + 1) )\n      {\n        v6 = *(_QWORD *)(*(_QWORD *)(v4 + 16) + 8 * i);\n        if ( (*(int (__fastcall **)(__int64))(*(_QWORD *)v6 + 96LL))(v6) >= 0 )\n          break;\n        (*(void (__fastcall **)(__int64))(*(_QWORD *)v6 + 728LL))(v6);\n      }\n      (*(void (__fastcall **)(cocos2d::extension::CCScrollView *))(*(_QWORD *)this + 720LL))(this);\n      for ( ; (unsigned int)i < *(_DWORD *)v4; i = (unsigned int)(i + 1) )\n      {\n        v7 = *(_QWORD *)(*(_QWORD *)(v4 + 16) + 8 * i);\n        (*(void (__fastcall **)(__int64))(*(_QWORD *)v7 + 728LL))(v7);\n      }\n    }\n    else\n    {\n      (*(void (__fastcall **)(cocos2d::extension::CCScrollView *))(*(_QWORD *)this + 720LL))(this);\n    }\n    if ( *((_BYTE *)this + 477) )\n    {\n      if ( *((_BYTE *)this + 544) )\n      {\n        v8 = cocos2d::CCEGLView::sharedOpenGLView();\n        (*(void (__fastcall **)(__int64))(*(_QWORD *)v8 + 104LL))(v8);\n      }\n      else\n      {\n        glDisable(0xC11u);\n      }\n    }\n    v9 = *((cocos2d::CCGridBase **)this + 25);\n    if ( v9 )\n    {\n      if ( *((_BYTE *)v9 + 56) )\n        cocos2d::CCGridBase::afterDraw(v9, this);\n    }\n    kmGLPopMatrix();\n  }\n}", "assembly": "; \n; cocos2d::extension::CCScrollView::visit from 0x180013810 to 0x180013980 (368 bytes)\n; \n; 6 xrefs:\n; > <???> @ 0x180028608\n; > <???> @ 0x180028b80\n; > <???> @ 0x18002ea78\n; > <???> @ 0x18002eaac\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a53c\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    rdi                                                            ; +0x0, 0x180013810\nsub     rsp, 30h                                                       ; +0x2, 0x180013812\nmov     rax, [rcx]                                                     ; +0x6, 0x180013816\nmov     rdi, rcx                                                       ; +0x9, 0x180013819\ncall    qword ptr [rax+148h]                                           ; +0xc, 0x18001381c\ntest    al, al                                                         ; +0x12, 0x180013822\njz      loc_18001397A                                                  ; +0x14, 0x180013824\nmov     [rsp+38h+arg_8], rsi                                           ; +0x1a, 0x18001382a\ncall    cs:kmGLPushMatrix                                              ; +0x1f, 0x18001382f\nmov     rcx, [rdi+0C8h]                                                ; +0x25, 0x180013835\ntest    rcx, rcx                                                       ; +0x2c, 0x18001383c\njz      short loc_180013856                                            ; +0x2f, 0x18001383f\ncmp     byte ptr [rcx+38h], 0                                          ; +0x31, 0x180013841\njz      short loc_180013856                                            ; +0x35, 0x180013845\ncall    cs:?beforeDraw@CCGridBase@cocos2d@@QEAAXXZ; cocos2d::CCGridBase::beforeDraw(void) ; +0x37, 0x180013847\nmov     rcx, rdi                                                       ; +0x3d, 0x18001384d\ncall    cs:?transformAncestors@CCNode@cocos2d@@QEAAXXZ; cocos2d::CCNode::transformAncestors(void) ; +0x40, 0x180013850\nmov     rcx, rdi                                                       ; +0x46, 0x180013856\nmov     [rsp+38h+arg_0], rbx                                           ; +0x49, 0x180013859\ncall    cs:?transform@CCNode@cocos2d@@QEAAXXZ; cocos2d::CCNode::transform(void) ; +0x4e, 0x18001385e\nmov     rcx, rdi; this                                                 ; +0x54, 0x180013864\ncall    ?beforeDraw@CCScrollView@extension@cocos2d@@AEAAXXZ; cocos2d::extension::CCScrollView::beforeDraw(void) ; +0x57, 0x180013867\nmov     rsi, [rdi+0D0h]                                                ; +0x5c, 0x18001386c\ntest    rsi, rsi                                                       ; +0x63, 0x180013873\njz      short loc_1800138E9                                            ; +0x66, 0x180013876\nmov     rsi, [rsi+38h]                                                 ; +0x68, 0x180013878\nxor     ebx, ebx                                                       ; +0x6c, 0x18001387c\ncmp     [rsi], ebx                                                     ; +0x6e, 0x18001387e\njbe     short loc_1800138BC                                            ; +0x70, 0x180013880\nmov     [rsp+38h+arg_10], r14                                          ; +0x72, 0x180013882\nnop     word ptr [rax+rax+00000000h]                                   ; +0x77, 0x180013887\nmov     rax, [rsi+10h]                                                 ; +0x80, 0x180013890\nmov     r14, [rax+rbx*8]                                               ; +0x84, 0x180013894\nmov     rcx, r14                                                       ; +0x88, 0x180013898\nmov     rax, [r14]                                                     ; +0x8b, 0x18001389b\ncall    qword ptr [rax+60h]                                            ; +0x8e, 0x18001389e\ntest    eax, eax                                                       ; +0x91, 0x1800138a1\njns     short loc_1800138B7                                            ; +0x93, 0x1800138a3\nmov     rax, [r14]                                                     ; +0x95, 0x1800138a5\nmov     rcx, r14                                                       ; +0x98, 0x1800138a8\ncall    qword ptr [rax+2D8h]                                           ; +0x9b, 0x1800138ab\ninc     ebx                                                            ; +0xa1, 0x1800138b1\ncmp     ebx, [rsi]                                                     ; +0xa3, 0x1800138b3\njb      short loc_180013890                                            ; +0xa5, 0x1800138b5\nmov     r14, [rsp+38h+arg_10]                                          ; +0xa7, 0x1800138b7\nmov     rax, [rdi]                                                     ; +0xac, 0x1800138bc\nmov     rcx, rdi                                                       ; +0xaf, 0x1800138bf\ncall    qword ptr [rax+2D0h]                                           ; +0xb2, 0x1800138c2\ncmp     ebx, [rsi]                                                     ; +0xb8, 0x1800138c8\njnb     short loc_1800138F5                                            ; +0xba, 0x1800138ca\nnop     dword ptr [rax+00h]                                            ; +0xbc, 0x1800138cc\nmov     rax, [rsi+10h]                                                 ; +0xc0, 0x1800138d0\nmov     rcx, [rax+rbx*8]                                               ; +0xc4, 0x1800138d4\nmov     rax, [rcx]                                                     ; +0xc8, 0x1800138d8\ncall    qword ptr [rax+2D8h]                                           ; +0xcb, 0x1800138db\ninc     ebx                                                            ; +0xd1, 0x1800138e1\ncmp     ebx, [rsi]                                                     ; +0xd3, 0x1800138e3\njb      short loc_1800138D0                                            ; +0xd5, 0x1800138e5\njmp     short loc_1800138F5                                            ; +0xd7, 0x1800138e7\nmov     rax, [rdi]                                                     ; +0xd9, 0x1800138e9\nmov     rcx, rdi                                                       ; +0xdc, 0x1800138ec\ncall    qword ptr [rax+2D0h]                                           ; +0xdf, 0x1800138ef\ncmp     byte ptr [rdi+1DDh], 0                                         ; +0xe5, 0x1800138f5\nmov     rsi, [rsp+38h+arg_8]                                           ; +0xec, 0x1800138fc\nmov     rbx, [rsp+38h+arg_0]                                           ; +0xf1, 0x180013901\njz      short loc_180013953                                            ; +0xf6, 0x180013906\ncmp     byte ptr [rdi+220h], 0                                         ; +0xf8, 0x180013908\njz      short loc_180013948                                            ; +0xff, 0x18001390f\ncall    cs:?sharedOpenGLView@CCEGLView@cocos2d@@SAPEAV12@XZ; cocos2d::CCEGLView::sharedOpenGLView(void) ; +0x101, 0x180013911\nmovss   xmm0, dword ptr [rdi+21Ch]                                     ; +0x107, 0x180013917\nmov     rcx, rax                                                       ; +0x10f, 0x18001391f\nmovss   xmm3, dword ptr [rdi+218h]                                     ; +0x112, 0x180013922\nmovss   xmm2, dword ptr [rdi+214h]                                     ; +0x11a, 0x18001392a\nmov     rdx, [rax]                                                     ; +0x122, 0x180013932\nmovss   xmm1, dword ptr [rdi+210h]                                     ; +0x125, 0x180013935\nmovss   [rsp+38h+var_18], xmm0                                         ; +0x12d, 0x18001393d\ncall    qword ptr [rdx+68h]                                            ; +0x133, 0x180013943\njmp     short loc_180013953                                            ; +0x136, 0x180013946\nmov     ecx, 0C11h; cap                                                ; +0x138, 0x180013948\ncall    cs:glDisable                                                   ; +0x13d, 0x18001394d\nmov     rcx, [rdi+0C8h]                                                ; +0x143, 0x180013953\ntest    rcx, rcx                                                       ; +0x14a, 0x18001395a\njz      short loc_18001396E                                            ; +0x14d, 0x18001395d\ncmp     byte ptr [rcx+38h], 0                                          ; +0x14f, 0x18001395f\njz      short loc_18001396E                                            ; +0x153, 0x180013963\nmov     rdx, rdi                                                       ; +0x155, 0x180013965\ncall    cs:?afterDraw@CCGridBase@cocos2d@@QEAAXPEAVCCNode@2@@Z; cocos2d::CCGridBase::afterDraw(cocos2d::CCNode *) ; +0x158, 0x180013968\nadd     rsp, 30h                                                       ; +0x15e, 0x18001396e\npop     rdi                                                            ; +0x162, 0x180013972\njmp     cs:kmGLPopMatrix                                               ; +0x163, 0x180013973\nadd     rsp, 30h                                                       ; +0x16a, 0x18001397a\npop     rdi                                                            ; +0x16e, 0x18001397e\nretn                                                                   ; +0x16f, 0x18001397f", "xrefs": ["<???> @ 0x180028608", "<???> @ 0x180028b80", "<???> @ 0x18002ea78", "<???> @ 0x18002eaac", "<???> @ 0x18002fdf8", "<???> @ 0x18004a53c"], "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"}