// // __crt_stdio_output::force_decimal_point from 0x18012c490 to 0x18012c507 (119 bytes) // // 3 xrefs: // > unknown_libname_44 @ 0x18012dec8 // > unknown_libname_45 @ 0x18012e098 // > unknown_libname_46 @ 0x18012e278 // // 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 __crt_stdio_output::force_decimal_point( __crt_stdio_output *this, char *a2, struct __crt_locale_pointers *const a3) { __int64 v3; // r9 __int64 v4; // r8 __int64 v5; // rdx bool v6; // zf __crt_stdio_output *v7; // rdx char *v8; // rax char v9; // cl char v10; // dl v3 = *(_QWORD *)a2; v4 = *(unsigned __int8 *)this; v5 = *(_QWORD *)(*(_QWORD *)a2 + 272LL); if ( *(_BYTE *)(v4 + v5) != 101 ) { do { v4 = *((unsigned __int8 *)this + 1); this = (__crt_stdio_output *)((char *)this + 1); } while ( (*(_BYTE *)(*(_QWORD *)v3 + 2 * v4) & 4) != 0 ); } v6 = *(_BYTE *)((unsigned __int8)v4 + v5) == 120; if ( *(_BYTE *)((unsigned __int8)v4 + v5) == 120 ) LOBYTE(v4) = *((_BYTE *)this + 2); v7 = (__crt_stdio_output *)((char *)this + 2); if ( !v6 ) v7 = this; *(_BYTE *)v7 = ***(_BYTE ***)(v3 + 248); v8 = (char *)v7 + 1; do { v9 = *v8; v10 = v4; *v8++ = v4; LOBYTE(v4) = v9; } while ( v10 ); }