-
Notifications
You must be signed in to change notification settings - Fork 0
/
prime.asm
2040 lines (1762 loc) · 119 KB
/
prime.asm
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
; Disassembly of file: prime.exe
; Fri Dec 01 15:39:34 2017
; Mode: 32 bits
; Syntax: YASM/NASM
; Instruction set: 80486, 80x87
global __minor_image_version__
global __minor_subsystem_version__
global __loader_flags__
global __minor_os_version__
global __dll__
global __major_image_version__
global __subsystem__
global __major_os_version__
global __major_subsystem_version__
global __file_alignment__
global __section_alignment__
global __size_of_heap_commit__
global __size_of_stack_commit__
global __size_of_heap_reserve__
global __size_of_stack_reserve__
global __image_base__
global ___crt_xt_end__
global ___tls_end__
global ___crt_xt_start__
global __end__
global ___crt_xc_start__
global ___crt_xc_end__
global ___crt_xp_end__
global ___crt_xp_start__
global ___crt_xi_end__
global ___crt_xi_start__
global ___crt_xl_start__
global ___tls_start__
global Entry_point: function
global _mainCRTStartup: function
global _WinMainCRTStartup: function
global _atexit: function
global __onexit: function
global ___do_sjlj_init: function
global _main: function
global ___do_global_dtors: function
global ___do_global_ctors: function
global ___main: function
global __pei386_runtime_relocator: function
global ___cpu_features_init: function
global __fpreset: function
global _fpreset: function
global ___w32_sharedptr_initialize: function
global __alloca
global ___chkstk: function
global ___set_app_type
global __cexit: function
global ___p__environ: function
global _signal: function
global ___p__fmode: function
global __setmode: function
global ___getmainargs: function
global _printf: function
global _malloc: function
global _atol: function
global __assert: function
global _free: function
global _abort: function
global _memset: function
global _ExitProcess@4: function
global _SetUnhandledExceptionFilter@4: function
global _GetAtomNameA@12
global _FindAtomA@4
global _AddAtomA@4
global ___CTOR_LIST__
global __CTOR_LIST__
global __DTOR_LIST__
global ___DTOR_LIST__
global __CRT_glob
global __data_start__
global __fmode
global __data_end__
global __RUNTIME_PSEUDO_RELOC_LIST_END__
global __RUNTIME_PSEUDO_RELOC_LIST__
global ___RUNTIME_PSEUDO_RELOC_LIST_END__
global ___RUNTIME_PSEUDO_RELOC_LIST__
global __argv
global __bss_start__
global __argc
global __CRT_fmode
global ___cpu_features
global ___w32_sharedptr_terminate
global ___w32_sharedptr
global ___w32_sharedptr_unexpected
global __bss_end__
global __head_libkernel32_a
global __head_libmsvcrt_a
global __imp__AddAtomA@4
global __imp__ExitProcess@4
global __imp__FindAtomA@4
global __imp__GetAtomNameA@12
global __imp__SetUnhandledExceptionFilter@4
global __imp____getmainargs
global __imp____p__environ
global __imp____p__fmode
global __imp____set_app_type
global __imp___assert
global __imp___cexit
global __imp___iob
global __imp___onexit
global __imp___setmode
global __imp__abort
global __imp__atexit
global __imp__atol
global __imp__free
global __imp__malloc
global __imp__memset
global __imp__printf
global __imp__signal
global __libkernel32_a_iname
global __libmsvcrt_a_iname
extern __ImageBase ; dword
extern AddAtomA ; near; KERNEL32.dll
extern ExitProcess ; near; KERNEL32.dll
extern FindAtomA ; near; KERNEL32.dll
extern GetAtomNameA ; near; KERNEL32.dll
extern SetUnhandledExceptionFilter ; near; KERNEL32.dll
extern __getmainargs ; near; msvcrt.dll
extern __p__environ ; near; msvcrt.dll
extern __p__fmode ; near; msvcrt.dll
extern __set_app_type ; near; msvcrt.dll
extern _assert ; near; msvcrt.dll
extern _cexit ; near; msvcrt.dll
extern _iob ; near; msvcrt.dll
extern _onexit ; near; msvcrt.dll
extern _setmode ; near; msvcrt.dll
extern abort ; near; msvcrt.dll
extern atexit ; near; msvcrt.dll
extern atol ; near; msvcrt.dll
extern free ; near; msvcrt.dll
extern malloc ; near; msvcrt.dll
extern memset ; near; msvcrt.dll
extern printf ; near; msvcrt.dll
extern signal ; near; msvcrt.dll
__minor_image_version__ equ 00000000H ; 0
__minor_subsystem_version__ equ 00000000H ; 0
__loader_flags__ equ 00000000H ; 0
__minor_os_version__ equ 00000000H ; 0
__dll__ equ 00000000H ; 0
__major_image_version__ equ 00000001H ; 1
__subsystem__ equ 00000003H ; 3
__major_os_version__ equ 00000004H ; 4
__major_subsystem_version__ equ 00000004H ; 4
__file_alignment__ equ 00000200H ; 512
__section_alignment__ equ 00001000H ; 4096
__size_of_heap_commit__ equ 00001000H ; 4096
__size_of_stack_commit__ equ 00001000H ; 4096
__size_of_heap_reserve__ equ 00100000H ; 1048576
__size_of_stack_reserve__ equ 00200000H ; 2097152
__image_base__ equ 00400000H ; 4194304
___crt_xt_end__ equ 00406000H ; 4218880
___tls_end__ equ 00406000H ; 4218880
___crt_xt_start__ equ 00406000H ; 4218880
__end__ equ 00406000H ; 4218880
___crt_xc_start__ equ 00406000H ; 4218880
___crt_xc_end__ equ 00406000H ; 4218880
___crt_xp_end__ equ 00406000H ; 4218880
___crt_xp_start__ equ 00406000H ; 4218880
___crt_xi_end__ equ 00406000H ; 4218880
___crt_xi_start__ equ 00406000H ; 4218880
___crt_xl_start__ equ 00406000H ; 4218880
___tls_start__ equ 00406000H ; 4218880
SECTION .text align=1 execute ; section number 1, code
.text: ; Local function
__gnu_exception_handler@4:
push ebp ; 00401000 _ 55
mov ebp, esp ; 00401001 _ 89. E5
sub esp, 24 ; 00401003 _ 83. EC, 18
mov dword [ebp-8H], ebx ; 00401006 _ 89. 5D, F8
mov eax, dword [ebp+8H] ; 00401009 _ 8B. 45, 08
xor ebx, ebx ; 0040100C _ 31. DB
mov dword [ebp-4H], esi ; 0040100E _ 89. 75, FC
mov eax, dword [eax] ; 00401011 _ 8B. 00
xor esi, esi ; 00401013 _ 31. F6
mov eax, dword [eax] ; 00401015 _ 8B. 00
cmp eax, 3221225617 ; 00401017 _ 3D, C0000091
ja ?_005 ; 0040101C _ 77, 43
cmp eax, 3221225613 ; 0040101E _ 3D, C000008D
jc ?_006 ; 00401023 _ 72, 5B
?_001: mov esi, 1 ; 00401025 _ BE, 00000001
?_002: mov dword [esp], 8 ; 0040102A _ C7. 04 24, 00000008
xor edx, edx ; 00401031 _ 31. D2
mov dword [esp+4H], edx ; 00401033 _ 89. 54 24, 04
call _signal ; 00401037 _ E8, 0000094C
cmp eax, 1 ; 0040103C _ 83. F8, 01
jz ?_009 ; 0040103F _ 74, 7A
test eax, eax ; 00401041 _ 85. C0
jz ?_004 ; 00401043 _ 74, 0E
mov dword [esp], 8 ; 00401045 _ C7. 04 24, 00000008
call eax ; 0040104C _ FF. D0
?_003: mov ebx, 4294967295 ; 0040104E _ BB, FFFFFFFF
?_004: mov eax, ebx ; 00401053 _ 89. D8
mov esi, dword [ebp-4H] ; 00401055 _ 8B. 75, FC
mov ebx, dword [ebp-8H] ; 00401058 _ 8B. 5D, F8
mov esp, ebp ; 0040105B _ 89. EC
pop ebp ; 0040105D _ 5D
ret 4 ; 0040105E _ C2, 0004
?_005: cmp eax, 3221225620 ; 00401061 _ 3D, C0000094
jz ?_002 ; 00401066 _ 74, C2
ja ?_008 ; 00401068 _ 77, 4A
cmp eax, 3221225619 ; 0040106A _ 3D, C0000093
jz ?_001 ; 0040106F _ 74, B4
mov eax, ebx ; 00401071 _ 89. D8
mov esi, dword [ebp-4H] ; 00401073 _ 8B. 75, FC
mov ebx, dword [ebp-8H] ; 00401076 _ 8B. 5D, F8
mov esp, ebp ; 00401079 _ 89. EC
pop ebp ; 0040107B _ 5D
ret 4 ; 0040107C _ C2, 0004
; Filling space: 1H
; Filler type: NOP
; db 90H
ALIGN 8
?_006: cmp eax, 3221225477 ; 00401080 _ 3D, C0000005
jz ?_010 ; 00401085 _ 74, 5B
cmp eax, 3221225501 ; 00401087 _ 3D, C000001D
?_007: jnz ?_004 ; 0040108C _ 75, C5
mov dword [esp], 4 ; 0040108E _ C7. 04 24, 00000004
xor esi, esi ; 00401095 _ 31. F6
mov dword [esp+4H], esi ; 00401097 _ 89. 74 24, 04
call _signal ; 0040109B _ E8, 000008E8
cmp eax, 1 ; 004010A0 _ 83. F8, 01
jz ?_011 ; 004010A3 _ 74, 6A
test eax, eax ; 004010A5 _ 85. C0
jz ?_004 ; 004010A7 _ 74, AA
mov dword [esp], 4 ; 004010A9 _ C7. 04 24, 00000004
call eax ; 004010B0 _ FF. D0
jmp ?_003 ; 004010B2 _ EB, 9A
?_008: cmp eax, 3221225622 ; 004010B4 _ 3D, C0000096
jmp ?_007 ; 004010B9 _ EB, D1
?_009: mov dword [esp], 8 ; 004010BB _ C7. 04 24, 00000008
mov eax, 1 ; 004010C2 _ B8, 00000001
mov dword [esp+4H], eax ; 004010C7 _ 89. 44 24, 04
call _signal ; 004010CB _ E8, 000008B8
test esi, esi ; 004010D0 _ 85. F6
je ?_003 ; 004010D2 _ 0F 84, FFFFFF76
call _fpreset ; 004010D8 _ E8, 00000533
jmp ?_003 ; 004010DD _ E9, FFFFFF6C
?_010: mov dword [esp], 11 ; 004010E2 _ C7. 04 24, 0000000B
xor eax, eax ; 004010E9 _ 31. C0
mov dword [esp+4H], eax ; 004010EB _ 89. 44 24, 04
call _signal ; 004010EF _ E8, 00000894
cmp eax, 1 ; 004010F4 _ 83. F8, 01
jz ?_012 ; 004010F7 _ 74, 30
test eax, eax ; 004010F9 _ 85. C0
je ?_004 ; 004010FB _ 0F 84, FFFFFF52
mov dword [esp], 11 ; 00401101 _ C7. 04 24, 0000000B
call eax ; 00401108 _ FF. D0
jmp ?_003 ; 0040110A _ E9, FFFFFF3F
?_011: mov dword [esp], 4 ; 0040110F _ C7. 04 24, 00000004
mov ecx, 1 ; 00401116 _ B9, 00000001
mov dword [esp+4H], ecx ; 0040111B _ 89. 4C 24, 04
call _signal ; 0040111F _ E8, 00000864
jmp ?_003 ; 00401124 _ E9, FFFFFF25
?_012: ; Local function
mov dword [esp], 11 ; 00401129 _ C7. 04 24, 0000000B
mov eax, 1 ; 00401130 _ B8, 00000001
mov dword [esp+4H], eax ; 00401135 _ 89. 44 24, 04
call _signal ; 00401139 _ E8, 0000084A
jmp ?_003 ; 0040113E _ E9, FFFFFF0B
; Filling space: 0DH
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H, 8DH, 0BCH
; db 27H, 00H, 00H, 00H, 00H
ALIGN 16
___mingw_CRTStartup:; Local function
push ebp ; 00401150 _ 55
mov ebp, esp ; 00401151 _ 89. E5
push ebx ; 00401153 _ 53
sub esp, 36 ; 00401154 _ 83. EC, 24
mov dword [esp], __gnu_exception_handler@4 ; 00401157 _ C7. 04 24, 00401000(d)
call _SetUnhandledExceptionFilter@4 ; 0040115E _ E8, 00000885
sub esp, 4 ; 00401163 _ 83. EC, 04
call ___cpu_features_init ; 00401166 _ E8, 000003A5
call _fpreset ; 0040116B _ E8, 000004A0
mov dword [ebp-8H], 0 ; 00401170 _ C7. 45, F8, 00000000
lea eax, [ebp-8H] ; 00401177 _ 8D. 45, F8
mov dword [esp+10H], eax ; 0040117A _ 89. 44 24, 10
mov eax, dword [__data_start__] ; 0040117E _ A1, 00402000(d)
mov dword [esp], __argc ; 00401183 _ C7. 04 24, 00404004(d)
mov dword [esp+0CH], eax ; 0040118A _ 89. 44 24, 0C
lea eax, [ebp-0CH] ; 0040118E _ 8D. 45, F4
mov dword [esp+8H], eax ; 00401191 _ 89. 44 24, 08
mov eax, __bss_start__ ; 00401195 _ B8, 00404000(d)
mov dword [esp+4H], eax ; 0040119A _ 89. 44 24, 04
call ___getmainargs ; 0040119E _ E8, 000007FD
mov eax, dword [__CRT_fmode] ; 004011A3 _ A1, 00404010(d)
test eax, eax ; 004011A8 _ 85. C0
jz ?_015 ; 004011AA _ 74, 64
mov dword [__fmode], eax ; 004011AC _ A3, 00402010(d)
mov edx, dword [imp__iob] ; 004011B1 _ 8B. 15, 004050DC(d)
test edx, edx ; 004011B7 _ 85. D2
jne ?_016 ; 004011B9 _ 0F 85, 000000A1
?_013: cmp edx, -32 ; 004011BF _ 83. FA, E0
jz ?_014 ; 004011C2 _ 74, 1F
mov eax, dword [__CRT_fmode] ; 004011C4 _ A1, 00404010(d)
mov dword [esp+4H], eax ; 004011C9 _ 89. 44 24, 04
mov eax, dword [imp__iob] ; 004011CD _ A1, 004050DC(d)
mov eax, dword [eax+30H] ; 004011D2 _ 8B. 40, 30
mov dword [esp], eax ; 004011D5 _ 89. 04 24
call __setmode ; 004011D8 _ E8, 000007BB
mov edx, dword [imp__iob] ; 004011DD _ 8B. 15, 004050DC(d)
?_014: cmp edx, -64 ; 004011E3 _ 83. FA, C0
jz ?_015 ; 004011E6 _ 74, 28
mov eax, dword [__CRT_fmode] ; 004011E8 _ A1, 00404010(d)
mov dword [esp+4H], eax ; 004011ED _ 89. 44 24, 04
mov eax, dword [imp__iob] ; 004011F1 _ A1, 004050DC(d)
mov eax, dword [eax+50H] ; 004011F6 _ 8B. 40, 50
mov dword [esp], eax ; 004011F9 _ 89. 04 24
call __setmode ; 004011FC _ E8, 00000797
jmp ?_015 ; 00401201 _ EB, 0D
; Filling space: 0DH
; Filler type: NOP
; db 90H, 90H, 90H, 90H, 90H, 90H, 90H, 90H
; db 90H, 90H, 90H, 90H, 90H
ALIGN 16
?_015: call ___p__fmode ; 00401210 _ E8, 0000077B
mov edx, dword [__fmode] ; 00401215 _ 8B. 15, 00402010(d)
mov dword [eax], edx ; 0040121B _ 89. 10
call __pei386_runtime_relocator ; 0040121D _ E8, 000002BE
and esp, 0FFFFFFF0H ; 00401222 _ 83. E4, F0
call ___main ; 00401225 _ E8, 00000296
call ___p__environ ; 0040122A _ E8, 00000751
mov eax, dword [eax] ; 0040122F _ 8B. 00
mov dword [esp+8H], eax ; 00401231 _ 89. 44 24, 08
mov eax, dword [__bss_start__] ; 00401235 _ A1, 00404000(d)
mov dword [esp+4H], eax ; 0040123A _ 89. 44 24, 04
mov eax, dword [__argc] ; 0040123E _ A1, 00404004(d)
mov dword [esp], eax ; 00401243 _ 89. 04 24
call _main ; 00401246 _ E8, 000000A5
mov ebx, eax ; 0040124B _ 89. C3
call __cexit ; 0040124D _ E8, 00000726
mov dword [esp], ebx ; 00401252 _ 89. 1C 24
call _ExitProcess@4 ; 00401255 _ E8, 00000786
; Filling space: 6H
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H
ALIGN 8
?_016: mov dword [esp+4H], eax ; 00401260 _ 89. 44 24, 04
mov eax, dword [imp__iob] ; 00401264 _ A1, 004050DC(d)
mov eax, dword [eax+10H] ; 00401269 _ 8B. 40, 10
mov dword [esp], eax ; 0040126C _ 89. 04 24
call __setmode ; 0040126F _ E8, 00000724
mov edx, dword [imp__iob] ; 00401274 _ 8B. 15, 004050DC(d)
jmp ?_013 ; 0040127A _ E9, FFFFFF40
nop ; 0040127F _ 90
Entry_point:; Function begin
_mainCRTStartup:
push ebp ; 00401280 _ 55
mov ebp, esp ; 00401281 _ 89. E5
sub esp, 8 ; 00401283 _ 83. EC, 08
mov dword [esp], 1 ; 00401286 _ C7. 04 24, 00000001
call near [imp___set_app_type] ; 0040128D _ FF. 15, 004050D0(d)
call ___mingw_CRTStartup ; 00401293 _ E8, FFFFFEB8
nop ; 00401298 _ 90
; Filling space: 7H
; Filler type: lea with same source and destination
; db 8DH, 0B4H, 26H, 00H, 00H, 00H, 00H
ALIGN 8
_WinMainCRTStartup:
push ebp ; 004012A0 _ 55
mov ebp, esp ; 004012A1 _ 89. E5
sub esp, 8 ; 004012A3 _ 83. EC, 08
mov dword [esp], 2 ; 004012A6 _ C7. 04 24, 00000002
call near [imp___set_app_type] ; 004012AD _ FF. 15, 004050D0(d)
call ___mingw_CRTStartup ; 004012B3 _ E8, FFFFFE98
nop ; 004012B8 _ 90
; Filling space: 7H
; Filler type: lea with same source and destination
; db 8DH, 0B4H, 26H, 00H, 00H, 00H, 00H
ALIGN 8
_atexit:
push ebp ; 004012C0 _ 55
mov ecx, dword [imp_atexit] ; 004012C1 _ 8B. 0D, 004050EC(d)
mov ebp, esp ; 004012C7 _ 89. E5
pop ebp ; 004012C9 _ 5D
jmp ecx ; 004012CA _ FF. E1
; Entry_point End of function
; Filling space: 4H
; Filler type: lea with same source and destination
; db 8DH, 74H, 26H, 00H
ALIGN 8
__onexit:; Function begin
push ebp ; 004012D0 _ 55
mov ecx, dword [imp__onexit] ; 004012D1 _ 8B. 0D, 004050E0(d)
mov ebp, esp ; 004012D7 _ 89. E5
pop ebp ; 004012D9 _ 5D
jmp ecx ; 004012DA _ FF. E1
; __onexit End of function
nop ; 004012DC _ 90
nop ; 004012DD _ 90
nop ; 004012DE _ 90
nop ; 004012DF _ 90
.text: ; Local function
___do_sjlj_init:
push ebp ; 004012E0 _ 55
mov ebp, esp ; 004012E1 _ 89. E5
pop ebp ; 004012E3 _ 5D
jmp ___w32_sharedptr_initialize ; 004012E4 _ E9, 000003E7
nop ; 004012E9 _ 90
nop ; 004012EA _ 90
nop ; 004012EB _ 90
nop ; 004012EC _ 90
nop ; 004012ED _ 90
nop ; 004012EE _ 90
nop ; 004012EF _ 90
.text: ; Local function
_main:
push ebp ; 004012F0 _ 55
mov ebp, esp ; 004012F1 _ 89. E5
push ebx ; 004012F3 _ 53
sub esp, 52 ; 004012F4 _ 83. EC, 34
and esp, 0FFFFFFF0H ; 004012F7 _ 83. E4, F0
mov eax, 0 ; 004012FA _ B8, 00000000
add eax, 15 ; 004012FF _ 83. C0, 0F
add eax, 15 ; 00401302 _ 83. C0, 0F
shr eax, 4 ; 00401305 _ C1. E8, 04
shl eax, 4 ; 00401308 _ C1. E0, 04
mov dword [ebp-24H], eax ; 0040130B _ 89. 45, DC
mov eax, dword [ebp-24H] ; 0040130E _ 8B. 45, DC
call ___chkstk ; 00401311 _ E8, 0000062A
call ___main ; 00401316 _ E8, 000001A5
mov eax, dword [ebp+0CH] ; 0040131B _ 8B. 45, 0C
add eax, 4 ; 0040131E _ 83. C0, 04
mov eax, dword [eax] ; 00401321 _ 8B. 00
mov dword [ebp-8H], eax ; 00401323 _ 89. 45, F8
mov eax, dword [ebp-8H] ; 00401326 _ 8B. 45, F8
mov dword [esp], eax ; 00401329 _ 89. 04 24
call _atol ; 0040132C _ E8, 00000687
mov dword [ebp-0CH], eax ; 00401331 _ 89. 45, F4
mov dword [ebp-10H], 3 ; 00401334 _ C7. 45, F0, 00000003
mov eax, dword [ebp-0CH] ; 0040133B _ 8B. 45, F4
mov dword [esp], eax ; 0040133E _ 89. 04 24
call _malloc ; 00401341 _ E8, 0000066A
mov dword [ebp-14H], eax ; 00401346 _ 89. 45, EC
mov eax, dword [ebp-14H] ; 00401349 _ 8B. 45, EC
mov dword [eax], 3 ; 0040134C _ C7. 00, 00000003
mov eax, dword [ebp-14H] ; 00401352 _ 8B. 45, EC
add eax, 4 ; 00401355 _ 83. C0, 04
mov dword [eax], 3 ; 00401358 _ C7. 00, 00000003
mov eax, dword [ebp-14H] ; 0040135E _ 8B. 45, EC
add eax, 8 ; 00401361 _ 83. C0, 08
mov dword [eax], 5 ; 00401364 _ C7. 00, 00000005
mov eax, dword [ebp-14H] ; 0040136A _ 8B. 45, EC
add eax, 12 ; 0040136D _ 83. C0, 0C
mov dword [eax], 7 ; 00401370 _ C7. 00, 00000007
mov dword [ebp-18H], 0 ; 00401376 _ C7. 45, E8, 00000000
mov byte [ebp-19H], 0 ; 0040137D _ C6. 45, E7, 00
mov dword [ebp-18H], 7 ; 00401381 _ C7. 45, E8, 00000007
?_017: mov eax, dword [ebp-18H] ; 00401388 _ 8B. 45, E8
cmp eax, dword [ebp-0CH] ; 0040138B _ 3B. 45, F4
jge ?_023 ; 0040138E _ 7D, 6E
mov dword [ebp-20H], 0 ; 00401390 _ C7. 45, E0, 00000000
mov byte [ebp-19H], 0 ; 00401397 _ C6. 45, E7, 00
?_018: mov eax, dword [ebp-20H] ; 0040139B _ 8B. 45, E0
cmp eax, dword [ebp-10H] ; 0040139E _ 3B. 45, F0
jge ?_020 ; 004013A1 _ 7D, 30
mov eax, dword [ebp-20H] ; 004013A3 _ 8B. 45, E0
lea ecx, [eax*4] ; 004013A6 _ 8D. 0C 85, 00000000
mov edx, dword [ebp-14H] ; 004013AD _ 8B. 55, EC
mov dword [ebp-28H], edx ; 004013B0 _ 89. 55, D8
mov eax, dword [ebp-18H] ; 004013B3 _ 8B. 45, E8
mov ebx, dword [ebp-28H] ; 004013B6 _ 8B. 5D, D8
cdq ; 004013B9 _ 99
idiv dword [ecx+ebx] ; 004013BA _ F7. 3C 19
mov dword [ebp-28H], edx ; 004013BD _ 89. 55, D8
cmp dword [ebp-28H], 0 ; 004013C0 _ 83. 7D, D8, 00
jnz ?_019 ; 004013C4 _ 75, 06
mov byte [ebp-19H], 1 ; 004013C6 _ C6. 45, E7, 01
jmp ?_020 ; 004013CA _ EB, 07
?_019: lea eax, [ebp-20H] ; 004013CC _ 8D. 45, E0
inc dword [eax] ; 004013CF _ FF. 00
jmp ?_018 ; 004013D1 _ EB, C8
?_020: movzx eax, byte [ebp-19H] ; 004013D3 _ 0F B6. 45, E7
cmp eax, 1 ; 004013D7 _ 83. F8, 01
jnz ?_021 ; 004013DA _ 75, 02
jmp ?_022 ; 004013DC _ EB, 18
?_021: lea eax, [ebp-10H] ; 004013DE _ 8D. 45, F0
inc dword [eax] ; 004013E1 _ FF. 00
mov eax, dword [ebp-10H] ; 004013E3 _ 8B. 45, F0
lea ecx, [eax*4] ; 004013E6 _ 8D. 0C 85, 00000000
mov edx, dword [ebp-14H] ; 004013ED _ 8B. 55, EC
mov eax, dword [ebp-18H] ; 004013F0 _ 8B. 45, E8
mov dword [ecx+edx], eax ; 004013F3 _ 89. 04 11
?_022: lea eax, [ebp-18H] ; 004013F6 _ 8D. 45, E8
add dword [eax], 2 ; 004013F9 _ 83. 00, 02
jmp ?_017 ; 004013FC _ EB, 8A
?_023: ; Local function
mov eax, dword [ebp-10H] ; 004013FE _ 8B. 45, F0
lea edx, [eax*4] ; 00401401 _ 8D. 14 85, 00000000
mov eax, dword [ebp-14H] ; 00401408 _ 8B. 45, EC
mov eax, dword [edx+eax] ; 0040140B _ 8B. 04 02
mov dword [esp+4H], eax ; 0040140E _ 89. 44 24, 04
mov dword [esp], ?_062 ; 00401412 _ C7. 04 24, 00403000(d)
call _printf ; 00401419 _ E8, 0000058A
mov eax, 0 ; 0040141E _ B8, 00000000
mov ebx, dword [ebp-4H] ; 00401423 _ 8B. 5D, FC
leave ; 00401426 _ C9
ret ; 00401427 _ C3
nop ; 00401428 _ 90
nop ; 00401429 _ 90
nop ; 0040142A _ 90
nop ; 0040142B _ 90
nop ; 0040142C _ 90
nop ; 0040142D _ 90
nop ; 0040142E _ 90
nop ; 0040142F _ 90
.text: ; Local function
___do_global_dtors:
.text:
.text:
.text: push ebp ; 00401430 _ 55
mov ebp, esp ; 00401431 _ 89. E5
sub esp, 8 ; 00401433 _ 83. EC, 08
mov eax, dword [p.0] ; 00401436 _ A1, 00402020(d)
cmp dword [eax], 0 ; 0040143B _ 83. 38, 00
jz ?_025 ; 0040143E _ 74, 17
?_024: call near [eax] ; 00401440 _ FF. 10
mov edx, dword [p.0] ; 00401442 _ 8B. 15, 00402020(d)
lea eax, [edx+4H] ; 00401448 _ 8D. 42, 04
mov edx, dword [edx+4H] ; 0040144B _ 8B. 52, 04
mov dword [p.0], eax ; 0040144E _ A3, 00402020(d)
test edx, edx ; 00401453 _ 85. D2
jnz ?_024 ; 00401455 _ 75, E9
?_025: leave ; 00401457 _ C9
ret ; 00401458 _ C3
; Filling space: 7H
; Filler type: lea with same source and destination
; db 8DH, 0B4H, 26H, 00H, 00H, 00H, 00H
ALIGN 8
___do_global_ctors:; Function begin
push ebp ; 00401460 _ 55
mov ebp, esp ; 00401461 _ 89. E5
push ebx ; 00401463 _ 53
sub esp, 4 ; 00401464 _ 83. EC, 04
mov eax, dword [__CTOR_LIST__] ; 00401467 _ A1, 00401A20(d)
cmp eax, -1 ; 0040146C _ 83. F8, FF
jz ?_029 ; 0040146F _ 74, 29
?_026: test eax, eax ; 00401471 _ 85. C0
mov ebx, eax ; 00401473 _ 89. C3
jz ?_028 ; 00401475 _ 74, 13
; Filling space: 9H
; Filler type: mov with same source and destination
; db 89H, 0F6H, 8DH, 0BCH, 27H, 00H, 00H, 00H
; db 00H
ALIGN 16
?_027: call near [__CTOR_LIST__+ebx*4] ; 00401480 _ FF. 14 9D, 00401A20(d)
dec ebx ; 00401487 _ 4B
jnz ?_027 ; 00401488 _ 75, F6
?_028: mov dword [esp], ___do_global_dtors ; 0040148A _ C7. 04 24, 00401430(d)
call _atexit ; 00401491 _ E8, FFFFFE2A
pop ecx ; 00401496 _ 59
pop ebx ; 00401497 _ 5B
pop ebp ; 00401498 _ 5D
ret ; 00401499 _ C3
; ___do_global_ctors End of function
?_029: ; Local function
xor eax, eax ; 0040149A _ 31. C0
cmp dword [.ctors], 0 ; 0040149C _ 83. 3D, 00401A24(d), 00
jmp ?_031 ; 004014A3 _ EB, 0A
?_030: inc eax ; 004014A5 _ 40
mov ebx, dword [.ctors+eax*4] ; 004014A6 _ 8B. 1C 85, 00401A24(d)
test ebx, ebx ; 004014AD _ 85. DB
?_031: jnz ?_030 ; 004014AF _ 75, F4
jmp ?_026 ; 004014B1 _ EB, BE
; Filling space: 0DH
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H, 8DH, 0BCH
; db 27H, 00H, 00H, 00H, 00H
ALIGN 16
___main:; Function begin
push ebp ; 004014C0 _ 55
mov eax, dword [.bss] ; 004014C1 _ A1, 00404020(d)
mov ebp, esp ; 004014C6 _ 89. E5
test eax, eax ; 004014C8 _ 85. C0
jz ?_032 ; 004014CA _ 74, 04
pop ebp ; 004014CC _ 5D
ret ; 004014CD _ C3
; Filling space: 2H
; Filler type: NOP with prefixes
; db 66H, 90H
ALIGN 8
?_032: pop ebp ; 004014D0 _ 5D
mov eax, 1 ; 004014D1 _ B8, 00000001
mov dword [.bss], eax ; 004014D6 _ A3, 00404020(d)
jmp ___do_global_ctors ; 004014DB _ EB, 83
; ___main End of function
nop ; 004014DD _ 90
nop ; 004014DE _ 90
nop ; 004014DF _ 90
.text: ; Local function
__pei386_runtime_relocator:
push ebp ; 004014E0 _ 55
mov ecx, ___RUNTIME_PSEUDO_RELOC_LIST__ ; 004014E1 _ B9, 004030D0(d)
mov ebp, esp ; 004014E6 _ 89. E5
jmp ?_034 ; 004014E8 _ EB, 14
; Filling space: 6H
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H
ALIGN 8
?_033: mov edx, dword [ecx+4H] ; 004014F0 _ 8B. 51, 04
mov eax, dword [ecx] ; 004014F3 _ 8B. 01
add ecx, 8 ; 004014F5 _ 83. C1, 08
add dword [__ImageBase+edx], eax ; 004014F8 _ 01. 82, 00400000(d)
?_034: cmp ecx, 4206800 ; 004014FE _ 81. F9, 004030D0
jc ?_033 ; 00401504 _ 72, EA
pop ebp ; 00401506 _ 5D
ret ; 00401507 _ C3
nop ; 00401508 _ 90
nop ; 00401509 _ 90
nop ; 0040150A _ 90
nop ; 0040150B _ 90
nop ; 0040150C _ 90
nop ; 0040150D _ 90
nop ; 0040150E _ 90
nop ; 0040150F _ 90
.text: ; Local function
___cpu_features_init:
push ebp ; 00401510 _ 55
mov ebp, esp ; 00401511 _ 89. E5
push ebx ; 00401513 _ 53
pushfd ; 00401514 _ 9C
pushfd ; 00401515 _ 9C
pop eax ; 00401516 _ 58
mov ebx, eax ; 00401517 _ 89. C3
xor eax, 200000H ; 00401519 _ 35, 00200000
push eax ; 0040151E _ 50
popfd ; 0040151F _ 9D
pushfd ; 00401520 _ 9C
pop eax ; 00401521 _ 58
popfd ; 00401522 _ 9D
xor eax, ebx ; 00401523 _ 31. D8
test eax, 200000H ; 00401525 _ A9, 00200000
je ?_043 ; 0040152A _ 0F 84, 000000C0
xor eax, eax ; 00401530 _ 31. C0
cpuid ; 00401532 _ 0F A2
test eax, eax ; 00401534 _ 85. C0
je ?_043 ; 00401536 _ 0F 84, 000000B4
mov eax, 1 ; 0040153C _ B8, 00000001
cpuid ; 00401541 _ 0F A2
test dh, 01H ; 00401543 _ F6. C6, 01
jne ?_044 ; 00401546 _ 0F 85, 000000A7
?_035: mov eax, edx ; 0040154C _ 89. D0
and eax, 8000H ; 0040154E _ 25, 00008000
test ax, ax ; 00401553 _ 66: 85. C0
jz ?_036 ; 00401556 _ 74, 07
or dword [___cpu_features], 02H ; 00401558 _ 83. 0D, 00404030(d), 02
?_036: test edx, 800000H ; 0040155F _ F7. C2, 00800000
jz ?_037 ; 00401565 _ 74, 07
or dword [___cpu_features], 04H ; 00401567 _ 83. 0D, 00404030(d), 04
?_037: test edx, 1000000H ; 0040156E _ F7. C2, 01000000
jz ?_038 ; 00401574 _ 74, 07
or dword [___cpu_features], 08H ; 00401576 _ 83. 0D, 00404030(d), 08
?_038: test edx, 2000000H ; 0040157D _ F7. C2, 02000000
jz ?_039 ; 00401583 _ 74, 07
or dword [___cpu_features], 10H ; 00401585 _ 83. 0D, 00404030(d), 10
?_039: and edx, 4000000H ; 0040158C _ 81. E2, 04000000
jz ?_040 ; 00401592 _ 74, 07
or dword [___cpu_features], 20H ; 00401594 _ 83. 0D, 00404030(d), 20
?_040: test cl, 01H ; 0040159B _ F6. C1, 01
jz ?_041 ; 0040159E _ 74, 07
or dword [___cpu_features], 40H ; 004015A0 _ 83. 0D, 00404030(d), 40
?_041: test ch, 20H ; 004015A7 _ F6. C5, 20
jz ?_042 ; 004015AA _ 74, 0A
or dword [___cpu_features], 80H ; 004015AC _ 81. 0D, 00404030(d), 00000080
?_042: mov eax, 2147483648 ; 004015B6 _ B8, 80000000
cpuid ; 004015BB _ 0F A2
cmp eax, 2147483648 ; 004015BD _ 3D, 80000000
jbe ?_043 ; 004015C2 _ 76, 2C
mov eax, 2147483649 ; 004015C4 _ B8, 80000001
cpuid ; 004015C9 _ 0F A2
mov eax, dword [___cpu_features] ; 004015CB _ A1, 00404030(d)
mov ecx, eax ; 004015D0 _ 89. C1
or ecx, 100H ; 004015D2 _ 81. C9, 00000100
and edx, 40000000H ; 004015D8 _ 81. E2, 40000000
jz ?_045 ; 004015DE _ 74, 1F
or eax, 300H ; 004015E0 _ 0D, 00000300
mov dword [___cpu_features], eax ; 004015E5 _ A3, 00404030(d)
; Filling space: 6H
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H
ALIGN 8
?_043: pop ebx ; 004015F0 _ 5B
pop ebp ; 004015F1 _ 5D
ret ; 004015F2 _ C3
?_044: or dword [___cpu_features], 01H ; 004015F3 _ 83. 0D, 00404030(d), 01
jmp ?_035 ; 004015FA _ E9, FFFFFF4D
?_045: ; Local function
pop ebx ; 004015FF _ 5B
mov dword [___cpu_features], ecx ; 00401600 _ 89. 0D, 00404030(d)
pop ebp ; 00401606 _ 5D
ret ; 00401607 _ C3
nop ; 00401608 _ 90
nop ; 00401609 _ 90
nop ; 0040160A _ 90
nop ; 0040160B _ 90
nop ; 0040160C _ 90
nop ; 0040160D _ 90
nop ; 0040160E _ 90
nop ; 0040160F _ 90
.text: ; Local function
__fpreset:
_fpreset:
push ebp ; 00401610 _ 55
mov ebp, esp ; 00401611 _ 89. E5
fninit ; 00401613 _ DB. E3
pop ebp ; 00401615 _ 5D
ret ; 00401616 _ C3
nop ; 00401617 _ 90
nop ; 00401618 _ 90
nop ; 00401619 _ 90
nop ; 0040161A _ 90
nop ; 0040161B _ 90
nop ; 0040161C _ 90
nop ; 0040161D _ 90
nop ; 0040161E _ 90
nop ; 0040161F _ 90
.text: ; Local function
___w32_sharedptr_default_unexpected:
.text: push ebp ; 00401620 _ 55
mov eax, dword [___w32_sharedptr] ; 00401621 _ A1, 004040A0(d)
mov ebp, esp ; 00401626 _ 89. E5
pop ebp ; 00401628 _ 5D
mov ecx, dword [eax+4H] ; 00401629 _ 8B. 48, 04
jmp ecx ; 0040162C _ FF. E1
; Filling space: 2H
; Filler type: mov with same source and destination
; db 89H, 0F6H
ALIGN 8
___w32_sharedptr_get:; Local function
push ebp ; 00401630 _ 55
mov edx, 66 ; 00401631 _ BA, 00000042
mov ebp, esp ; 00401636 _ 89. E5
push ebx ; 00401638 _ 53
movzx eax, ax ; 00401639 _ 0F B7. C0
sub esp, 100 ; 0040163C _ 83. EC, 64
mov dword [esp+8H], edx ; 0040163F _ 89. 54 24, 08
lea edx, [ebp-58H] ; 00401643 _ 8D. 55, A8
xor ebx, ebx ; 00401646 _ 31. DB
mov dword [esp+4H], edx ; 00401648 _ 89. 54 24, 04
mov dword [esp], eax ; 0040164C _ 89. 04 24
call near [imp_GetAtomNameA] ; 0040164F _ FF. 15, 004050B4(d)
mov edx, 31 ; 00401655 _ BA, 0000001F
mov ecx, 1 ; 0040165A _ B9, 00000001
sub esp, 12 ; 0040165F _ 83. EC, 0C
test eax, eax ; 00401662 _ 85. C0
jnz ?_047 ; 00401664 _ 75, 07
jmp ?_050 ; 00401666 _ EB, 3D
?_046: add ecx, ecx ; 00401668 _ 01. C9
dec edx ; 0040166A _ 4A
js ?_048 ; 0040166B _ 78, 0E
?_047: cmp byte [edx+ebp-58H], 65 ; 0040166D _ 80. 7C 2A, A8, 41
jnz ?_046 ; 00401672 _ 75, F4
or ebx, ecx ; 00401674 _ 09. CB
add ecx, ecx ; 00401676 _ 01. C9
dec edx ; 00401678 _ 4A
jns ?_047 ; 00401679 _ 79, F2
?_048: cmp dword [ebx], 84 ; 0040167B _ 83. 3B, 54
jnz ?_049 ; 0040167E _ 75, 07
mov eax, ebx ; 00401680 _ 89. D8
mov ebx, dword [ebp-4H] ; 00401682 _ 8B. 5D, FC
leave ; 00401685 _ C9
ret ; 00401686 _ C3
?_049: mov dword [esp], ?_071 ; 00401687 _ C7. 04 24, 00403034(d)
mov edx, 247 ; 0040168E _ BA, 000000F7
mov eax, ?_072 ; 00401693 _ B8, 00403064(d)
mov dword [esp+8H], edx ; 00401698 _ 89. 54 24, 08
mov dword [esp+4H], eax ; 0040169C _ 89. 44 24, 04
call __assert ; 004016A0 _ E8, 0000031B
?_050: mov dword [esp], ?_073 ; 004016A5 _ C7. 04 24, 00403098(d)
mov ebx, 241 ; 004016AC _ BB, 000000F1
mov ecx, ?_072 ; 004016B1 _ B9, 00403064(d)
mov dword [esp+8H], ebx ; 004016B6 _ 89. 5C 24, 08
mov dword [esp+4H], ecx ; 004016BA _ 89. 4C 24, 04
call __assert ; 004016BE _ E8, 000002FD
; Filling space: 0DH
; Filler type: lea with same source and destination
; db 8DH, 0B6H, 00H, 00H, 00H, 00H, 8DH, 0BCH
; db 27H, 00H, 00H, 00H, 00H
ALIGN 16
___w32_sharedptr_initialize:
push ebp ; 004016D0 _ 55
mov ebp, esp ; 004016D1 _ 89. E5
push edi ; 004016D3 _ 57
push esi ; 004016D4 _ 56
push ebx ; 004016D5 _ 53
sub esp, 188 ; 004016D6 _ 81. EC, 000000BC
mov edi, dword [___w32_sharedptr] ; 004016DC _ 8B. 3D, 004040A0(d)
test edi, edi ; 004016E2 _ 85. FF
jz ?_051 ; 004016E4 _ 74, 08
lea esp, [ebp-0CH] ; 004016E6 _ 8D. 65, F4
pop ebx ; 004016E9 _ 5B
pop esi ; 004016EA _ 5E
pop edi ; 004016EB _ 5F
pop ebp ; 004016EC _ 5D
ret ; 004016ED _ C3
?_051: ; Local function
mov dword [ebp-68H], 1094795585 ; 004016EE _ C7. 45, 98, 41414141
mov eax, dword [_w32_atom_suffix] ; 004016F5 _ A1, 00403010(d)
lea edi, [ebp-68H] ; 004016FA _ 8D. 7D, 98
mov dword [ebp-64H], 1094795585 ; 004016FD _ C7. 45, 9C, 41414141
mov dword [ebp-60H], 1094795585 ; 00401704 _ C7. 45, A0, 41414141
mov dword [ebp-48H], eax ; 0040170B _ 89. 45, B8
mov eax, dword [?_063] ; 0040170E _ A1, 00403014(d)
mov dword [ebp-5CH], 1094795585 ; 00401713 _ C7. 45, A4, 41414141
mov dword [ebp-58H], 1094795585 ; 0040171A _ C7. 45, A8, 41414141
mov dword [ebp-44H], eax ; 00401721 _ 89. 45, BC
mov eax, dword [?_064] ; 00401724 _ A1, 00403018(d)
mov dword [ebp-54H], 1094795585 ; 00401729 _ C7. 45, AC, 41414141
mov dword [ebp-50H], 1094795585 ; 00401730 _ C7. 45, B0, 41414141
mov dword [ebp-40H], eax ; 00401737 _ 89. 45, C0
mov eax, dword [?_065] ; 0040173A _ A1, 0040301C(d)
mov dword [ebp-4CH], 1094795585 ; 0040173F _ C7. 45, B4, 41414141
mov dword [ebp-3CH], eax ; 00401746 _ 89. 45, C4
mov eax, dword [?_066] ; 00401749 _ A1, 00403020(d)
mov dword [ebp-38H], eax ; 0040174E _ 89. 45, C8
mov eax, dword [?_067] ; 00401751 _ A1, 00403024(d)
mov dword [ebp-34H], eax ; 00401756 _ 89. 45, CC
mov eax, dword [?_068] ; 00401759 _ A1, 00403028(d)
mov dword [ebp-30H], eax ; 0040175E _ 89. 45, D0
mov eax, dword [?_069] ; 00401761 _ A1, 0040302C(d)
mov dword [ebp-2CH], eax ; 00401766 _ 89. 45, D4
movzx eax, word [?_070] ; 00401769 _ 0F B7. 05, 00403030(d)
mov word [ebp-28H], ax ; 00401770 _ 66: 89. 45, D8
mov dword [esp], edi ; 00401774 _ 89. 3C 24
call near [imp_FindAtomA] ; 00401777 _ FF. 15, 004050B0(d)
movzx eax, ax ; 0040177D _ 0F B7. C0
sub esp, 4 ; 00401780 _ 83. EC, 04
test eax, eax ; 00401783 _ 85. C0
jne ?_055 ; 00401785 _ 0F 85, 00000171
mov dword [esp], 84 ; 0040178B _ C7. 04 24, 00000054
call _malloc ; 00401792 _ E8, 00000219
test eax, eax ; 00401797 _ 85. C0
mov ebx, eax ; 00401799 _ 89. C3
je ?_058 ; 0040179B _ 0F 84, 0000018F
mov dword [esp], eax ; 004017A1 _ 89. 04 24
xor ecx, ecx ; 004017A4 _ 31. C9
mov esi, 84 ; 004017A6 _ BE, 00000054
mov dword [esp+4H], ecx ; 004017AB _ 89. 4C 24, 04
mov dword [esp+8H], esi ; 004017AF _ 89. 74 24, 08
call _memset ; 004017B3 _ E8, 00000220
mov dword [ebx+4H], _abort ; 004017B8 _ C7. 43, 04, 004019D0(d)
mov ecx, 1 ; 004017BF _ B9, 00000001
mov dword [ebx+8H], .text ; 004017C4 _ C7. 43, 08, 00401620(d)
mov eax, dword [dw2_object_mutex.0] ; 004017CB _ A1, 00404050(d)
mov dword [ebx], 84 ; 004017D0 _ C7. 03, 00000054
mov edx, dword [?_074] ; 004017D6 _ 8B. 15, 00404054(d)
mov dword [ebx+28H], 0 ; 004017DC _ C7. 43, 28, 00000000
mov dword [ebx+14H], eax ; 004017E3 _ 89. 43, 14
mov eax, dword [.data] ; 004017E6 _ A1, 00402030(d)
mov dword [ebx+18H], edx ; 004017EB _ 89. 53, 18
mov edx, dword [?_059] ; 004017EE _ 8B. 15, 00402034(d)
mov dword [ebx+1CH], eax ; 004017F4 _ 89. 43, 1C
mov eax, dword [sjl_fc_key.2] ; 004017F7 _ A1, 00404060(d)
mov dword [ebx+2CH], -1 ; 004017FC _ C7. 43, 2C, FFFFFFFF
mov dword [ebx+20H], edx ; 00401803 _ 89. 53, 20
mov dword [ebx+30H], eax ; 00401806 _ 89. 43, 30
mov eax, dword [sjl_once.3] ; 00401809 _ A1, 00402038(d)
mov edx, dword [?_060] ; 0040180E _ 8B. 15, 0040203C(d)
mov dword [ebx+34H], eax ; 00401814 _ 89. 43, 34
mov eax, dword [eh_globals_static.4] ; 00401817 _ A1, 00404070(d)
mov dword [ebx+38H], edx ; 0040181C _ 89. 53, 38
mov edx, dword [?_075] ; 0040181F _ 8B. 15, 00404074(d)
mov dword [ebx+3CH], eax ; 00401825 _ 89. 43, 3C
mov eax, dword [eh_globals_key.5] ; 00401828 _ A1, 00404080(d)
mov dword [ebx+44H], -1 ; 0040182D _ C7. 43, 44, FFFFFFFF
mov dword [ebx+40H], edx ; 00401834 _ 89. 53, 40
mov dword [ebx+48H], eax ; 00401837 _ 89. 43, 48
mov edx, dword [?_061] ; 0040183A _ 8B. 15, 00402044(d)
mov eax, dword [eh_globals_once.6] ; 00401840 _ A1, 00402040(d)
mov dword [ebx+50H], edx ; 00401845 _ 89. 53, 50
mov edx, 31 ; 00401848 _ BA, 0000001F
mov dword [ebx+4CH], eax ; 0040184D _ 89. 43, 4C
?_052: mov eax, ebx ; 00401850 _ 89. D8
and eax, ecx ; 00401852 _ 21. C8
cmp eax, 1 ; 00401854 _ 83. F8, 01
sbb eax, eax ; 00401857 _ 19. C0
and al, 20H ; 00401859 _ 24, 20
add ecx, ecx ; 0040185B _ 01. C9
add al, 65 ; 0040185D _ 04, 41
mov byte [edx+ebp-0B8H], al ; 0040185F _ 88. 84 2A, FFFFFF48
dec edx ; 00401866 _ 4A
jns ?_052 ; 00401867 _ 79, E7
mov eax, dword [_w32_atom_suffix] ; 00401869 _ A1, 00403010(d)
mov dword [ebp-98H], eax ; 0040186E _ 89. 85, FFFFFF68
mov eax, dword [?_063] ; 00401874 _ A1, 00403014(d)
mov dword [ebp-94H], eax ; 00401879 _ 89. 85, FFFFFF6C
mov eax, dword [?_064] ; 0040187F _ A1, 00403018(d)
mov dword [ebp-90H], eax ; 00401884 _ 89. 85, FFFFFF70
mov eax, dword [?_065] ; 0040188A _ A1, 0040301C(d)
mov dword [ebp-8CH], eax ; 0040188F _ 89. 85, FFFFFF74
mov eax, dword [?_066] ; 00401895 _ A1, 00403020(d)
mov dword [ebp-88H], eax ; 0040189A _ 89. 85, FFFFFF78
mov eax, dword [?_067] ; 004018A0 _ A1, 00403024(d)
mov dword [ebp-84H], eax ; 004018A5 _ 89. 85, FFFFFF7C
mov eax, dword [?_068] ; 004018AB _ A1, 00403028(d)
mov dword [ebp-80H], eax ; 004018B0 _ 89. 45, 80
mov eax, dword [?_069] ; 004018B3 _ A1, 0040302C(d)
mov dword [ebp-7CH], eax ; 004018B8 _ 89. 45, 84
movzx eax, word [?_070] ; 004018BB _ 0F B7. 05, 00403030(d)
mov word [ebp-78H], ax ; 004018C2 _ 66: 89. 45, 88
lea eax, [ebp-0B8H] ; 004018C6 _ 8D. 85, FFFFFF48
mov dword [esp], eax ; 004018CC _ 89. 04 24
call near [imp_AddAtomA] ; 004018CF _ FF. 15, 004050A8(d)
movzx esi, ax ; 004018D5 _ 0F B7. F0
sub esp, 4 ; 004018D8 _ 83. EC, 04
test esi, esi ; 004018DB _ 85. F6
jnz ?_057 ; 004018DD _ 75, 42
?_053: xor edx, edx ; 004018DF _ 31. D2
?_054: test edx, edx ; 004018E1 _ 85. D2
jnz ?_056 ; 004018E3 _ 75, 1E
mov dword [esp], ebx ; 004018E5 _ 89. 1C 24
call _free ; 004018E8 _ E8, 000000DB
mov dword [esp], edi ; 004018ED _ 89. 3C 24
call near [imp_FindAtomA] ; 004018F0 _ FF. 15, 004050B0(d)
sub esp, 4 ; 004018F6 _ 83. EC, 04