NTSTATUS __fastcall IoWriteKsrPersistentMemory(INT64 a1, INT8 *a2, UINT64 a3){
NTSTATUS v4;
UINT64 *v5;
v4 = 0;
if( KeGetCurrentIrql() )
KeBugCheckEx(0x121u, (PVOID)1, (PVOID)KeGetCurrentIrql(), 0i64, 0i64);
if( (unsigned int)(*(_DWORD *)a1 - 1) > 1 )
return -1073741585;
v5 = *(UINT64 **)(a1 + 40);
if( a3 > *(_QWORD *)(*(_QWORD *)(a1 + 48) + 8i64) )
return -1073741789;
*v5 = a3;
memmove(v5 + 1, a2, a3);
return v4;
}