// // __acrt_stdio_begin_temporary_buffering_nolock from 0x180138538 to 0x180138600 (200 bytes) // // 2 xrefs: // > _lambda_7e489fec146d5348dbc86d3cce37c1b5_::operator @ 0x18012c2f2 // > @ 0x180203668 // // 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 // char __fastcall _acrt_stdio_begin_temporary_buffering_nolock(__int64 a1) { void **v2; // rdi void *v3; // rax if ( !_acrt_should_use_temporary_buffer((FILE *)a1) ) return 0; if ( (FILE *)a1 == _acrt_iob_func(1u) ) { v2 = &qword_1801F5578; } else { if ( (FILE *)a1 != _acrt_iob_func(2u) ) return 0; v2 = &qword_1801F5580; } ++dword_1801F4BD8; if ( (*(_DWORD *)(a1 + 20) & 0x4C0) != 0 ) return 0; _InterlockedOr((volatile signed __int32 *)(a1 + 20), 0x282u); v3 = *v2; if ( *v2 || (*v2 = malloc_base(0x1000u), free_base(nullptr), (v3 = *v2) != nullptr) ) { *(_QWORD *)(a1 + 8) = v3; *(_QWORD *)a1 = *v2; *(_DWORD *)(a1 + 16) = 4096; *(_DWORD *)(a1 + 32) = 4096; } else { *(_DWORD *)(a1 + 16) = 2; *(_QWORD *)(a1 + 8) = a1 + 28; *(_QWORD *)a1 = a1 + 28; *(_DWORD *)(a1 + 32) = 2; } return 1; }