{"type": "func", "start": 6442533312, "end": 6442533570, "name": "cocos2d::extension::CCScrollView::registerScriptHandler", "pseudocode": "// \n// cocos2d::extension::CCScrollView::registerScriptHandler from 0x1800141c0 to 0x1800142c2 (258 bytes)\n// \n// 2 xrefs:\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x18004a5f0\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\nvoid __fastcall cocos2d::extension::CCScrollView::registerScriptHandler(\n        cocos2d::extension::CCScrollView *this,\n        int a2,\n        int a3)\n{\n  __int64 *v6; // rbx\n  __int64 v7; // rsi\n  __int64 v8; // rax\n  __int64 v9; // rcx\n  _DWORD *v10; // rax\n  __int128 v11; // [rsp+20h] [rbp-38h] BYREF\n  __int128 v12; // [rsp+30h] [rbp-28h]\n\n  cocos2d::extension::CCScrollView::unregisterScriptHandler(this, a3);\n  v6 = (__int64 *)((char *)this + 552);\n  v7 = *v6;\n  v8 = *(_QWORD *)(*v6 + 8);\n  *(_QWORD *)&v12 = v8;\n  DWORD2(v12) = 0;\n  v9 = v7;\n  while ( !*(_BYTE *)(v8 + 25) )\n  {\n    *(_QWORD *)&v12 = v8;\n    if ( *(_DWORD *)(v8 + 28) >= a3 )\n    {\n      DWORD2(v12) = 1;\n      v9 = v8;\n      v8 = *(_QWORD *)v8;\n    }\n    else\n    {\n      DWORD2(v12) = 0;\n      v8 = *(_QWORD *)(v8 + 16);\n    }\n  }\n  if ( *(_BYTE *)(v9 + 25) || a3 < *(_DWORD *)(v9 + 28) )\n  {\n    if ( v6[1] == 0x666666666666666LL )\n      sub_1800054D0();\n    v10 = operator new(0x28u);\n    v10[7] = a3;\n    v10[8] = 0;\n    *(_QWORD *)v10 = v7;\n    *((_QWORD *)v10 + 1) = v7;\n    *((_QWORD *)v10 + 2) = v7;\n    *((_WORD *)v10 + 12) = 0;\n    v11 = v12;\n    v9 = sub_180004DA0(v6, (__int64)&v11, (__int64)v10);\n  }\n  *(_DWORD *)(v9 + 32) = a2;\n}", "assembly": "; \n; cocos2d::extension::CCScrollView::registerScriptHandler from 0x1800141c0 to 0x1800142c2 (258 bytes)\n; \n; 2 xrefs:\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x18004a5f0\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, 0x1800141c0\nmov     [rsp+arg_8], rbp                                               ; +0x5, 0x1800141c5\nmov     [rsp+arg_10], rsi                                              ; +0xa, 0x1800141ca\nmov     [rsp+arg_18], rdi                                              ; +0xf, 0x1800141cf\npush    r14                                                            ; +0x14, 0x1800141d4\nsub     rsp, 50h                                                       ; +0x16, 0x1800141d6\nmov     edi, r8d                                                       ; +0x1a, 0x1800141da\nmov     ebp, edx                                                       ; +0x1d, 0x1800141dd\nmov     rbx, rcx                                                       ; +0x1f, 0x1800141df\nmov     edx, r8d; int                                                  ; +0x22, 0x1800141e2\ncall    ?unregisterScriptHandler@CCScrollView@extension@cocos2d@@QEAAXH@Z; cocos2d::extension::CCScrollView::unregisterScriptHandler(int) ; +0x25, 0x1800141e5\nadd     rbx, 228h                                                      ; +0x2a, 0x1800141ea\nmov     rsi, [rbx]                                                     ; +0x31, 0x1800141f1\nmov     rax, [rsi+8]                                                   ; +0x34, 0x1800141f4\nmov     qword ptr [rsp+58h+var_28], rax                                ; +0x38, 0x1800141f8\nxor     r14d, r14d                                                     ; +0x3d, 0x1800141fd\nmov     dword ptr [rsp+58h+var_28+8], r14d                             ; +0x40, 0x180014200\nmov     rcx, rsi                                                       ; +0x45, 0x180014205\ncmp     [rax+19h], r14b                                                ; +0x48, 0x180014208\njnz     short loc_180014239                                            ; +0x4c, 0x18001420c\nxchg    ax, ax                                                         ; +0x4e, 0x18001420e\nmov     qword ptr [rsp+58h+var_28], rax                                ; +0x50, 0x180014210\ncmp     [rax+1Ch], edi                                                 ; +0x55, 0x180014215\njge     short loc_180014225                                            ; +0x58, 0x180014218\nmov     dword ptr [rsp+58h+var_28+8], r14d                             ; +0x5a, 0x18001421a\nmov     rax, [rax+10h]                                                 ; +0x5f, 0x18001421f\njmp     short loc_180014233                                            ; +0x63, 0x180014223\nmov     dword ptr [rsp+58h+var_28+8], 1                                ; +0x65, 0x180014225\nmov     rcx, rax                                                       ; +0x6d, 0x18001422d\nmov     rax, [rax]                                                     ; +0x70, 0x180014230\ncmp     [rax+19h], r14b                                                ; +0x73, 0x180014233\njz      short loc_180014210                                            ; +0x77, 0x180014237\ncmp     [rcx+19h], r14b                                                ; +0x79, 0x180014239\njnz     short loc_180014244                                            ; +0x7d, 0x18001423d\ncmp     edi, [rcx+1Ch]                                                 ; +0x7f, 0x18001423f\njge     short loc_18001429E                                            ; +0x82, 0x180014242\nmov     rax, 666666666666666h                                          ; +0x84, 0x180014244\ncmp     [rbx+8], rax                                                   ; +0x8e, 0x18001424e\njz      short loc_1800142BC                                            ; +0x92, 0x180014252\nmov     qword ptr [rsp+58h+var_38], rbx                                ; +0x94, 0x180014254\nmov     qword ptr [rsp+58h+var_38+8], r14                              ; +0x99, 0x180014259\nmov     ecx, 28h ; '('; Size                                           ; +0x9e, 0x18001425e\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0xa3, 0x180014263\nnop                                                                    ; +0xa8, 0x180014268\nmov     [rax+1Ch], edi                                                 ; +0xa9, 0x180014269\nmov     [rax+20h], r14d                                                ; +0xac, 0x18001426c\nmov     [rax], rsi                                                     ; +0xb0, 0x180014270\nmov     [rax+8], rsi                                                   ; +0xb3, 0x180014273\nmov     [rax+10h], rsi                                                 ; +0xb7, 0x180014277\nmov     word ptr [rax+18h], 0                                          ; +0xbb, 0x18001427b\nmovups  xmm0, [rsp+58h+var_28]                                         ; +0xc1, 0x180014281\nmovaps  [rsp+58h+var_38], xmm0                                         ; +0xc6, 0x180014286\nmov     r8, rax                                                        ; +0xcb, 0x18001428b\nlea     rdx, [rsp+58h+var_38]                                          ; +0xce, 0x18001428e\nmov     rcx, rbx                                                       ; +0xd3, 0x180014293\ncall    sub_180004DA0                                                  ; +0xd6, 0x180014296\nmov     rcx, rax                                                       ; +0xdb, 0x18001429b\nmov     [rcx+20h], ebp                                                 ; +0xde, 0x18001429e\nmov     rbx, [rsp+58h+arg_0]                                           ; +0xe1, 0x1800142a1\nmov     rbp, [rsp+58h+arg_8]                                           ; +0xe6, 0x1800142a6\nmov     rsi, [rsp+58h+arg_10]                                          ; +0xeb, 0x1800142ab\nmov     rdi, [rsp+58h+arg_18]                                          ; +0xf0, 0x1800142b0\nadd     rsp, 50h                                                       ; +0xf5, 0x1800142b5\npop     r14                                                            ; +0xf9, 0x1800142b9\nretn                                                                   ; +0xfb, 0x1800142bb\ncall    sub_1800054D0                                                  ; +0xfc, 0x1800142bc\ndb 0CCh                                                                ; +0x101, 0x1800142c1", "xrefs": ["<???> @ 0x18002fdf8", "<???> @ 0x18004a5f0"], "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"}