// // create_environment from 0x180131f08 to 0x18013200e (262 bytes) // // 2 xrefs: // > common_initialize_environment_nolock @ 0x180131e67 // > @ 0x180202f78 // // 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(char *Source) { void *v2; // rsi __int64 v3; // rcx char *v4; // r8 char i; // dl __int64 v6; // rax __int64 v7; // rax void *v8; // rax void *v9; // rbx char **v10; // r15 __int64 v11; // rbp size_t v12; // rbp char *v13; // rax char *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 = (char **)v8; while ( *Source ) { v11 = -1; do ++v11; while ( Source[v11] ); v12 = v11 + 1; if ( *Source != 61 ) { v13 = (char *)calloc_base(v12, 1u); v14 = v13; if ( !v13 ) { unknown_libname_62(v9); free_base(nullptr); goto LABEL_20; } if ( strcpy_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; }