// // __acrt_initialize_stdio from 0x18012f854 to 0x18012f973 (287 bytes) // // 2 xrefs: // > @ 0x180144520 // > @ 0x180202db0 // // 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 _acrt_initialize_stdio() { int v0; // eax __int64 v1; // rbx __int64 v2; // rdi __int64 v4; // rbp _DWORD *v5; // rsi char *v6; // r14 v0 = dword_1801F4BC8; v1 = 0; v2 = 3; if ( dword_1801F4BC8 ) { if ( dword_1801F4BC8 < 3 ) v0 = 3; } else { v0 = 512; } dword_1801F4BC8 = v0; Block = calloc_base(v0, 8u); free_base(nullptr); if ( !Block ) { dword_1801F4BC8 = 3; Block = calloc_base(3u, 8u); free_base(nullptr); if ( !Block ) return 0xFFFFFFFFLL; } v4 = 0; v5 = &unk_1801B1758; v6 = (char *)&unk_1801B1740; do { _vcrt_InitializeCriticalSectionEx_0((LPCRITICAL_SECTION)(v6 + 48), 0xFA0u); *(_QWORD *)((char *)Block + v1) = v6; if ( *(_QWORD *)(qword_1801F5160[v4 >> 6] + 72 * (v4 & 0x3F) + 40) >= 0xFFFFFFFFFFFFFFFEuLL || *(_QWORD *)(qword_1801F5160[v4 >> 6] + 72 * (v4 & 0x3F) + 40) == 0 ) { *v5 = -2; } ++v4; v6 += 88; v1 += 8; v5 += 22; --v2; } while ( v2 ); return 0; }