signed int sub_57F130() { HANDLE v0; // eax signed int result; // eax struct _LUID Luid; // [esp+0h] [ebp-20h] HANDLE TokenHandle; // [esp+8h] [ebp-18h] struct _TOKEN_PRIVILEGES NewState; // [esp+Ch] [ebp-14h] v0 = GetCurrentProcess(); if ( !OpenProcessToken(v0, 0x28u, &TokenHandle) ) return 0; if ( LookupPrivilegeValueA(0, "SeRestorePrivilege", &Luid) ) { NewState.PrivilegeCount = 1; NewState.Privileges[0].Luid = Luid; NewState.Privileges[0].Attributes = 2; if ( AdjustTokenPrivileges(TokenHandle, 0, &NewState, 0x10u, 0, 0) ) { result = 1; } else { CloseHandle(TokenHandle); result = 0; } } else { CloseHandle(TokenHandle); result = 0; } return result; }