// // create_environment from 0x180132010 to 0x180132123 (275 bytes) // // 2 xrefs: // > common_initialize_environment_nolock @ 0x180131ece // > @ 0x180202f84 // // 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 create_environment(wchar_t *Source) { void *v2; // rsi __int64 v3; // rcx wchar_t *v4; // r8 wchar_t i; // dx __int64 v6; // rax __int64 v7; // rax void *v8; // rax void *v9; // rbx wchar_t **v10; // r15 __int64 v11; // rbp size_t v12; // rbp wchar_t *v13; // rax wchar_t *v14; // rdi v2 = nullptr; v3 = 0; v4 = Source; for ( i = *Source; i; i = *v4 ) { v6 = v3 + 1; if ( i == 61 ) v6 = v3; v3 = v6; v7 = -1; do ++v7; while ( v4[v7] ); v4 += v7 + 1; } v8 = calloc_base(v3 + 1, 8u); v9 = v8; if ( v8 ) { v10 = (wchar_t **)v8; while ( *Source ) { v11 = -1; do ++v11; while ( Source[v11] ); v12 = v11 + 1; if ( *Source != 61 ) { v13 = (wchar_t *)calloc_base(v12, 2u); v14 = v13; if ( !v13 ) { unknown_libname_63(v9); free_base(nullptr); goto LABEL_20; } if ( wcscpy_s(v13, v12, Source) ) invoke_watson(nullptr, nullptr, nullptr, 0, 0); *v10++ = v14; free_base(nullptr); } Source += v12; } v2 = v9; } LABEL_20: free_base(nullptr); return v2; }