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


bomb:     file format elf64-x86-64


Disassembly of section .init:

0000000000400ac0 <_init>:
  400ac0:	sub    $0x8,%rsp
  400ac4:	call   400cbc <call_gmon_start>
  400ac9:	add    $0x8,%rsp
  400acd:	ret

Disassembly of section .plt:

0000000000400ad0 <.plt>:
  400ad0:	push   0x20251a(%rip)        # 602ff0 <_GLOBAL_OFFSET_TABLE_+0x8>
  400ad6:	jmp    *0x20251c(%rip)        # 602ff8 <_GLOBAL_OFFSET_TABLE_+0x10>
  400adc:	nopl   0x0(%rax)

0000000000400ae0 <getenv@plt>:
  400ae0:	jmp    *0x20251a(%rip)        # 603000 <getenv@GLIBC_2.2.5>
  400ae6:	push   $0x0
  400aeb:	jmp    400ad0 <.plt>

0000000000400af0 <__errno_location@plt>:
  400af0:	jmp    *0x202512(%rip)        # 603008 <__errno_location@GLIBC_2.2.5>
  400af6:	push   $0x1
  400afb:	jmp    400ad0 <.plt>

0000000000400b00 <strcpy@plt>:
  400b00:	jmp    *0x20250a(%rip)        # 603010 <strcpy@GLIBC_2.2.5>
  400b06:	push   $0x2
  400b0b:	jmp    400ad0 <.plt>

0000000000400b10 <puts@plt>:
  400b10:	jmp    *0x202502(%rip)        # 603018 <puts@GLIBC_2.2.5>
  400b16:	push   $0x3
  400b1b:	jmp    400ad0 <.plt>

0000000000400b20 <write@plt>:
  400b20:	jmp    *0x2024fa(%rip)        # 603020 <write@GLIBC_2.2.5>
  400b26:	push   $0x4
  400b2b:	jmp    400ad0 <.plt>

0000000000400b30 <__stack_chk_fail@plt>:
  400b30:	jmp    *0x2024f2(%rip)        # 603028 <__stack_chk_fail@GLIBC_2.4>
  400b36:	push   $0x5
  400b3b:	jmp    400ad0 <.plt>

0000000000400b40 <alarm@plt>:
  400b40:	jmp    *0x2024ea(%rip)        # 603030 <alarm@GLIBC_2.2.5>
  400b46:	push   $0x6
  400b4b:	jmp    400ad0 <.plt>

0000000000400b50 <close@plt>:
  400b50:	jmp    *0x2024e2(%rip)        # 603038 <close@GLIBC_2.2.5>
  400b56:	push   $0x7
  400b5b:	jmp    400ad0 <.plt>

0000000000400b60 <read@plt>:
  400b60:	jmp    *0x2024da(%rip)        # 603040 <read@GLIBC_2.2.5>
  400b66:	push   $0x8
  400b6b:	jmp    400ad0 <.plt>

0000000000400b70 <__libc_start_main@plt>:
  400b70:	jmp    *0x2024d2(%rip)        # 603048 <__libc_start_main@GLIBC_2.2.5>
  400b76:	push   $0x9
  400b7b:	jmp    400ad0 <.plt>

0000000000400b80 <fgets@plt>:
  400b80:	jmp    *0x2024ca(%rip)        # 603050 <fgets@GLIBC_2.2.5>
  400b86:	push   $0xa
  400b8b:	jmp    400ad0 <.plt>

0000000000400b90 <signal@plt>:
  400b90:	jmp    *0x2024c2(%rip)        # 603058 <signal@GLIBC_2.2.5>
  400b96:	push   $0xb
  400b9b:	jmp    400ad0 <.plt>

0000000000400ba0 <gethostbyname@plt>:
  400ba0:	jmp    *0x2024ba(%rip)        # 603060 <gethostbyname@GLIBC_2.2.5>
  400ba6:	push   $0xc
  400bab:	jmp    400ad0 <.plt>

0000000000400bb0 <__memmove_chk@plt>:
  400bb0:	jmp    *0x2024b2(%rip)        # 603068 <__memmove_chk@GLIBC_2.3.4>
  400bb6:	push   $0xd
  400bbb:	jmp    400ad0 <.plt>

0000000000400bc0 <__memcpy_chk@plt>:
  400bc0:	jmp    *0x2024aa(%rip)        # 603070 <__memcpy_chk@GLIBC_2.3.4>
  400bc6:	push   $0xe
  400bcb:	jmp    400ad0 <.plt>

0000000000400bd0 <strtol@plt>:
  400bd0:	jmp    *0x2024a2(%rip)        # 603078 <strtol@GLIBC_2.2.5>
  400bd6:	push   $0xf
  400bdb:	jmp    400ad0 <.plt>

0000000000400be0 <fflush@plt>:
  400be0:	jmp    *0x20249a(%rip)        # 603080 <fflush@GLIBC_2.2.5>
  400be6:	push   $0x10
  400beb:	jmp    400ad0 <.plt>

0000000000400bf0 <__isoc99_sscanf@plt>:
  400bf0:	jmp    *0x202492(%rip)        # 603088 <__isoc99_sscanf@GLIBC_2.7>
  400bf6:	push   $0x11
  400bfb:	jmp    400ad0 <.plt>

0000000000400c00 <__printf_chk@plt>:
  400c00:	jmp    *0x20248a(%rip)        # 603090 <__printf_chk@GLIBC_2.3.4>
  400c06:	push   $0x12
  400c0b:	jmp    400ad0 <.plt>

0000000000400c10 <fopen@plt>:
  400c10:	jmp    *0x202482(%rip)        # 603098 <fopen@GLIBC_2.2.5>
  400c16:	push   $0x13
  400c1b:	jmp    400ad0 <.plt>

0000000000400c20 <exit@plt>:
  400c20:	jmp    *0x20247a(%rip)        # 6030a0 <exit@GLIBC_2.2.5>
  400c26:	push   $0x14
  400c2b:	jmp    400ad0 <.plt>

0000000000400c30 <connect@plt>:
  400c30:	jmp    *0x202472(%rip)        # 6030a8 <connect@GLIBC_2.2.5>
  400c36:	push   $0x15
  400c3b:	jmp    400ad0 <.plt>

0000000000400c40 <__fprintf_chk@plt>:
  400c40:	jmp    *0x20246a(%rip)        # 6030b0 <__fprintf_chk@GLIBC_2.3.4>
  400c46:	push   $0x16
  400c4b:	jmp    400ad0 <.plt>

0000000000400c50 <sleep@plt>:
  400c50:	jmp    *0x202462(%rip)        # 6030b8 <sleep@GLIBC_2.2.5>
  400c56:	push   $0x17
  400c5b:	jmp    400ad0 <.plt>

0000000000400c60 <__ctype_b_loc@plt>:
  400c60:	jmp    *0x20245a(%rip)        # 6030c0 <__ctype_b_loc@GLIBC_2.3>
  400c66:	push   $0x18
  400c6b:	jmp    400ad0 <.plt>

0000000000400c70 <__sprintf_chk@plt>:
  400c70:	jmp    *0x202452(%rip)        # 6030c8 <__sprintf_chk@GLIBC_2.3.4>
  400c76:	push   $0x19
  400c7b:	jmp    400ad0 <.plt>

0000000000400c80 <socket@plt>:
  400c80:	jmp    *0x20244a(%rip)        # 6030d0 <socket@GLIBC_2.2.5>
  400c86:	push   $0x1a
  400c8b:	jmp    400ad0 <.plt>

Disassembly of section .text:

0000000000400c90 <_start>:
  400c90:	xor    %ebp,%ebp
  400c92:	mov    %rdx,%r9
  400c95:	pop    %rsi
  400c96:	mov    %rsp,%rdx
  400c99:	and    $0xfffffffffffffff0,%rsp
  400c9d:	push   %rax
  400c9e:	push   %rsp
  400c9f:	mov    $0x4022a0,%r8
  400ca6:	mov    $0x402210,%rcx
  400cad:	mov    $0x400da0,%rdi
  400cb4:	call   400b70 <__libc_start_main@plt>
  400cb9:	hlt
  400cba:	nop
  400cbb:	nop

0000000000400cbc <call_gmon_start>:
  400cbc:	sub    $0x8,%rsp
  400cc0:	mov    0x202319(%rip),%rax        # 602fe0 <__gmon_start__>
  400cc7:	test   %rax,%rax
  400cca:	je     400cce <call_gmon_start+0x12>
  400ccc:	call   *%rax
  400cce:	add    $0x8,%rsp
  400cd2:	ret
  400cd3:	nop
  400cd4:	nop
  400cd5:	nop
  400cd6:	nop
  400cd7:	nop
  400cd8:	nop
  400cd9:	nop
  400cda:	nop
  400cdb:	nop
  400cdc:	nop
  400cdd:	nop
  400cde:	nop
  400cdf:	nop

0000000000400ce0 <deregister_tm_clones>:
  400ce0:	mov    $0x603747,%eax
  400ce5:	push   %rbp
  400ce6:	sub    $0x603740,%rax
  400cec:	cmp    $0xe,%rax
  400cf0:	mov    %rsp,%rbp
  400cf3:	ja     400cf7 <deregister_tm_clones+0x17>
  400cf5:	pop    %rbp
  400cf6:	ret
  400cf7:	mov    $0x0,%eax
  400cfc:	test   %rax,%rax
  400cff:	je     400cf5 <deregister_tm_clones+0x15>
  400d01:	pop    %rbp
  400d02:	mov    $0x603740,%edi
  400d07:	jmp    *%rax
  400d09:	nopl   0x0(%rax)

0000000000400d10 <register_tm_clones>:
  400d10:	mov    $0x603740,%eax
  400d15:	push   %rbp
  400d16:	sub    $0x603740,%rax
  400d1c:	sar    $0x3,%rax
  400d20:	mov    %rsp,%rbp
  400d23:	mov    %rax,%rdx
  400d26:	shr    $0x3f,%rdx
  400d2a:	add    %rdx,%rax
  400d2d:	sar    $1,%rax
  400d30:	jne    400d34 <register_tm_clones+0x24>
  400d32:	pop    %rbp
  400d33:	ret
  400d34:	mov    $0x0,%edx
  400d39:	test   %rdx,%rdx
  400d3c:	je     400d32 <register_tm_clones+0x22>
  400d3e:	pop    %rbp
  400d3f:	mov    %rax,%rsi
  400d42:	mov    $0x603740,%edi
  400d47:	jmp    *%rdx
  400d49:	nopl   0x0(%rax)

0000000000400d50 <__do_global_dtors_aux>:
  400d50:	cmpb   $0x0,0x202a01(%rip)        # 603758 <completed.6976>
  400d57:	jne    400d6a <__do_global_dtors_aux+0x1a>
  400d59:	push   %rbp
  400d5a:	mov    %rsp,%rbp
  400d5d:	call   400ce0 <deregister_tm_clones>
  400d62:	pop    %rbp
  400d63:	movb   $0x1,0x2029ee(%rip)        # 603758 <completed.6976>
  400d6a:	repz ret
  400d6c:	nopl   0x0(%rax)

0000000000400d70 <frame_dummy>:
  400d70:	cmpq   $0x0,0x202090(%rip)        # 602e08 <__JCR_END__>
  400d78:	je     400d98 <frame_dummy+0x28>
  400d7a:	mov    $0x0,%eax
  400d7f:	test   %rax,%rax
  400d82:	je     400d98 <frame_dummy+0x28>
  400d84:	push   %rbp
  400d85:	mov    $0x602e08,%edi
  400d8a:	mov    %rsp,%rbp
  400d8d:	call   *%rax
  400d8f:	pop    %rbp
  400d90:	jmp    400d10 <register_tm_clones>
  400d95:	nopl   (%rax)
  400d98:	jmp    400d10 <register_tm_clones>
  400d9d:	nop
  400d9e:	nop
  400d9f:	nop

0000000000400da0 <main>:
  400da0:	push   %rbx
  400da1:	cmp    $0x1,%edi
  400da4:	jne    400db6 <main+0x16>
  400da6:	mov    0x20299b(%rip),%rax        # 603748 <stdin@GLIBC_2.2.5>
  400dad:	mov    %rax,0x2029b4(%rip)        # 603768 <infile>
  400db4:	jmp    400e19 <main+0x79>
  400db6:	mov    %rsi,%rbx
  400db9:	cmp    $0x2,%edi
  400dbc:	jne    400df8 <main+0x58>
  400dbe:	mov    0x8(%rsi),%rdi
  400dc2:	mov    $0x4022b4,%esi
  400dc7:	call   400c10 <fopen@plt>
  400dcc:	mov    %rax,0x202995(%rip)        # 603768 <infile>
  400dd3:	test   %rax,%rax
  400dd6:	jne    400e19 <main+0x79>
#else
  return __vprintf_chk (__USE_FORTIFY_LEVEL - 1, __fmt, __ap);
#endif
}

__fortify_function __nonnull ((1)) int
  400dd8:	mov    0x8(%rbx),%rcx
  400ddc:	mov    (%rbx),%rdx
  400ddf:	mov    $0x4022b6,%esi
  400de4:	mov    $0x1,%edi
  400de9:	call   400c00 <__printf_chk@plt>
  400dee:	mov    $0x8,%edi
  400df3:	call   400c20 <exit@plt>
  400df8:	mov    (%rsi),%rdx
  400dfb:	mov    $0x4022d3,%esi
  400e00:	mov    $0x1,%edi
  400e05:	mov    $0x0,%eax
  400e0a:	call   400c00 <__printf_chk@plt>
  400e0f:	mov    $0x8,%edi
  400e14:	call   400c20 <exit@plt>
  400e19:	call   4013a2 <initialize_bomb>
  400e1e:	mov    $0x402338,%edi
  400e23:	call   400b10 <puts@plt>
  400e28:	mov    $0x402378,%edi
  400e2d:	call   400b10 <puts@plt>
  400e32:	call   40149e <read_line>
  400e37:	mov    %rax,%rdi
  400e3a:	call   400ee0 <phase_1>
  400e3f:	call   4015c4 <phase_defused>
  400e44:	mov    $0x4023a8,%edi
  400e49:	call   400b10 <puts@plt>
  400e4e:	call   40149e <read_line>
  400e53:	mov    %rax,%rdi
  400e56:	call   400efc <phase_2>
  400e5b:	call   4015c4 <phase_defused>
  400e60:	mov    $0x4022ed,%edi
  400e65:	call   400b10 <puts@plt>
  400e6a:	call   40149e <read_line>
  400e6f:	mov    %rax,%rdi
  400e72:	call   400f43 <phase_3>
  400e77:	call   4015c4 <phase_defused>
  400e7c:	mov    $0x40230b,%edi
  400e81:	call   400b10 <puts@plt>
  400e86:	call   40149e <read_line>
  400e8b:	mov    %rax,%rdi
  400e8e:	call   40100c <phase_4>
  400e93:	call   4015c4 <phase_defused>
  400e98:	mov    $0x4023d8,%edi
  400e9d:	call   400b10 <puts@plt>
  400ea2:	call   40149e <read_line>
  400ea7:	mov    %rax,%rdi
  400eaa:	call   401062 <phase_5>
  400eaf:	call   4015c4 <phase_defused>
  400eb4:	mov    $0x40231a,%edi
  400eb9:	call   400b10 <puts@plt>
  400ebe:	call   40149e <read_line>
  400ec3:	mov    %rax,%rdi
  400ec6:	call   4010f4 <phase_6>
  400ecb:	call   4015c4 <phase_defused>
  400ed0:	mov    $0x0,%eax
  400ed5:	pop    %rbx
  400ed6:	ret
  400ed7:	nop
  400ed8:	nop
  400ed9:	nop
  400eda:	nop
  400edb:	nop
  400edc:	nop
  400edd:	nop
  400ede:	nop
  400edf:	nop

0000000000400ee0 <phase_1>:
  400ee0:	sub    $0x8,%rsp
  400ee4:	mov    $0x402400,%esi
  400ee9:	call   401338 <strings_not_equal>
  400eee:	test   %eax,%eax
  400ef0:	je     400ef7 <phase_1+0x17>
  400ef2:	call   40143a <explode_bomb>
  400ef7:	add    $0x8,%rsp
  400efb:	ret

0000000000400efc <phase_2>:
  400efc:	push   %rbp
  400efd:	push   %rbx
  400efe:	sub    $0x28,%rsp
  400f02:	mov    %rsp,%rsi
  400f05:	call   40145c <read_six_numbers>
  400f0a:	cmpl   $0x1,(%rsp)
  400f0e:	je     400f30 <phase_2+0x34>
  400f10:	call   40143a <explode_bomb>
  400f15:	jmp    400f30 <phase_2+0x34>
  400f17:	mov    -0x4(%rbx),%eax
  400f1a:	add    %eax,%eax
  400f1c:	cmp    %eax,(%rbx)
  400f1e:	je     400f25 <phase_2+0x29>
  400f20:	call   40143a <explode_bomb>
  400f25:	add    $0x4,%rbx
  400f29:	cmp    %rbp,%rbx
  400f2c:	jne    400f17 <phase_2+0x1b>
  400f2e:	jmp    400f3c <phase_2+0x40>
  400f30:	lea    0x4(%rsp),%rbx
  400f35:	lea    0x18(%rsp),%rbp
  400f3a:	jmp    400f17 <phase_2+0x1b>
  400f3c:	add    $0x28,%rsp
  400f40:	pop    %rbx
  400f41:	pop    %rbp
  400f42:	ret

0000000000400f43 <phase_3>:
  400f43:	sub    $0x18,%rsp
  400f47:	lea    0xc(%rsp),%rcx
  400f4c:	lea    0x8(%rsp),%rdx
  400f51:	mov    $0x4025cf,%esi
  400f56:	mov    $0x0,%eax
  400f5b:	call   400bf0 <__isoc99_sscanf@plt>
  400f60:	cmp    $0x1,%eax
  400f63:	jg     400f6a <phase_3+0x27>
  400f65:	call   40143a <explode_bomb>
  400f6a:	cmpl   $0x7,0x8(%rsp)
  400f6f:	ja     400fad <phase_3+0x6a>
  400f71:	mov    0x8(%rsp),%eax
  400f75:	jmp    *0x402470(,%rax,8)
  400f7c:	mov    $0xcf,%eax
  400f81:	jmp    400fbe <phase_3+0x7b>
  400f83:	mov    $0x2c3,%eax
  400f88:	jmp    400fbe <phase_3+0x7b>
  400f8a:	mov    $0x100,%eax
  400f8f:	jmp    400fbe <phase_3+0x7b>
  400f91:	mov    $0x185,%eax
  400f96:	jmp    400fbe <phase_3+0x7b>
  400f98:	mov    $0xce,%eax
  400f9d:	jmp    400fbe <phase_3+0x7b>
  400f9f:	mov    $0x2aa,%eax
  400fa4:	jmp    400fbe <phase_3+0x7b>
  400fa6:	mov    $0x147,%eax
  400fab:	jmp    400fbe <phase_3+0x7b>
  400fad:	call   40143a <explode_bomb>
  400fb2:	mov    $0x0,%eax
  400fb7:	jmp    400fbe <phase_3+0x7b>
  400fb9:	mov    $0x137,%eax
  400fbe:	cmp    0xc(%rsp),%eax
  400fc2:	je     400fc9 <phase_3+0x86>
  400fc4:	call   40143a <explode_bomb>
  400fc9:	add    $0x18,%rsp
  400fcd:	ret

0000000000400fce <func4>:
  400fce:	sub    $0x8,%rsp
  400fd2:	mov    %edx,%eax
  400fd4:	sub    %esi,%eax
  400fd6:	mov    %eax,%ecx
  400fd8:	shr    $0x1f,%ecx
  400fdb:	add    %ecx,%eax
  400fdd:	sar    $1,%eax
  400fdf:	lea    (%rax,%rsi,1),%ecx
  400fe2:	cmp    %edi,%ecx
  400fe4:	jle    400ff2 <func4+0x24>
  400fe6:	lea    -0x1(%rcx),%edx
  400fe9:	call   400fce <func4>
  400fee:	add    %eax,%eax
  400ff0:	jmp    401007 <func4+0x39>
  400ff2:	mov    $0x0,%eax
  400ff7:	cmp    %edi,%ecx
  400ff9:	jge    401007 <func4+0x39>
  400ffb:	lea    0x1(%rcx),%esi
  400ffe:	call   400fce <func4>
  401003:	lea    0x1(%rax,%rax,1),%eax
  401007:	add    $0x8,%rsp
  40100b:	ret

000000000040100c <phase_4>:
  40100c:	sub    $0x18,%rsp
  401010:	lea    0xc(%rsp),%rcx
  401015:	lea    0x8(%rsp),%rdx
  40101a:	mov    $0x4025cf,%esi
  40101f:	mov    $0x0,%eax
  401024:	call   400bf0 <__isoc99_sscanf@plt>
  401029:	cmp    $0x2,%eax
  40102c:	jne    401035 <phase_4+0x29>
  40102e:	cmpl   $0xe,0x8(%rsp)
  401033:	jbe    40103a <phase_4+0x2e>
  401035:	call   40143a <explode_bomb>
  40103a:	mov    $0xe,%edx
  40103f:	mov    $0x0,%esi
  401044:	mov    0x8(%rsp),%edi
  401048:	call   400fce <func4>
  40104d:	test   %eax,%eax
  40104f:	jne    401058 <phase_4+0x4c>
  401051:	cmpl   $0x0,0xc(%rsp)
  401056:	je     40105d <phase_4+0x51>
  401058:	call   40143a <explode_bomb>
  40105d:	add    $0x18,%rsp
  401061:	ret

0000000000401062 <phase_5>:
  401062:	push   %rbx
  401063:	sub    $0x20,%rsp
  401067:	mov    %rdi,%rbx
  40106a:	mov    %fs:0x28,%rax
  401073:	mov    %rax,0x18(%rsp)
  401078:	xor    %eax,%eax
  40107a:	call   40131b <string_length>
  40107f:	cmp    $0x6,%eax
  401082:	je     4010d2 <phase_5+0x70>
  401084:	call   40143a <explode_bomb>
  401089:	jmp    4010d2 <phase_5+0x70>
  40108b:	movzbl (%rbx,%rax,1),%ecx
  40108f:	mov    %cl,(%rsp)
  401092:	mov    (%rsp),%rdx
  401096:	and    $0xf,%edx
  401099:	movzbl 0x4024b0(%rdx),%edx
  4010a0:	mov    %dl,0x10(%rsp,%rax,1)
  4010a4:	add    $0x1,%rax
  4010a8:	cmp    $0x6,%rax
  4010ac:	jne    40108b <phase_5+0x29>
  4010ae:	movb   $0x0,0x16(%rsp)
  4010b3:	mov    $0x40245e,%esi
  4010b8:	lea    0x10(%rsp),%rdi
  4010bd:	call   401338 <strings_not_equal>
  4010c2:	test   %eax,%eax
  4010c4:	je     4010d9 <phase_5+0x77>
  4010c6:	call   40143a <explode_bomb>
  4010cb:	nopl   0x0(%rax,%rax,1)
  4010d0:	jmp    4010d9 <phase_5+0x77>
  4010d2:	mov    $0x0,%eax
  4010d7:	jmp    40108b <phase_5+0x29>
  4010d9:	mov    0x18(%rsp),%rax
  4010de:	xor    %fs:0x28,%rax
  4010e7:	je     4010ee <phase_5+0x8c>
  4010e9:	call   400b30 <__stack_chk_fail@plt>
  4010ee:	add    $0x20,%rsp
  4010f2:	pop    %rbx
  4010f3:	ret

00000000004010f4 <phase_6>:
  4010f4:	push   %r14
  4010f6:	push   %r13
  4010f8:	push   %r12
  4010fa:	push   %rbp
  4010fb:	push   %rbx
  4010fc:	sub    $0x50,%rsp
  401100:	mov    %rsp,%r13
  401103:	mov    %rsp,%rsi
  401106:	call   40145c <read_six_numbers>
  40110b:	mov    %rsp,%r14
  40110e:	mov    $0x0,%r12d
  401114:	mov    %r13,%rbp
  401117:	mov    0x0(%r13),%eax
  40111b:	sub    $0x1,%eax
  40111e:	cmp    $0x5,%eax
  401121:	jbe    401128 <phase_6+0x34>
  401123:	call   40143a <explode_bomb>
  401128:	add    $0x1,%r12d
  40112c:	cmp    $0x6,%r12d
  401130:	je     401153 <phase_6+0x5f>
  401132:	mov    %r12d,%ebx
  401135:	movslq %ebx,%rax
  401138:	mov    (%rsp,%rax,4),%eax
  40113b:	cmp    %eax,0x0(%rbp)
  40113e:	jne    401145 <phase_6+0x51>
  401140:	call   40143a <explode_bomb>
  401145:	add    $0x1,%ebx
  401148:	cmp    $0x5,%ebx
  40114b:	jle    401135 <phase_6+0x41>
  40114d:	add    $0x4,%r13
  401151:	jmp    401114 <phase_6+0x20>
  401153:	lea    0x18(%rsp),%rsi
  401158:	mov    %r14,%rax
  40115b:	mov    $0x7,%ecx
  401160:	mov    %ecx,%edx
  401162:	sub    (%rax),%edx
  401164:	mov    %edx,(%rax)
  401166:	add    $0x4,%rax
  40116a:	cmp    %rsi,%rax
  40116d:	jne    401160 <phase_6+0x6c>
  40116f:	mov    $0x0,%esi
  401174:	jmp    401197 <phase_6+0xa3>
  401176:	mov    0x8(%rdx),%rdx
  40117a:	add    $0x1,%eax
  40117d:	cmp    %ecx,%eax
  40117f:	jne    401176 <phase_6+0x82>
  401181:	jmp    401188 <phase_6+0x94>
  401183:	mov    $0x6032d0,%edx
  401188:	mov    %rdx,0x20(%rsp,%rsi,2)
  40118d:	add    $0x4,%rsi
  401191:	cmp    $0x18,%rsi
  401195:	je     4011ab <phase_6+0xb7>
  401197:	mov    (%rsp,%rsi,1),%ecx
  40119a:	cmp    $0x1,%ecx
  40119d:	jle    401183 <phase_6+0x8f>
  40119f:	mov    $0x1,%eax
  4011a4:	mov    $0x6032d0,%edx
  4011a9:	jmp    401176 <phase_6+0x82>
  4011ab:	mov    0x20(%rsp),%rbx
  4011b0:	lea    0x28(%rsp),%rax
  4011b5:	lea    0x50(%rsp),%rsi
  4011ba:	mov    %rbx,%rcx
  4011bd:	mov    (%rax),%rdx
  4011c0:	mov    %rdx,0x8(%rcx)
  4011c4:	add    $0x8,%rax
  4011c8:	cmp    %rsi,%rax
  4011cb:	je     4011d2 <phase_6+0xde>
  4011cd:	mov    %rdx,%rcx
  4011d0:	jmp    4011bd <phase_6+0xc9>
  4011d2:	movq   $0x0,0x8(%rdx)
  4011da:	mov    $0x5,%ebp
  4011df:	mov    0x8(%rbx),%rax
  4011e3:	mov    (%rax),%eax
  4011e5:	cmp    %eax,(%rbx)
  4011e7:	jge    4011ee <phase_6+0xfa>
  4011e9:	call   40143a <explode_bomb>
  4011ee:	mov    0x8(%rbx),%rbx
  4011f2:	sub    $0x1,%ebp
  4011f5:	jne    4011df <phase_6+0xeb>
  4011f7:	add    $0x50,%rsp
  4011fb:	pop    %rbx
  4011fc:	pop    %rbp
  4011fd:	pop    %r12
  4011ff:	pop    %r13
  401201:	pop    %r14
  401203:	ret

0000000000401204 <fun7>:
  401204:	sub    $0x8,%rsp
  401208:	test   %rdi,%rdi
  40120b:	je     401238 <fun7+0x34>
  40120d:	mov    (%rdi),%edx
  40120f:	cmp    %esi,%edx
  401211:	jle    401220 <fun7+0x1c>
  401213:	mov    0x8(%rdi),%rdi
  401217:	call   401204 <fun7>
  40121c:	add    %eax,%eax
  40121e:	jmp    40123d <fun7+0x39>
  401220:	mov    $0x0,%eax
  401225:	cmp    %esi,%edx
  401227:	je     40123d <fun7+0x39>
  401229:	mov    0x10(%rdi),%rdi
  40122d:	call   401204 <fun7>
  401232:	lea    0x1(%rax,%rax,1),%eax
  401236:	jmp    40123d <fun7+0x39>
  401238:	mov    $0xffffffff,%eax
  40123d:	add    $0x8,%rsp
  401241:	ret

0000000000401242 <secret_phase>:
  401242:	push   %rbx
  401243:	call   40149e <read_line>
  401248:	mov    $0xa,%edx
  40124d:	mov    $0x0,%esi
  401252:	mov    %rax,%rdi
  401255:	call   400bd0 <strtol@plt>
  40125a:	mov    %rax,%rbx
  40125d:	lea    -0x1(%rax),%eax
  401260:	cmp    $0x3e8,%eax
  401265:	jbe    40126c <secret_phase+0x2a>
  401267:	call   40143a <explode_bomb>
  40126c:	mov    %ebx,%esi
  40126e:	mov    $0x6030f0,%edi
  401273:	call   401204 <fun7>
  401278:	cmp    $0x2,%eax
  40127b:	je     401282 <secret_phase+0x40>
  40127d:	call   40143a <explode_bomb>
  401282:	mov    $0x402438,%edi
  401287:	call   400b10 <puts@plt>
  40128c:	call   4015c4 <phase_defused>
  401291:	pop    %rbx
  401292:	ret
  401293:	nop
  401294:	nop
  401295:	nop
  401296:	nop
  401297:	nop
  401298:	nop
  401299:	nop
  40129a:	nop
  40129b:	nop
  40129c:	nop
  40129d:	nop
  40129e:	nop
  40129f:	nop

00000000004012a0 <sig_handler>:
  4012a0:	sub    $0x8,%rsp
  4012a4:	mov    $0x4024c0,%edi
  4012a9:	call   400b10 <puts@plt>
  4012ae:	mov    $0x3,%edi
  4012b3:	call   400c50 <sleep@plt>
  4012b8:	mov    $0x402582,%esi
  4012bd:	mov    $0x1,%edi
  4012c2:	mov    $0x0,%eax
  4012c7:	call   400c00 <__printf_chk@plt>
  4012cc:	mov    0x20246d(%rip),%rdi        # 603740 <stdout@GLIBC_2.2.5>
  4012d3:	call   400be0 <fflush@plt>
  4012d8:	mov    $0x1,%edi
  4012dd:	call   400c50 <sleep@plt>
  4012e2:	mov    $0x40258a,%edi
  4012e7:	call   400b10 <puts@plt>
  4012ec:	mov    $0x10,%edi
  4012f1:	call   400c20 <exit@plt>

00000000004012f6 <invalid_phase>:
  4012f6:	sub    $0x8,%rsp
  4012fa:	mov    %rdi,%rdx
  4012fd:	mov    $0x402592,%esi
  401302:	mov    $0x1,%edi
  401307:	mov    $0x0,%eax
  40130c:	call   400c00 <__printf_chk@plt>
  401311:	mov    $0x8,%edi
  401316:	call   400c20 <exit@plt>

000000000040131b <string_length>:
  40131b:	cmpb   $0x0,(%rdi)
  40131e:	je     401332 <string_length+0x17>
  401320:	mov    %rdi,%rdx
  401323:	add    $0x1,%rdx
  401327:	mov    %edx,%eax
  401329:	sub    %edi,%eax
  40132b:	cmpb   $0x0,(%rdx)
  40132e:	jne    401323 <string_length+0x8>
  401330:	repz ret
  401332:	mov    $0x0,%eax
  401337:	ret

0000000000401338 <strings_not_equal>:
  401338:	push   %r12
  40133a:	push   %rbp
  40133b:	push   %rbx
  40133c:	mov    %rdi,%rbx
  40133f:	mov    %rsi,%rbp
  401342:	call   40131b <string_length>
  401347:	mov    %eax,%r12d
  40134a:	mov    %rbp,%rdi
  40134d:	call   40131b <string_length>
  401352:	mov    $0x1,%edx
  401357:	cmp    %eax,%r12d
  40135a:	jne    40139b <strings_not_equal+0x63>
  40135c:	movzbl (%rbx),%eax
  40135f:	test   %al,%al
  401361:	je     401388 <strings_not_equal+0x50>
  401363:	cmp    0x0(%rbp),%al
  401366:	je     401372 <strings_not_equal+0x3a>
  401368:	jmp    40138f <strings_not_equal+0x57>
  40136a:	cmp    0x0(%rbp),%al
  40136d:	nopl   (%rax)
  401370:	jne    401396 <strings_not_equal+0x5e>
  401372:	add    $0x1,%rbx
  401376:	add    $0x1,%rbp
  40137a:	movzbl (%rbx),%eax
  40137d:	test   %al,%al
  40137f:	jne    40136a <strings_not_equal+0x32>
  401381:	mov    $0x0,%edx
  401386:	jmp    40139b <strings_not_equal+0x63>
  401388:	mov    $0x0,%edx
  40138d:	jmp    40139b <strings_not_equal+0x63>
  40138f:	mov    $0x1,%edx
  401394:	jmp    40139b <strings_not_equal+0x63>
  401396:	mov    $0x1,%edx
  40139b:	mov    %edx,%eax
  40139d:	pop    %rbx
  40139e:	pop    %rbp
  40139f:	pop    %r12
  4013a1:	ret

00000000004013a2 <initialize_bomb>:
  4013a2:	sub    $0x8,%rsp
  4013a6:	mov    $0x4012a0,%esi
  4013ab:	mov    $0x2,%edi
  4013b0:	call   400b90 <signal@plt>
  4013b5:	add    $0x8,%rsp
  4013b9:	ret

00000000004013ba <initialize_bomb_solve>:
  4013ba:	repz ret

00000000004013bc <blank_line>:
  4013bc:	push   %rbp
  4013bd:	push   %rbx
  4013be:	sub    $0x8,%rsp
  4013c2:	mov    %rdi,%rbx
  4013c5:	jmp    4013de <blank_line+0x22>
  4013c7:	call   400c60 <__ctype_b_loc@plt>
  4013cc:	add    $0x1,%rbx
  4013d0:	movsbq %bpl,%rbp
  4013d4:	mov    (%rax),%rax
  4013d7:	testb  $0x20,0x1(%rax,%rbp,2)
  4013dc:	je     4013ed <blank_line+0x31>
  4013de:	movzbl (%rbx),%ebp
  4013e1:	test   %bpl,%bpl
  4013e4:	jne    4013c7 <blank_line+0xb>
  4013e6:	mov    $0x1,%eax
  4013eb:	jmp    4013f2 <blank_line+0x36>
  4013ed:	mov    $0x0,%eax
  4013f2:	add    $0x8,%rsp
  4013f6:	pop    %rbx
  4013f7:	pop    %rbp
  4013f8:	ret

00000000004013f9 <skip>:
  4013f9:	push   %rbx
  4013fa:	movslq 0x20235f(%rip),%rax        # 603760 <num_input_strings>
  401401:	lea    (%rax,%rax,4),%rdi
  401405:	shl    $0x4,%rdi
  401409:	add    $0x603780,%rdi
  401410:	mov    0x202351(%rip),%rdx        # 603768 <infile>
  401417:	mov    $0x50,%esi
  40141c:	call   400b80 <fgets@plt>
  401421:	mov    %rax,%rbx
  401424:	test   %rax,%rax
  401427:	je     401435 <skip+0x3c>
  401429:	mov    %rax,%rdi
  40142c:	call   4013bc <blank_line>
  401431:	test   %eax,%eax
  401433:	jne    4013fa <skip+0x1>
  401435:	mov    %rbx,%rax
  401438:	pop    %rbx
  401439:	ret

000000000040143a <explode_bomb>:
  40143a:	sub    $0x8,%rsp
  40143e:	mov    $0x4025a3,%edi
  401443:	call   400b10 <puts@plt>
  401448:	mov    $0x4025ac,%edi
  40144d:	call   400b10 <puts@plt>
  401452:	mov    $0x8,%edi
  401457:	call   400c20 <exit@plt>

000000000040145c <read_six_numbers>:
  40145c:	sub    $0x18,%rsp
  401460:	mov    %rsi,%rdx
  401463:	lea    0x4(%rsi),%rcx
  401467:	lea    0x14(%rsi),%rax
  40146b:	mov    %rax,0x8(%rsp)
  401470:	lea    0x10(%rsi),%rax
  401474:	mov    %rax,(%rsp)
  401478:	lea    0xc(%rsi),%r9
  40147c:	lea    0x8(%rsi),%r8
  401480:	mov    $0x4025c3,%esi
  401485:	mov    $0x0,%eax
  40148a:	call   400bf0 <__isoc99_sscanf@plt>
  40148f:	cmp    $0x5,%eax
  401492:	jg     401499 <read_six_numbers+0x3d>
  401494:	call   40143a <explode_bomb>
  401499:	add    $0x18,%rsp
  40149d:	ret

000000000040149e <read_line>:
  40149e:	sub    $0x8,%rsp
  4014a2:	mov    $0x0,%eax
  4014a7:	call   4013f9 <skip>
  4014ac:	test   %rax,%rax
  4014af:	jne    40151f <read_line+0x81>
  4014b1:	mov    0x202290(%rip),%rax        # 603748 <stdin@GLIBC_2.2.5>
  4014b8:	cmp    %rax,0x2022a9(%rip)        # 603768 <infile>
  4014bf:	jne    4014d5 <read_line+0x37>
  4014c1:	mov    $0x4025d5,%edi
  4014c6:	call   400b10 <puts@plt>
  4014cb:	mov    $0x8,%edi
  4014d0:	call   400c20 <exit@plt>
  4014d5:	mov    $0x4025f3,%edi
  4014da:	call   400ae0 <getenv@plt>
  4014df:	test   %rax,%rax
  4014e2:	je     4014ee <read_line+0x50>
  4014e4:	mov    $0x0,%edi
  4014e9:	call   400c20 <exit@plt>
  4014ee:	mov    0x202253(%rip),%rax        # 603748 <stdin@GLIBC_2.2.5>
  4014f5:	mov    %rax,0x20226c(%rip)        # 603768 <infile>
  4014fc:	mov    $0x0,%eax
  401501:	call   4013f9 <skip>
  401506:	test   %rax,%rax
  401509:	jne    40151f <read_line+0x81>
  40150b:	mov    $0x4025d5,%edi
  401510:	call   400b10 <puts@plt>
  401515:	mov    $0x0,%edi
  40151a:	call   400c20 <exit@plt>
  40151f:	mov    0x20223b(%rip),%edx        # 603760 <num_input_strings>
  401525:	movslq %edx,%rax
  401528:	lea    (%rax,%rax,4),%rsi
  40152c:	shl    $0x4,%rsi
  401530:	add    $0x603780,%rsi
  401537:	mov    %rsi,%rdi
  40153a:	mov    $0x0,%eax
  40153f:	mov    $0xffffffffffffffff,%rcx
  401546:	repnz scas %es:(%rdi),%al
  401548:	not    %rcx
  40154b:	sub    $0x1,%rcx
  40154f:	cmp    $0x4e,%ecx
  401552:	jle    40159a <read_line+0xfc>
  401554:	mov    $0x4025fe,%edi
  401559:	call   400b10 <puts@plt>
  40155e:	mov    0x2021fc(%rip),%eax        # 603760 <num_input_strings>
  401564:	lea    0x1(%rax),%edx
  401567:	mov    %edx,0x2021f3(%rip)        # 603760 <num_input_strings>
  40156d:	cltq
  40156f:	imul   $0x50,%rax,%rax
  401573:	movabs $0x636e7572742a2a2a,%rdi
  40157d:	mov    %rdi,0x603780(%rax)
  401584:	movabs $0x2a2a2a64657461,%rdi
  40158e:	mov    %rdi,0x603788(%rax)
  401595:	call   40143a <explode_bomb>
  40159a:	sub    $0x1,%ecx
  40159d:	movslq %ecx,%rcx
  4015a0:	movslq %edx,%rax
  4015a3:	lea    (%rax,%rax,4),%rax
  4015a7:	shl    $0x4,%rax
  4015ab:	movb   $0x0,0x603780(%rcx,%rax,1)
  4015b3:	add    $0x1,%edx
  4015b6:	mov    %edx,0x2021a4(%rip)        # 603760 <num_input_strings>
  4015bc:	mov    %rsi,%rax
  4015bf:	add    $0x8,%rsp
  4015c3:	ret

00000000004015c4 <phase_defused>:
  4015c4:	sub    $0x78,%rsp
  4015c8:	mov    %fs:0x28,%rax
  4015d1:	mov    %rax,0x68(%rsp)
  4015d6:	xor    %eax,%eax
  4015d8:	cmpl   $0x6,0x202181(%rip)        # 603760 <num_input_strings>
  4015df:	jne    40163f <phase_defused+0x7b>
  4015e1:	lea    0x10(%rsp),%r8
  4015e6:	lea    0xc(%rsp),%rcx
  4015eb:	lea    0x8(%rsp),%rdx
  4015f0:	mov    $0x402619,%esi
  4015f5:	mov    $0x603870,%edi
  4015fa:	call   400bf0 <__isoc99_sscanf@plt>
  4015ff:	cmp    $0x3,%eax
  401602:	jne    401635 <phase_defused+0x71>
  401604:	mov    $0x402622,%esi
  401609:	lea    0x10(%rsp),%rdi
  40160e:	call   401338 <strings_not_equal>
  401613:	test   %eax,%eax
  401615:	jne    401635 <phase_defused+0x71>
  401617:	mov    $0x4024f8,%edi
  40161c:	call   400b10 <puts@plt>
  401621:	mov    $0x402520,%edi
  401626:	call   400b10 <puts@plt>
  40162b:	mov    $0x0,%eax
  401630:	call   401242 <secret_phase>
  401635:	mov    $0x402558,%edi
  40163a:	call   400b10 <puts@plt>
  40163f:	mov    0x68(%rsp),%rax
  401644:	xor    %fs:0x28,%rax
  40164d:	je     401654 <phase_defused+0x90>
  40164f:	call   400b30 <__stack_chk_fail@plt>
  401654:	add    $0x78,%rsp
  401658:	ret
  401659:	nop
  40165a:	nop
  40165b:	nop
  40165c:	nop
  40165d:	nop
  40165e:	nop
  40165f:	nop

0000000000401660 <sigalrm_handler>:
  401660:	sub    $0x8,%rsp
  401664:	mov    $0x0,%ecx
  401669:	mov    $0x402678,%edx
  40166e:	mov    $0x1,%esi
  401673:	mov    0x2020d6(%rip),%rdi        # 603750 <stderr@GLIBC_2.2.5>
  40167a:	mov    $0x0,%eax
  40167f:	call   400c40 <__fprintf_chk@plt>
  401684:	mov    $0x1,%edi
  401689:	call   400c20 <exit@plt>

000000000040168e <rio_readlineb>:
  40168e:	push   %r15
  401690:	push   %r14
  401692:	push   %r13
  401694:	push   %r12
  401696:	push   %rbp
  401697:	push   %rbx
  401698:	sub    $0x38,%rsp
  40169c:	mov    %rsi,%r14
  40169f:	mov    %rdx,0x18(%rsp)
  4016a4:	cmp    $0x1,%rdx
  4016a8:	jbe    401777 <rio_readlineb+0xe9>
  4016ae:	mov    %rdi,%rbx
  4016b1:	mov    $0x1,%r13d
  4016b7:	lea    0x10(%rdi),%r12
  4016bb:	jmp    4016ed <rio_readlineb+0x5f>
  4016bd:	mov    $0x2000,%edx
  4016c2:	mov    %r12,%rsi
  4016c5:	mov    (%rbx),%edi
  4016c7:	call   400b60 <read@plt>
  4016cc:	mov    %eax,0x4(%rbx)
  4016cf:	test   %eax,%eax
  4016d1:	jns    4016e5 <rio_readlineb+0x57>
  4016d3:	call   400af0 <__errno_location@plt>
  4016d8:	cmpl   $0x4,(%rax)
  4016db:	je     4016ed <rio_readlineb+0x5f>
  4016dd:	nopl   (%rax)
  4016e0:	jmp    401786 <rio_readlineb+0xf8>
  4016e5:	test   %eax,%eax
  4016e7:	je     40175a <rio_readlineb+0xcc>
  4016e9:	mov    %r12,0x8(%rbx)
  4016ed:	mov    0x4(%rbx),%ebp
  4016f0:	test   %ebp,%ebp
  4016f2:	jle    4016bd <rio_readlineb+0x2f>
  4016f4:	test   %ebp,%ebp
  4016f6:	setne  %r15b
  4016fa:	movzbl %r15b,%eax
  4016fe:	mov    %eax,0xc(%rsp)
  401702:	movzbl %r15b,%r15d
  401706:	mov    0x8(%rbx),%rcx
  40170a:	mov    %rcx,%rsi
  40170d:	mov    $0x1,%ecx
  401712:	mov    %r15,%rdx
  401715:	mov    %rsi,0x10(%rsp)
  40171a:	lea    0x2f(%rsp),%rdi
  40171f:	call   400bc0 <__memcpy_chk@plt>
  401724:	add    0x10(%rsp),%r15
  401729:	mov    %r15,0x8(%rbx)
  40172d:	mov    0xc(%rsp),%eax
  401731:	sub    %eax,%ebp
  401733:	mov    %ebp,0x4(%rbx)
  401736:	cmp    $0x1,%eax
  401739:	jne    40174e <rio_readlineb+0xc0>
  40173b:	add    $0x1,%r14
  40173f:	movzbl 0x2f(%rsp),%eax
  401744:	mov    %al,-0x1(%r14)
  401748:	cmp    $0xa,%al
  40174a:	jne    401764 <rio_readlineb+0xd6>
  40174c:	jmp    40177d <rio_readlineb+0xef>
  40174e:	cmpl   $0x0,0xc(%rsp)
  401753:	jne    40178f <rio_readlineb+0x101>
  401755:	mov    %r13d,%eax
  401758:	jmp    40175d <rio_readlineb+0xcf>
  40175a:	mov    %r13d,%eax
  40175d:	cmp    $0x1,%eax
  401760:	jne    40177d <rio_readlineb+0xef>
  401762:	jmp    401798 <rio_readlineb+0x10a>
  401764:	add    $0x1,%r13d
  401768:	movslq %r13d,%rax
  40176b:	cmp    0x18(%rsp),%rax
  401770:	jae    40177d <rio_readlineb+0xef>
  401772:	jmp    4016ed <rio_readlineb+0x5f>
  401777:	mov    $0x1,%r13d
  40177d:	movb   $0x0,(%r14)
  401781:	movslq %r13d,%rax
  401784:	jmp    40179d <rio_readlineb+0x10f>
  401786:	mov    $0xffffffffffffffff,%rax
  40178d:	jmp    40179d <rio_readlineb+0x10f>
  40178f:	mov    $0xffffffffffffffff,%rax
  401796:	jmp    40179d <rio_readlineb+0x10f>
  401798:	mov    $0x0,%eax
  40179d:	add    $0x38,%rsp
  4017a1:	pop    %rbx
  4017a2:	pop    %rbp
  4017a3:	pop    %r12
  4017a5:	pop    %r13
  4017a7:	pop    %r14
  4017a9:	pop    %r15
  4017ab:	ret

00000000004017ac <submitr>:
  4017ac:	push   %r15
  4017ae:	push   %r14
  4017b0:	push   %r13
  4017b2:	push   %r12
  4017b4:	push   %rbp
  4017b5:	push   %rbx
  4017b6:	sub    $0xa068,%rsp
  4017bd:	mov    %rdi,%rbp
  4017c0:	mov    %esi,%r13d
  4017c3:	mov    %rdx,0x10(%rsp)
  4017c8:	mov    %rcx,0x18(%rsp)
  4017cd:	mov    %r8,%r15
  4017d0:	mov    %r9,%rbx
  4017d3:	mov    0xa0a0(%rsp),%r14
  4017db:	mov    %fs:0x28,%rax
  4017e4:	mov    %rax,0xa058(%rsp)
  4017ec:	xor    %eax,%eax
  4017ee:	movl   $0x0,0x2c(%rsp)
  4017f6:	mov    $0x0,%edx
  4017fb:	mov    $0x1,%esi
  401800:	mov    $0x2,%edi
  401805:	call   400c80 <socket@plt>
  40180a:	mov    %eax,%r12d
  40180d:	test   %eax,%eax
  40180f:	jns    401861 <submitr+0xb5>
  401811:	movabs $0x43203a726f727245,%rax
  40181b:	mov    %rax,(%r14)
  40181e:	movabs $0x6e7520746e65696c,%rax
  401828:	mov    %rax,0x8(%r14)
  40182c:	movabs $0x206f7420656c6261,%rax
  401836:	mov    %rax,0x10(%r14)
  40183a:	movabs $0x7320657461657263,%rax
  401844:	mov    %rax,0x18(%r14)
  401848:	movl   $0x656b636f,0x20(%r14)
  401850:	movw   $0x74,0x24(%r14)
  401857:	mov    $0xffffffff,%eax
  40185c:	jmp    401e68 <submitr+0x6bc>
  401861:	mov    %rbp,%rdi
  401864:	call   400ba0 <gethostbyname@plt>
  401869:	test   %rax,%rax
  40186c:	jne    4018d9 <submitr+0x12d>
  40186e:	movabs $0x44203a726f727245,%rax
  401878:	mov    %rax,(%r14)
  40187b:	movabs $0x6e7520736920534e,%rax
  401885:	mov    %rax,0x8(%r14)
  401889:	movabs $0x206f7420656c6261,%rax
  401893:	mov    %rax,0x10(%r14)
  401897:	movabs $0x2065766c6f736572,%rax
  4018a1:	mov    %rax,0x18(%r14)
  4018a5:	movabs $0x6120726576726573,%rax
  4018af:	mov    %rax,0x20(%r14)
  4018b3:	movl   $0x65726464,0x28(%r14)
  4018bb:	movw   $0x7373,0x2c(%r14)
  4018c2:	movb   $0x0,0x2e(%r14)
  4018c7:	mov    %r12d,%edi
  4018ca:	call   400b50 <close@plt>
  4018cf:	mov    $0xffffffff,%eax
  4018d4:	jmp    401e68 <submitr+0x6bc>
  4018d9:	movq   $0x0,0x30(%rsp)
  4018e2:	movq   $0x0,0x38(%rsp)
  4018eb:	movw   $0x2,0x30(%rsp)
  4018f2:	movslq 0x14(%rax),%rdx
  4018f6:	mov    0x18(%rax),%rax
  4018fa:	lea    0x34(%rsp),%rdi
  4018ff:	mov    $0xc,%ecx
  401904:	mov    (%rax),%rsi
  401907:	call   400bb0 <__memmove_chk@plt>
  40190c:	ror    $0x8,%r13w
  401911:	mov    %r13w,0x32(%rsp)
  401917:	mov    $0x10,%edx
  40191c:	lea    0x30(%rsp),%rsi
  401921:	mov    %r12d,%edi
  401924:	call   400c30 <connect@plt>
  401929:	test   %eax,%eax
  40192b:	jns    40198a <submitr+0x1de>
  40192d:	movabs $0x55203a726f727245,%rax
  401937:	mov    %rax,(%r14)
  40193a:	movabs $0x6f7420656c62616e,%rax
  401944:	mov    %rax,0x8(%r14)
  401948:	movabs $0x7463656e6e6f6320,%rax
  401952:	mov    %rax,0x10(%r14)
  401956:	movabs $0x20656874206f7420,%rax
  401960:	mov    %rax,0x18(%r14)
  401964:	movl   $0x76726573,0x20(%r14)
  40196c:	movw   $0x7265,0x24(%r14)
  401973:	movb   $0x0,0x26(%r14)
  401978:	mov    %r12d,%edi
  40197b:	call   400b50 <close@plt>
  401980:	mov    $0xffffffff,%eax
  401985:	jmp    401e68 <submitr+0x6bc>
  40198a:	mov    $0xffffffffffffffff,%rdx
  401991:	mov    %rbx,%rdi
  401994:	mov    $0x0,%eax
  401999:	mov    %rdx,%rcx
  40199c:	repnz scas %es:(%rdi),%al
  40199e:	not    %rcx
  4019a1:	mov    %rcx,%rsi
  4019a4:	mov    0x10(%rsp),%rdi
  4019a9:	mov    %rdx,%rcx
  4019ac:	repnz scas %es:(%rdi),%al
  4019ae:	mov    %rcx,%r8
  4019b1:	mov    0x18(%rsp),%rdi
  4019b6:	mov    %rdx,%rcx
  4019b9:	repnz scas %es:(%rdi),%al
  4019bb:	not    %rcx
  4019be:	mov    %rcx,%r9
  4019c1:	mov    %r15,%rdi
  4019c4:	mov    %rdx,%rcx
  4019c7:	repnz scas %es:(%rdi),%al
  4019c9:	sub    %r8,%r9
  4019cc:	sub    %rcx,%r9
  4019cf:	lea    -0x3(%rsi,%rsi,2),%rax
  4019d4:	lea    0x7b(%r9,%rax,1),%rax
  4019d9:	cmp    $0x2000,%rax
  4019df:	jbe    401a54 <submitr+0x2a8>
  4019e1:	movabs $0x52203a726f727245,%rax
  4019eb:	mov    %rax,(%r14)
  4019ee:	movabs $0x747320746c757365,%rax
  4019f8:	mov    %rax,0x8(%r14)
  4019fc:	movabs $0x6f6f7420676e6972,%rax
  401a06:	mov    %rax,0x10(%r14)
  401a0a:	movabs $0x202e656772616c20,%rax
  401a14:	mov    %rax,0x18(%r14)
  401a18:	movabs $0x6573616572636e49,%rax
  401a22:	mov    %rax,0x20(%r14)
  401a26:	movabs $0x5254494d42555320,%rax
  401a30:	mov    %rax,0x28(%r14)
  401a34:	movabs $0x46554258414d5f,%rax
  401a3e:	mov    %rax,0x30(%r14)
  401a42:	mov    %r12d,%edi
  401a45:	call   400b50 <close@plt>
  401a4a:	mov    $0xffffffff,%eax
  401a4f:	jmp    401e68 <submitr+0x6bc>
  401a54:	lea    0x2040(%rsp),%rdx
  401a5c:	mov    $0x400,%ecx
  401a61:	mov    $0x0,%eax
  401a66:	mov    %rdx,%rdi
  401a69:	rep stos %rax,%es:(%rdi)
  401a6c:	mov    %rbx,%rdi
  401a6f:	mov    $0xffffffffffffffff,%rcx
  401a76:	repnz scas %es:(%rdi),%al
  401a78:	not    %rcx
  401a7b:	sub    $0x1,%rcx
  401a7f:	test   %ecx,%ecx
  401a81:	je     401e84 <submitr+0x6d8>
  401a87:	sub    $0x1,%ecx
  401a8a:	lea    0x1(%rbx,%rcx,1),%r13
  401a8f:	mov    %rdx,%rbp
  401a92:	movzbl (%rbx),%r8d
  401a96:	cmp    $0x2a,%r8b
  401a9a:	je     401abf <submitr+0x313>
  401a9c:	lea    -0x2d(%r8),%eax
  401aa0:	cmp    $0x1,%al
  401aa2:	jbe    401abf <submitr+0x313>
  401aa4:	cmp    $0x5f,%r8b
  401aa8:	je     401abf <submitr+0x313>
  401aaa:	lea    -0x30(%r8),%eax
  401aae:	cmp    $0x9,%al
  401ab0:	jbe    401abf <submitr+0x313>
  401ab2:	mov    %r8d,%eax
  401ab5:	and    $0xffffffdf,%eax
  401ab8:	sub    $0x41,%eax
  401abb:	cmp    $0x19,%al
  401abd:	ja     401ac9 <submitr+0x31d>
  401abf:	lea    0x1(%rbp),%rax
  401ac3:	mov    %r8b,0x0(%rbp)
  401ac7:	jmp    401b35 <submitr+0x389>
  401ac9:	cmp    $0x20,%r8b
  401acd:	jne    401ad9 <submitr+0x32d>
  401acf:	lea    0x1(%rbp),%rax
  401ad3:	movb   $0x2b,0x0(%rbp)
  401ad7:	jmp    401b35 <submitr+0x389>
  401ad9:	lea    -0x20(%r8),%eax
  401add:	cmp    $0x5f,%al
  401adf:	jbe    401aeb <submitr+0x33f>
  401ae1:	cmp    $0x9,%r8b
  401ae5:	jne    401eed <submitr+0x741>
  401aeb:	movzbl %r8b,%r8d
  401aef:	mov    $0x402748,%ecx
  401af4:	mov    $0x8,%edx
  401af9:	mov    $0x1,%esi
  401afe:	lea    0x8040(%rsp),%rdi
  401b06:	mov    $0x0,%eax
  401b0b:	call   400c70 <__sprintf_chk@plt>
  401b10:	movzbl 0x8040(%rsp),%eax
  401b18:	mov    %al,0x0(%rbp)
  401b1b:	movzbl 0x8041(%rsp),%eax
  401b23:	mov    %al,0x1(%rbp)
  401b26:	lea    0x3(%rbp),%rax
  401b2a:	movzbl 0x8042(%rsp),%edx
  401b32:	mov    %dl,0x2(%rbp)
  401b35:	add    $0x1,%rbx
  401b39:	cmp    %r13,%rbx
  401b3c:	je     401e84 <submitr+0x6d8>
  401b42:	mov    %rax,%rbp
  401b45:	jmp    401a92 <submitr+0x2e6>
  401b4a:	mov    %rbx,%rdx
  401b4d:	mov    %rbp,%rsi
  401b50:	mov    %r12d,%edi
  401b53:	call   400b20 <write@plt>
  401b58:	test   %rax,%rax
  401b5b:	jg     401b6c <submitr+0x3c0>
  401b5d:	call   400af0 <__errno_location@plt>
  401b62:	cmpl   $0x4,(%rax)
  401b65:	jne    401b79 <submitr+0x3cd>
  401b67:	mov    $0x0,%eax
  401b6c:	add    %rax,%rbp
  401b6f:	sub    %rax,%rbx
  401b72:	jne    401b4a <submitr+0x39e>
  401b74:	test   %r13,%r13
  401b77:	jns    401bd8 <submitr+0x42c>
  401b79:	movabs $0x43203a726f727245,%rax
  401b83:	mov    %rax,(%r14)
  401b86:	movabs $0x6e7520746e65696c,%rax
  401b90:	mov    %rax,0x8(%r14)
  401b94:	movabs $0x206f7420656c6261,%rax
  401b9e:	mov    %rax,0x10(%r14)
  401ba2:	movabs $0x6f74206574697277,%rax
  401bac:	mov    %rax,0x18(%r14)
  401bb0:	movabs $0x7265732065687420,%rax
  401bba:	mov    %rax,0x20(%r14)
  401bbe:	movl   $0x726576,0x28(%r14)
  401bc6:	mov    %r12d,%edi
  401bc9:	call   400b50 <close@plt>
  401bce:	mov    $0xffffffff,%eax
  401bd3:	jmp    401e68 <submitr+0x6bc>
  401bd8:	mov    %r12d,0x8040(%rsp)
  401be0:	movl   $0x0,0x8044(%rsp)
  401beb:	lea    0x8050(%rsp),%rax
  401bf3:	mov    %rax,0x8048(%rsp)
  401bfb:	mov    $0x2000,%edx
  401c00:	lea    0x40(%rsp),%rsi
  401c05:	lea    0x8040(%rsp),%rdi
  401c0d:	call   40168e <rio_readlineb>
  401c12:	test   %rax,%rax
  401c15:	jg     401c8b <submitr+0x4df>
  401c17:	movabs $0x43203a726f727245,%rax
  401c21:	mov    %rax,(%r14)
  401c24:	movabs $0x6e7520746e65696c,%rax
  401c2e:	mov    %rax,0x8(%r14)
  401c32:	movabs $0x206f7420656c6261,%rax
  401c3c:	mov    %rax,0x10(%r14)
  401c40:	movabs $0x7269662064616572,%rax
  401c4a:	mov    %rax,0x18(%r14)
  401c4e:	movabs $0x6564616568207473,%rax
  401c58:	mov    %rax,0x20(%r14)
  401c5c:	movabs $0x73206d6f72662072,%rax
  401c66:	mov    %rax,0x28(%r14)
  401c6a:	movl   $0x65767265,0x30(%r14)
  401c72:	movw   $0x72,0x34(%r14)
  401c79:	mov    %r12d,%edi
  401c7c:	call   400b50 <close@plt>
  401c81:	mov    $0xffffffff,%eax
  401c86:	jmp    401e68 <submitr+0x6bc>
  401c8b:	lea    0x6040(%rsp),%r8
  401c93:	lea    0x2c(%rsp),%rcx
  401c98:	lea    0x4040(%rsp),%rdx
  401ca0:	mov    $0x40274f,%esi
  401ca5:	lea    0x40(%rsp),%rdi
  401caa:	mov    $0x0,%eax
  401caf:	call   400bf0 <__isoc99_sscanf@plt>
  401cb4:	mov    0x2c(%rsp),%r8d
  401cb9:	cmp    $0xc8,%r8d
  401cc0:	je     401d84 <submitr+0x5d8>
  401cc6:	lea    0x6040(%rsp),%r9
  401cce:	mov    $0x4026a0,%ecx
  401cd3:	mov    $0xffffffffffffffff,%rdx
  401cda:	mov    $0x1,%esi
  401cdf:	mov    %r14,%rdi
  401ce2:	mov    $0x0,%eax
  401ce7:	call   400c70 <__sprintf_chk@plt>
  401cec:	mov    %r12d,%edi
  401cef:	call   400b50 <close@plt>
  401cf4:	mov    $0xffffffff,%eax
  401cf9:	jmp    401e68 <submitr+0x6bc>
  401cfe:	mov    $0x2000,%edx
  401d03:	lea    0x40(%rsp),%rsi
  401d08:	lea    0x8040(%rsp),%rdi
  401d10:	call   40168e <rio_readlineb>
  401d15:	test   %rax,%rax
  401d18:	jg     401d84 <submitr+0x5d8>
  401d1a:	movabs $0x43203a726f727245,%rax
  401d24:	mov    %rax,(%r14)
  401d27:	movabs $0x6e7520746e65696c,%rax
  401d31:	mov    %rax,0x8(%r14)
  401d35:	movabs $0x206f7420656c6261,%rax
  401d3f:	mov    %rax,0x10(%r14)
  401d43:	movabs $0x6165682064616572,%rax
  401d4d:	mov    %rax,0x18(%r14)
  401d51:	movabs $0x6f72662073726564,%rax
  401d5b:	mov    %rax,0x20(%r14)
  401d5f:	movabs $0x726576726573206d,%rax
  401d69:	mov    %rax,0x28(%r14)
  401d6d:	movb   $0x0,0x30(%r14)
  401d72:	mov    %r12d,%edi
  401d75:	call   400b50 <close@plt>
  401d7a:	mov    $0xffffffff,%eax
  401d7f:	jmp    401e68 <submitr+0x6bc>
  401d84:	cmpb   $0xd,0x40(%rsp)
  401d89:	jne    401cfe <submitr+0x552>
  401d8f:	cmpb   $0xa,0x41(%rsp)
  401d94:	jne    401cfe <submitr+0x552>
  401d9a:	cmpb   $0x0,0x42(%rsp)
  401d9f:	jne    401cfe <submitr+0x552>
  401da5:	mov    $0x2000,%edx
  401daa:	lea    0x40(%rsp),%rsi
  401daf:	lea    0x8040(%rsp),%rdi
  401db7:	call   40168e <rio_readlineb>
  401dbc:	test   %rax,%rax
  401dbf:	jg     401e31 <submitr+0x685>
  401dc1:	movabs $0x43203a726f727245,%rax
  401dcb:	mov    %rax,(%r14)
  401dce:	movabs $0x6e7520746e65696c,%rax
  401dd8:	mov    %rax,0x8(%r14)
  401ddc:	movabs $0x206f7420656c6261,%rax
  401de6:	mov    %rax,0x10(%r14)
  401dea:	movabs $0x6174732064616572,%rax
  401df4:	mov    %rax,0x18(%r14)
  401df8:	movabs $0x7373656d20737574,%rax
  401e02:	mov    %rax,0x20(%r14)
  401e06:	movabs $0x6d6f726620656761,%rax
  401e10:	mov    %rax,0x28(%r14)
  401e14:	movabs $0x72657672657320,%rax
  401e1e:	mov    %rax,0x30(%r14)
  401e22:	mov    %r12d,%edi
  401e25:	call   400b50 <close@plt>
  401e2a:	mov    $0xffffffff,%eax
  401e2f:	jmp    401e68 <submitr+0x6bc>
  401e31:	lea    0x40(%rsp),%rsi
  401e36:	mov    %r14,%rdi
  401e39:	call   400b00 <strcpy@plt>
  401e3e:	mov    %r12d,%edi
  401e41:	call   400b50 <close@plt>
  401e46:	movzbl (%r14),%eax
  401e4a:	sub    $0x4f,%eax
  401e4d:	jne    401e5e <submitr+0x6b2>
  401e4f:	movzbl 0x1(%r14),%eax
  401e54:	sub    $0x4b,%eax
  401e57:	jne    401e5e <submitr+0x6b2>
  401e59:	movzbl 0x2(%r14),%eax
  401e5e:	test   %eax,%eax
  401e60:	setne  %al
  401e63:	movzbl %al,%eax
  401e66:	neg    %eax
  401e68:	mov    0xa058(%rsp),%rdx
  401e70:	xor    %fs:0x28,%rdx
  401e79:	je     401f7f <submitr+0x7d3>
  401e7f:	jmp    401f7a <submitr+0x7ce>
  401e84:	lea    0x2040(%rsp),%rax
  401e8c:	mov    %rax,0x8(%rsp)
  401e91:	mov    %r15,(%rsp)
  401e95:	mov    0x18(%rsp),%r9
  401e9a:	mov    0x10(%rsp),%r8
  401e9f:	mov    $0x4026d0,%ecx
  401ea4:	mov    $0x2000,%edx
  401ea9:	mov    $0x1,%esi
  401eae:	lea    0x40(%rsp),%rdi
  401eb3:	mov    $0x0,%eax
  401eb8:	call   400c70 <__sprintf_chk@plt>
  401ebd:	lea    0x40(%rsp),%rdi
  401ec2:	mov    $0x0,%eax
  401ec7:	mov    $0xffffffffffffffff,%rcx
  401ece:	repnz scas %es:(%rdi),%al
  401ed0:	not    %rcx
  401ed3:	sub    $0x1,%rcx
  401ed7:	mov    %rcx,%r13
  401eda:	je     401bd8 <submitr+0x42c>
  401ee0:	mov    %rcx,%rbx
  401ee3:	lea    0x40(%rsp),%rbp
  401ee8:	jmp    401b4a <submitr+0x39e>
  401eed:	movabs $0x52203a726f727245,%rax
  401ef7:	mov    %rax,(%r14)
  401efa:	movabs $0x747320746c757365,%rax
  401f04:	mov    %rax,0x8(%r14)
  401f08:	movabs $0x6e6f6320676e6972,%rax
  401f12:	mov    %rax,0x10(%r14)
  401f16:	movabs $0x6e6120736e696174,%rax
  401f20:	mov    %rax,0x18(%r14)
  401f24:	movabs $0x6c6167656c6c6920,%rax
  401f2e:	mov    %rax,0x20(%r14)
  401f32:	movabs $0x72706e7520726f20,%rax
  401f3c:	mov    %rax,0x28(%r14)
  401f40:	movabs $0x20656c6261746e69,%rax
  401f4a:	mov    %rax,0x30(%r14)
  401f4e:	movabs $0x6574636172616863,%rax
  401f58:	mov    %rax,0x38(%r14)
  401f5c:	movw   $0x2e72,0x40(%r14)
  401f63:	movb   $0x0,0x42(%r14)
  401f68:	mov    %r12d,%edi
  401f6b:	call   400b50 <close@plt>
  401f70:	mov    $0xffffffff,%eax
  401f75:	jmp    401e68 <submitr+0x6bc>
  401f7a:	call   400b30 <__stack_chk_fail@plt>
  401f7f:	add    $0xa068,%rsp
  401f86:	pop    %rbx
  401f87:	pop    %rbp
  401f88:	pop    %r12
  401f8a:	pop    %r13
  401f8c:	pop    %r14
  401f8e:	pop    %r15
  401f90:	ret

0000000000401f91 <init_timeout>:
  401f91:	push   %rbx
  401f92:	mov    %edi,%ebx
  401f94:	test   %edi,%edi
  401f96:	je     401fb6 <init_timeout+0x25>
  401f98:	mov    $0x401660,%esi
  401f9d:	mov    $0xe,%edi
  401fa2:	call   400b90 <signal@plt>
  401fa7:	test   %ebx,%ebx
  401fa9:	mov    $0x0,%edi
  401fae:	cmovns %ebx,%edi
  401fb1:	call   400b40 <alarm@plt>
  401fb6:	pop    %rbx
  401fb7:	ret

0000000000401fb8 <init_driver>:
  401fb8:	push   %rbp
  401fb9:	push   %rbx
  401fba:	sub    $0x28,%rsp
  401fbe:	mov    %rdi,%rbp
  401fc1:	mov    %fs:0x28,%rax
  401fca:	mov    %rax,0x18(%rsp)
  401fcf:	xor    %eax,%eax
  401fd1:	mov    $0x1,%esi
  401fd6:	mov    $0xd,%edi
  401fdb:	call   400b90 <signal@plt>
  401fe0:	mov    $0x1,%esi
  401fe5:	mov    $0x1d,%edi
  401fea:	call   400b90 <signal@plt>
  401fef:	mov    $0x1,%esi
  401ff4:	mov    $0x1d,%edi
  401ff9:	call   400b90 <signal@plt>
  401ffe:	mov    $0x0,%edx
  402003:	mov    $0x1,%esi
  402008:	mov    $0x2,%edi
  40200d:	call   400c80 <socket@plt>
  402012:	mov    %eax,%ebx
  402014:	test   %eax,%eax
  402016:	jns    402067 <init_driver+0xaf>
  402018:	movabs $0x43203a726f727245,%rax
  402022:	mov    %rax,0x0(%rbp)
  402026:	movabs $0x6e7520746e65696c,%rax
  402030:	mov    %rax,0x8(%rbp)
  402034:	movabs $0x206f7420656c6261,%rax
  40203e:	mov    %rax,0x10(%rbp)
  402042:	movabs $0x7320657461657263,%rax
  40204c:	mov    %rax,0x18(%rbp)
  402050:	movl   $0x656b636f,0x20(%rbp)
  402057:	movw   $0x74,0x24(%rbp)
  40205d:	mov    $0xffffffff,%eax
  402062:	jmp    402171 <init_driver+0x1b9>
  402067:	mov    $0x402760,%edi
  40206c:	call   400ba0 <gethostbyname@plt>
  402071:	test   %rax,%rax
  402074:	jne    4020de <init_driver+0x126>
  402076:	movabs $0x44203a726f727245,%rax
  402080:	mov    %rax,0x0(%rbp)
  402084:	movabs $0x6e7520736920534e,%rax
  40208e:	mov    %rax,0x8(%rbp)
  402092:	movabs $0x206f7420656c6261,%rax
  40209c:	mov    %rax,0x10(%rbp)
  4020a0:	movabs $0x2065766c6f736572,%rax
  4020aa:	mov    %rax,0x18(%rbp)
  4020ae:	movabs $0x6120726576726573,%rax
  4020b8:	mov    %rax,0x20(%rbp)
  4020bc:	movl   $0x65726464,0x28(%rbp)
  4020c3:	movw   $0x7373,0x2c(%rbp)
  4020c9:	movb   $0x0,0x2e(%rbp)
  4020cd:	mov    %ebx,%edi
  4020cf:	call   400b50 <close@plt>
  4020d4:	mov    $0xffffffff,%eax
  4020d9:	jmp    402171 <init_driver+0x1b9>
  4020de:	movq   $0x0,(%rsp)
  4020e6:	movq   $0x0,0x8(%rsp)
  4020ef:	movw   $0x2,(%rsp)
  4020f5:	movslq 0x14(%rax),%rdx
  4020f9:	mov    0x18(%rax),%rax
  4020fd:	lea    0x4(%rsp),%rdi
  402102:	mov    $0xc,%ecx
  402107:	mov    (%rax),%rsi
  40210a:	call   400bb0 <__memmove_chk@plt>
  40210f:	movw   $0x6e3b,0x2(%rsp)
  402116:	mov    $0x10,%edx
  40211b:	mov    %rsp,%rsi
  40211e:	mov    %ebx,%edi
  402120:	call   400c30 <connect@plt>
  402125:	test   %eax,%eax
  402127:	jns    40215b <init_driver+0x1a3>
  402129:	mov    $0x402760,%r8d
  40212f:	mov    $0x402720,%ecx
  402134:	mov    $0xffffffffffffffff,%rdx
  40213b:	mov    $0x1,%esi
  402140:	mov    %rbp,%rdi
  402143:	mov    $0x0,%eax
  402148:	call   400c70 <__sprintf_chk@plt>
  40214d:	mov    %ebx,%edi
  40214f:	call   400b50 <close@plt>
  402154:	mov    $0xffffffff,%eax
  402159:	jmp    402171 <init_driver+0x1b9>
  40215b:	mov    %ebx,%edi
  40215d:	call   400b50 <close@plt>
  402162:	movw   $0x4b4f,0x0(%rbp)
  402168:	movb   $0x0,0x2(%rbp)
  40216c:	mov    $0x0,%eax
  402171:	mov    0x18(%rsp),%rcx
  402176:	xor    %fs:0x28,%rcx
  40217f:	je     402186 <init_driver+0x1ce>
  402181:	call   400b30 <__stack_chk_fail@plt>
  402186:	add    $0x28,%rsp
  40218a:	pop    %rbx
  40218b:	pop    %rbp
  40218c:	ret

000000000040218d <driver_post>:
  40218d:	push   %rbx
  40218e:	sub    $0x10,%rsp
  402192:	mov    %rcx,%rbx
  402195:	test   %edx,%edx
  402197:	je     4021c0 <driver_post+0x33>
  402199:	mov    %rsi,%rdx
  40219c:	mov    $0x402778,%esi
  4021a1:	mov    $0x1,%edi
  4021a6:	mov    $0x0,%eax
  4021ab:	call   400c00 <__printf_chk@plt>
  4021b0:	movw   $0x4b4f,(%rbx)
  4021b5:	movb   $0x0,0x2(%rbx)
  4021b9:	mov    $0x0,%eax
  4021be:	jmp    4021fe <driver_post+0x71>
  4021c0:	test   %rdi,%rdi
  4021c3:	je     4021f0 <driver_post+0x63>
  4021c5:	cmpb   $0x0,(%rdi)
  4021c8:	je     4021f0 <driver_post+0x63>
  4021ca:	mov    %rcx,(%rsp)
  4021ce:	mov    %rsi,%r9
  4021d1:	mov    $0x4022ec,%r8d
  4021d7:	mov    %rdi,%rcx
  4021da:	mov    $0x40278f,%edx
  4021df:	mov    $0x3b6e,%esi
  4021e4:	mov    $0x402760,%edi
  4021e9:	call   4017ac <submitr>
  4021ee:	jmp    4021fe <driver_post+0x71>
  4021f0:	movw   $0x4b4f,(%rbx)
  4021f5:	movb   $0x0,0x2(%rbx)
  4021f9:	mov    $0x0,%eax
  4021fe:	add    $0x10,%rsp
  402202:	pop    %rbx
  402203:	ret
  402204:	nop
  402205:	nop
  402206:	nop
  402207:	nop
  402208:	nop
  402209:	nop
  40220a:	nop
  40220b:	nop
  40220c:	nop
  40220d:	nop
  40220e:	nop
  40220f:	nop

0000000000402210 <__libc_csu_init>:
  402210:	mov    %rbp,-0x28(%rsp)
  402215:	mov    %r12,-0x20(%rsp)
  40221a:	lea    0x200bdf(%rip),%rbp        # 602e00 <__do_global_dtors_aux_fini_array_entry>
  402221:	lea    0x200bd0(%rip),%r12        # 602df8 <__frame_dummy_init_array_entry>
  402228:	mov    %r13,-0x18(%rsp)
  40222d:	mov    %r14,-0x10(%rsp)
  402232:	mov    %r15,-0x8(%rsp)
  402237:	mov    %rbx,-0x30(%rsp)
  40223c:	sub    $0x38,%rsp
  402240:	sub    %r12,%rbp
  402243:	mov    %edi,%r13d
  402246:	mov    %rsi,%r14
  402249:	sar    $0x3,%rbp
  40224d:	mov    %rdx,%r15
  402250:	call   400ac0 <_init>
  402255:	test   %rbp,%rbp
  402258:	je     402276 <__libc_csu_init+0x66>
  40225a:	xor    %ebx,%ebx
  40225c:	nopl   0x0(%rax)
  402260:	mov    %r15,%rdx
  402263:	mov    %r14,%rsi
  402266:	mov    %r13d,%edi
  402269:	call   *(%r12,%rbx,8)
  40226d:	add    $0x1,%rbx
  402271:	cmp    %rbp,%rbx
  402274:	jne    402260 <__libc_csu_init+0x50>
  402276:	mov    0x8(%rsp),%rbx
  40227b:	mov    0x10(%rsp),%rbp
  402280:	mov    0x18(%rsp),%r12
  402285:	mov    0x20(%rsp),%r13
  40228a:	mov    0x28(%rsp),%r14
  40228f:	mov    0x30(%rsp),%r15
  402294:	add    $0x38,%rsp
  402298:	ret
  402299:	nopl   0x0(%rax)

00000000004022a0 <__libc_csu_fini>:
  4022a0:	repz ret
  4022a2:	nop
  4022a3:	nop

Disassembly of section .fini:

00000000004022a4 <_fini>:
  4022a4:	sub    $0x8,%rsp
  4022a8:	add    $0x8,%rsp
  4022ac:	ret