// Automatically generated by 'generate_syscall.py' - do not edit
// Note that this is a subset of the syscalls, run again with no namefilter
//   for the complete list (which takes forever to compile)

#[allow(non_camel_case_types)]

pub enum Syscall {
    NtWaitForAlertByThreadId,
    NtWaitForDebugEvent,
    NtWaitForKeyedEvent,
    NtWaitForMultipleObjects,
    NtWaitForMultipleObjects32,
    NtWaitForSingleObject,
    NtWaitForWnfNotifications,
    NtWaitForWorkViaWorkerFactory,
    NtWaitHighEventPair,
    NtWaitLowEventPair,
}

pub fn lookup_syscall(major: u32, minor: u32, build: u32, syscall: u32) -> Option<Syscall> {
    match (major, minor, build, syscall) {
        (6, 0, 6000, 1) => Some(Syscall::NtWaitForSingleObject),
        (6, 0, 6000, 23) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 0, 6000, 88) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 0, 6000, 392) => Some(Syscall::NtWaitForDebugEvent),
        (6, 0, 6000, 393) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 0, 6000, 394) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 0, 6000, 395) => Some(Syscall::NtWaitHighEventPair),
        (6, 0, 6000, 396) => Some(Syscall::NtWaitLowEventPair),
        (6, 0, 6001, 1) => Some(Syscall::NtWaitForSingleObject),
        (6, 0, 6001, 23) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 0, 6001, 88) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 0, 6001, 385) => Some(Syscall::NtWaitForDebugEvent),
        (6, 0, 6001, 386) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 0, 6001, 387) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 0, 6001, 388) => Some(Syscall::NtWaitHighEventPair),
        (6, 0, 6001, 389) => Some(Syscall::NtWaitLowEventPair),
        (6, 0, 6002, 1) => Some(Syscall::NtWaitForSingleObject),
        (6, 0, 6002, 23) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 0, 6002, 88) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 0, 6002, 385) => Some(Syscall::NtWaitForDebugEvent),
        (6, 0, 6002, 386) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 0, 6002, 387) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 0, 6002, 388) => Some(Syscall::NtWaitHighEventPair),
        (6, 0, 6002, 389) => Some(Syscall::NtWaitLowEventPair),
        (6, 1, 7600, 1) => Some(Syscall::NtWaitForSingleObject),
        (6, 1, 7600, 23) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 1, 7600, 88) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 1, 7600, 395) => Some(Syscall::NtWaitForDebugEvent),
        (6, 1, 7600, 396) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 1, 7600, 397) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 1, 7600, 398) => Some(Syscall::NtWaitHighEventPair),
        (6, 1, 7600, 399) => Some(Syscall::NtWaitLowEventPair),
        (6, 1, 7601, 1) => Some(Syscall::NtWaitForSingleObject),
        (6, 1, 7601, 23) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 1, 7601, 88) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 1, 7601, 395) => Some(Syscall::NtWaitForDebugEvent),
        (6, 1, 7601, 396) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 1, 7601, 397) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 1, 7601, 398) => Some(Syscall::NtWaitHighEventPair),
        (6, 1, 7601, 399) => Some(Syscall::NtWaitLowEventPair),
        (6, 2, 9200, 2) => Some(Syscall::NtWaitForSingleObject),
        (6, 2, 9200, 24) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 2, 9200, 89) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 2, 9200, 422) => Some(Syscall::NtWaitForAlertByThreadId),
        (6, 2, 9200, 423) => Some(Syscall::NtWaitForDebugEvent),
        (6, 2, 9200, 424) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 2, 9200, 425) => Some(Syscall::NtWaitForWnfNotifications),
        (6, 2, 9200, 426) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 2, 9200, 427) => Some(Syscall::NtWaitHighEventPair),
        (6, 2, 9200, 428) => Some(Syscall::NtWaitLowEventPair),
        (6, 3, 9600, 3) => Some(Syscall::NtWaitForSingleObject),
        (6, 3, 9600, 25) => Some(Syscall::NtWaitForMultipleObjects32),
        (6, 3, 9600, 90) => Some(Syscall::NtWaitForMultipleObjects),
        (6, 3, 9600, 427) => Some(Syscall::NtWaitForAlertByThreadId),
        (6, 3, 9600, 428) => Some(Syscall::NtWaitForDebugEvent),
        (6, 3, 9600, 429) => Some(Syscall::NtWaitForKeyedEvent),
        (6, 3, 9600, 430) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (6, 3, 9600, 431) => Some(Syscall::NtWaitHighEventPair),
        (6, 3, 9600, 432) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 10240, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 10240, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 10240, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 10240, 435) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 10240, 436) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 10240, 437) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 10240, 438) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 10240, 439) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 10240, 440) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 10586, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 10586, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 10586, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 10586, 438) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 10586, 439) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 10586, 440) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 10586, 441) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 10586, 442) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 10586, 443) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 14393, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 14393, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 14393, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 14393, 444) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 14393, 445) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 14393, 446) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 14393, 447) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 14393, 448) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 14393, 449) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 15063, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 15063, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 15063, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 15063, 450) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 15063, 451) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 15063, 452) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 15063, 453) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 15063, 454) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 15063, 455) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 16299, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 16299, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 16299, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 16299, 454) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 16299, 455) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 16299, 456) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 16299, 457) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 16299, 458) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 16299, 459) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 17134, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 17134, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 17134, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 17134, 456) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 17134, 457) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 17134, 458) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 17134, 459) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 17134, 460) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 17134, 461) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 17763, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 17763, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 17763, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 17763, 457) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 17763, 458) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 17763, 459) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 17763, 460) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 17763, 461) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 17763, 462) => Some(Syscall::NtWaitLowEventPair),
        (10, 0, 18362, 4) => Some(Syscall::NtWaitForSingleObject),
        (10, 0, 18362, 26) => Some(Syscall::NtWaitForMultipleObjects32),
        (10, 0, 18362, 91) => Some(Syscall::NtWaitForMultipleObjects),
        (10, 0, 18362, 458) => Some(Syscall::NtWaitForAlertByThreadId),
        (10, 0, 18362, 459) => Some(Syscall::NtWaitForDebugEvent),
        (10, 0, 18362, 460) => Some(Syscall::NtWaitForKeyedEvent),
        (10, 0, 18362, 461) => Some(Syscall::NtWaitForWorkViaWorkerFactory),
        (10, 0, 18362, 462) => Some(Syscall::NtWaitHighEventPair),
        (10, 0, 18362, 463) => Some(Syscall::NtWaitLowEventPair),
        _ => None
    }
}

