// // sub_180003F50 from 0x180003f50 to 0x180004067 (279 bytes) // // 26 xrefs: // > cocos2d::extension::AssetsManager::AssetsManager @ 0x1800011f7 // > cocos2d::extension::AssetsManager::AssetsManager @ 0x180001205 // > cocos2d::extension::AssetsManager::AssetsManager @ 0x180001213 // > cocos2d::extension::AssetsManager::AssetsManager @ 0x180001221 // > cocos2d::extension::AssetsManager::AssetsManager @ 0x180001235 // > sub_180003160 @ 0x180003266 // > sub_180003320 @ 0x18000335c // > sub_180003320 @ 0x180003375 // > sub_180003750 @ 0x1800037c6 // > cocos2d::extension::CCControlButton::create @ 0x180005f7c // > cocos2d::extension::CCEditBoxImplWin::CCEditBoxImplWin @ 0x180011463 // > cocos2d::extension::CCEditBoxImplWin::CCEditBoxImplWin @ 0x180011471 // > cocos2d::extension::WebSocket::WebSocket @ 0x18001937d // > cocos2d::extension::WebSocket::WebSocket @ 0x180019391 // > cocos2d::extension::WebSocket::init @ 0x180019ab3 // > cocos2d::extension::CCEditBox::CCEditBox @ 0x18001cd1f // > cocos2d::extension::CCEditBox::CCEditBox @ 0x18001cd33 // > cocos2d::extension::CCEditBox::CCEditBox @ 0x18001cd47 // > cocos2d::extension::CCEditBox::CCEditBox @ 0x18001cd5b // > cocos2d::extension::CCHttpRequest::CCHttpRequest @ 0x18001d474 // > cocos2d::extension::CCHttpRequest::CCHttpRequest @ 0x18001d490 // > cocos2d::extension::CCHttpResponse::CCHttpResponse @ 0x18001d7c5 // > sub_18001DB70 @ 0x18001dc56 // > sub_18001DB70 @ 0x18001dcea // > @ 0x180049390 // > @ 0x18004939c // // 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_180003F50(__int64 a1, __int64 a2) { _QWORD *v2; // rax _OWORD *v4; // rbp unsigned __int64 v5; // rsi __int64 v6; // rdi size_t v7; // rax void *v8; // rax void *v9; // rcx v2 = nullptr; *(_OWORD *)a1 = 0; *(_QWORD *)(a1 + 16) = 0; *(_QWORD *)(a1 + 24) = 0; v4 = (_OWORD *)a2; if ( *(_QWORD *)(a2 + 24) > 0xFu ) v4 = *(_OWORD **)a2; v5 = *(_QWORD *)(a2 + 16); v6 = 0x7FFFFFFFFFFFFFFFLL; if ( v5 > 0x7FFFFFFFFFFFFFFFLL ) sub_180003D90(); *(_QWORD *)(a1 + 24) = 15; if ( v5 > 0xF ) { if ( (v5 | 0xF) <= 0x7FFFFFFFFFFFFFFFLL ) { v6 = v5 | 0xF; if ( (v5 | 0xF) < 0x16 ) v6 = 22; if ( (unsigned __int64)(v6 + 1) < 0x1000 ) { if ( v6 != -1 ) v2 = operator new(v6 + 1); goto LABEL_18; } v7 = v6 + 40; if ( v6 + 40 < (unsigned __int64)(v6 + 1) ) Concurrency::cancel_current_task(); } else { v7 = 0x8000000000000027uLL; } v8 = operator new(v7); v9 = v8; if ( !v8 ) invalid_parameter_noinfo_noreturn(); v2 = (_QWORD *)(((unsigned __int64)v8 + 39) & 0xFFFFFFFFFFFFFFE0uLL); *(v2 - 1) = v9; LABEL_18: *(_QWORD *)a1 = v2; *(_QWORD *)(a1 + 16) = v5; *(_QWORD *)(a1 + 24) = v6; memcpy(v2, v4, v5 + 1); return a1; } *(_QWORD *)(a1 + 16) = v5; *(_OWORD *)a1 = *v4; return a1; }