{"type": "func", "start": 6442456192, "end": 6442456679, "name": "cocos2d::extension::AssetsManager::AssetsManager", "pseudocode": "// \n// cocos2d::extension::AssetsManager::AssetsManager from 0x180001480 to 0x180001667 (487 bytes)\n// \n// 3 xrefs:\n// > cocos2d::extension::AssetsManager::`default constructor closure' @ 0x1800013b8\n// > <???> @ 0x18002fdf8\n// > <???> @ 0x180049054\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=8\ncocos2d::extension::AssetsManager *__fastcall cocos2d::extension::AssetsManager::AssetsManager(\n        cocos2d::extension::AssetsManager *this,\n        const char *a2,\n        const char *a3,\n        const char *a4)\n{\n  __int64 v7; // rbx\n  __int64 v8; // r8\n  __int64 v9; // r8\n  __int64 v10; // rcx\n  char *v11; // rax\n  _QWORD *v12; // rax\n  __int64 v13; // rdx\n  __int64 v14; // rcx\n  __int64 v15; // rax\n  cocos2d::CCScheduler *v16; // rax\n  cocos2d::CCObject *v18; // [rsp+20h] [rbp-28h]\n  _QWORD *v19; // [rsp+28h] [rbp-20h]\n\n  *(_QWORD *)this = &cocos2d::extension::AssetsManager::`vftable';\n  *(_OWORD *)((char *)this + 8) = 0;\n  *((_QWORD *)this + 3) = 0;\n  *((_QWORD *)this + 4) = 0;\n  v7 = -1;\n  v8 = -1;\n  do\n    ++v8;\n  while ( a4[v8] );\n  sub_180003AB0((char *)this + 8, a4);\n  *(_OWORD *)((char *)this + 40) = 0;\n  *((_QWORD *)this + 7) = 0;\n  *((_QWORD *)this + 8) = 15;\n  *((_BYTE *)this + 40) = 0;\n  *(_OWORD *)((char *)this + 72) = 0;\n  *((_QWORD *)this + 11) = 0;\n  *((_QWORD *)this + 12) = 0;\n  v9 = -1;\n  do\n    ++v9;\n  while ( a2[v9] );\n  sub_180003AB0((char *)this + 72, a2);\n  *(_OWORD *)((char *)this + 104) = 0;\n  *((_QWORD *)this + 15) = 0;\n  *((_QWORD *)this + 16) = 0;\n  do\n    ++v7;\n  while ( a3[v7] );\n  sub_180003AB0((char *)this + 104, a3);\n  *(_OWORD *)((char *)this + 136) = 0;\n  *((_QWORD *)this + 19) = 0;\n  *((_QWORD *)this + 20) = 15;\n  *((_BYTE *)this + 136) = 0;\n  *((_QWORD *)this + 21) = 0;\n  *((_QWORD *)this + 23) = 0;\n  *((_DWORD *)this + 48) = 0;\n  *((_QWORD *)this + 25) = 0;\n  v10 = *((_QWORD *)this + 3);\n  if ( v10 )\n  {\n    v11 = (char *)this + 8;\n    if ( *((_QWORD *)this + 4) > 0xFu )\n      v11 = *((char **)this + 1);\n    if ( v11[v10 - 1] != 47 )\n      sub_1800039A0((char *)this + 8);\n  }\n  v18 = (cocos2d::CCObject *)operator new(0x48u);\n  cocos2d::CCObject::CCObject(v18);\n  *(_QWORD *)v18 = &cocos2d::extension::AssetsManager::Helper::`vftable';\n  v19 = operator new(0x10u);\n  *v19 = 0;\n  v19[1] = 0;\n  v12 = operator new(0x18u);\n  *v12 = v12;\n  v12[1] = v12;\n  *v19 = v12;\n  *((_QWORD *)v18 + 7) = v19;\n  pthread_mutex_init((char *)v18 + 64, 0);\n  v15 = cocos2d::CCDirector::sharedDirector(v14, v13);\n  v16 = (cocos2d::CCScheduler *)(*(__int64 (__fastcall **)(__int64))(*(_QWORD *)v15 + 112LL))(v15);\n  cocos2d::CCScheduler::scheduleUpdateForTarget(v16, v18, 0, 0);\n  *((_QWORD *)this + 22) = v18;\n  return this;\n}", "assembly": "; \n; cocos2d::extension::AssetsManager::AssetsManager from 0x180001480 to 0x180001667 (487 bytes)\n; \n; 3 xrefs:\n; > cocos2d::extension::AssetsManager::`default constructor closure' @ 0x1800013b8\n; > <???> @ 0x18002fdf8\n; > <???> @ 0x180049054\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, 0x180001480\nmov     [rsp+arg_10], rbp                                              ; +0x5, 0x180001485\nmov     [rsp+arg_18], rsi                                              ; +0xa, 0x18000148a\nmov     [rsp+arg_0], rcx                                               ; +0xf, 0x18000148f\npush    rdi                                                            ; +0x14, 0x180001494\npush    r14                                                            ; +0x15, 0x180001495\npush    r15                                                            ; +0x17, 0x180001497\nsub     rsp, 30h                                                       ; +0x19, 0x180001499\nmov     r14, r8                                                        ; +0x1d, 0x18000149d\nmov     rbp, rdx                                                       ; +0x20, 0x1800014a0\nmov     rsi, rcx                                                       ; +0x23, 0x1800014a3\nlea     rax, ??_7AssetsManager@extension@cocos2d@@6B@; const cocos2d::extension::AssetsManager::`vftable' ; +0x26, 0x1800014a6\nmov     [rcx], rax                                                     ; +0x2d, 0x1800014ad\nxorps   xmm0, xmm0                                                     ; +0x30, 0x1800014b0\nmovups  xmmword ptr [rcx+8], xmm0                                      ; +0x33, 0x1800014b3\nxor     r15d, r15d                                                     ; +0x37, 0x1800014b7\nmov     [rcx+18h], r15                                                 ; +0x3a, 0x1800014ba\nmov     [rcx+20h], r15                                                 ; +0x3e, 0x1800014be\nmov     rbx, 0FFFFFFFFFFFFFFFFh                                        ; +0x42, 0x1800014c2\nmov     r8, rbx                                                        ; +0x49, 0x1800014c9\nnop     dword ptr [rax+00h]                                            ; +0x4c, 0x1800014cc\ninc     r8                                                             ; +0x50, 0x1800014d0\ncmp     [r9+r8], r15b                                                  ; +0x53, 0x1800014d3\njnz     short loc_1800014D0                                            ; +0x57, 0x1800014d7\nmov     rdx, r9                                                        ; +0x59, 0x1800014d9\nadd     rcx, 8                                                         ; +0x5c, 0x1800014dc\ncall    sub_180003AB0                                                  ; +0x60, 0x1800014e0\nnop                                                                    ; +0x65, 0x1800014e5\nxorps   xmm0, xmm0                                                     ; +0x66, 0x1800014e6\nmovups  xmmword ptr [rsi+28h], xmm0                                    ; +0x69, 0x1800014e9\nmov     [rsi+38h], r15                                                 ; +0x6d, 0x1800014ed\nmov     qword ptr [rsi+40h], 0Fh                                       ; +0x71, 0x1800014f1\nmov     byte ptr [rsi+28h], 0                                          ; +0x79, 0x1800014f9\nlea     rcx, [rsi+48h]                                                 ; +0x7d, 0x1800014fd\nmovups  xmmword ptr [rcx], xmm0                                        ; +0x81, 0x180001501\nmov     [rcx+10h], r15                                                 ; +0x84, 0x180001504\nmov     [rcx+18h], r15                                                 ; +0x88, 0x180001508\nmov     r8, rbx                                                        ; +0x8c, 0x18000150c\nnop                                                                    ; +0x8f, 0x18000150f\ninc     r8                                                             ; +0x90, 0x180001510\ncmp     byte ptr [r8+rbp], 0                                           ; +0x93, 0x180001513\njnz     short loc_180001510                                            ; +0x98, 0x180001518\nmov     rdx, rbp                                                       ; +0x9a, 0x18000151a\ncall    sub_180003AB0                                                  ; +0x9d, 0x18000151d\nnop                                                                    ; +0xa2, 0x180001522\nlea     rcx, [rsi+68h]                                                 ; +0xa3, 0x180001523\nxorps   xmm0, xmm0                                                     ; +0xa7, 0x180001527\nmovups  xmmword ptr [rcx], xmm0                                        ; +0xaa, 0x18000152a\nmov     [rcx+10h], r15                                                 ; +0xad, 0x18000152d\nmov     [rcx+18h], r15                                                 ; +0xb1, 0x180001531\ninc     rbx                                                            ; +0xb5, 0x180001535\ncmp     byte ptr [r14+rbx], 0                                          ; +0xb8, 0x180001538\njnz     short loc_180001535                                            ; +0xbd, 0x18000153d\nmov     r8, rbx                                                        ; +0xbf, 0x18000153f\nmov     rdx, r14                                                       ; +0xc2, 0x180001542\ncall    sub_180003AB0                                                  ; +0xc5, 0x180001545\nnop                                                                    ; +0xca, 0x18000154a\nxorps   xmm0, xmm0                                                     ; +0xcb, 0x18000154b\nmovups  xmmword ptr [rsi+88h], xmm0                                    ; +0xce, 0x18000154e\nmov     [rsi+98h], r15                                                 ; +0xd5, 0x180001555\nmov     qword ptr [rsi+0A0h], 0Fh                                      ; +0xdc, 0x18000155c\nmov     byte ptr [rsi+88h], 0                                          ; +0xe7, 0x180001567\nmov     [rsi+0A8h], r15                                                ; +0xee, 0x18000156e\nmov     [rsi+0B8h], r15                                                ; +0xf5, 0x180001575\nmov     [rsi+0C0h], r15d                                               ; +0xfc, 0x18000157c\nmov     [rsi+0C8h], r15                                                ; +0x103, 0x180001583\nmov     rcx, [rsi+18h]                                                 ; +0x10a, 0x18000158a\ntest    rcx, rcx                                                       ; +0x10e, 0x18000158e\njz      short loc_1800015BF                                            ; +0x111, 0x180001591\nlea     rax, [rsi+8]                                                   ; +0x113, 0x180001593\ncmp     qword ptr [rsi+20h], 0Fh                                       ; +0x117, 0x180001597\njbe     short loc_1800015A2                                            ; +0x11c, 0x18000159c\nmov     rax, [rsi+8]                                                   ; +0x11e, 0x18000159e\ncmp     byte ptr [rcx+rax-1], 2Fh ; '/'                                ; +0x122, 0x1800015a2\njz      short loc_1800015BF                                            ; +0x127, 0x1800015a7\nmov     r8d, 1                                                         ; +0x129, 0x1800015a9\nlea     rdx, word_180023388                                            ; +0x12f, 0x1800015af\nlea     rcx, [rsi+8]; Src                                              ; +0x136, 0x1800015b6\ncall    sub_1800039A0                                                  ; +0x13a, 0x1800015ba\nmov     ecx, 48h ; 'H'; Size                                           ; +0x13f, 0x1800015bf\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x144, 0x1800015c4\nmov     rdi, rax                                                       ; +0x149, 0x1800015c9\nmov     [rsp+48h+var_28], rax                                          ; +0x14c, 0x1800015cc\nmov     rcx, rax                                                       ; +0x151, 0x1800015d1\ncall    cs:??0CCObject@cocos2d@@QEAA@XZ; cocos2d::CCObject::CCObject(void) ; +0x154, 0x1800015d4\nnop                                                                    ; +0x15a, 0x1800015da\nlea     rax, ??_7Helper@AssetsManager@extension@cocos2d@@6B@; const cocos2d::extension::AssetsManager::Helper::`vftable' ; +0x15b, 0x1800015db\nmov     [rdi], rax                                                     ; +0x162, 0x1800015e2\nmov     ecx, 10h; Size                                                 ; +0x165, 0x1800015e5\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x16a, 0x1800015ea\nmov     rbx, rax                                                       ; +0x16f, 0x1800015ef\nmov     [rsp+48h+var_20], rax                                          ; +0x172, 0x1800015f2\nmov     [rax], r15                                                     ; +0x177, 0x1800015f7\nmov     [rax+8], r15                                                   ; +0x17a, 0x1800015fa\nmov     ecx, 18h; Size                                                 ; +0x17e, 0x1800015fe\ncall    ??2@YAPEAX_K@Z; operator new(unsigned __int64)                 ; +0x183, 0x180001603\nmov     [rax], rax                                                     ; +0x188, 0x180001608\nmov     [rax+8], rax                                                   ; +0x18b, 0x18000160b\nmov     [rbx], rax                                                     ; +0x18f, 0x18000160f\nmov     [rdi+38h], rbx                                                 ; +0x192, 0x180001612\nlea     rcx, [rdi+40h]                                                 ; +0x196, 0x180001616\nxor     edx, edx                                                       ; +0x19a, 0x18000161a\ncall    cs:pthread_mutex_init                                          ; +0x19c, 0x18000161c\ncall    cs:?sharedDirector@CCDirector@cocos2d@@SAPEAV12@XZ; cocos2d::CCDirector::sharedDirector(void) ; +0x1a2, 0x180001622\nmov     rdx, [rax]                                                     ; +0x1a8, 0x180001628\nmov     rcx, rax                                                       ; +0x1ab, 0x18000162b\ncall    qword ptr [rdx+70h]                                            ; +0x1ae, 0x18000162e\nmov     rcx, rax                                                       ; +0x1b1, 0x180001631\nxor     r9d, r9d                                                       ; +0x1b4, 0x180001634\nxor     r8d, r8d                                                       ; +0x1b7, 0x180001637\nmov     rdx, rdi                                                       ; +0x1ba, 0x18000163a\ncall    cs:?scheduleUpdateForTarget@CCScheduler@cocos2d@@QEAAXPEAVCCObject@2@H_N@Z; cocos2d::CCScheduler::scheduleUpdateForTarget(cocos2d::CCObject *,int,bool) ; +0x1bd, 0x18000163d\nnop                                                                    ; +0x1c3, 0x180001643\nmov     [rsi+0B0h], rdi                                                ; +0x1c4, 0x180001644\nmov     rax, rsi                                                       ; +0x1cb, 0x18000164b\nmov     rbx, [rsp+48h+arg_8]                                           ; +0x1ce, 0x18000164e\nmov     rbp, [rsp+48h+arg_10]                                          ; +0x1d3, 0x180001653\nmov     rsi, [rsp+48h+arg_18]                                          ; +0x1d8, 0x180001658\nadd     rsp, 30h                                                       ; +0x1dd, 0x18000165d\npop     r15                                                            ; +0x1e1, 0x180001661\npop     r14                                                            ; +0x1e3, 0x180001663\npop     rdi                                                            ; +0x1e5, 0x180001665\nretn                                                                   ; +0x1e6, 0x180001666", "xrefs": ["cocos2d::extension::AssetsManager::`default constructor closure' @ 0x1800013b8", "<???> @ 0x18002fdf8", "<???> @ 0x180049054"], "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"}