Спойлер [+]NTSTATUS _stdcall DriverDispatch(PDEVICE_OBJECT Device, PIRP Irp){ _IO_STACK_LOCATION *iosp; // eax@1 int ctl_code; // eax@2 NTSTATUS status; // eax@5 NTSTATUS retstatus; // edi@9 iosp = (_IO_STACK_LOCATION *)Irp->Tail.Overlay.CurrentStackLocation; Irp->IoStatus.Status = 0; Irp->IoStatus.Information = 0; if ( iosp->MajorFunction == IRP_MJ_DEVICE_CONTROL ) { ctl_code = *(_DWORD *)&iosp->Parameters.Create.FileAttributes; if ( ctl_code == 0x80102180 ) { status = MakeBIOSBackup(); goto LABEL_8; } if ( ctl_code == 0x80102184 ) { status = FlashROM(); goto LABEL_8 } if ( ctl_code == 0x80102188 ) { status = FindSMIPORTAndBIOSSize();LABEL_8: Irp->IoStatus.Status = status; goto LABEL_9 } }LABEL_9: retstatus = Irp->IoStatus.Status; IofCompleteRequest(Irp, 0); return retstatus;