{"type": "func", "start": 6442573184, "end": 6442573348, "name": "sub_18001DD80", "pseudocode": "// \n// sub_18001DD80 from 0x18001dd80 to 0x18001de24 (164 bytes)\n// \n// 4 xrefs:\n// > cocos2d::extension::CCControl::CCControl @ 0x18001b1df\n// > cocos2d::extension::CCScrollView::CCScrollView @ 0x18001c48e\n// > sub_18001D990 @ 0x18001d9fe\n// > <???> @ 0x18004b0a0\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 sub_18001DD80(_QWORD *a1, _QWORD *a2)\n{\n  _QWORD *v4; // r8\n  __int64 **v5; // rdx\n  __int64 *i; // rcx\n  __int64 v7; // rcx\n  __int64 result; // rax\n\n  *(_QWORD *)(*a1 + 8LL) = sub_18001DEE0(a1, *(_QWORD *)(*a2 + 8LL), *a1);\n  v4 = (_QWORD *)*a1;\n  a1[1] = a2[1];\n  v5 = (__int64 **)v4[1];\n  if ( *((_BYTE *)v5 + 25) )\n  {\n    *v4 = v4;\n    result = *a1;\n    *(_QWORD *)(*a1 + 16LL) = *a1;\n  }\n  else\n  {\n    for ( i = *v5; !*((_BYTE *)i + 25); i = (__int64 *)*i )\n      v5 = (__int64 **)i;\n    *v4 = v5;\n    v7 = *(_QWORD *)(*a1 + 8LL);\n    for ( result = *(_QWORD *)(v7 + 16); !*(_BYTE *)(result + 25); result = *(_QWORD *)(result + 16) )\n      v7 = result;\n    *(_QWORD *)(*a1 + 16LL) = v7;\n  }\n  return result;\n}", "assembly": "; \n; sub_18001DD80 from 0x18001dd80 to 0x18001de24 (164 bytes)\n; \n; 4 xrefs:\n; > cocos2d::extension::CCControl::CCControl @ 0x18001b1df\n; > cocos2d::extension::CCScrollView::CCScrollView @ 0x18001c48e\n; > sub_18001D990 @ 0x18001d9fe\n; > <???> @ 0x18004b0a0\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, 0x18001dd80\npush    rdi                                                            ; +0x5, 0x18001dd85\nsub     rsp, 20h                                                       ; +0x6, 0x18001dd86\nmov     r8, [rcx]                                                      ; +0xa, 0x18001dd8a\nmov     rbx, rdx                                                       ; +0xd, 0x18001dd8d\nmov     rdx, [rdx]                                                     ; +0x10, 0x18001dd90\nmov     rdi, rcx                                                       ; +0x13, 0x18001dd93\nmov     rdx, [rdx+8]                                                   ; +0x16, 0x18001dd96\ncall    sub_18001DEE0                                                  ; +0x1a, 0x18001dd9a\nmov     r8, [rdi]                                                      ; +0x1f, 0x18001dd9f\nmov     [r8+8], rax                                                    ; +0x22, 0x18001dda2\nmov     r8, [rdi]                                                      ; +0x26, 0x18001dda6\nmov     rax, [rbx+8]                                                   ; +0x29, 0x18001dda9\nmov     [rdi+8], rax                                                   ; +0x2d, 0x18001ddad\nmov     rdx, [r8+8]                                                    ; +0x31, 0x18001ddb1\ncmp     byte ptr [rdx+19h], 0                                          ; +0x35, 0x18001ddb5\njnz     short loc_18001DE0F                                            ; +0x39, 0x18001ddb9\nmov     rcx, [rdx]                                                     ; +0x3b, 0x18001ddbb\ncmp     byte ptr [rcx+19h], 0                                          ; +0x3e, 0x18001ddbe\njnz     short loc_18001DDDF                                            ; +0x42, 0x18001ddc2\nnop     dword ptr [rax+00h]                                            ; +0x44, 0x18001ddc4\nnop     dword ptr [rax+rax+00000000h]                                  ; +0x48, 0x18001ddc8\nmov     rax, [rcx]                                                     ; +0x50, 0x18001ddd0\nmov     rdx, rcx                                                       ; +0x53, 0x18001ddd3\nmov     rcx, rax                                                       ; +0x56, 0x18001ddd6\ncmp     byte ptr [rax+19h], 0                                          ; +0x59, 0x18001ddd9\njz      short loc_18001DDD0                                            ; +0x5d, 0x18001dddd\nmov     [r8], rdx                                                      ; +0x5f, 0x18001dddf\nmov     rdx, [rdi]                                                     ; +0x62, 0x18001dde2\nmov     rcx, [rdx+8]                                                   ; +0x65, 0x18001dde5\nmov     rax, [rcx+10h]                                                 ; +0x69, 0x18001dde9\ncmp     byte ptr [rax+19h], 0                                          ; +0x6d, 0x18001dded\njnz     short loc_18001DE00                                            ; +0x71, 0x18001ddf1\nmov     rcx, rax                                                       ; +0x73, 0x18001ddf3\nmov     rax, [rax+10h]                                                 ; +0x76, 0x18001ddf6\ncmp     byte ptr [rax+19h], 0                                          ; +0x7a, 0x18001ddfa\njz      short loc_18001DDF3                                            ; +0x7e, 0x18001ddfe\nmov     [rdx+10h], rcx                                                 ; +0x80, 0x18001de00\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x84, 0x18001de04\nadd     rsp, 20h                                                       ; +0x89, 0x18001de09\npop     rdi                                                            ; +0x8d, 0x18001de0d\nretn                                                                   ; +0x8e, 0x18001de0e\nmov     rbx, [rsp+28h+arg_0]                                           ; +0x8f, 0x18001de0f\nmov     [r8], r8                                                       ; +0x94, 0x18001de14\nmov     rax, [rdi]                                                     ; +0x97, 0x18001de17\nmov     [rax+10h], rax                                                 ; +0x9a, 0x18001de1a\nadd     rsp, 20h                                                       ; +0x9e, 0x18001de1e\npop     rdi                                                            ; +0xa2, 0x18001de22\nretn                                                                   ; +0xa3, 0x18001de23", "xrefs": ["cocos2d::extension::CCControl::CCControl @ 0x18001b1df", "cocos2d::extension::CCScrollView::CCScrollView @ 0x18001c48e", "sub_18001D990 @ 0x18001d9fe", "<???> @ 0x18004b0a0"], "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"}