-
Notifications
You must be signed in to change notification settings - Fork 1
/
Halt7.asm
3877 lines (3874 loc) · 89.1 KB
/
Halt7.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
; Listing generated by Microsoft (R) Optimizing Compiler Version 19.16.27049.0
TITLE D:\__HP_Stream\__NLU_Notes\__Work_In_Progress\__Halt_Decider_X86\___x86utm_VS\Halt7.c
.686P
.XMM
include listing.inc
.model flat
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC _BEGIN
PUBLIC _Heap_PTR
PUBLIC _Heap_END
PUBLIC _END
_DATA SEGMENT
_BEGIN DB 'BEGIN STATIC DATA', 00H
ORG $+2
_Heap_PTR DD 011111111H
_Heap_END DD 022222222H
_END DB 'END STATIC DATA', 00H
_DATA ENDS
PUBLIC _OutputString
PUBLIC _Output
PUBLIC _Allocate
PUBLIC _SaveState
PUBLIC _LoadState
PUBLIC _DebugStep
PUBLIC _PushBack
PUBLIC _StackPush
PUBLIC _get_code_end
PUBLIC _Last_Address_Of_Operating_System
PUBLIC _Output_Decoded
PUBLIC _CopyMachineCode
PUBLIC _Infinite_Loop_Needs_To_Be_Aborted_Trace
PUBLIC _Infinite_Recursion_Needs_To_Be_Aborted_Trace
PUBLIC _Infinite_Simulation_Needs_To_Be_Aborted_Trace0
PUBLIC _Needs_To_Be_Aborted0
PUBLIC _Decide_Halting0
PUBLIC _Init_slave_state0
PUBLIC _Infinite_Simulation_Needs_To_Be_Aborted_Trace
PUBLIC _Needs_To_Be_Aborted
PUBLIC _Decide_Halting
PUBLIC _Init_slave_state
PUBLIC _Needs_To_Be_Aborted_Trace_HH
PUBLIC _Needs_To_Be_Aborted_HH
PUBLIC _Decide_Halting_HH
PUBLIC _Init_Halts_HH
PUBLIC _HH1
PUBLIC _HH
PUBLIC _HHH1
PUBLIC _HHH
PUBLIC _Address_of_Sipser_H
PUBLIC _H1
PUBLIC _H
PUBLIC _Sipser_H
PUBLIC _Kozen_K
PUBLIC _H0
PUBLIC _T
PUBLIC _Halts
PUBLIC _Infinite_Loop2
PUBLIC _Infinite_Loop3
PUBLIC _Add3
PUBLIC _HR
PUBLIC _PR
PUBLIC _Simulate
PUBLIC _Py
PUBLIC _Pz
PUBLIC _Px
PUBLIC _Kozen_N
PUBLIC _P
PUBLIC _E
PUBLIC _D0
PUBLIC _X
PUBLIC _Y
PUBLIC _B
PUBLIC _Infinite_Recursion3
PUBLIC _Infinite_Recursion2
PUBLIC _factorial
PUBLIC _This_Halts
PUBLIC _Recursion_Chain_01
PUBLIC _Recursion_Chain_02
PUBLIC _Recursion_Chain_03
PUBLIC _D
PUBLIC _PP
PUBLIC _HHHxyz
PUBLIC _Strachey_P
PUBLIC _Infinite_Recursion
PUBLIC _Infinite_Loop
PUBLIC _DD
PUBLIC _Sipser_D
PUBLIC _DDD
PUBLIC _main
_DATA SEGMENT
$SG9419 DB 'source[N]: ', 00H
$SG9420 DB 'CopyMachineCode destination[-1]: ', 00H
ORG $+2
$SG9421 DB 'CopyMachineCode destination[-2]: ', 00H
ORG $+2
$SG9542 DB 'Infinite Loop Detected Simulation Stopped', 0aH, 0aH, 00H
$SG9544 DB 'Infinite Recursion Detected Simulation Stopped', 0aH, 0aH
DB 00H
ORG $+3
$SG9546 DB 'Simulation Detected Simulation Stopped', 0aH, 0aH, 00H
ORG $+3
$SG9645 DB 'Infinite Loop Detected Simulation Stopped', 0aH, 0aH, 00H
$SG9647 DB 'Infinite Recursion Detected Simulation Stopped', 0aH, 0aH
DB 00H
ORG $+3
$SG9649 DB 'Recursive Simulation Detected Simulation Stopped', 0aH, 0aH
DB 00H
ORG $+1
$SG9687 DB 'Local Halt Decider: Infinite Loop Detected Simulation St'
DB 'opped', 0aH, 0aH, 00H
$SG9693 DB 'Local Halt Decider: Infinite Recursion Detected Simulati'
DB 'on Stopped', 0aH, 0aH, 00H
ORG $+3
$SG9774 DB 'New slave_stack at:', 00H
$SG9916 DB 0aH, 'H1: Begin Simulation Execution Trace Stored at:', 00H
ORG $+1
$SG9776 DB 0aH, 'Begin Local Halt Decider Simulation Execution Tra'
DB 'ce Stored at:', 00H
ORG $+2
$SG9917 DB 'Address_of_H1:', 00H
ORG $+1
$SG9919 DB 'H1: ', 00H
ORG $+3
$SG9920 DB 'H1: End Simulation Input Terminated Normally', 0aH, 0aH
DB 00H
ORG $+3
$SG9954 DB 0aH, 'H: Begin Simulation Execution Trace Stored at:', 00H
ORG $+2
$SG9955 DB 'Address_of_H:', 00H
ORG $+2
$SG9957 DB 'H: ', 00H
$SG9958 DB 'H: End Simulation Input Terminated Normally', 0aH, 0aH
DB 00H
$SG9992 DB 0aH, 'Sipser_H: Begin Simulation Execution Trace Stored'
DB ' at:', 00H
ORG $+3
$SG9993 DB 'Address_of_Sipser_H:', 00H
ORG $+3
$SG9995 DB 'Sipser_H: ', 00H
ORG $+1
$SG9996 DB 'Sipser_H: End Simulation Input Terminated Normally', 0aH
DB 0aH, 00H
ORG $+1
$SG10030 DB 0aH, 'H: Begin Simulation Execution Trace Stored at:', 00H
ORG $+2
$SG10031 DB 'Address_of_Kozen_K:', 00H
$SG10033 DB 'Kozen_K: ', 00H
ORG $+2
$SG10034 DB 'Kozen_K: End Simulation Input Terminated Normally', 0aH
DB 0aH, 00H
ORG $+2
$SG10061 DB 0aH, 'H0: Begin Simulation Execution Trace Stored at:', 00H
ORG $+1
$SG10062 DB 'Address_of_H0:', 00H
ORG $+1
$SG10064 DB 'H0: ', 00H
ORG $+3
$SG10065 DB 'H: End Simulation Input Terminated Normally', 0aH, 0aH
DB 00H
$SG10092 DB 0aH, 'T: Begin Simulation Execution Trace Stored at:', 00H
ORG $+2
$SG10093 DB 'Address_of_T:', 00H
ORG $+2
$SG10095 DB 'T: ', 00H
$SG10096 DB 'H: End Simulation Input Terminated Normally', 0aH, 0aH
DB 00H
$SG10266 DB 'Input_Halts = ', 00H
_DATA ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_main PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1373
push ebp
mov ebp, esp
; Line 1377
push OFFSET _DDD
call _HHH
add esp, 4
push eax
push OFFSET $SG10266
call _Output
add esp, 8
; Line 1382
xor eax, eax
; Line 1383
pop ebp
ret 0
_main ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_DDD PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1367
push ebp
mov ebp, esp
; Line 1368
push OFFSET _DDD
call _HHH
add esp, 4
; Line 1370
pop ebp
ret 0
_DDD ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_M$ = 8 ; size = 4
_Sipser_D PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1354
push ebp
mov ebp, esp
; Line 1355
mov eax, DWORD PTR _M$[ebp]
push eax
mov ecx, DWORD PTR _M$[ebp]
push ecx
call _HH
add esp, 8
test eax, eax
je SHORT $LN2@Sipser_D
; Line 1356
xor eax, eax
jmp SHORT $LN1@Sipser_D
$LN2@Sipser_D:
; Line 1357
mov eax, 1
$LN1@Sipser_D:
; Line 1358
pop ebp
ret 0
_Sipser_D ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_x$ = 8 ; size = 4
_DD PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1346
push ebp
mov ebp, esp
push ecx
; Line 1347
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _HH
add esp, 8
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1348
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN2@DD
$HERE$4:
; Line 1349
jmp SHORT $HERE$4
$LN2@DD:
; Line 1350
mov eax, DWORD PTR _Halt_Status$[ebp]
; Line 1351
mov esp, ebp
pop ebp
ret 0
_DD ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Infinite_Loop PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1339
push ebp
mov ebp, esp
$HERE$3:
; Line 1340
jmp SHORT $HERE$3
; Line 1342
pop ebp
ret 0
_Infinite_Loop ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Infinite_Recursion PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1334
push ebp
mov ebp, esp
; Line 1335
call _Infinite_Recursion
; Line 1336
pop ebp
ret 0
_Infinite_Recursion ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Strachey_P PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1328
push ebp
mov ebp, esp
$L$4:
; Line 1329
push OFFSET _Strachey_P
call _HHH
add esp, 4
test eax, eax
je SHORT $LN1@Strachey_P
jmp SHORT $L$4
$LN1@Strachey_P:
; Line 1331
pop ebp
ret 0
_Strachey_P ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_P$ = 8 ; size = 4
_I$ = 12 ; size = 4
_HHHxyz PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1318
push ebp
mov ebp, esp
; Line 1319
mov eax, DWORD PTR _I$[ebp]
push eax
call DWORD PTR _P$[ebp]
add esp, 4
; Line 1320
pop ebp
ret 0
_HHHxyz ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_x$ = 8 ; size = 4
_PP PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1309
push ebp
mov ebp, esp
push ecx
; Line 1310
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _HH
add esp, 8
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1311
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN2@PP
$HERE$4:
; Line 1312
jmp SHORT $HERE$4
$LN2@PP:
; Line 1313
mov eax, DWORD PTR _Halt_Status$[ebp]
; Line 1314
mov esp, ebp
pop ebp
ret 0
_PP ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_x$ = 8 ; size = 4
_D PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1300
push ebp
mov ebp, esp
push ecx
; Line 1301
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _H
add esp, 8
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1302
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN2@D
$HERE$4:
; Line 1303
jmp SHORT $HERE$4
$LN2@D:
; Line 1304
mov eax, DWORD PTR _Halt_Status$[ebp]
; Line 1305
mov esp, ebp
pop ebp
ret 0
_D ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_M$ = 8 ; size = 4
_Recursion_Chain_03 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1283
push ebp
mov ebp, esp
; Line 1284
mov eax, DWORD PTR _M$[ebp]
push eax
call _Recursion_Chain_01
add esp, 4
; Line 1285
pop ebp
ret 0
_Recursion_Chain_03 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_M$ = 8 ; size = 4
_Recursion_Chain_02 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1288
push ebp
mov ebp, esp
; Line 1289
mov eax, DWORD PTR _M$[ebp]
push eax
call _Recursion_Chain_03
add esp, 4
; Line 1290
pop ebp
ret 0
_Recursion_Chain_02 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_M$ = 8 ; size = 4
_Recursion_Chain_01 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1293
push ebp
mov ebp, esp
; Line 1294
mov eax, DWORD PTR _M$[ebp]
push eax
call _Recursion_Chain_02
add esp, 4
; Line 1295
pop ebp
ret 0
_Recursion_Chain_01 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_This_Halts PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1274
push ebp
mov ebp, esp
; Line 1276
pop ebp
ret 0
_This_Halts ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_n$ = 8 ; size = 4
_factorial PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1264
push ebp
mov ebp, esp
; Line 1266
cmp DWORD PTR _n$[ebp], 1
jl SHORT $LN2@factorial
; Line 1267
mov eax, DWORD PTR _n$[ebp]
sub eax, 1
push eax
call _factorial
add esp, 4
imul eax, DWORD PTR _n$[ebp]
jmp SHORT $LN1@factorial
jmp SHORT $LN1@factorial
$LN2@factorial:
; Line 1269
mov eax, 1
$LN1@factorial:
; Line 1270
pop ebp
ret 0
_factorial ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_N$ = 8 ; size = 4
_Infinite_Recursion2 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1259
push ebp
mov ebp, esp
; Line 1260
mov eax, DWORD PTR _N$[ebp]
push eax
push OFFSET _Infinite_Recursion2
call _H
add esp, 8
; Line 1261
pop ebp
ret 0
_Infinite_Recursion2 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_N$ = 8 ; size = 4
_Infinite_Recursion3 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1254
push ebp
mov ebp, esp
; Line 1255
mov eax, DWORD PTR _N$[ebp]
push eax
call _Infinite_Recursion3
add esp, 4
; Line 1256
pop ebp
ret 0
_Infinite_Recursion3 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_B PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1248
push ebp
mov ebp, esp
; Line 1249
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _H
add esp, 8
; Line 1251
pop ebp
ret 0
_B ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_P$ = 8 ; size = 4
_Y PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1242
push ebp
mov ebp, esp
; Line 1243
mov eax, DWORD PTR _P$[ebp]
push eax
mov ecx, DWORD PTR _P$[ebp]
push ecx
call _X
add esp, 8
; Line 1244
mov eax, 1
; Line 1245
pop ebp
ret 0
_Y ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_P$ = 8 ; size = 4
_I$ = 12 ; size = 4
_X PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1236
push ebp
mov ebp, esp
; Line 1237
mov eax, DWORD PTR _I$[ebp]
push eax
call DWORD PTR _P$[ebp]
add esp, 4
; Line 1238
xor eax, eax
; Line 1239
pop ebp
ret 0
_X ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_D0 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1227
push ebp
mov ebp, esp
push ecx
; Line 1228
push OFFSET _D0
call _H0
add esp, 4
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1229
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN2@D0
$HERE$4:
; Line 1230
jmp SHORT $HERE$4
$LN2@D0:
; Line 1231
mov eax, DWORD PTR _Halt_Status$[ebp]
; Line 1232
mov esp, ebp
pop ebp
ret 0
_D0 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_E PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1221
push ebp
mov ebp, esp
; Line 1222
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _H
add esp, 8
; Line 1223
pop ebp
ret 0
_E ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_x$ = 8 ; size = 4
_P PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1213
push ebp
mov ebp, esp
push ecx
; Line 1214
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _H
add esp, 8
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1215
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN1@P
$HERE$4:
; Line 1216
jmp SHORT $HERE$4
$LN1@P:
; Line 1218
mov esp, ebp
pop ebp
ret 0
_P ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_Kozen_N PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1205
push ebp
mov ebp, esp
; Line 1206
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _Kozen_K
add esp, 8
test eax, eax
je SHORT $LN2@Kozen_N
$HERE$4:
; Line 1207
jmp SHORT $HERE$4
$LN2@Kozen_N:
; Line 1208
mov eax, 1
; Line 1209
pop ebp
ret 0
_Kozen_N ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_Px PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1194
push ebp
mov ebp, esp
; Line 1195
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _H
add esp, 8
; Line 1197
pop ebp
ret 0
_Px ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_Pz PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1189
push ebp
mov ebp, esp
; Line 1190
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _Simulate
add esp, 8
; Line 1191
pop ebp
ret 0
_Pz ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Halt_Status$ = -4 ; size = 4
_x$ = 8 ; size = 4
_Py PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1181
push ebp
mov ebp, esp
push ecx
; Line 1182
mov eax, DWORD PTR _x$[ebp]
push eax
mov ecx, DWORD PTR _x$[ebp]
push ecx
call _Simulate
add esp, 8
mov DWORD PTR _Halt_Status$[ebp], eax
; Line 1183
cmp DWORD PTR _Halt_Status$[ebp], 0
je SHORT $LN1@Py
$HERE$4:
; Line 1184
jmp SHORT $HERE$4
$LN1@Py:
; Line 1186
mov esp, ebp
pop ebp
ret 0
_Py ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_y$ = 12 ; size = 4
_Simulate PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1174
push ebp
mov ebp, esp
; Line 1175
mov eax, DWORD PTR _y$[ebp]
push eax
call DWORD PTR _x$[ebp]
add esp, 4
; Line 1176
mov eax, 1
; Line 1177
pop ebp
ret 0
_Simulate ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_PR PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1157
push ebp
mov ebp, esp
; Line 1158
mov eax, DWORD PTR _x$[ebp]
push eax
call _HR
add esp, 4
; Line 1159
pop ebp
ret 0
_PR ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_y$ = 8 ; size = 4
_HR PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1162
push ebp
mov ebp, esp
; Line 1163
mov eax, DWORD PTR _y$[ebp]
push eax
call _PR
add esp, 4
; Line 1164
pop ebp
ret 0
_HR ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_x$ = 8 ; size = 4
_Add3 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1150
push ebp
mov ebp, esp
; Line 1151
mov eax, DWORD PTR _x$[ebp]
add eax, 3
; Line 1152
pop ebp
ret 0
_Add3 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Infinite_Loop3 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1142
push ebp
mov ebp, esp
$L1$3:
; Line 1143
jmp SHORT $L3$4
$L2$5:
; Line 1144
jmp SHORT $L4$6
$L3$4:
; Line 1145
jmp SHORT $L2$5
$L4$6:
; Line 1147
pop ebp
ret 0
_Infinite_Loop3 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_Infinite_Loop2 PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1136
push ebp
mov ebp, esp
$L1$3:
; Line 1137
jmp SHORT $L3$4
$L2$5:
; Line 1138
jmp SHORT $L1$3
$L3$4:
; Line 1139
jmp SHORT $L2$5
; Line 1140
pop ebp
ret 0
_Infinite_Loop2 ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_P$ = 8 ; size = 4
_I$ = 12 ; size = 4
_Halts PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1131
push ebp
mov ebp, esp
; Line 1132
xor eax, eax
; Line 1133
pop ebp
ret 0
_Halts ENDP
_TEXT ENDS
; Function compile flags: /Odtp
_TEXT SEGMENT
_decoded$ = -32 ; size = 4
_code_end$ = -28 ; size = 4
_master_state$ = -24 ; size = 4
_End_Of_Code$ = -20 ; size = 4
_execution_trace$ = -16 ; size = 4
_slave_state$ = -12 ; size = 4
_slave_stack$ = -8 ; size = 4
_Address_of_T$ = -4 ; size = 4
_P$ = 8 ; size = 4
_T PROC
; File d:\__hp_stream\__nlu_notes\__work_in_progress\__halt_decider_x86\___x86utm_vs\halt7.c
; Line 1104
push ebp
mov ebp, esp
sub esp, 32 ; 00000020H
; Line 1105
push OFFSET _T
call _get_code_end
add esp, 4
mov DWORD PTR _End_Of_Code$[ebp], eax
; Line 1106
mov DWORD PTR _Address_of_T$[ebp], OFFSET _T
; Line 1107
mov eax, DWORD PTR _P$[ebp]
push eax
call _get_code_end
add esp, 4
mov DWORD PTR _code_end$[ebp], eax
; Line 1108
push 24 ; 00000018H
call _Allocate
add esp, 4
mov DWORD PTR _decoded$[ebp], eax
; Line 1110
push 52 ; 00000034H
call _Allocate
add esp, 4
mov DWORD PTR _master_state$[ebp], eax
; Line 1111
push 52 ; 00000034H
call _Allocate
add esp, 4
mov DWORD PTR _slave_state$[ebp], eax
; Line 1112
push 65536 ; 00010000H
call _Allocate
add esp, 4
mov DWORD PTR _slave_stack$[ebp], eax
; Line 1113
push 24000 ; 00005dc0H
call _Allocate
add esp, 4
mov DWORD PTR _execution_trace$[ebp], eax
; Line 1114
mov ecx, DWORD PTR _slave_stack$[ebp]
push ecx
mov edx, DWORD PTR _slave_state$[ebp]
push edx
mov eax, DWORD PTR _End_Of_Code$[ebp]
push eax
mov ecx, DWORD PTR _P$[ebp]
push ecx
call _Init_slave_state0
add esp, 16 ; 00000010H
; Line 1115
mov edx, DWORD PTR _execution_trace$[ebp]
push edx
push OFFSET $SG10092
call _Output
add esp, 8
; Line 1116
mov eax, DWORD PTR _Address_of_T$[ebp]
push eax
push OFFSET $SG10093
call _Output
add esp, 8
; Line 1117
mov ecx, DWORD PTR _P$[ebp]
push ecx
mov edx, DWORD PTR _Address_of_T$[ebp]
push edx
lea eax, DWORD PTR _slave_stack$[ebp]
push eax
lea ecx, DWORD PTR _slave_state$[ebp]
push ecx