// // sub_180003BC0 from 0x180003bc0 to 0x180003d21 (353 bytes) // // 41 xrefs: // > cocos2d::extension::AssetsManager::operator= @ 0x1800012be // > cocos2d::extension::AssetsManager::operator= @ 0x1800012e1 // > cocos2d::extension::AssetsManager::operator= @ 0x180001304 // > cocos2d::extension::AssetsManager::operator= @ 0x180001327 // > cocos2d::extension::AssetsManager::operator= @ 0x180001350 // > cocos2d::extension::AssetsManager::setPackageUrl @ 0x18000285e // > cocos2d::extension::AssetsManager::setStoragePath @ 0x1800028a2 // > cocos2d::extension::AssetsManager::setVersionFileUrl @ 0x18000291e // > cocos2d::extension::CCEditBox::setText @ 0x180010bc1 // > cocos2d::extension::CCEditBox::setFont @ 0x180010c61 // > cocos2d::extension::CCEditBox::setFontName @ 0x180010cd1 // > cocos2d::extension::CCEditBox::setPlaceholderFont @ 0x180010db1 // > cocos2d::extension::CCEditBox::setPlaceholderFontName @ 0x180010e21 // > cocos2d::extension::CCEditBox::setPlaceHolder @ 0x180010f01 // > cocos2d::extension::CCEditBoxImplWin::operator= @ 0x180011530 // > cocos2d::extension::CCEditBoxImplWin::operator= @ 0x180011553 // > cocos2d::extension::CCEditBoxImplWin::setText @ 0x180011ae1 // > cocos2d::extension::CCEditBoxImplWin::setText @ 0x180011b7f // > cocos2d::extension::CCEditBoxImplWin::setPlaceHolder @ 0x180011c5d // > cocos2d::extension::WebSocket::operator= @ 0x180019414 // > cocos2d::extension::WebSocket::operator= @ 0x18001943d // > cocos2d::extension::WebSocket::init @ 0x18001a049 // > cocos2d::extension::WebSocket::init @ 0x18001a071 // > cocos2d::extension::CCEditBox::operator= @ 0x18001ce69 // > cocos2d::extension::CCEditBox::operator= @ 0x18001ce92 // > cocos2d::extension::CCEditBox::operator= @ 0x18001cebb // > cocos2d::extension::CCEditBox::operator= @ 0x18001cee4 // > cocos2d::extension::CCHttpRequest::setUrl @ 0x18001d1be // > cocos2d::extension::CCHttpRequest::setTag @ 0x18001d31e // > cocos2d::extension::CCHttpRequest::operator= @ 0x18001d55a // > cocos2d::extension::CCHttpRequest::operator= @ 0x18001d58a // > cocos2d::extension::CCHttpResponse::setErrorBuffer @ 0x18001d74d // > cocos2d::extension::CCHttpResponse::operator= @ 0x18001d849 // > sub_18001DB70 @ 0x18001dcba // > sub_18001DB70 @ 0x18001dd2f // > CWin32InputBox::AnsiToUtf8 @ 0x18001e968 // > CWin32InputBox::Utf8ToAnsi @ 0x18001eb58 // > @ 0x18002d3b8 // > @ 0x18002d3c8 // > @ 0x18002d3dc // > @ 0x180049300 // // 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 // void **__fastcall sub_180003BC0(void **a1, void *Src, size_t Size) { unsigned __int64 v3; // rbp void *v7; // rdi size_t v8; // rdi __int64 v9; // rdx size_t v10; // rcx void *v11; // rax _QWORD *v12; // r14 void *v13; // rcx v3 = (unsigned __int64)a1[3]; if ( Size > v3 ) { v8 = 0x7FFFFFFFFFFFFFFFLL; if ( Size > 0x7FFFFFFFFFFFFFFFLL ) sub_180003D90(); if ( (Size | 0xF) > 0x7FFFFFFFFFFFFFFFLL || (v9 = v3 >> 1, v3 > 0x7FFFFFFFFFFFFFFFLL - (v3 >> 1)) ) { v10 = 0x8000000000000027uLL; } else { v8 = Size | 0xF; if ( (Size | 0xF) < v9 + v3 ) v8 = v9 + v3; if ( v8 + 1 < 0x1000 ) { if ( v8 == -1 ) v12 = nullptr; else v12 = operator new(v8 + 1); goto LABEL_19; } v10 = v8 + 40; if ( v8 + 40 < v8 + 1 ) Concurrency::cancel_current_task(); } v11 = operator new(v10); if ( !v11 ) goto LABEL_26; v12 = (_QWORD *)(((unsigned __int64)v11 + 39) & 0xFFFFFFFFFFFFFFE0uLL); *(v12 - 1) = v11; LABEL_19: a1[2] = (void *)Size; a1[3] = (void *)v8; memcpy(v12, Src, Size); *((_BYTE *)v12 + Size) = 0; if ( v3 <= 0xF ) { LABEL_24: *a1 = v12; return a1; } v13 = *a1; if ( v3 + 1 < 0x1000 ) { LABEL_23: j_j_free(v13); goto LABEL_24; } if ( (unsigned __int64)v13 - *((_QWORD *)v13 - 1) - 8 <= 0x1F ) { v13 = *((void **)v13 - 1); goto LABEL_23; } LABEL_26: invalid_parameter_noinfo_noreturn(); } v7 = a1; if ( v3 > 0xF ) v7 = *a1; a1[2] = (void *)Size; memmove(v7, Src, Size); *((_BYTE *)v7 + Size) = 0; return a1; }