// // __crt_win32_buffer::detach from 0x180134b20 to 0x180134c06 (230 bytes) // // 3 xrefs: // > _wfullpath @ 0x180134c75 // > common_getdcwd @ 0x18013bfb8 // > @ 0x1802032c0 // // 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 __fastcall __crt_win32_buffer::detach(__int64 *a1) { __int64 v1; // rdi __int64 v3; // rcx void *v4; // rax unsigned __int64 v5; // rsi __int64 v6; // r14 unsigned __int64 v7; // rbp __int64 v8; // rax v1 = a1[2]; if ( v1 ) { v3 = a1[4]; if ( v3 ) { if ( *((_BYTE *)a1 + 40) ) goto LABEL_14; v4 = j__malloc_base(2 * v3); v5 = a1[3]; v1 = (__int64)v4; v6 = a1[2]; v7 = a1[4]; if ( !v5 ) goto LABEL_14; if ( !v4 ) goto LABEL_6; if ( v6 && v7 >= v5 ) { memmove(v4, (const void *)a1[2], a1[3]); } else { memset(v4, 0, a1[4]); if ( !v6 ) { LABEL_6: *errno() = 22; LABEL_13: invalid_parameter_noinfo(); goto LABEL_14; } if ( v7 < v5 ) { *errno() = 34; goto LABEL_13; } } LABEL_14: v8 = *a1; a1[4] = 0; a1[2] = v8; a1[3] = a1[1]; return v1; } } return 0; }