// // sub_180001B60 from 0x180001b60 to 0x180001c89 (297 bytes) // // 4 xrefs: // > cocos2d::extension::AssetsManager::update @ 0x180001e76 // > @ 0x18002cee4 // > @ 0x18002cef4 // > @ 0x18004909c // // This function is hookable on this platform! // // Using BromaIDA 8.0.0 @ https://github.com/Stazzical/BromaIDA // Using bindings at commit ba9f177b at Thu Jul 16 22:52:06 2026 from https://github.com/geode-sdk/bindings // __int64 __fastcall sub_180001B60(cocos2d::extension::AssetsManager *this) { char *v1; // rdx char *v3; // rcx size_t v4; // r8 _QWORD *v5; // rbx _QWORD *v6; // rax void *v7; // rcx _QWORD *v9; // [rsp+30h] [rbp+8h] _QWORD *v10; // [rsp+30h] [rbp+8h] v1 = (char *)this + 40; if ( *((_QWORD *)this + 8) > 0xFu ) v1 = *((char **)this + 5); v3 = (char *)this + 136; if ( *((_QWORD *)this + 20) > 0xFu ) v3 = *((char **)this + 17); v4 = *((_QWORD *)this + 19); if ( v4 != *((_QWORD *)this + 7) || memcmp(v3, v1, v4) ) { if ( !cocos2d::extension::AssetsManager::downLoad(this) ) goto LABEL_12; v9 = operator new(0x10u); *(_DWORD *)v9 = 1; v9[1] = this; sub_180002B70(*((_QWORD *)this + 22), v9); } if ( cocos2d::extension::AssetsManager::uncompress(this) ) { v10 = operator new(0x10u); *(_DWORD *)v10 = 0; v10[1] = this; sub_180002B70(*((_QWORD *)this + 22), v10); } else { v5 = operator new(0x10u); v5[1] = 0; *(_DWORD *)v5 = 3; v6 = operator new(0x10u); *v6 = 3; v6[1] = this; v5[1] = v6; sub_180002B70(*((_QWORD *)this + 22), v5); } LABEL_12: v7 = *((void **)this + 23); if ( v7 ) { j_j_free(v7); *((_QWORD *)this + 23) = 0; } return 0; }