libmwemu 0.24.4

x86 32/64bits and system internals emulator, for securely emulating malware and other stuff.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
// https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/596a1078-e883-4972-9bbc-49e60bebca55
#![allow(dead_code)]
//pub const LIB64_BARRIER: u64 = 0x07fefff00000;
//pub const LIB32_BARRIER: u32 = 0x7f000000;

//pub const LIBS32_BARRIER: u64 = 0x80000000;
//pub const LIBS64_BARRIER: u64 = 0x7f0000000000;

pub const MODULE_NAME: &str = "version.dll"; // randomize this
pub const EXE_NAME: &str = "loader.exe"; // randomize this
pub const USER_NAME: &str = "bartolo"; // randomize this
pub const HOST_NAME: &str = "medusa"; // randomize this
pub const TEMP_PATH: &str = "C:\\Temp\\"; // randomize this
pub const CWD_PATH: &str = "C:\\cwd"; // randomize this
pub const WINDOWS_DIRECTORY: &str = "C:\\Windows"; // randomize this
pub const SYSTEM_DIRECTORY: &str = "C:\\Windows\\System32"; // randomize this
                                                            //
pub const CURRENT_PROCESS_HANDLE: u64 = 1975;

pub const CFG_DEFAULT_BASE: u64 = 0x3c0000;

pub const BLOCK_LEN: usize = 0x300;
pub const ALLOC32_MIN: u64 = 0x6000000;
pub const ALLOC32_MAX: u64 = 0x6FFFFFFF;
pub const LIBS32_MIN: u64 = 0x70000000;
pub const LIBS32_MAX: u64 = 0x7FFFFFFF;

pub const ALLOC64_MIN: u64 = 0x7fe000000000;
pub const ALLOC64_MAX: u64 = 0x7fefffffffff;
pub const LIBS64_MIN: u64 = 0x7FF000000000;
pub const LIBS64_MAX: u64 = 0x7FFFFFFFFFFF;

// macOS dylib address range (reuses same range — never coexists with Windows libs)
pub const DYLIBS_MACOS_MIN: u64 = 0x7FF000000000;
pub const DYLIBS_MACOS_MAX: u64 = 0x7FFFFFFFFFFF;

pub const TRUE: u64 = 1;
pub const FALSE: u64 = 0;
pub const STATUS_SUCCESS: u64 = 0x00000000;
pub const STATUS_NOT_IMPLEMENTED: u64 = 0xC0000002;
pub const STATUS_INVALID_PARAMETER: u64 = 0xC000000D;
pub const STATUS_NOT_SUPPORTED: u64 = 0xC00000BB;
pub const STATUS_BUFFER_OVERFLOW: u64 = 0xC0000005;
pub const STATUS_ACCESS_DENIED: u64 = 0xC0000022;
pub const STATUS_END_OF_FILE: u64 = 0xC0000011;
pub const STATUS_INVALID_HANDLE: u64 = 0xC0000008;
pub const STATUS_NO_MEMORY: u64 = 0xC0000017;
pub const STATUS_ACCESS_VIOLATION: u64 = 0xC0000005;
pub const STATUS_INVALID_ADDRESS: u64 = 0xC0000141;
pub const STATUS_APP_INIT_FAILURE: u64 = 0xC0000145;
pub const STATUS_INVALID_INFO_CLASS: u64 = 0xC0000003;
pub const STATUS_INFO_LENGTH_MISMATCH: u64 = 0xC0000004;
pub const STATUS_OBJECT_NAME_NOT_FOUND: u64 = 0xC0000034;
pub const STATUS_OBJECT_NAME_INVALID: u64 = 0xC0000033;
pub const STATUS_OBJECT_PATH_NOT_FOUND: u64 = 0xC000003A;
pub const STATUS_NOT_SAME_DEVICE: u64 = 0xC0000055;
pub const STATUS_FILE_INVALID: u64 = 0xC0000098;
pub const STATUS_BUFFER_TOO_SMALL: u64 = 0xC0000023;
pub const STATUS_PRIVILEGE_NOT_HELD: u64 = 0xC0000061;

pub const ERROR_SUCCESS: u64 = 0;
pub const ERROR_BUFFER_OVERFLOW: u64 = 0x6f;
pub const ERROR_INVALID_PARAMETER: u64 = 0x57;
pub const ERROR_INSUFFICIENT_BUFFER: u64 = 0x7a;

pub const HRESULT_E_INVALID_ARG: u64 = 0x80070057;
/*
 * HRESULT STRUCTURE:
 * 0x8 -> severity: error
 * 0x007 -> facility: FACILITY_WIN32
 * 0x0057 -> ERROR_INVALID_PARAMETER
*/

pub const CP_UTF7: u64 = 65000;
pub const CP_UTF8: u64 = 65001;

pub const NUM_BYTES_TRACE: usize = 16;
pub const VERSION: u64 = 0x1db10106;

pub const WAIT_TIMEOUT: u64 = 0x00000102;
pub const WAIT_FAILED: u64 = 0xFFFFFFFF;

//vectored exception handler
pub const CALL_FIRST: u32 = 1;
pub const CALL_LAST: u32 = 0;

pub const GENERIC_READ: u32 = 0x80000000;
pub const GENERIC_WRITE: u32 = 0x40000000;

pub const INVALID_HANDLE_VALUE_64: u64 = 0xFFFFFFFFFFFFFFFF;
pub const INVALID_HANDLE_VALUE_32: u64 = 0xFFFFFFFF;

pub const RETURN_THREAD: u32 = 0x11223344;
pub const LIBS_BARRIER: u64 = 0x60000000;
pub const LIBS_BARRIER64: u64 = 0x60000000;
// ntdll: 0x76dc7070

pub const INTERNET_OPTION_ALTER_IDENTITY: u32 = 80;
pub const INTERNET_OPTION_ASYNC: u32 = 30;
pub const INTERNET_OPTION_ASYNC_ID: u32 = 15;
pub const INTERNET_OPTION_ASYNC_PRIORITY: u32 = 16;
pub const INTERNET_OPTION_BYPASS_EDITED_ENTRY: u32 = 64;
pub const INTERNET_OPTION_CACHE_STREAM_HANDLE: u32 = 27;
pub const INTERNET_OPTION_CACHE_TIMESTAMPS: u32 = 69;
pub const INTERNET_OPTION_CALLBACK: u32 = 1;
pub const INTERNET_OPTION_CALLBACK_FILTER: u32 = 54;
pub const INTERNET_OPTION_CLIENT_CERT_CONTEXT: u32 = 84;
pub const INTERNET_OPTION_CODEPAGE: u32 = 68;
pub const INTERNET_OPTION_CODEPAGE_PATH: u32 = 100;
pub const INTERNET_OPTION_CODEPAGE_EXTRA: u32 = 101;
pub const INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH: u32 = 147;
pub const INTERNET_OPTION_CONNECT_BACKOFF: u32 = 4;
pub const INTERNET_OPTION_CONNECT_RETRIES: u32 = 3;
pub const INTERNET_OPTION_CONNECT_TIME: u32 = 55;
pub const INTERNET_OPTION_CONNECT_TIMEOUT: u32 = 2;
pub const INTERNET_OPTION_CONNECTED_STATE: u32 = 50;
pub const INTERNET_OPTION_CONTEXT_VALUE: u32 = 45;
pub const INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT: u32 = 6;
pub const INTERNET_OPTION_CONTROL_SEND_TIMEOUT: u32 = 5;
pub const INTERNET_OPTION_DATA_RECEIVE_TIMEOUT: u32 = 8;
pub const INTERNET_OPTION_DATA_SEND_TIMEOUT: u32 = 7;

// https://docs.microsoft.com/en-us/windows/win32/wininet/api-flags
pub const INTERNET_FLAG_SECURE: u64 = 0x00800000;

// exceptions
pub const EXCEPTION_CONTINUE_EXECUTION32: u32 = 0xffffffff;
pub const EXCEPTION_CONTINUE_EXECUTION64: u64 = 0xffffffff_ffffffff;
pub const EXCEPTION_CONTINUE_SEARCH: u32 = 0x00000000;
pub const EXCEPTION_EXECUTE_HANDLER: u32 = 0x00000001;

pub const ERROR_NO_MORE_FILES: u64 = 18;
pub const CREATE_SUSPENDED: u64 = 0x00000004;
pub const STATUS_BREAKPOINT: u32 = 0x80000003;
pub const STATUS_INTEGER_DIVIDE_BY_ZERO: u32 = 0xc0000094;
pub const STATUS_INTEGER_OVERFLOW: u32 = 0xc0000095;
pub const STATUS_POPF_CANNOT_READ_STACK: u32 = 0xE0000001;
pub const STATUS_WRITING_WORD: u32 = 0xE0000002;
pub const STATUS_QWORD_DEREFERENCING: u32 = 0xE0000004;
pub const STATUS_DWORD_DEREFERENCING: u32 = 0xE0000005;
pub const STATUS_WORD_DEREFERENCING: u32 = 0xE0000006;
pub const STATUS_BYTE_DEREFERENCING: u32 = 0xE0000007;
pub const STATUS_BAD_ADDRESS_DEREFERENCING: u32 = 0xE0000008;
pub const STATUS_SETTING_XMM_OPERAND: u32 = 0xE0000009;
pub const STATUS_READING_XMM_OPERAND: u32 = 0xE000000A;
pub const STATUS_WRITING_XMM_OPERAND: u32 = 0xE000000B;
pub const STATUS_READING_RIP: u32 = 0xE000000C;

pub const PAGE_NOACCESS: u32 = 0x01;
pub const PAGE_EXECUTE: u32 = 0x00;
pub const PAGE_READONLY: u32 = 0x02;
pub const PAGE_READWRITE: u32 = 0x04;
pub const PAGE_GUARD: u32 = 0x100;
pub const PAGE_NOCACHE: u32 = 0x200;
pub const PAGE_WRITECOMBINE: u32 = 0x400;
pub const MEM_COMMIT: u32 = 0x1000;
pub const MEM_FREE: u32 = 0x10000;
pub const MEM_RESERVE: u32 = 0x2000;
pub const MEM_IMAGE: u32 = 0x1000000;
pub const MEM_MAPPED: u32 = 0x40000;
pub const MEM_PRIVATE: u32 = 0x20000;
pub const MEM_DECOMMIT: u32 = 0x4000;
pub const MEM_RELEASE: u32 = 0x8000;

// CryptAquireContext Flags
pub const CRYPT_VERIFYCONTEXT: u32 = 0xF0000000;
pub const CRYPT_NEWKEYSET: u32 = 0x00000008;
pub const CRYPT_DELETEKEYSET: u32 = 0x00000010;
pub const CRYPT_MACHINE_KEYSET: u32 = 0x00000020;
pub const CRYPT_SILENT: u32 = 0x00000040;
pub const CRYPT_DEFAULT_CONTAINER_OPTIONAL: u32 = 0x00000080;

// TLS Callback Reason:
pub const DLL_PROCESS_ATTACH: u32 = 1;
pub const DLL_PROCESS_DETACH: u32 = 0;
pub const DLL_THREAD_ATTACH: u32 = 2;
pub const DLL_THREAD_DETACH: u32 = 3;

// processorFeaturePresent
pub const PF_ARM_64BIT_LOADSTORE_ATOMIC: u32 = 25;
pub const PF_ARM_DIVIDE_INSTRUCTION_AVAILABLE: u32 = 24;
pub const PF_ARM_EXTERNAL_CACHE_AVAILABLE: u32 = 26;
pub const PF_ARM_FMAC_INSTRUCTIONS_AVAILABLE: u32 = 27;
pub const PF_ARM_VFP_32_REGISTERS_AVAILABLE: u32 = 18;
pub const PF_3DNOW_INSTRUCTIONS_AVAILABLE: u32 = 7;
pub const PF_CHANNELS_ENABLED: u32 = 16;
pub const PF_COMPARE_EXCHANGE_DOUBLE: u32 = 2;
pub const PF_COMPARE_EXCHANGE128: u32 = 14;
pub const PF_COMPARE64_EXCHANGE128: u32 = 15;
pub const PF_FASTFAIL_AVAILABLE: u32 = 23;
pub const PF_FLOATING_POINT_EMULATED: u32 = 1;
pub const PF_FLOATING_POINT_PRECISION_ERRATA: u32 = 0;
pub const PF_MMX_INSTRUCTIONS_AVAILABLE: u32 = 3;
pub const PF_NX_ENABLED: u32 = 12;
pub const PF_PAE_ENABLED: u32 = 9;
pub const PF_RDTSC_INSTRUCTION_AVAILABLE: u32 = 8;
pub const PF_RDWRFSGSBASE_AVAILABLE: u32 = 22;
pub const PF_SECOND_LEVEL_ADDRESS_TRANSLATION: u32 = 20;
pub const PF_SSE3_INSTRUCTIONS_AVAILABLE: u32 = 13;
pub const PF_SSSE3_INSTRUCTIONS_AVAILABLE: u32 = 36;
pub const PF_SSE4_1_INSTRUCTIONS_AVAILABLE: u32 = 37;
pub const PF_SSE4_2_INSTRUCTIONS_AVAILABLE: u32 = 38;
pub const PF_AVX_INSTRUCTIONS_AVAILABLE: u32 = 39;
pub const PF_AVX2_INSTRUCTIONS_AVAILABLE: u32 = 40;
pub const PF_AVX512F_INSTRUCTIONS_AVAILABLE: u32 = 41;
pub const PF_VIRT_FIRMWARE_ENABLED: u32 = 21;
pub const PF_XMMI_INSTRUCTIONS_AVAILABLE: u32 = 6;
pub const PF_XMMI64_INSTRUCTIONS_AVAILABLE: u32 = 10;
pub const PF_XSAVE_ENABLED: u32 = 17;
pub const PF_ARM_V8_INSTRUCTIONS_AVAILABLE: u32 = 29;
pub const PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE: u32 = 30;
pub const PF_ARM_V8_CRC32_INSTRUCTIONS_AVAILABLE: u32 = 31;
pub const PF_ARM_V81_ATOMIC_INSTRUCTIONS_AVAILABLE: u32 = 34;

pub const EN_US_LOCALE: u32 = 0x0409;

// Crypto Algorithms
pub const CALG_3DES: u32 = 0x00006603;
pub const CALG_3DES_112: u32 = 0x00006609;
pub const CALG_AES: u32 = 0x00006611;
pub const CALG_AES_128: u32 = 0x0000660e;
pub const CALG_AES_192: u32 = 0x0000660f;
pub const CALG_AES_256: u32 = 0x00006610;
pub const CALG_AGREEDKEY_ANY: u32 = 0x0000aa03;
pub const CALG_CYLINK_MEK: u32 = 0x0000660c;
pub const CALG_DES: u32 = 0x00006601;
pub const CALG_DESX: u32 = 0x00006604;
pub const CALG_DH_EPHEM: u32 = 0x0000aa02;
pub const CALG_DH_SF: u32 = 0x0000aa01;
pub const CALG_DSS_SIGN: u32 = 0x00002200;
pub const CALG_ECDH: u32 = 0x0000aa05;
pub const CALG_ECDH_EPHEM: u32 = 0x0000ae06;
pub const CALG_ECDSA: u32 = 0x00002203;
pub const CALG_ECMQV: u32 = 0x0000a001;
pub const CALG_HASH_REPLACE_OWF: u32 = 0x0000800b;
pub const CALG_HUGHES_MD5: u32 = 0x0000a003;
pub const CALG_HMAC: u32 = 0x00008009;
pub const CALG_KEA_KEYX: u32 = 0x0000aa04;
pub const CALG_MAC: u32 = 0x00008005;
pub const CALG_MD2: u32 = 0x00008001;
pub const CALG_MD4: u32 = 0x00008002;
pub const CALG_MD5: u32 = 0x00008003;
pub const CALG_NO_SIGN: u32 = 0x00002000;
pub const CALG_OID_INFO_CNG_ONLY: u32 = 0xffffffff;
pub const CALG_OID_INFO_PARAMETERS: u32 = 0xfffffffe;
pub const CALG_PCT1_MASTER: u32 = 0x00004c04;
pub const CALG_RC2: u32 = 0x00006602;
pub const CALG_RC4: u32 = 0x00006801;
pub const CALG_RC5: u32 = 0x0000660d;
pub const CALG_RSA_KEYX: u32 = 0x0000a400;
pub const CALG_RSA_SIGN: u32 = 0x00002400;
pub const CALG_SCHANNEL_ENC_KEY: u32 = 0x00004c07;
pub const CALG_SCHANNEL_MAC_KEY: u32 = 0x00004c03;
pub const CALG_SCHANNEL_MASTER_HASH: u32 = 0x00004c02;
pub const CALG_SEAL: u32 = 0x00006802;
pub const CALG_SHA: u32 = 0x00008004;
pub const CALG_SHA1: u32 = 0x00008004;
pub const CALG_SHA_256: u32 = 0x0000800c;
pub const CALG_SHA_384: u32 = 0x0000800d;
pub const CALG_SHA_512: u32 = 0x0000800e;
pub const CALG_SKIPJACK: u32 = 0x0000660a;
pub const CALG_SSL2_MASTER: u32 = 0x00004c05;
pub const CALG_SSL3_MASTER: u32 = 0x00004c01;
pub const CALG_SSL3_SHAMD5: u32 = 0x00008008;
pub const CALG_TEK: u32 = 0x0000660b;
pub const CALG_TLS1_MASTER: u32 = 0x00004c06;
pub const CALG_TLS1PRF: u32 = 0x0000800a;

pub fn get_cryptoalgorithm_name(value: u32) -> &'static str {
    match value {
        0x00006603 => "CALG_3DES",
        0x00006609 => "CALG_3DES_112",
        0x00006611 => "CALG_AES",
        0x0000660e => "CALG_AES_128",
        0x0000660f => "CALG_AES_192",
        0x00006610 => "CALG_AES_256",
        0x0000aa03 => "CALG_AGREEDKEY_ANY",
        0x0000660c => "CALG_CYLINK_MEK",
        0x00006601 => "CALG_DES",
        0x00006604 => "CALG_DESX",
        0x0000aa02 => "CALG_DH_EPHEM",
        0x0000aa01 => "CALG_DH_SF",
        0x00002200 => "CALG_DSS_SIGN",
        0x0000aa05 => "CALG_ECDH",
        0x0000ae06 => "CALG_ECDH_EPHEM",
        0x00002203 => "CALG_ECDSA",
        0x0000a001 => "CALG_ECMQV",
        0x0000800b => "CALG_HASH_REPLACE_OWF",
        0x0000a003 => "CALG_HUGHES_MD5",
        0x00008009 => "CALG_HMAC",
        0x0000aa04 => "CALG_KEA_KEYX",
        0x00008005 => "CALG_MAC",
        0x00008001 => "CALG_MD2",
        0x00008002 => "CALG_MD4",
        0x00008003 => "CALG_MD5",
        0x00002000 => "CALG_NO_SIGN",
        0xffffffff => "CALG_OID_INFO_CNG_ONLY",
        0xfffffffe => "CALG_OID_INFO_PARAMETERS",
        0x00004c04 => "CALG_PCT1_MASTER",
        0x00006602 => "CALG_RC2",
        0x00006801 => "CALG_RC4",
        0x0000660d => "CALG_RC5",
        0x0000a400 => "CALG_RSA_KEYX",
        0x00002400 => "CALG_RSA_SIGN",
        0x00004c07 => "CALG_SCHANNEL_ENC_KEY",
        0x00004c03 => "CALG_SCHANNEL_MAC_KEY",
        0x00004c02 => "CALG_SCHANNEL_MASTER_HASH",
        0x00006802 => "CALG_SEAL",
        0x00008004 => "CALG_SHA",
        0x0000800c => "CALG_SHA_256",
        0x0000800d => "CALG_SHA_384",
        0x0000800e => "CALG_SHA_512",
        0x0000660a => "CALG_SKIPJACK",
        0x00004c05 => "CALG_SSL2_MASTER",
        0x00004c01 => "CALG_SSL3_MASTER",
        0x00008008 => "CALG_SSL3_SHAMD5",
        0x0000660b => "CALG_TEK",
        0x00004c06 => "CALG_TLS1_MASTER",
        0x0000800a => "CALG_TLS1PRF",
        _ => "Unknown Algorithm",
    }
}

pub fn get_crypto_key_len(value: u32) -> usize {
    match value {
        0x00006603 => 24, // CALG_3DES
        0x00006609 => 14, // CALG_3DES_112
        0x00006611 => 0,  // CALG_AES, variable: 128, 192, or 256 bits (set dynamically)
        0x0000660e => 16, // CALG_AES_128
        0x0000660f => 24, // CALG_AES_192
        0x00006610 => 32, // CALG_AES_256
        0x0000aa03 => 0,  // CALG_AGREEDKEY_ANY, variable
        0x0000660c => 0,  // CALG_CYLINK_MEK, variable
        0x00006601 => 8,  // CALG_DES
        0x00006604 => 8,  // CALG_DESX
        0x0000aa02 => 0,  // CALG_DH_EPHEM, variable
        0x0000aa01 => 0,  // CALG_DH_SF, variable
        0x00002200 => 0,  // CALG_DSS_SIGN, variable
        0x0000aa05 => 0,  // CALG_ECDH, variable
        0x0000ae06 => 0,  // CALG_ECDH_EPHEM, variable
        0x00002203 => 0,  // CALG_ECDSA, variable
        0x0000a001 => 0,  // CALG_ECMQV, variable
        0x0000800b => 0,  // CALG_HASH_REPLACE_OWF, variable
        0x0000a003 => 0,  // CALG_HUGHES_MD5, variable
        0x00008009 => 0,  // CALG_HMAC, variable
        0x0000aa04 => 0,  // CALG_KEA_KEYX, variable
        0x00008005 => 0,  // CALG_MAC, variable
        0x00008001 => 0,  // CALG_MD2, variable
        0x00008002 => 0,  // CALG_MD4, variable
        0x00008003 => 0,  // CALG_MD5, variable
        0x00002000 => 0,  // CALG_NO_SIGN, variable
        0xffffffff => 0,  // CALG_OID_INFO_CNG_ONLY, variable
        0xfffffffe => 0,  // CALG_OID_INFO_PARAMETERS, variable
        0x00004c04 => 0,  // CALG_PCT1_MASTER, variable
        0x00006602 => 8,  // CALG_RC2
        0x00006801 => 0,  // CALG_RC4, variable length
        0x0000660d => 0,  // CALG_RC5, variable
        0x0000a400 => 0,  // CALG_RSA_KEYX, variable
        0x00002400 => 0,  // CALG_RSA_SIGN, variable
        0x00004c07 => 0,  // CALG_SCHANNEL_ENC_KEY, variable
        0x00004c03 => 0,  // CALG_SCHANNEL_MAC_KEY, variable
        0x00004c02 => 0,  // CALG_SCHANNEL_MASTER_HASH, variable
        0x00006802 => 0,  // CALG_SEAL, variable
        0x00008004 => 0,  // CALG_SHA, variable
        0x0000800c => 0,  // CALG_SHA_256, variable
        0x0000800d => 0,  // CALG_SHA_384, variable
        0x0000800e => 0,  // CALG_SHA_512, variable
        0x0000660a => 0,  // CALG_SKIPJACK, variable
        0x00004c05 => 0,  // CALG_SSL2_MASTER, variable
        0x00004c01 => 0,  // CALG_SSL3_MASTER, variable
        0x00008008 => 0,  // CALG_SSL3_SHAMD5, variable
        0x0000660b => 0,  // CALG_TEK, variable
        0x00004c06 => 0,  // CALG_TLS1_MASTER, variable
        0x0000800a => 0,  // CALG_TLS1PRF, variable
        _ => 0,           // Unknown Algorithm or variable length
    }
}

//// WINDOWS KERNEL //// 



/// `_MEMORY_INFORMATION_CLASS` for `NtQueryVirtualMemory` (see Windows SDK).
pub const MEMORY_INFORMATION_CLASS_MEMORY_BASIC_INFORMATION: u64 = 0;
pub const MEMORY_INFORMATION_CLASS_MEMORY_PRIVILEGED_BASIC_INFORMATION: u64 = 8;
pub const MEMORY_INFORMATION_CLASS_MEMORY_IMAGE_INFORMATION: u64 = 6;

/// `PROCESSINFOCLASS` for `NtQueryInformationProcess` (`ProcessBasicInformation` = 0).
pub const PROCESS_INFORMATION_CLASS_PROCESS_BASIC_INFORMATION: u64 = 0;
/// `ProcessCookie` (see Windows SDK `PROCESSINFOCLASS`).
pub const PROCESS_INFORMATION_CLASS_PROCESS_COOKIE: u64 = 0x24;
/// `ProcessDebugPort` — query returns 0 when no debugger (see Windows SDK).
pub const PROCESS_INFORMATION_CLASS_PROCESS_DEBUG_PORT: u64 = 7;

/// `THREADINFOCLASS` (`ThreadBasicInformation` = 0).
pub const THREAD_INFORMATION_CLASS_THREAD_BASIC_INFORMATION: u64 = 0;
pub const THREAD_INFORMATION_CLASS_THREAD_QUERY_SET_WIN32_START_ADDRESS: u64 = 9;


// Windows NT syscalls x64 — numbers from j00ru/windows-syscalls nt.csv
// (Windows 11 and Server 11 25H2): https://github.com/j00ru/windows-syscalls/blob/master/x64/csv/nt.csv

pub const WIN64_NTACCEPTCONNECTPORT: u64 = 0x2;
pub const WIN64_NTACCESSCHECK: u64 = 0x0;
pub const WIN64_NTACCESSCHECKANDAUDITALARM: u64 = 0x29;
pub const WIN64_NTACCESSCHECKBYTYPE: u64 = 0x63;
pub const WIN64_NTACCESSCHECKBYTYPEANDAUDITALARM: u64 = 0x59;
pub const WIN64_NTACCESSCHECKBYTYPERESULTLIST: u64 = 0x64;
pub const WIN64_NTACCESSCHECKBYTYPERESULTLISTANDAUDITALARM: u64 = 0x65;
pub const WIN64_NTACCESSCHECKBYTYPERESULTLISTANDAUDITALARMBYHANDLE: u64 = 0x66;
pub const WIN64_NTACQUIRECROSSVMMUTANT: u64 = 0x67;
pub const WIN64_NTACQUIREPROCESSACTIVITYREFERENCE: u64 = 0x68;
pub const WIN64_NTADDATOM: u64 = 0x47;
pub const WIN64_NTADDATOMEX: u64 = 0x69;
pub const WIN64_NTADDBOOTENTRY: u64 = 0x6a;
pub const WIN64_NTADDDRIVERENTRY: u64 = 0x6b;
pub const WIN64_NTADJUSTGROUPSTOKEN: u64 = 0x6c;
pub const WIN64_NTADJUSTPRIVILEGESTOKEN: u64 = 0x41;
pub const WIN64_NTADJUSTTOKENCLAIMSANDDEVICEGROUPS: u64 = 0x6d;
pub const WIN64_NTALERTRESUMETHREAD: u64 = 0x6e;
pub const WIN64_NTALERTTHREAD: u64 = 0x6f;
pub const WIN64_NTALERTTHREADBYTHREADID: u64 = 0x70;
pub const WIN64_NTALLOCATELOCALLYUNIQUEID: u64 = 0x71;
pub const WIN64_NTALLOCATERESERVEOBJECT: u64 = 0x72;
pub const WIN64_NTALLOCATEUSERPHYSICALPAGES: u64 = 0x73;
pub const WIN64_NTALLOCATEUSERPHYSICALPAGESEX: u64 = 0x74;
pub const WIN64_NTALLOCATEUUIDS: u64 = 0x75;
pub const WIN64_NTALLOCATEVIRTUALMEMORY: u64 = 0x18;
pub const WIN64_NTALLOCATEVIRTUALMEMORYEX: u64 = 0x76;
pub const WIN64_NTALPCACCEPTCONNECTPORT: u64 = 0x77;
pub const WIN64_NTALPCCANCELMESSAGE: u64 = 0x78;
pub const WIN64_NTALPCCONNECTPORT: u64 = 0x79;
pub const WIN64_NTALPCCONNECTPORTEX: u64 = 0x7a;
pub const WIN64_NTALPCCREATEPORT: u64 = 0x7b;
pub const WIN64_NTALPCCREATEPORTSECTION: u64 = 0x7c;
pub const WIN64_NTALPCCREATERESOURCERESERVE: u64 = 0x7d;
pub const WIN64_NTALPCCREATESECTIONVIEW: u64 = 0x7e;
pub const WIN64_NTALPCCREATESECURITYCONTEXT: u64 = 0x7f;
pub const WIN64_NTALPCDELETEPORTSECTION: u64 = 0x80;
pub const WIN64_NTALPCDELETERESOURCERESERVE: u64 = 0x81;
pub const WIN64_NTALPCDELETESECTIONVIEW: u64 = 0x82;
pub const WIN64_NTALPCDELETESECURITYCONTEXT: u64 = 0x83;
pub const WIN64_NTALPCDISCONNECTPORT: u64 = 0x84;
pub const WIN64_NTALPCIMPERSONATECLIENTCONTAINEROFPORT: u64 = 0x85;
pub const WIN64_NTALPCIMPERSONATECLIENTOFPORT: u64 = 0x86;
pub const WIN64_NTALPCOPENSENDERPROCESS: u64 = 0x87;
pub const WIN64_NTALPCOPENSENDERTHREAD: u64 = 0x88;
pub const WIN64_NTALPCQUERYINFORMATION: u64 = 0x89;
pub const WIN64_NTALPCQUERYINFORMATIONMESSAGE: u64 = 0x8a;
pub const WIN64_NTALPCREVOKESECURITYCONTEXT: u64 = 0x8b;
pub const WIN64_NTALPCSENDWAITRECEIVEPORT: u64 = 0x8c;
pub const WIN64_NTALPCSETINFORMATION: u64 = 0x8d;
pub const WIN64_NTAPPHELPCACHECONTROL: u64 = 0x4c;
pub const WIN64_NTAREMAPPEDFILESTHESAME: u64 = 0x90;
pub const WIN64_NTASSIGNPROCESSTOJOBOBJECT: u64 = 0x91;
pub const WIN64_NTASSOCIATEWAITCOMPLETIONPACKET: u64 = 0x92;
pub const WIN64_NTCALLENCLAVE: u64 = 0x93;
pub const WIN64_NTCALLBACKRETURN: u64 = 0x5;
pub const WIN64_NTCANCELIOFILE: u64 = 0x5d;
pub const WIN64_NTCANCELIOFILEEX: u64 = 0x94;
pub const WIN64_NTCANCELSYNCHRONOUSIOFILE: u64 = 0x95;
pub const WIN64_NTCANCELTIMER: u64 = 0x61;
pub const WIN64_NTCANCELTIMER2: u64 = 0x96;
pub const WIN64_NTCANCELWAITCOMPLETIONPACKET: u64 = 0x97;
pub const WIN64_NTCHANGEPROCESSSTATE: u64 = 0x98;
pub const WIN64_NTCHANGETHREADSTATE: u64 = 0x99;
pub const WIN64_NTCLEAREVENT: u64 = 0x3e;
pub const WIN64_NTCLOSE: u64 = 0xf;
pub const WIN64_NTCLOSEOBJECTAUDITALARM: u64 = 0x3b;
pub const WIN64_NTCOMMITCOMPLETE: u64 = 0x9a;
pub const WIN64_NTCOMMITENLISTMENT: u64 = 0x9b;
pub const WIN64_NTCOMMITREGISTRYTRANSACTION: u64 = 0x9c;
pub const WIN64_NTCOMMITTRANSACTION: u64 = 0x9d;
pub const WIN64_NTCOMPACTKEYS: u64 = 0x9e;
pub const WIN64_NTCOMPAREOBJECTS: u64 = 0x9f;
pub const WIN64_NTCOMPARESIGNINGLEVELS: u64 = 0xa0;
pub const WIN64_NTCOMPARETOKENS: u64 = 0xa1;
pub const WIN64_NTCOMPLETECONNECTPORT: u64 = 0xa2;
pub const WIN64_NTCOMPRESSKEY: u64 = 0xa3;
pub const WIN64_NTCONNECTPORT: u64 = 0xa4;
pub const WIN64_NTCONTINUE: u64 = 0x43;
pub const WIN64_NTCONTINUEEX: u64 = 0xa5;
pub const WIN64_NTCONVERTBETWEENAUXILIARYCOUNTERANDPERFORMANCECOUNTER: u64 = 0xa6;
pub const WIN64_NTCOPYFILECHUNK: u64 = 0xa7;
pub const WIN64_NTCREATECPUPARTITION: u64 = 0xa8;
pub const WIN64_NTCREATECROSSVMEVENT: u64 = 0xa9;
pub const WIN64_NTCREATECROSSVMMUTANT: u64 = 0xaa;
pub const WIN64_NTCREATEDEBUGOBJECT: u64 = 0xab;
pub const WIN64_NTCREATEDIRECTORYOBJECT: u64 = 0xac;
pub const WIN64_NTCREATEDIRECTORYOBJECTEX: u64 = 0xad;
pub const WIN64_NTCREATEENCLAVE: u64 = 0xae;
pub const WIN64_NTCREATEENLISTMENT: u64 = 0xaf;
pub const WIN64_NTCREATEEVENT: u64 = 0x48;
pub const WIN64_NTCREATEEVENTPAIR: u64 = 0xb0;
pub const WIN64_NTCREATEFILE: u64 = 0x55;
pub const WIN64_NTCREATEIRTIMER: u64 = 0xb1;
pub const WIN64_NTCREATEIOCOMPLETION: u64 = 0xb2;
pub const WIN64_NTCREATEIORING: u64 = 0xb3;
pub const WIN64_NTCREATEJOBOBJECT: u64 = 0xb4;
pub const WIN64_NTCREATEJOBSET: u64 = 0xb5;
pub const WIN64_NTCREATEKEY: u64 = 0x1d;
pub const WIN64_NTCREATEKEYTRANSACTED: u64 = 0xb6;
pub const WIN64_NTCREATEKEYEDEVENT: u64 = 0xb7;
pub const WIN64_NTCREATELOWBOXTOKEN: u64 = 0xb8;
pub const WIN64_NTCREATEMAILSLOTFILE: u64 = 0xb9;
pub const WIN64_NTCREATEMUTANT: u64 = 0xba;
pub const WIN64_NTCREATENAMEDPIPEFILE: u64 = 0xbb;
pub const WIN64_NTCREATEPAGINGFILE: u64 = 0xbc;
pub const WIN64_NTCREATEPARTITION: u64 = 0xbd;
pub const WIN64_NTCREATEPORT: u64 = 0xbe;
pub const WIN64_NTCREATEPRIVATENAMESPACE: u64 = 0xbf;
pub const WIN64_NTCREATEPROCESS: u64 = 0xc0;
pub const WIN64_NTCREATEPROCESSEX: u64 = 0x4d;
pub const WIN64_NTCREATEPROCESSSTATECHANGE: u64 = 0xc1;
pub const WIN64_NTCREATEPROFILE: u64 = 0xc2;
pub const WIN64_NTCREATEPROFILEEX: u64 = 0xc3;
pub const WIN64_NTCREATEREGISTRYTRANSACTION: u64 = 0xc4;
pub const WIN64_NTCREATERESOURCEMANAGER: u64 = 0xc5;
pub const WIN64_NTCREATESECTION: u64 = 0x4a;
pub const WIN64_NTCREATESECTIONEX: u64 = 0xc6;
pub const WIN64_NTCREATESEMAPHORE: u64 = 0xc7;
pub const WIN64_NTCREATESYMBOLICLINKOBJECT: u64 = 0xc8;
pub const WIN64_NTCREATETHREAD: u64 = 0x4e;
pub const WIN64_NTCREATETHREADEX: u64 = 0xc9;
pub const WIN64_NTCREATETHREADSTATECHANGE: u64 = 0xca;
pub const WIN64_NTCREATETIMER: u64 = 0xcb;
pub const WIN64_NTCREATETIMER2: u64 = 0xcc;
pub const WIN64_NTCREATETOKEN: u64 = 0xcd;
pub const WIN64_NTCREATETOKENEX: u64 = 0xce;
pub const WIN64_NTCREATETRANSACTION: u64 = 0xcf;
pub const WIN64_NTCREATETRANSACTIONMANAGER: u64 = 0xd0;
pub const WIN64_NTCREATEUSERPROCESS: u64 = 0xd1;
pub const WIN64_NTCREATEWAITCOMPLETIONPACKET: u64 = 0xd2;
pub const WIN64_NTCREATEWAITABLEPORT: u64 = 0xd3;
pub const WIN64_NTCREATEWNFSTATENAME: u64 = 0xd4;
pub const WIN64_NTCREATEWORKERFACTORY: u64 = 0xd5;
pub const WIN64_NTDEBUGACTIVEPROCESS: u64 = 0xd6;
pub const WIN64_NTDEBUGCONTINUE: u64 = 0xd7;
pub const WIN64_NTDELAYEXECUTION: u64 = 0x34;
pub const WIN64_NTDELETEATOM: u64 = 0xd8;
pub const WIN64_NTDELETEBOOTENTRY: u64 = 0xd9;
pub const WIN64_NTDELETEDRIVERENTRY: u64 = 0xda;
pub const WIN64_NTDELETEFILE: u64 = 0xdb;
pub const WIN64_NTDELETEKEY: u64 = 0xdc;
pub const WIN64_NTDELETEOBJECTAUDITALARM: u64 = 0xdd;
pub const WIN64_NTDELETEPRIVATENAMESPACE: u64 = 0xde;
pub const WIN64_NTDELETEVALUEKEY: u64 = 0xdf;
pub const WIN64_NTDELETEWNFSTATEDATA: u64 = 0xe0;
pub const WIN64_NTDELETEWNFSTATENAME: u64 = 0xe1;
pub const WIN64_NTDEVICEIOCONTROLFILE: u64 = 0x7;
pub const WIN64_NTDIRECTGRAPHICSCALL: u64 = 0xe2;
pub const WIN64_NTDISABLELASTKNOWNGOOD: u64 = 0xe3;
pub const WIN64_NTDISPLAYSTRING: u64 = 0xe4;
pub const WIN64_NTDRAWTEXT: u64 = 0xe5;
pub const WIN64_NTDUPLICATEOBJECT: u64 = 0x3c;
pub const WIN64_NTDUPLICATETOKEN: u64 = 0x42;
pub const WIN64_NTENABLELASTKNOWNGOOD: u64 = 0xe6;
pub const WIN64_NTENUMERATEBOOTENTRIES: u64 = 0xe7;
pub const WIN64_NTENUMERATEDRIVERENTRIES: u64 = 0xe8;
pub const WIN64_NTENUMERATEKEY: u64 = 0x32;
pub const WIN64_NTENUMERATESYSTEMENVIRONMENTVALUESEX: u64 = 0xe9;
pub const WIN64_NTENUMERATETRANSACTIONOBJECT: u64 = 0xea;
pub const WIN64_NTENUMERATEVALUEKEY: u64 = 0x13;
pub const WIN64_NTEXTENDSECTION: u64 = 0xeb;
pub const WIN64_NTFILTERBOOTOPTION: u64 = 0xec;
pub const WIN64_NTFILTERTOKEN: u64 = 0xed;
pub const WIN64_NTFILTERTOKENEX: u64 = 0xee;
pub const WIN64_NTFINDATOM: u64 = 0x14;
pub const WIN64_NTFLUSHBUFFERSFILE: u64 = 0x4b;
pub const WIN64_NTFLUSHBUFFERSFILEEX: u64 = 0xef;
pub const WIN64_NTFLUSHINSTALLUILANGUAGE: u64 = 0xf0;
pub const WIN64_NTFLUSHINSTRUCTIONCACHE: u64 = 0xf1;
pub const WIN64_NTFLUSHKEY: u64 = 0xf2;
pub const WIN64_NTFLUSHPROCESSWRITEBUFFERS: u64 = 0xf3;
pub const WIN64_NTFLUSHVIRTUALMEMORY: u64 = 0xf4;
pub const WIN64_NTFLUSHWRITEBUFFER: u64 = 0xf5;
pub const WIN64_NTFREEUSERPHYSICALPAGES: u64 = 0xf6;
pub const WIN64_NTFREEVIRTUALMEMORY: u64 = 0x1e;
pub const WIN64_NTFREEZEREGISTRY: u64 = 0xf7;
pub const WIN64_NTFREEZETRANSACTIONS: u64 = 0xf8;
pub const WIN64_NTFSCONTROLFILE: u64 = 0x39;
pub const WIN64_NTGETCACHEDSIGNINGLEVEL: u64 = 0xf9;
pub const WIN64_NTGETCOMPLETEWNFSTATESUBSCRIPTION: u64 = 0xfa;
pub const WIN64_NTGETCONTEXTTHREAD: u64 = 0xfb;
pub const WIN64_NTGETCURRENTPROCESSORNUMBER: u64 = 0xfc;
pub const WIN64_NTGETCURRENTPROCESSORNUMBEREX: u64 = 0xfd;
pub const WIN64_NTGETDEVICEPOWERSTATE: u64 = 0xfe;
pub const WIN64_NTGETMUIREGISTRYINFO: u64 = 0xff;
pub const WIN64_NTGETNEXTPROCESS: u64 = 0x100;
pub const WIN64_NTGETNEXTTHREAD: u64 = 0x101;
pub const WIN64_NTGETNLSSECTIONPTR: u64 = 0x102;
pub const WIN64_NTGETNOTIFICATIONRESOURCEMANAGER: u64 = 0x103;
pub const WIN64_NTGETWRITEWATCH: u64 = 0x104;
pub const WIN64_NTIMPERSONATEANONYMOUSTOKEN: u64 = 0x105;
pub const WIN64_NTIMPERSONATECLIENTOFPORT: u64 = 0x1f;
pub const WIN64_NTIMPERSONATETHREAD: u64 = 0x106;
pub const WIN64_NTINITIALIZEENCLAVE: u64 = 0x107;
pub const WIN64_NTINITIALIZENLSFILES: u64 = 0x108;
pub const WIN64_NTINITIALIZEREGISTRY: u64 = 0x109;
pub const WIN64_NTINITIATEPOWERACTION: u64 = 0x10a;
pub const WIN64_NTISPROCESSINJOB: u64 = 0x4f;
pub const WIN64_NTISSYSTEMRESUMEAUTOMATIC: u64 = 0x10b;
pub const WIN64_NTISUILANGUAGECOMITTED: u64 = 0x10c;
pub const WIN64_NTLISTENPORT: u64 = 0x10d;
pub const WIN64_NTLOADDRIVER: u64 = 0x10e;
pub const WIN64_NTLOADENCLAVEDATA: u64 = 0x10f;
pub const WIN64_NTLOADKEY: u64 = 0x110;
pub const WIN64_NTLOADKEY2: u64 = 0x111;
pub const WIN64_NTLOADKEY3: u64 = 0x112;
pub const WIN64_NTLOADKEYEX: u64 = 0x113;
pub const WIN64_NTLOCKFILE: u64 = 0x114;
pub const WIN64_NTLOCKPRODUCTACTIVATIONKEYS: u64 = 0x115;
pub const WIN64_NTLOCKREGISTRYKEY: u64 = 0x116;
pub const WIN64_NTLOCKVIRTUALMEMORY: u64 = 0x117;
pub const WIN64_NTMAKEPERMANENTOBJECT: u64 = 0x118;
pub const WIN64_NTMAKETEMPORARYOBJECT: u64 = 0x119;
pub const WIN64_NTMANAGEHOTPATCH: u64 = 0x11a;
pub const WIN64_NTMANAGEPARTITION: u64 = 0x11b;
pub const WIN64_NTMAPCMFMODULE: u64 = 0x11c;
pub const WIN64_NTMAPUSERPHYSICALPAGES: u64 = 0x11d;
pub const WIN64_NTMAPUSERPHYSICALPAGESSCATTER: u64 = 0x3;
pub const WIN64_NTMAPVIEWOFSECTION: u64 = 0x28;
pub const WIN64_NTMAPVIEWOFSECTIONEX: u64 = 0x11e;
pub const WIN64_NTMODIFYBOOTENTRY: u64 = 0x11f;
pub const WIN64_NTMODIFYDRIVERENTRY: u64 = 0x120;
pub const WIN64_NTNOTIFYCHANGEDIRECTORYFILE: u64 = 0x121;
pub const WIN64_NTNOTIFYCHANGEDIRECTORYFILEEX: u64 = 0x122;
pub const WIN64_NTNOTIFYCHANGEKEY: u64 = 0x123;
pub const WIN64_NTNOTIFYCHANGEMULTIPLEKEYS: u64 = 0x124;
pub const WIN64_NTNOTIFYCHANGESESSION: u64 = 0x125;
pub const WIN64_NTOPENCPUPARTITION: u64 = 0x126;
pub const WIN64_NTOPENDIRECTORYOBJECT: u64 = 0x58;
pub const WIN64_NTOPENENLISTMENT: u64 = 0x127;
pub const WIN64_NTOPENEVENT: u64 = 0x40;
pub const WIN64_NTOPENEVENTPAIR: u64 = 0x128;
pub const WIN64_NTOPENFILE: u64 = 0x33;
pub const WIN64_NTOPENIOCOMPLETION: u64 = 0x129;
pub const WIN64_NTOPENJOBOBJECT: u64 = 0x12a;
pub const WIN64_NTOPENKEY: u64 = 0x12;
pub const WIN64_NTOPENKEYEX: u64 = 0x12b;
pub const WIN64_NTOPENKEYTRANSACTED: u64 = 0x12c;
pub const WIN64_NTOPENKEYTRANSACTEDEX: u64 = 0x12d;
pub const WIN64_NTOPENKEYEDEVENT: u64 = 0x12e;
pub const WIN64_NTOPENMUTANT: u64 = 0x12f;
pub const WIN64_NTOPENOBJECTAUDITALARM: u64 = 0x130;
pub const WIN64_NTOPENPARTITION: u64 = 0x131;
pub const WIN64_NTOPENPRIVATENAMESPACE: u64 = 0x132;
pub const WIN64_NTOPENPROCESS: u64 = 0x26;
pub const WIN64_NTOPENPROCESSTOKEN: u64 = 0x133;
pub const WIN64_NTOPENPROCESSTOKENEX: u64 = 0x30;
pub const WIN64_NTOPENREGISTRYTRANSACTION: u64 = 0x134;
pub const WIN64_NTOPENRESOURCEMANAGER: u64 = 0x135;
pub const WIN64_NTOPENSECTION: u64 = 0x37;
pub const WIN64_NTOPENSEMAPHORE: u64 = 0x136;
pub const WIN64_NTOPENSESSION: u64 = 0x137;
pub const WIN64_NTOPENSYMBOLICLINKOBJECT: u64 = 0x138;
pub const WIN64_NTOPENTHREAD: u64 = 0x139;
pub const WIN64_NTOPENTHREADTOKEN: u64 = 0x24;
pub const WIN64_NTOPENTHREADTOKENEX: u64 = 0x2f;
pub const WIN64_NTOPENTIMER: u64 = 0x13a;
pub const WIN64_NTOPENTRANSACTION: u64 = 0x13b;
pub const WIN64_NTOPENTRANSACTIONMANAGER: u64 = 0x13c;
pub const WIN64_NTPLUGPLAYCONTROL: u64 = 0x13d;
pub const WIN64_NTPOWERINFORMATION: u64 = 0x5f;
pub const WIN64_NTPREPREPARECOMPLETE: u64 = 0x13e;
pub const WIN64_NTPREPREPAREENLISTMENT: u64 = 0x13f;
pub const WIN64_NTPREPARECOMPLETE: u64 = 0x140;
pub const WIN64_NTPREPAREENLISTMENT: u64 = 0x141;
pub const WIN64_NTPRIVILEGECHECK: u64 = 0x142;
pub const WIN64_NTPRIVILEGEOBJECTAUDITALARM: u64 = 0x143;
pub const WIN64_NTPRIVILEGEDSERVICEAUDITALARM: u64 = 0x144;
pub const WIN64_NTPROPAGATIONCOMPLETE: u64 = 0x145;
pub const WIN64_NTPROPAGATIONFAILED: u64 = 0x146;
pub const WIN64_NTPROTECTVIRTUALMEMORY: u64 = 0x50;
pub const WIN64_NTPSSCAPTUREVASPACEBULK: u64 = 0x147;
pub const WIN64_NTPULSEEVENT: u64 = 0x148;
pub const WIN64_NTQUERYATTRIBUTESFILE: u64 = 0x3d;
pub const WIN64_NTQUERYAUXILIARYCOUNTERFREQUENCY: u64 = 0x149;
pub const WIN64_NTQUERYBOOTENTRYORDER: u64 = 0x14a;
pub const WIN64_NTQUERYBOOTOPTIONS: u64 = 0x14b;
pub const WIN64_NTQUERYDEBUGFILTERSTATE: u64 = 0x14c;
pub const WIN64_NTQUERYDEFAULTLOCALE: u64 = 0x15;
pub const WIN64_NTQUERYDEFAULTUILANGUAGE: u64 = 0x44;
pub const WIN64_NTQUERYDIRECTORYFILE: u64 = 0x35;
pub const WIN64_NTQUERYDIRECTORYFILEEX: u64 = 0x14d;
pub const WIN64_NTQUERYDIRECTORYOBJECT: u64 = 0x14e;
pub const WIN64_NTQUERYDRIVERENTRYORDER: u64 = 0x14f;
pub const WIN64_NTQUERYEAFILE: u64 = 0x150;
pub const WIN64_NTQUERYEVENT: u64 = 0x56;
pub const WIN64_NTQUERYFULLATTRIBUTESFILE: u64 = 0x151;
pub const WIN64_NTQUERYINFORMATIONATOM: u64 = 0x152;
pub const WIN64_NTQUERYINFORMATIONBYNAME: u64 = 0x153;
pub const WIN64_NTQUERYINFORMATIONCPUPARTITION: u64 = 0x154;
pub const WIN64_NTQUERYINFORMATIONENLISTMENT: u64 = 0x155;
pub const WIN64_NTQUERYINFORMATIONFILE: u64 = 0x11;
pub const WIN64_NTQUERYINFORMATIONJOBOBJECT: u64 = 0x156;
pub const WIN64_NTQUERYINFORMATIONPORT: u64 = 0x157;
pub const WIN64_NTQUERYINFORMATIONPROCESS: u64 = 0x19;
pub const WIN64_NTQUERYINFORMATIONRESOURCEMANAGER: u64 = 0x158;
pub const WIN64_NTQUERYINFORMATIONTHREAD: u64 = 0x25;
pub const WIN64_NTQUERYINFORMATIONTOKEN: u64 = 0x21;
pub const WIN64_NTQUERYINFORMATIONTRANSACTION: u64 = 0x159;
pub const WIN64_NTQUERYINFORMATIONTRANSACTIONMANAGER: u64 = 0x15a;
pub const WIN64_NTQUERYINFORMATIONWORKERFACTORY: u64 = 0x15b;
pub const WIN64_NTQUERYINSTALLUILANGUAGE: u64 = 0x15c;
pub const WIN64_NTQUERYINTERVALPROFILE: u64 = 0x15d;
pub const WIN64_NTQUERYIOCOMPLETION: u64 = 0x15e;
pub const WIN64_NTQUERYIORINGCAPABILITIES: u64 = 0x15f;
pub const WIN64_NTQUERYKEY: u64 = 0x16;
pub const WIN64_NTQUERYLICENSEVALUE: u64 = 0x160;
pub const WIN64_NTQUERYMULTIPLEVALUEKEY: u64 = 0x161;
pub const WIN64_NTQUERYMUTANT: u64 = 0x162;
pub const WIN64_NTQUERYOBJECT: u64 = 0x10;
pub const WIN64_NTQUERYOPENSUBKEYS: u64 = 0x163;
pub const WIN64_NTQUERYOPENSUBKEYSEX: u64 = 0x164;
pub const WIN64_NTQUERYPERFORMANCECOUNTER: u64 = 0x31;
pub const WIN64_NTQUERYPORTINFORMATIONPROCESS: u64 = 0x165;
pub const WIN64_NTQUERYQUOTAINFORMATIONFILE: u64 = 0x166;
pub const WIN64_NTQUERYSECTION: u64 = 0x51;
pub const WIN64_NTQUERYSECURITYATTRIBUTESTOKEN: u64 = 0x167;
pub const WIN64_NTQUERYSECURITYOBJECT: u64 = 0x168;
pub const WIN64_NTQUERYSECURITYPOLICY: u64 = 0x169;
pub const WIN64_NTQUERYSEMAPHORE: u64 = 0x16a;
pub const WIN64_NTQUERYSYMBOLICLINKOBJECT: u64 = 0x16b;
pub const WIN64_NTQUERYSYSTEMENVIRONMENTVALUE: u64 = 0x16c;
pub const WIN64_NTQUERYSYSTEMENVIRONMENTVALUEEX: u64 = 0x16d;
pub const WIN64_NTQUERYSYSTEMINFORMATION: u64 = 0x36;
pub const WIN64_NTQUERYSYSTEMINFORMATIONEX: u64 = 0x16e;
pub const WIN64_NTQUERYSYSTEMTIME: u64 = 0x5a;
pub const WIN64_NTQUERYTIMER: u64 = 0x38;
pub const WIN64_NTQUERYTIMERRESOLUTION: u64 = 0x16f;
pub const WIN64_NTQUERYVALUEKEY: u64 = 0x17;
pub const WIN64_NTQUERYVIRTUALMEMORY: u64 = 0x23;
pub const WIN64_NTQUERYVOLUMEINFORMATIONFILE: u64 = 0x49;
pub const WIN64_NTQUERYWNFSTATEDATA: u64 = 0x170;
pub const WIN64_NTQUERYWNFSTATENAMEINFORMATION: u64 = 0x171;
pub const WIN64_NTQUEUEAPCTHREAD: u64 = 0x45;
pub const WIN64_NTQUEUEAPCTHREADEX: u64 = 0x172;
pub const WIN64_NTQUEUEAPCTHREADEX2: u64 = 0x173;
pub const WIN64_NTRAISEEXCEPTION: u64 = 0x174;
pub const WIN64_NTRAISEHARDERROR: u64 = 0x175;
pub const WIN64_NTREADFILE: u64 = 0x6;
pub const WIN64_NTREADFILESCATTER: u64 = 0x2e;
pub const WIN64_NTREADONLYENLISTMENT: u64 = 0x176;
pub const WIN64_NTREADREQUESTDATA: u64 = 0x54;
pub const WIN64_NTREADVIRTUALMEMORY: u64 = 0x3f;
pub const WIN64_NTREADVIRTUALMEMORYEX: u64 = 0x177;
pub const WIN64_NTRECOVERENLISTMENT: u64 = 0x178;
pub const WIN64_NTRECOVERRESOURCEMANAGER: u64 = 0x179;
pub const WIN64_NTRECOVERTRANSACTIONMANAGER: u64 = 0x17a;
pub const WIN64_NTREGISTERPROTOCOLADDRESSINFORMATION: u64 = 0x17b;
pub const WIN64_NTREGISTERTHREADTERMINATEPORT: u64 = 0x17c;
pub const WIN64_NTRELEASEKEYEDEVENT: u64 = 0x17d;
pub const WIN64_NTRELEASEMUTANT: u64 = 0x20;
pub const WIN64_NTRELEASESEMAPHORE: u64 = 0xa;
pub const WIN64_NTRELEASEWORKERFACTORYWORKER: u64 = 0x17e;
pub const WIN64_NTREMOVEIOCOMPLETION: u64 = 0x9;
pub const WIN64_NTREMOVEIOCOMPLETIONEX: u64 = 0x17f;
pub const WIN64_NTREMOVEPROCESSDEBUG: u64 = 0x180;
pub const WIN64_NTRENAMEKEY: u64 = 0x181;
pub const WIN64_NTRENAMETRANSACTIONMANAGER: u64 = 0x182;
pub const WIN64_NTREPLACEKEY: u64 = 0x183;
pub const WIN64_NTREPLACEPARTITIONUNIT: u64 = 0x184;
pub const WIN64_NTREPLYPORT: u64 = 0xc;
pub const WIN64_NTREPLYWAITRECEIVEPORT: u64 = 0xb;
pub const WIN64_NTREPLYWAITRECEIVEPORTEX: u64 = 0x2b;
pub const WIN64_NTREPLYWAITREPLYPORT: u64 = 0x185;
pub const WIN64_NTREQUESTPORT: u64 = 0x186;
pub const WIN64_NTREQUESTWAITREPLYPORT: u64 = 0x22;
pub const WIN64_NTRESETEVENT: u64 = 0x187;
pub const WIN64_NTRESETWRITEWATCH: u64 = 0x188;
pub const WIN64_NTRESTOREKEY: u64 = 0x189;
pub const WIN64_NTRESUMEPROCESS: u64 = 0x18a;
pub const WIN64_NTRESUMETHREAD: u64 = 0x52;
pub const WIN64_NTREVERTCONTAINERIMPERSONATION: u64 = 0x18b;
pub const WIN64_NTROLLBACKCOMPLETE: u64 = 0x18c;
pub const WIN64_NTROLLBACKENLISTMENT: u64 = 0x18d;
pub const WIN64_NTROLLBACKREGISTRYTRANSACTION: u64 = 0x18e;
pub const WIN64_NTROLLBACKTRANSACTION: u64 = 0x18f;
pub const WIN64_NTROLLFORWARDTRANSACTIONMANAGER: u64 = 0x190;
pub const WIN64_NTSAVEKEY: u64 = 0x191;
pub const WIN64_NTSAVEKEYEX: u64 = 0x192;
pub const WIN64_NTSAVEMERGEDKEYS: u64 = 0x193;
pub const WIN64_NTSECURECONNECTPORT: u64 = 0x194;
pub const WIN64_NTSERIALIZEBOOT: u64 = 0x195;
pub const WIN64_NTSETBOOTENTRYORDER: u64 = 0x196;
pub const WIN64_NTSETBOOTOPTIONS: u64 = 0x197;
pub const WIN64_NTSETCACHEDSIGNINGLEVEL: u64 = 0x198;
pub const WIN64_NTSETCACHEDSIGNINGLEVEL2: u64 = 0x199;
pub const WIN64_NTSETCONTEXTTHREAD: u64 = 0x19a;
pub const WIN64_NTSETDEBUGFILTERSTATE: u64 = 0x19b;
pub const WIN64_NTSETDEFAULTHARDERRORPORT: u64 = 0x19c;
pub const WIN64_NTSETDEFAULTLOCALE: u64 = 0x19d;
pub const WIN64_NTSETDEFAULTUILANGUAGE: u64 = 0x19e;
pub const WIN64_NTSETDRIVERENTRYORDER: u64 = 0x19f;
pub const WIN64_NTSETEAFILE: u64 = 0x1a0;
pub const WIN64_NTSETEVENT: u64 = 0xe;
pub const WIN64_NTSETEVENTBOOSTPRIORITY: u64 = 0x2d;
pub const WIN64_NTSETEVENTEX: u64 = 0x1a1;
pub const WIN64_NTSETHIGHEVENTPAIR: u64 = 0x1a2;
pub const WIN64_NTSETHIGHWAITLOWEVENTPAIR: u64 = 0x1a3;
pub const WIN64_NTSETIRTIMER: u64 = 0x1a4;
pub const WIN64_NTSETINFORMATIONCPUPARTITION: u64 = 0x1a5;
pub const WIN64_NTSETINFORMATIONDEBUGOBJECT: u64 = 0x1a6;
pub const WIN64_NTSETINFORMATIONENLISTMENT: u64 = 0x1a7;
pub const WIN64_NTSETINFORMATIONFILE: u64 = 0x27;
pub const WIN64_NTSETINFORMATIONIORING: u64 = 0x1a8;
pub const WIN64_NTSETINFORMATIONJOBOBJECT: u64 = 0x1a9;
pub const WIN64_NTSETINFORMATIONKEY: u64 = 0x1aa;
pub const WIN64_NTSETINFORMATIONOBJECT: u64 = 0x5c;
pub const WIN64_NTSETINFORMATIONPROCESS: u64 = 0x1c;
pub const WIN64_NTSETINFORMATIONRESOURCEMANAGER: u64 = 0x1ab;
pub const WIN64_NTSETINFORMATIONSYMBOLICLINK: u64 = 0x1ac;
pub const WIN64_NTSETINFORMATIONTHREAD: u64 = 0xd;
pub const WIN64_NTSETINFORMATIONTOKEN: u64 = 0x1ad;
pub const WIN64_NTSETINFORMATIONTRANSACTION: u64 = 0x1ae;
pub const WIN64_NTSETINFORMATIONTRANSACTIONMANAGER: u64 = 0x1af;
pub const WIN64_NTSETINFORMATIONVIRTUALMEMORY: u64 = 0x1b0;
pub const WIN64_NTSETINFORMATIONWORKERFACTORY: u64 = 0x1b1;
pub const WIN64_NTSETINTERVALPROFILE: u64 = 0x1b2;
pub const WIN64_NTSETIOCOMPLETION: u64 = 0x1b3;
pub const WIN64_NTSETIOCOMPLETIONEX: u64 = 0x1b4;
pub const WIN64_NTSETLDTENTRIES: u64 = 0x1b5;
pub const WIN64_NTSETLOWEVENTPAIR: u64 = 0x1b6;
pub const WIN64_NTSETLOWWAITHIGHEVENTPAIR: u64 = 0x1b7;
pub const WIN64_NTSETQUOTAINFORMATIONFILE: u64 = 0x1b8;
pub const WIN64_NTSETSECURITYOBJECT: u64 = 0x1b9;
pub const WIN64_NTSETSYSTEMENVIRONMENTVALUE: u64 = 0x1ba;
pub const WIN64_NTSETSYSTEMENVIRONMENTVALUEEX: u64 = 0x1bb;
pub const WIN64_NTSETSYSTEMINFORMATION: u64 = 0x1bc;
pub const WIN64_NTSETSYSTEMPOWERSTATE: u64 = 0x1bd;
pub const WIN64_NTSETSYSTEMTIME: u64 = 0x1be;
pub const WIN64_NTSETTHREADEXECUTIONSTATE: u64 = 0x1bf;
pub const WIN64_NTSETTIMER: u64 = 0x62;
pub const WIN64_NTSETTIMER2: u64 = 0x1c0;
pub const WIN64_NTSETTIMEREX: u64 = 0x1c1;
pub const WIN64_NTSETTIMERRESOLUTION: u64 = 0x1c2;
pub const WIN64_NTSETUUIDSEED: u64 = 0x1c3;
pub const WIN64_NTSETVALUEKEY: u64 = 0x60;
pub const WIN64_NTSETVOLUMEINFORMATIONFILE: u64 = 0x1c4;
pub const WIN64_NTSETWNFPROCESSNOTIFICATIONEVENT: u64 = 0x1c5;
pub const WIN64_NTSHUTDOWNSYSTEM: u64 = 0x1c6;
pub const WIN64_NTSHUTDOWNWORKERFACTORY: u64 = 0x1c7;
pub const WIN64_NTSIGNALANDWAITFORSINGLEOBJECT: u64 = 0x1c8;
pub const WIN64_NTSINGLEPHASEREJECT: u64 = 0x1c9;
pub const WIN64_NTSTARTPROFILE: u64 = 0x1ca;
pub const WIN64_NTSTOPPROFILE: u64 = 0x1cb;
pub const WIN64_NTSUBMITIORING: u64 = 0x1cc;
pub const WIN64_NTSUBSCRIBEWNFSTATECHANGE: u64 = 0x1cd;
pub const WIN64_NTSUSPENDPROCESS: u64 = 0x1ce;
pub const WIN64_NTSUSPENDTHREAD: u64 = 0x1cf;
pub const WIN64_NTSYSTEMDEBUGCONTROL: u64 = 0x1d0;
pub const WIN64_NTTERMINATEENCLAVE: u64 = 0x1d1;
pub const WIN64_NTTERMINATEJOBOBJECT: u64 = 0x1d2;
pub const WIN64_NTTERMINATEPROCESS: u64 = 0x2c;
pub const WIN64_NTTERMINATETHREAD: u64 = 0x53;
pub const WIN64_NTTESTALERT: u64 = 0x1d3;
pub const WIN64_NTTHAWREGISTRY: u64 = 0x1d4;
pub const WIN64_NTTHAWTRANSACTIONS: u64 = 0x1d5;
pub const WIN64_NTTRACECONTROL: u64 = 0x1d6;
pub const WIN64_NTTRACEEVENT: u64 = 0x5e;
pub const WIN64_NTTRANSLATEFILEPATH: u64 = 0x1d7;
pub const WIN64_NTUMSTHREADYIELD: u64 = 0x1d8;
pub const WIN64_NTUNLOADDRIVER: u64 = 0x1d9;
pub const WIN64_NTUNLOADKEY: u64 = 0x1da;
pub const WIN64_NTUNLOADKEY2: u64 = 0x1db;
pub const WIN64_NTUNLOADKEYEX: u64 = 0x1dc;
pub const WIN64_NTUNLOCKFILE: u64 = 0x1dd;
pub const WIN64_NTUNLOCKVIRTUALMEMORY: u64 = 0x1de;
pub const WIN64_NTUNMAPVIEWOFSECTION: u64 = 0x2a;
pub const WIN64_NTUNMAPVIEWOFSECTIONEX: u64 = 0x1df;
pub const WIN64_NTUNSUBSCRIBEWNFSTATECHANGE: u64 = 0x1e0;
pub const WIN64_NTUPDATEWNFSTATEDATA: u64 = 0x1e1;
pub const WIN64_NTVDMCONTROL: u64 = 0x1e2;
pub const WIN64_NTWAITFORALERTBYTHREADID: u64 = 0x1e3;
pub const WIN64_NTWAITFORDEBUGEVENT: u64 = 0x1e4;
pub const WIN64_NTWAITFORKEYEDEVENT: u64 = 0x1e5;
pub const WIN64_NTWAITFORMULTIPLEOBJECTS: u64 = 0x5b;
pub const WIN64_NTWAITFORMULTIPLEOBJECTS32: u64 = 0x1a;
pub const WIN64_NTWAITFORSINGLEOBJECT: u64 = 0x4;
pub const WIN64_NTWAITFORWORKVIAWORKERFACTORY: u64 = 0x1e6;
pub const WIN64_NTWAITHIGHEVENTPAIR: u64 = 0x1e7;
pub const WIN64_NTWAITLOWEVENTPAIR: u64 = 0x1e8;
pub const WIN64_NTWORKERFACTORYWORKERREADY: u64 = 0x1;
pub const WIN64_NTWRITEFILE: u64 = 0x8;
pub const WIN64_NTWRITEFILEGATHER: u64 = 0x1b;
pub const WIN64_NTWRITEREQUESTDATA: u64 = 0x57;
pub const WIN64_NTWRITEVIRTUALMEMORY: u64 = 0x3a;
pub const WIN64_NTYIELDEXECUTION: u64 = 0x46;

/// LINUX ////
// elf
pub const PT_LOAD: u32 = 1;
pub const ELF_PAGE_SIZE: u64 = 4096;
pub const ELF_PAGE_MASK: u64 = ELF_PAGE_SIZE - 1;
pub const ELF32_DYN_BASE: u64 = 0x56555000;
pub const ELF64_DYN_BASE: u64 = 0x555555554000;
pub const ELF64_STA_BASE: u64 = 0x400000;
pub const LIBC_BASE: u64 = 0x7ffff7da7000;
pub const LD_BASE: u64 = 0x7ffff7fd2000;

// linux errors
pub const ENOTSOCK: u64 = -1i64 as u64; /* not open sock */
pub const EPERM: u64 = -1i64 as u64; /* permissions error */
pub const ENOENT: u64 = -2i64 as u64; /* No such file or directory */
pub const ESRCH: u64 = -3i64 as u64; /* No such process */
pub const EINTR: u64 = -4i64 as u64; /* Interrupted system call */
pub const EIO: u64 = -5i64 as u64; /* I/O error */
pub const ENXIO: u64 = -6i64 as u64; /* No such device or address */
pub const E2BIG: u64 = -7i64 as u64; /* Argument list too long */
pub const ENOEXEC: u64 = -8i64 as u64; /* Exec format error */
pub const EBADF: u64 = -9i64 as u64; /* Bad file number */
pub const ECHILD: u64 = -10i64 as u64; /* No child processes */
pub const EAGAIN: u64 = -11i64 as u64; /* Try again */
pub const ENOMEM: u64 = -12i64 as u64; /* Out of memory */
pub const EACCES: u64 = -13i64 as u64; /* Permission denied */
pub const EFAULT: u64 = -14i64 as u64; /* Bad address */
pub const ENOTBLK: u64 = -15i64 as u64; /* Block device required */
pub const EBUSY: u64 = -16i64 as u64; /* Device or resource busy */
pub const EEXIST: u64 = -17i64 as u64; /* File exists */
pub const EXDEV: u64 = -18i64 as u64; /* Cross-device link */
pub const ENODEV: u64 = -19i64 as u64; /* No such device */
pub const ENOTDIR: u64 = -20i64 as u64; /* Not a directory */
pub const EISDIR: u64 = -21i64 as u64; /* Is a directory */
pub const EINVAL: u64 = -22i64 as u64; /* Invalid argument */
pub const ENFILE: u64 = -23i64 as u64; /* File table overflow */
pub const EMFILE: u64 = -24i64 as u64; /* Too many open files */
pub const ENOTTY: u64 = -25i64 as u64; /* Not a typewriter */
pub const ETXTBSY: u64 = -26i64 as u64; /* Text file busy */
pub const EFBIG: u64 = -27i64 as u64; /* File too large */
pub const ENOSPC: u64 = -28i64 as u64; /* No space left on device */
pub const ESPIPE: u64 = -29i64 as u64; /* Illegal seek */
pub const EROFS: u64 = -30i64 as u64; /* Read-only file system */
pub const EMLINK: u64 = -31i64 as u64; /* Too many links */
pub const EPIPE: u64 = -32i64 as u64; /* Broken pipe */
pub const EDOM: u64 = -33i64 as u64; /* Math argument out of domain of func */
pub const ERANGE: u64 = -34i64 as u64; /* Math result not representable */

// linux socketcall gateway 32bits
pub const SYS_SOCKET: u32 = 1;
pub const SYS_BIND: u32 = 2;
pub const SYS_CONNECT: u32 = 3;
pub const SYS_LISTEN: u32 = 4;
pub const SYS_ACCEPT: u32 = 5;
pub const SYS_GETSOCKNAME: u32 = 6;
pub const SYS_GETPEERNAME: u32 = 7;
pub const SYS_SOCKETPAIR: u32 = 8;
pub const SYS_SEND: u32 = 9;
pub const SYS_RECV: u32 = 10;
pub const SYS_SENDTO: u32 = 11;
pub const SYS_RECVFROM: u32 = 12;
pub const SYS_SHUTDOWN: u32 = 13;
pub const SYS_SETSOCKOPT: u32 = 14;
pub const SYS_GETSOCKOPT: u32 = 15;
pub const SYS_SENDMSG: u32 = 16;
pub const SYS_RECVMSG: u32 = 17;
pub const SYS_ACCEPT4: u32 = 18;
pub const SYS_RECVMMSG: u32 = 19;
pub const SYS_SENDMMSG: u32 = 20;

// linux syscalls u64bits
pub const NR64_READ: u64 = 0;
pub const NR64_WRITE: u64 = 1;
pub const NR64_OPEN: u64 = 2;
pub const NR64_CLOSE: u64 = 3;
pub const NR64_STAT: u64 = 4;
pub const NR64_FSTAT: u64 = 5;
pub const NR64_LSTAT: u64 = 6;
pub const NR64_POLL: u64 = 7;
pub const NR64_LSEEK: u64 = 8;
pub const NR64_MMAP: u64 = 9;
pub const NR64_MPROTECT: u64 = 10;
pub const NR64_MUNMAP: u64 = 11;
pub const NR64_BRK: u64 = 12;
pub const NR64_RT_SIGACTION: u64 = 13;
pub const NR64_RT_SIGPROCMASK: u64 = 14;
pub const NR64_RT_SIGRETURN: u64 = 15;
pub const NR64_IOCTL: u64 = 16;
pub const NR64_PREAD64: u64 = 17;
pub const NR64_PWRITE64: u64 = 18;
pub const NR64_READV: u64 = 19;
pub const NR64_WRITEV: u64 = 20;
pub const NR64_ACCESS: u64 = 21;
pub const NR64_PIPE: u64 = 22;
pub const NR64_SELECT: u64 = 23;
pub const NR64_SCHED_YIELD: u64 = 24;
pub const NR64_MREMAP: u64 = 25;
pub const NR64_MSYNC: u64 = 26;
pub const NR64_MINCORE: u64 = 27;
pub const NR64_MADVISE: u64 = 28;
pub const NR64_SHMGET: u64 = 29;
pub const NR64_SHMAT: u64 = 30;
pub const NR64_SHMCTL: u64 = 31;
pub const NR64_DUP: u64 = 32;
pub const NR64_DUP2: u64 = 33;
pub const NR64_PAUSE: u64 = 34;
pub const NR64_NANOSLEEP: u64 = 35;
pub const NR64_GETITIMER: u64 = 36;
pub const NR64_ALARM: u64 = 37;
pub const NR64_SETITIMER: u64 = 38;
pub const NR64_GETPID: u64 = 39;
pub const NR64_SENDFILE: u64 = 40;
pub const NR64_SOCKET: u64 = 41;
pub const NR64_CONNECT: u64 = 42;
pub const NR64_ACCEPT: u64 = 43;
pub const NR64_SENDTO: u64 = 44;
pub const NR64_RECVFROM: u64 = 45;
pub const NR64_SENDMSG: u64 = 46;
pub const NR64_RECVMSG: u64 = 47;
pub const NR64_SHUTDOWN: u64 = 48;
pub const NR64_BIND: u64 = 49;
pub const NR64_LISTEN: u64 = 50;
pub const NR64_GETSOCKNAME: u64 = 51;
pub const NR64_GETPEERNAME: u64 = 52;
pub const NR64_SOCKETPAIR: u64 = 53;
pub const NR64_SETSOCKOPT: u64 = 54;
pub const NR64_GETSOCKOPT: u64 = 55;
pub const NR64_CLONE: u64 = 56;
pub const NR64_FORK: u64 = 57;
pub const NR64_VFORK: u64 = 58;
pub const NR64_EXECVE: u64 = 59;
pub const NR64_EXIT: u64 = 60;
pub const NR64_WAIT4: u64 = 61;
pub const NR64_KILL: u64 = 62;
pub const NR64_UNAME: u64 = 63;
pub const NR64_SEMGET: u64 = 64;
pub const NR64_SEMOP: u64 = 65;
pub const NR64_SEMCTL: u64 = 66;
pub const NR64_SHMDT: u64 = 67;
pub const NR64_MSGGET: u64 = 68;
pub const NR64_MSGSND: u64 = 69;
pub const NR64_MSGRCV: u64 = 70;
pub const NR64_MSGCTL: u64 = 71;
pub const NR64_FCNTL: u64 = 72;
pub const NR64_FLOCK: u64 = 73;
pub const NR64_FSYNC: u64 = 74;
pub const NR64_FDATASYNC: u64 = 75;
pub const NR64_TRUNCATE: u64 = 76;
pub const NR64_FTRUNCATE: u64 = 77;
pub const NR64_GETDENTS: u64 = 78;
pub const NR64_GETCWD: u64 = 79;
pub const NR64_CHDIR: u64 = 80;
pub const NR64_FCHDIR: u64 = 81;
pub const NR64_RENAME: u64 = 82;
pub const NR64_MKDIR: u64 = 83;
pub const NR64_RMDIR: u64 = 84;
pub const NR64_CREAT: u64 = 85;
pub const NR64_LINK: u64 = 86;
pub const NR64_UNLINK: u64 = 87;
pub const NR64_SYMLINK: u64 = 88;
pub const NR64_READLINK: u64 = 89;
pub const NR64_CHMOD: u64 = 90;
pub const NR64_FCHMOD: u64 = 91;
pub const NR64_CHOWN: u64 = 92;
pub const NR64_FCHOWN: u64 = 93;
pub const NR64_LCHOWN: u64 = 94;
pub const NR64_UMASK: u64 = 95;
pub const NR64_GETTIMEOFDAY: u64 = 96;
pub const NR64_GETRLIMIT: u64 = 97;
pub const NR64_GETRUSAGE: u64 = 98;
pub const NR64_SYSINFO: u64 = 99;
pub const NR64_TIMES: u64 = 100;
pub const NR64_PTRACE: u64 = 101;
pub const NR64_GETUID: u64 = 102;
pub const NR64_SYSLOG: u64 = 103;
pub const NR64_GETGID: u64 = 104;
pub const NR64_SETUID: u64 = 105;
pub const NR64_SETGID: u64 = 106;
pub const NR64_GETEUID: u64 = 107;
pub const NR64_GETEGID: u64 = 108;
pub const NR64_SETPGID: u64 = 109;
pub const NR64_GETPPID: u64 = 110;
pub const NR64_GETPGRP: u64 = 111;
pub const NR64_SETSID: u64 = 112;
pub const NR64_SETREUID: u64 = 113;
pub const NR64_SETREGID: u64 = 114;
pub const NR64_GETGROUPS: u64 = 115;
pub const NR64_SETGROUPS: u64 = 116;
pub const NR64_SETRESUID: u64 = 117;
pub const NR64_GETRESUID: u64 = 118;
pub const NR64_SETRESGID: u64 = 119;
pub const NR64_GETRESGID: u64 = 120;
pub const NR64_GETPGID: u64 = 121;
pub const NR64_SETFSUID: u64 = 122;
pub const NR64_SETFSGID: u64 = 123;
pub const NR64_GETSID: u64 = 124;
pub const NR64_CAPGET: u64 = 125;
pub const NR64_CAPSET: u64 = 126;
pub const NR64_RT_SIGPENDING: u64 = 127;
pub const NR64_RT_SIGTIMEDWAIT: u64 = 128;
pub const NR64_RT_SIGQUEUEINFO: u64 = 129;
pub const NR64_RT_SIGSUSPEND: u64 = 130;
pub const NR64_SIGALTSTACK: u64 = 131;
pub const NR64_UTIME: u64 = 132;
pub const NR64_MKNOD: u64 = 133;
pub const NR64_USELIB: u64 = 134;
pub const NR64_PERSONALITY: u64 = 135;
pub const NR64_USTAT: u64 = 136;
pub const NR64_STATFS: u64 = 137;
pub const NR64_FSTATFS: u64 = 138;
pub const NR64_SYSFS: u64 = 139;
pub const NR64_GETPRIORITY: u64 = 140;
pub const NR64_SETPRIORITY: u64 = 141;
pub const NR64_SCHED_SETPARAM: u64 = 142;
pub const NR64_SCHED_GETPARAM: u64 = 143;
pub const NR64_SCHED_SETSCHEDULER: u64 = 144;
pub const NR64_SCHED_GETSCHEDULER: u64 = 145;
pub const NR64_SCHED_GET_PRIORITY_MAX: u64 = 146;
pub const NR64_SCHED_GET_PRIORITY_MIN: u64 = 147;
pub const NR64_SCHED_RR_GET_INTERVAL: u64 = 148;
pub const NR64_MLOCK: u64 = 149;
pub const NR64_MUNLOCK: u64 = 150;
pub const NR64_MLOCKALL: u64 = 151;
pub const NR64_MUNLOCKALL: u64 = 152;
pub const NR64_VHANGUP: u64 = 153;
pub const NR64_MODIFY_LDT: u64 = 154;
pub const NR64_PIVOT_ROOT: u64 = 155;
pub const NR64_SYSCTL: u64 = 156;
pub const NR64_PRCTL: u64 = 157;
pub const NR64_ARCH_PRCTL: u64 = 158;
pub const NR64_ADJTIMEX: u64 = 159;
pub const NR64_SETRLIMIT: u64 = 160;
pub const NR64_CHROOT: u64 = 161;
pub const NR64_SYNC: u64 = 162;
pub const NR64_ACCT: u64 = 163;
pub const NR64_SETTIMEOFDAY: u64 = 164;
pub const NR64_MOUNT: u64 = 165;
pub const NR64_UMOUNT2: u64 = 166;
pub const NR64_SWAPON: u64 = 167;
pub const NR64_SWAPOFF: u64 = 168;
pub const NR64_REBOOT: u64 = 169;
pub const NR64_SETHOSTNAME: u64 = 170;
pub const NR64_SETDOMAINNAME: u64 = 171;
pub const NR64_IOPL: u64 = 172;
pub const NR64_IOPERM: u64 = 173;
pub const NR64_CREATE_MODULE: u64 = 174;
pub const NR64_INIT_MODULE: u64 = 175;
pub const NR64_DELETE_MODULE: u64 = 176;
pub const NR64_GET_KERNEL_SYMS: u64 = 177;
pub const NR64_QUERY_MODULE: u64 = 178;
pub const NR64_QUOTACTL: u64 = 179;
pub const NR64_NFSSERVCTL: u64 = 180;
pub const NR64_GETPMSG: u64 = 181;
pub const NR64_PUTPMSG: u64 = 182;
pub const NR64_AFS_SYSCALL: u64 = 183;
pub const NR64_TUXCALL: u64 = 184;
pub const NR64_SECURITY: u64 = 185;
pub const NR64_GETTID: u64 = 186;
pub const NR64_READAHEAD: u64 = 187;
pub const NR64_SETXATTR: u64 = 188;
pub const NR64_LSETXATTR: u64 = 189;
pub const NR64_FSETXATTR: u64 = 190;
pub const NR64_GETXATTR: u64 = 191;
pub const NR64_LGETXATTR: u64 = 192;
pub const NR64_FGETXATTR: u64 = 193;
pub const NR64_LISTXATTR: u64 = 194;
pub const NR64_LLISTXATTR: u64 = 195;
pub const NR64_FLISTXATTR: u64 = 196;
pub const NR64_REMOVEXATTR: u64 = 197;
pub const NR64_LREMOVEXATTR: u64 = 198;
pub const NR64_FREMOVEXATTR: u64 = 199;
pub const NR64_TKILL: u64 = 200;
pub const NR64_TIME: u64 = 201;
pub const NR64_FUTEX: u64 = 202;
pub const NR64_SCHED_SETAFFINITY: u64 = 203;
pub const NR64_SCHED_GETAFFINITY: u64 = 204;
pub const NR64_SET_THREAD_AREA: u64 = 205;
pub const NR64_IO_SETUP: u64 = 206;
pub const NR64_IO_DESTROY: u64 = 207;
pub const NR64_IO_GETEVENTS: u64 = 208;
pub const NR64_IO_SUBMIT: u64 = 209;
pub const NR64_IO_CANCEL: u64 = 210;
pub const NR64_GET_THREAD_AREA: u64 = 211;
pub const NR64_LOOKUP_DCOOKIE: u64 = 212;
pub const NR64_EPOLL_CREATE: u64 = 213;
pub const NR64_EPOLL_CTL_OLD: u64 = 214;
pub const NR64_EPOLL_WAIT_OLD: u64 = 215;
pub const NR64_REMAP_FILE_PAGES: u64 = 216;
pub const NR64_GETDENTS64: u64 = 217;
pub const NR64_SET_TID_ADDRESS: u64 = 218;
pub const NR64_RESTART_SYSCALL: u64 = 219;
pub const NR64_SEMTIMEDOP: u64 = 220;
pub const NR64_FADVISE64: u64 = 221;
pub const NR64_TIMER_CREATE: u64 = 222;
pub const NR64_TIMER_SETTIME: u64 = 223;
pub const NR64_TIMER_GETTIME: u64 = 224;
pub const NR64_TIMER_GETOVERRUN: u64 = 225;
pub const NR64_TIMER_DELETE: u64 = 226;
pub const NR64_CLOCK_SETTIME: u64 = 227;
pub const NR64_CLOCK_GETTIME: u64 = 228;
pub const NR64_CLOCK_GETRES: u64 = 229;
pub const NR64_CLOCK_NANOSLEEP: u64 = 230;
pub const NR64_EXIT_GROUP: u64 = 231;
pub const NR64_EPOLL_WAIT: u64 = 232;
pub const NR64_EPOLL_CTL: u64 = 233;
pub const NR64_TGKILL: u64 = 234;
pub const NR64_UTIMES: u64 = 235;
pub const NR64_VSERVER: u64 = 236;
pub const NR64_MBIND: u64 = 237;
pub const NR64_SET_MEMPOLICY: u64 = 238;
pub const NR64_GET_MEMPOLICY: u64 = 239;
pub const NR64_MQ_OPEN: u64 = 240;
pub const NR64_MQ_UNLINK: u64 = 241;
pub const NR64_MQ_TIMEDSEND: u64 = 242;
pub const NR64_MQ_TIMEDRECEIVE: u64 = 243;
pub const NR64_MQ_NOTIFY: u64 = 244;
pub const NR64_MQ_GETSETATTR: u64 = 245;
pub const NR64_KEXEC_LOAD: u64 = 246;
pub const NR64_WAITID: u64 = 247;
pub const NR64_ADD_KEY: u64 = 248;
pub const NR64_REQUEST_KEY: u64 = 249;
pub const NR64_KEYCTL: u64 = 250;
pub const NR64_IOPRIO_SET: u64 = 251;
pub const NR64_IOPRIO_GET: u64 = 252;
pub const NR64_INOTIFY_INIT: u64 = 253;
pub const NR64_INOTIFY_ADD_WATCH: u64 = 254;
pub const NR64_INOTIFY_RM_WATCH: u64 = 255;
pub const NR64_MIGRATE_PAGES: u64 = 256;
pub const NR64_OPENAT: u64 = 257;
pub const NR64_MKDIRAT: u64 = 258;
pub const NR64_MKNODAT: u64 = 259;
pub const NR64_FCHOWNAT: u64 = 260;
pub const NR64_FUTIMESAT: u64 = 261;
pub const NR64_NEWFSTATAT: u64 = 262;
pub const NR64_UNLINKAT: u64 = 263;
pub const NR64_RENAMEAT: u64 = 264;
pub const NR64_LINKAT: u64 = 265;
pub const NR64_SYMLINKAT: u64 = 266;
pub const NR64_READLINKAT: u64 = 267;
pub const NR64_FCHMODAT: u64 = 268;
pub const NR64_FACCESSAT: u64 = 269;
pub const NR64_PSELECT6: u64 = 270;
pub const NR64_PPOLL: u64 = 271;
pub const NR64_UNSHARE: u64 = 272;
pub const NR64_SET_ROBUST_LIST: u64 = 273;
pub const NR64_GET_ROBUST_LIST: u64 = 274;
pub const NR64_SPLICE: u64 = 275;
pub const NR64_TEE: u64 = 276;
pub const NR64_SYNC_FILE_RANGE: u64 = 277;
pub const NR64_VMSPLICE: u64 = 278;
pub const NR64_MOVE_PAGES: u64 = 279;
pub const NR64_UTIMENSAT: u64 = 280;
pub const NR64_EPOLL_PWAIT: u64 = 281;
pub const NR64_SIGNALFD: u64 = 282;
pub const NR64_TIMERFD_CREATE: u64 = 283;
pub const NR64_EVENTFD: u64 = 284;
pub const NR64_FALLOCATE: u64 = 285;
pub const NR64_TIMERFD_SETTIME: u64 = 286;
pub const NR64_TIMERFD_GETTIME: u64 = 287;
pub const NR64_ACCEPT4: u64 = 288;
pub const NR64_SIGNALFD4: u64 = 289;
pub const NR64_EVENTFD2: u64 = 290;
pub const NR64_EPOLL_CREATE1: u64 = 291;
pub const NR64_DUP3: u64 = 292;
pub const NR64_PIPE2: u64 = 293;
pub const NR64_INOTIFY_INIT1: u64 = 294;
pub const NR64_PREADV: u64 = 295;
pub const NR64_PWRITEV: u64 = 296;
pub const NR64_RT_TGSIGQUEUEINFO: u64 = 297;
pub const NR64_PERF_EVENT_OPEN: u64 = 298;
pub const NR64_RECVMMSG: u64 = 299;
pub const NR64_FANOTIFY_INIT: u64 = 300;
pub const NR64_FANOTIFY_MARK: u64 = 301;
pub const NR64_PRLIMIT64: u64 = 302;
pub const NR64_NAME_TO_HANDLE_AT: u64 = 303;
pub const NR64_OPEN_BY_HANDLE_AT: u64 = 304;
pub const NR64_CLOCK_ADJTIME: u64 = 305;
pub const NR64_SYNCFS: u64 = 306;
pub const NR64_SENDMMSG: u64 = 307;
pub const NR64_SETNS: u64 = 308;
pub const NR64_GETCPU: u64 = 309;
pub const NR64_PROCESS_VM_READV: u64 = 310;
pub const NR64_PROCESS_VM_WRITEV: u64 = 311;
pub const NR64_KCMP: u64 = 312;
pub const NR64_FINIT_MODULE: u64 = 313;
pub const NR64_SCHED_SETATTR: u64 = 314;
pub const NR64_SCHED_GETATTR: u64 = 315;
pub const NR64_RENAMEAT2: u64 = 316;
pub const NR64_SECCOMP: u64 = 317;
pub const NR64_GETRANDOM: u64 = 318;
pub const NR64_MEMFD_CREATE: u64 = 319;
pub const NR64_KEXEC_FILE_LOAD: u64 = 320;
pub const NR64_BPF: u64 = 321;
pub const NR64_EXECVEAT: u64 = 322;
pub const NR64_USERFAULTFD: u64 = 323;
pub const NR64_MEMBARRIER: u64 = 324;
pub const NR64_MLOCK2: u64 = 325;
pub const NR64_COPY_FILE_RANGE: u64 = 326;
pub const NR64_PREADV2: u64 = 327;
pub const NR64_PWRITEV2: u64 = 328;
pub const NR64_PKEY_MPROTECT: u64 = 329;
pub const NR64_PKEY_ALLOC: u64 = 330;
pub const NR64_PKEY_FREE: u64 = 331;
pub const NR64_STATX: u64 = 332;
pub const NR64_IO_PGETEVENTS: u64 = 333;
pub const NR64_RSEQ: u64 = 334;
pub const NR64_PIDFD_SEND_SIGNAL: u64 = 424;
pub const NR64_IO_URING_SETUP: u64 = 425;
pub const NR64_IO_URING_ENTER: u64 = 426;
pub const NR64_IO_URING_REGISTER: u64 = 427;
pub const NR64_OPEN_TREE: u64 = 428;
pub const NR64_MOVE_MOUNT: u64 = 429;
pub const NR64_FSOPEN: u64 = 430;
pub const NR64_FSCONFIG: u64 = 431;
pub const NR64_FSMOUNT: u64 = 432;
pub const NR64_FSPICK: u64 = 433;
pub const NR64_PIDFD_OPEN: u64 = 434;
pub const NR64_CLONE3: u64 = 435;
pub const NR64_CLOSE_RANGE: u64 = 436;
pub const NR64_OPENAT2: u64 = 437;
pub const NR64_PIDFD_GETFD: u64 = 438;
pub const NR64_FACCESSAT2: u64 = 439;
pub const NR64_PROCESS_MADVISE: u64 = 440;
pub const NR64_EPOLL_PWAIT2: u64 = 441;
pub const NR64_MOUNT_SETATTR: u64 = 442;
pub const NR64_QUOTACTL_FD: u64 = 443;
pub const NR64_LANDLOCK_CREATE_RULESET: u64 = 444;
pub const NR64_LANDLOCK_ADD_RULE: u64 = 445;
pub const NR64_LANDLOCK_RESTRICT_SELF: u64 = 446;
pub const NR64_MEMFD_SECRET: u64 = 447;
pub const NR64_PROCESS_MRELEASE: u64 = 448;

pub const ARCH_SET_GS: u64 = 0x1001;
pub const ARCH_SET_FS: u64 = 0x1002;
pub const ARCH_GET_FS: u64 = 0x1003;
pub const ARCH_GET_GS: u64 = 0x1004;

pub const LOCALE_USER_DEFAULT: u64 = 0x400;

pub const HEAP_GENERATE_EXCEPTIONS: u64 = 0x00000004;
pub const HEAP_NO_SERIALIZE: u64 = 0x00000001;
pub const HEAP_ZERO_MEMORY: u64 = 0x00000008;
pub const HEAP_REALLOC_IN_PLACE_ONLY: u64 = 0x00000010;

pub const UTSNAME: [u8; 390] = [
    0x4c, 0x69, 0x6e, 0x75, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x73, 0x61, 0x74, 0x75, 0x72, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x35, 0x2e, 0x31, 0x30, 0x2e, 0x30, 0x2d, 0x32, 0x33, 0x2d, 0x61, 0x6d, 0x64, 0x36,
    0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x23, 0x31, 0x20, 0x53, 0x4d, 0x50, 0x20, 0x44, 0x65, 0x62, 0x69, 0x61, 0x6e,
    0x20, 0x35, 0x2e, 0x31, 0x30, 0x2e, 0x31, 0x37, 0x39, 0x2d, 0x31, 0x20, 0x28, 0x32, 0x30, 0x32,
    0x33, 0x2d, 0x30, 0x35, 0x2d, 0x31, 0x32, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x78, 0x38, 0x36, 0x5f, 0x36, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6e, 0x6f, 0x6e, 0x65, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
];