File: pyEnums.cpp

package info (click to toggle)
lief 0.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 16,036 kB
  • sloc: cpp: 76,013; python: 6,167; ansic: 3,355; pascal: 404; sh: 98; makefile: 32
file content (912 lines) | stat: -rw-r--r-- 57,601 bytes parent folder | download
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
/* Copyright 2017 R. Thomas
 * Copyright 2017 Quarkslab
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include "pyPE.hpp"
#include "LIEF/PE/Structures.hpp"
#include "LIEF/PE/EnumToString.hpp"
#include "enums_wrapper.hpp"

#define PY_ENUM(x) LIEF::PE::to_string(x), x

namespace LIEF {
namespace PE {


void init_enums(py::module& m) {

  LIEF::enum_<LIEF::PE::PE_TYPE>(m, "PE_TYPE")
    .value(PY_ENUM(LIEF::PE::PE_TYPE::PE32))
    .value(PY_ENUM(LIEF::PE::PE_TYPE::PE32_PLUS));

  LIEF::enum_<LIEF::PE::MACHINE_TYPES>(m, "MACHINE_TYPES")
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::MT_Invalid))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_AM33))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_AMD64))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_ARM))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_ARMNT))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_EBC))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_I386))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_IA64))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_M32R))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_MIPS16))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_MIPSFPU))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_MIPSFPU16))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_POWERPC))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_POWERPCFP))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_R4000))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_SH3))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_SH3DSP))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_SH4))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_SH5))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_THUMB))
    .value(PY_ENUM(LIEF::PE::MACHINE_TYPES::IMAGE_FILE_MACHINE_WCEMIPSV2));

  LIEF::enum_<LIEF::PE::HEADER_CHARACTERISTICS>(m, "HEADER_CHARACTERISTICS", py::arithmetic())
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_RELOCS_STRIPPED))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_EXECUTABLE_IMAGE))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_LINE_NUMS_STRIPPED))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_LOCAL_SYMS_STRIPPED))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_AGGRESSIVE_WS_TRIM))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_LARGE_ADDRESS_AWARE))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_BYTES_REVERSED_LO))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_32BIT_MACHINE))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_DEBUG_STRIPPED))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_NET_RUN_FROM_SWAP))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_SYSTEM))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_DLL))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_UP_SYSTEM_ONLY))
    .value(PY_ENUM(LIEF::PE::HEADER_CHARACTERISTICS::IMAGE_FILE_BYTES_REVERSED_HI));

  LIEF::enum_<LIEF::PE::SUBSYSTEM>(m, "SUBSYSTEM")
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_NATIVE))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_WINDOWS_GUI))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_WINDOWS_CUI))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_OS2_CUI))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_POSIX_CUI))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_NATIVE_WINDOWS))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_WINDOWS_CE_GUI))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_EFI_APPLICATION))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_EFI_ROM))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_XBOX))
    .value(PY_ENUM(LIEF::PE::SUBSYSTEM::IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION));

  LIEF::enum_<LIEF::PE::DATA_DIRECTORY>(m, "DATA_DIRECTORY")
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::EXPORT_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::IMPORT_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::RESOURCE_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::EXCEPTION_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::CERTIFICATE_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::BASE_RELOCATION_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::DEBUG))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::ARCHITECTURE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::GLOBAL_PTR))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::TLS_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::LOAD_CONFIG_TABLE))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::BOUND_IMPORT))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::IAT))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::DELAY_IMPORT_DESCRIPTOR))
    .value(PY_ENUM(LIEF::PE::DATA_DIRECTORY::CLR_RUNTIME_HEADER));

  LIEF::enum_<LIEF::PE::DLL_CHARACTERISTICS>(m, "DLL_CHARACTERISTICS", py::arithmetic())
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_NX_COMPAT))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_NO_ISOLATION))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_NO_SEH))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_NO_BIND))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_APPCONTAINER))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_WDM_DRIVER))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_GUARD_CF))
    .value(PY_ENUM(LIEF::PE::DLL_CHARACTERISTICS::IMAGE_DLL_CHARACTERISTICS_TERMINAL_SERVER_AWARE));


  LIEF::enum_<LIEF::PE::SECTION_CHARACTERISTICS>(m, "SECTION_CHARACTERISTICS", py::arithmetic())
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_TYPE_NO_PAD))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_CNT_CODE))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_CNT_INITIALIZED_DATA))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_CNT_UNINITIALIZED_DATA))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_LNK_OTHER))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_LNK_INFO))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_LNK_REMOVE))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_LNK_COMDAT))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_GPREL))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_PURGEABLE))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_16BIT))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_LOCKED))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_PRELOAD))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_1BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_2BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_4BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_8BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_16BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_32BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_64BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_128BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_256BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_512BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_1024BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_2048BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_4096BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_ALIGN_8192BYTES))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_LNK_NRELOC_OVFL))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_DISCARDABLE))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_NOT_CACHED))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_NOT_PAGED))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_SHARED))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_EXECUTE))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_READ))
    .value(PY_ENUM(LIEF::PE::SECTION_CHARACTERISTICS::IMAGE_SCN_MEM_WRITE));

  LIEF::enum_<LIEF::PE::PE_SECTION_TYPES>(m, "SECTION_TYPES")
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::TEXT))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::TLS))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::IMPORT))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::DATA))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::BSS))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::RESOURCE))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::RELOCATION))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::EXPORT))
    .value(PY_ENUM(LIEF::PE::PE_SECTION_TYPES::UNKNOWN));


  LIEF::enum_<LIEF::PE::SYMBOL_BASE_TYPES>(m, "SYMBOL_BASE_TYPES")
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_NULL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_VOID))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_CHAR))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_SHORT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_INT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_LONG))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_FLOAT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_DOUBLE))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_STRUCT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_UNION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_ENUM))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_MOE))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_BYTE))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_WORD))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_UINT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_BASE_TYPES::IMAGE_SYM_TYPE_DWORD));


  LIEF::enum_<LIEF::PE::SYMBOL_COMPLEX_TYPES>(m, "SYMBOL_COMPLEX_TYPES")
    .value(PY_ENUM(LIEF::PE::SYMBOL_COMPLEX_TYPES::IMAGE_SYM_DTYPE_NULL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_COMPLEX_TYPES::IMAGE_SYM_DTYPE_POINTER))
    .value(PY_ENUM(LIEF::PE::SYMBOL_COMPLEX_TYPES::IMAGE_SYM_DTYPE_FUNCTION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_COMPLEX_TYPES::IMAGE_SYM_DTYPE_ARRAY))
    .value(PY_ENUM(LIEF::PE::SYMBOL_COMPLEX_TYPES::SCT_COMPLEX_TYPE_SHIFT));


  LIEF::enum_<LIEF::PE::SYMBOL_SECTION_NUMBER>(m, "SYMBOL_SECTION_NUMBER")
    .value(PY_ENUM(LIEF::PE::SYMBOL_SECTION_NUMBER::IMAGE_SYM_DEBUG))
    .value(PY_ENUM(LIEF::PE::SYMBOL_SECTION_NUMBER::IMAGE_SYM_ABSOLUTE))
    .value(PY_ENUM(LIEF::PE::SYMBOL_SECTION_NUMBER::IMAGE_SYM_UNDEFINED));


  LIEF::enum_<LIEF::PE::SYMBOL_STORAGE_CLASS>(m, "SYMBOL_STORAGE_CLASS")
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_END_OF_FUNCTION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_NULL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_AUTOMATIC))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_EXTERNAL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_STATIC))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_REGISTER))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_EXTERNAL_DEF))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_LABEL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_UNDEFINED_LABEL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_MEMBER_OF_STRUCT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_UNION_TAG))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_TYPE_DEFINITION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_UNDEFINED_STATIC))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_ENUM_TAG))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_MEMBER_OF_ENUM))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_REGISTER_PARAM))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_BIT_FIELD))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_BLOCK))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_FUNCTION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_END_OF_STRUCT))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_FILE))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_SECTION))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_WEAK_EXTERNAL))
    .value(PY_ENUM(LIEF::PE::SYMBOL_STORAGE_CLASS::IMAGE_SYM_CLASS_CLR_TOKEN));


  LIEF::enum_<LIEF::PE::RELOCATIONS_BASE_TYPES>(m, "RELOCATIONS_BASE_TYPES")
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_ABSOLUTE))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_LOW))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHLOW))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGHADJ))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_SECTION))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_REL))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_MIPS_JMPADDR16))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_IA64_IMM64))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_DIR64))
    .value(PY_ENUM(LIEF::PE::RELOCATIONS_BASE_TYPES::IMAGE_REL_BASED_HIGH3ADJ));


  LIEF::enum_<LIEF::PE::DEBUG_TYPES>(m, "DEBUG_TYPES")
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_COFF))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_CODEVIEW))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_FPO))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_MISC))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_EXCEPTION))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_FIXUP))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_OMAP_TO_SRC))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_OMAP_FROM_SRC))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_BORLAND))
    .value(PY_ENUM(LIEF::PE::DEBUG_TYPES::IMAGE_DEBUG_TYPE_CLSID));


  LIEF::enum_<LIEF::PE::RESOURCE_TYPES>(m, "RESOURCE_TYPES")
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::CURSOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::BITMAP))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::ICON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::MENU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::DIALOG))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::STRING))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::FONTDIR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::FONT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::ACCELERATOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::RCDATA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::MESSAGETABLE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::GROUP_CURSOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::GROUP_ICON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::VERSION))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::DLGINCLUDE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::PLUGPLAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::VXD))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::ANICURSOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::ANIICON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::HTML))
    .value(PY_ENUM(LIEF::PE::RESOURCE_TYPES::MANIFEST));


  LIEF::enum_<LIEF::PE::RESOURCE_LANGS>(m, "RESOURCE_LANGS")
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_NEUTRAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_INVARIANT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_AFRIKAANS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ALBANIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ARABIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ARMENIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ASSAMESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_AZERI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BASQUE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BELARUSIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BANGLA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BULGARIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_CATALAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_CHINESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_CROATIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BOSNIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_CZECH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_DANISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_DIVEHI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_DUTCH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ENGLISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ESTONIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_FAEROESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_FARSI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_FINNISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_FRENCH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GALICIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GEORGIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GERMAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GREEK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GUJARATI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_HEBREW))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_HINDI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_HUNGARIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ICELANDIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_INDONESIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ITALIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_JAPANESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KANNADA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KASHMIRI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KAZAK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KONKANI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KOREAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_KYRGYZ))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_LATVIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_LITHUANIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MACEDONIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MALAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MALAYALAM))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MANIPURI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MARATHI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MONGOLIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_NEPALI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_NORWEGIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ORIYA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_POLISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_PORTUGUESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_PUNJABI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ROMANIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_RUSSIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SANSKRIT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SERBIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SINDHI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SLOVAK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SLOVENIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SPANISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SWAHILI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SWEDISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SYRIAC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TAMIL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TATAR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TELUGU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_THAI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TURKISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_UKRAINIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_URDU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_UZBEK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_VIETNAMESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_GAELIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MALTESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_MAORI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_RHAETO_ROMANCE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SAMI))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SORBIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_SUTU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TSONGA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TSWANA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_VENDA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_XHOSA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ZULU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_ESPERANTO))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_WALON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_CORNISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_WELSH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_BRETON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_INUKTITUT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_IRISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_LOWER_SORBIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_PULAR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_QUECHUA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TAMAZIGHT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_TIGRINYA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_LANGS::LANG_VALENCIAN));

  LIEF::enum_<LIEF::PE::RESOURCE_SUBLANGS>(m, "RESOURCE_SUBLANGS")
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_AFRIKAANS_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ALBANIAN_ALBANIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ALSATIAN_FRANCE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_AMHARIC_ETHIOPIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_ALGERIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_BAHRAIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_EGYPT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_IRAQ))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_JORDAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_KUWAIT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_LEBANON))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_LIBYA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_MOROCCO))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_OMAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_QATAR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_SAUDI_ARABIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_SYRIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_TUNISIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_UAE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARABIC_YEMEN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ARMENIAN_ARMENIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ASSAMESE_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_AZERI_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_AZERI_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BASHKIR_RUSSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BASQUE_BASQUE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BELARUSIAN_BELARUS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BANGLA_BANGLADESH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BANGLA_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BRETON_FRANCE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_BULGARIAN_BULGARIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CATALAN_CATALAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CHINESE_HONGKONG))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CHINESE_MACAU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CHINESE_SIMPLIFIED))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CHINESE_SINGAPORE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CHINESE_TRADITIONAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CORSICAN_FRANCE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CROATIAN_CROATIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CUSTOM_DEFAULT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CUSTOM_UNSPECIFIED))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_CZECH_CZECH_REPUBLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DANISH_DENMARK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DARI_AFGHANISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DEFAULT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DIVEHI_MALDIVES))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DUTCH_BELGIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_DUTCH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_AUS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_BELIZE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_CAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_CARIBBEAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_EIRE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_JAMAICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_MALAYSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_NZ))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_PHILIPPINES))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_SINGAPORE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_TRINIDAD))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_UK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_US))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_ZIMBABWE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ENGLISH_IRELAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ESTONIAN_ESTONIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FAEROESE_FAROE_ISLANDS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FILIPINO_PHILIPPINES))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FINNISH_FINLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH_BELGIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH_CANADIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH_LUXEMBOURG))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH_MONACO))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH_SWISS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRENCH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_FRISIAN_NETHERLANDS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GALICIAN_GALICIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GEORGIAN_GEORGIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GERMAN_AUSTRIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GERMAN_LIECHTENSTEIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GERMAN_LUXEMBOURG))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GERMAN_SWISS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GERMAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GREEK_GREECE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GREENLANDIC_GREENLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_GUJARATI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_HAUSA_NIGERIA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_HEBREW_ISRAEL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_HINDI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_HUNGARIAN_HUNGARY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ICELANDIC_ICELAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_IGBO_NIGERIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_INDONESIAN_INDONESIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_INUKTITUT_CANADA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_INUKTITUT_CANADA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_IRISH_IRELAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ITALIAN_SWISS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ITALIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_JAPANESE_JAPAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KANNADA_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KASHMIRI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KASHMIRI_SASIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KAZAK_KAZAKHSTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KHMER_CAMBODIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KICHE_GUATEMALA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KINYARWANDA_RWANDA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KONKANI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KOREAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_KYRGYZ_KYRGYZSTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LAO_LAO))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LATVIAN_LATVIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LITHUANIAN_CLASSIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LITHUANIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LOWER_SORBIAN_GERMANY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_LUXEMBOURGISH_LUXEMBOURG))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MACEDONIAN_MACEDONIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MALAY_BRUNEI_DARUSSALAM))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MALAY_MALAYSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MALAYALAM_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MALTESE_MALTA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MAORI_NEW_ZEALAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MAPUDUNGUN_CHILE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MARATHI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MOHAWK_MOHAWK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_MONGOLIAN_PRC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_NEPALI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_NEPALI_NEPAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_NEUTRAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_NORWEGIAN_BOKMAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_NORWEGIAN_NYNORSK))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_OCCITAN_FRANCE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ORIYA_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PASHTO_AFGHANISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PERSIAN_IRAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_POLISH_POLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PORTUGUESE_BRAZILIAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PORTUGUESE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PUNJABI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_QUECHUA_BOLIVIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_QUECHUA_ECUADOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_QUECHUA_PERU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ROMANIAN_ROMANIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ROMANSH_SWITZERLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_RUSSIAN_RUSSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_INARI_FINLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_LULE_NORWAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_LULE_SWEDEN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_NORTHERN_FINLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_NORTHERN_NORWAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_NORTHERN_SWEDEN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_SKOLT_FINLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_SOUTHERN_NORWAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SAMI_SOUTHERN_SWEDEN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SANSKRIT_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SERBIAN_CROATIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SERBIAN_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SERBIAN_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SINDHI_AFGHANISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SINDHI_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SINDHI_PAKISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SINHALESE_SRI_LANKA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SLOVAK_SLOVAKIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SLOVENIAN_SLOVENIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_ARGENTINA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_BOLIVIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_CHILE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_COLOMBIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_COSTA_RICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_DOMINICAN_REPUBLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_ECUADOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_EL_SALVADOR))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_GUATEMALA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_HONDURAS))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_MEXICAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_MODERN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_NICARAGUA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_PANAMA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_PARAGUAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_PERU))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_PUERTO_RICO))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_URUGUAY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_US))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH_VENEZUELA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SPANISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SWAHILI_KENYA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SWEDISH_FINLAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SWEDISH))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SYRIAC_SYRIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_SYS_DEFAULT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TAJIK_TAJIKISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TAMAZIGHT_ALGERIA_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TAMIL_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TATAR_RUSSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TELUGU_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_THAI_THAILAND))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TIBETAN_PRC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TIGRIGNA_ERITREA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TSWANA_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TURKISH_TURKEY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TURKMEN_TURKMENISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UI_CUSTOM_DEFAULT))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UIGHUR_PRC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UKRAINIAN_UKRAINE))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UPPER_SORBIAN_GERMANY))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_URDU_INDIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_URDU_PAKISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UZBEK_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_UZBEK_LATIN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_VIETNAMESE_VIETNAM))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_WELSH_UNITED_KINGDOM))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_WOLOF_SENEGAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_XHOSA_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_YAKUT_RUSSIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_YI_PRC))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_YORUBA_NIGERIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_ZULU_SOUTH_AFRICA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PULAR_SENEGAL))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_PUNJABI_PAKISTAN))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TSWANA_BOTSWANA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TAMIL_SRI_LANKA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TIGRINYA_ETHIOPIA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_TIGRINYA_ERITREA))
    .value(PY_ENUM(LIEF::PE::RESOURCE_SUBLANGS::SUBLANG_VALENCIAN_VALENCIA));

  LIEF::enum_<LIEF::PE::EXTENDED_WINDOW_STYLES>(m, "EXTENDED_WINDOW_STYLES")
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_DLGMODALFRAME))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_NOPARENTNOTIFY))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_TOPMOST))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_ACCEPTFILES))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_TRANSPARENT))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_MDICHILD))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_TOOLWINDOW))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_WINDOWEDGE))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_CLIENTEDGE))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_CONTEXTHELP))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_RIGHT))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_LEFT))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_RTLREADING))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_LTRREADING))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_LEFTSCROLLBAR))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_RIGHTSCROLLBAR))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_CONTROLPARENT))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_STATICEDGE))
    .value(PY_ENUM(LIEF::PE::EXTENDED_WINDOW_STYLES::WS_EX_APPWINDOW));



  LIEF::enum_<LIEF::PE::WINDOW_STYLES>(m, "WINDOW_STYLES")
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_OVERLAPPED))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_POPUP))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_CHILD))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_MINIMIZE))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_VISIBLE))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_DISABLED))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_CLIPSIBLINGS))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_CLIPCHILDREN))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_MAXIMIZE))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_CAPTION))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_BORDER))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_DLGFRAME))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_VSCROLL))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_HSCROLL))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_SYSMENU))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_THICKFRAME))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_GROUP))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_TABSTOP))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_MINIMIZEBOX))
    .value(PY_ENUM(LIEF::PE::WINDOW_STYLES::WS_MAXIMIZEBOX));


  LIEF::enum_<LIEF::PE::DIALOG_BOX_STYLES>(m, "DIALOG_BOX_STYLES")
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_ABSALIGN))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_SYSMODAL))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_LOCALEDIT))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_SETFONT))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_MODALFRAME))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_NOIDLEMSG))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_SETFOREGROUND))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_3DLOOK))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_FIXEDSYS))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_NOFAILCREATE))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_CONTROL))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_CENTER))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_CENTERMOUSE))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_CONTEXTHELP))
    .value(PY_ENUM(LIEF::PE::DIALOG_BOX_STYLES::DS_SHELLFONT));


  LIEF::enum_<LIEF::PE::FIXED_VERSION_OS>(m, "FIXED_VERSION_OS")
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_DOS))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_NT))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS__WINDOWS16))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS__WINDOWS32))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_OS216))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_OS232))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS__PM16))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS__PM32))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_DOS_WINDOWS16))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_DOS_WINDOWS32))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_NT_WINDOWS32))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_OS216_PM16))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_OS::VOS_OS232_PM32));

  LIEF::enum_<LIEF::PE::FIXED_VERSION_FILE_FLAGS>(m, "FIXED_VERSION_FILE_FLAGS")
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_DEBUG))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_INFOINFERRED))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_PATCHED))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_PRERELEASE))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_PRIVATEBUILD))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_FLAGS::VS_FF_SPECIALBUILD));


  LIEF::enum_<LIEF::PE::FIXED_VERSION_FILE_TYPES>(m, "FIXED_VERSION_FILE_TYPES")
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_APP))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_DLL))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_DRV))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_FONT))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_STATIC_LIB))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_TYPES::VFT_VXD));


  LIEF::enum_<LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES>(m, "FIXED_VERSION_FILE_SUB_TYPES")
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_COMM))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_DISPLAY))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_INSTALLABLE))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_KEYBOARD))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_LANGUAGE))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_MOUSE))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_NETWORK))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_PRINTER))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_SOUND))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_SYSTEM))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_DRV_VERSIONED_PRINTER))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_FONT_RASTER))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_FONT_TRUETYPE))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_FONT_VECTOR))
    .value(PY_ENUM(LIEF::PE::FIXED_VERSION_FILE_SUB_TYPES::VFT2_UNKNOWN));

  LIEF::enum_<LIEF::PE::CODE_PAGES>(m, "CODE_PAGES")
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM037))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM437))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM500))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ASMO_708))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_DOS_720))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM737))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM775))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM850))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM852))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM855))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM857))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM00858))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM860))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM861))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_DOS_862))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM863))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM864))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM865))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_CP866))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM869))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM870))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_874))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_CP875))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_SHIFT_JIS))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_GB2312))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_KS_C_5601_1987))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_BIG5))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM1026))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01047))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01140))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01141))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01142))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01143))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01144))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01145))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01146))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01147))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01148))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM01149))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UTF_16))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UNICODEFFFE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1250))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1251))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1252))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1253))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1254))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1255))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1256))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1257))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_WINDOWS_1258))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_JOHAB))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_MACINTOSH))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_JAPANESE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_CHINESETRAD))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_KOREAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_ARABIC))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_HEBREW))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_GREEK))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_CYRILLIC))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_CHINESESIMP))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_ROMANIAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_UKRAINIAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_THAI))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_CE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_ICELANDIC))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_TURKISH))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_MAC_CROATIAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UTF_32))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UTF_32BE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CHINESE_CNS))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20001))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CHINESE_ETEN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20003))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20004))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20005))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_IA5))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_IA5_GERMAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_IA5_SWEDISH))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_IA5_NORWEGIAN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_US_ASCII))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20261))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20269))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM273))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM277))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM278))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM280))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM284))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM285))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM290))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM297))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM420))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM423))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM424))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_EBCDIC_KOREANEXTENDED))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM_THAI))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_KOI8_R))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM871))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM880))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM905))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_IBM00924))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_EUC_JP_JIS))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20936))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP20949))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_CP1025))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_KOI8_U))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_1))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_2))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_3))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_4))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_5))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_6))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_7))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_8))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_9))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_13))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_15))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_EUROPA))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_8859_8_I))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_2022_JP))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_CSISO2022JP))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_2022_JP_JIS))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_ISO_2022_KR))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_CP50227))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_EUC_JP))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_EUC_CN))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_EUC_KR))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_HZ_GB_2312))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_GB18030))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_DE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_BE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_TA))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_TE))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_AS))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_OR))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_KA))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_MA))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_GU))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_X_ISCII_PA))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UTF_7))
    .value(PY_ENUM(LIEF::PE::CODE_PAGES::CP_UTF_8));

  LIEF::enum_<LIEF::PE::WIN_VERSION>(m, "WIN_VERSION")
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN_SEH))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN8_1))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_9879))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_14286))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_14383))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_14901))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_15002))
    .value(PY_ENUM(LIEF::PE::WIN_VERSION::WIN10_0_16237));

  LIEF::enum_<LIEF::PE::GUARD_CF_FLAGS>(m, "GUARD_CF_FLAGS", py::arithmetic())
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_NONE))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_INSTRUMENTED))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_W_INSTRUMENTED))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_FUNCTION_TABLE_PRESENT))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_EXPORT_SUPPRESSION_INFO_PRESENT))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_ENABLE_EXPORT_SUPPRESSION))
    .value(PY_ENUM(LIEF::PE::GUARD_CF_FLAGS::GCF_LONGJUMP_TABLE_PRESENT));

  LIEF::enum_<LIEF::PE::GUARD_RF_FLAGS>(m, "GUARD_RF_FLAGS", py::arithmetic())
    .value(PY_ENUM(LIEF::PE::GUARD_RF_FLAGS::GRF_INSTRUMENTED))
    .value(PY_ENUM(LIEF::PE::GUARD_RF_FLAGS::GRF_ENABLE))
    .value(PY_ENUM(LIEF::PE::GUARD_RF_FLAGS::GRF_STRICT));

  LIEF::enum_<LIEF::PE::CODE_VIEW_SIGNATURES>(m, "CODE_VIEW_SIGNATURES")
    .value(PY_ENUM(LIEF::PE::CODE_VIEW_SIGNATURES::CVS_UNKNOWN))
    .value(PY_ENUM(LIEF::PE::CODE_VIEW_SIGNATURES::CVS_PDB_70))
    .value(PY_ENUM(LIEF::PE::CODE_VIEW_SIGNATURES::CVS_PDB_20))
    .value(PY_ENUM(LIEF::PE::CODE_VIEW_SIGNATURES::CVS_CV_50))
    .value(PY_ENUM(LIEF::PE::CODE_VIEW_SIGNATURES::CVS_CV_41));
}

}
}