aboutsummaryrefslogtreecommitdiff
path: root/pa2_file_tester/pa2test.s
blob: 143cdbefd77d6204226566cf5e6c24710b217e54 (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
pa2test_sample:     file format elf64-x86-64


Disassembly of section .init:

00000000004006e0 <_init>:
  4006e0:	48 83 ec 08          	sub    $0x8,%rsp
  4006e4:	48 8b 05 0d 19 20 00 	mov    0x20190d(%rip),%rax        # 601ff8 <__gmon_start__>
  4006eb:	48 85 c0             	test   %rax,%rax
  4006ee:	74 05                	je     4006f5 <_init+0x15>
  4006f0:	e8 fb 00 00 00       	call   4007f0 <__gmon_start__@plt>
  4006f5:	48 83 c4 08          	add    $0x8,%rsp
  4006f9:	c3                   	ret

Disassembly of section .plt:

0000000000400700 <.plt>:
  400700:	ff 35 02 19 20 00    	push   0x201902(%rip)        # 602008 <_GLOBAL_OFFSET_TABLE_+0x8>
  400706:	ff 25 04 19 20 00    	jmp    *0x201904(%rip)        # 602010 <_GLOBAL_OFFSET_TABLE_+0x10>
  40070c:	0f 1f 40 00          	nopl   0x0(%rax)

0000000000400710 <putchar@plt>:
  400710:	ff 25 02 19 20 00    	jmp    *0x201902(%rip)        # 602018 <putchar@GLIBC_2.2.5>
  400716:	68 00 00 00 00       	push   $0x0
  40071b:	e9 e0 ff ff ff       	jmp    400700 <.plt>

0000000000400720 <puts@plt>:
  400720:	ff 25 fa 18 20 00    	jmp    *0x2018fa(%rip)        # 602020 <puts@GLIBC_2.2.5>
  400726:	68 01 00 00 00       	push   $0x1
  40072b:	e9 d0 ff ff ff       	jmp    400700 <.plt>

0000000000400730 <write@plt>:
  400730:	ff 25 f2 18 20 00    	jmp    *0x2018f2(%rip)        # 602028 <write@GLIBC_2.2.5>
  400736:	68 02 00 00 00       	push   $0x2
  40073b:	e9 c0 ff ff ff       	jmp    400700 <.plt>

0000000000400740 <strlen@plt>:
  400740:	ff 25 ea 18 20 00    	jmp    *0x2018ea(%rip)        # 602030 <strlen@GLIBC_2.2.5>
  400746:	68 03 00 00 00       	push   $0x3
  40074b:	e9 b0 ff ff ff       	jmp    400700 <.plt>

0000000000400750 <printf@plt>:
  400750:	ff 25 e2 18 20 00    	jmp    *0x2018e2(%rip)        # 602038 <printf@GLIBC_2.2.5>
  400756:	68 04 00 00 00       	push   $0x4
  40075b:	e9 a0 ff ff ff       	jmp    400700 <.plt>

0000000000400760 <lseek@plt>:
  400760:	ff 25 da 18 20 00    	jmp    *0x2018da(%rip)        # 602040 <lseek@GLIBC_2.2.5>
  400766:	68 05 00 00 00       	push   $0x5
  40076b:	e9 90 ff ff ff       	jmp    400700 <.plt>

0000000000400770 <read@plt>:
  400770:	ff 25 d2 18 20 00    	jmp    *0x2018d2(%rip)        # 602048 <read@GLIBC_2.2.5>
  400776:	68 06 00 00 00       	push   $0x6
  40077b:	e9 80 ff ff ff       	jmp    400700 <.plt>

0000000000400780 <__libc_start_main@plt>:
  400780:	ff 25 ca 18 20 00    	jmp    *0x2018ca(%rip)        # 602050 <__libc_start_main@GLIBC_2.2.5>
  400786:	68 07 00 00 00       	push   $0x7
  40078b:	e9 70 ff ff ff       	jmp    400700 <.plt>

0000000000400790 <fgets@plt>:
  400790:	ff 25 c2 18 20 00    	jmp    *0x2018c2(%rip)        # 602058 <fgets@GLIBC_2.2.5>
  400796:	68 08 00 00 00       	push   $0x8
  40079b:	e9 60 ff ff ff       	jmp    400700 <.plt>

00000000004007a0 <fprintf@plt>:
  4007a0:	ff 25 ba 18 20 00    	jmp    *0x2018ba(%rip)        # 602060 <fprintf@GLIBC_2.2.5>
  4007a6:	68 09 00 00 00       	push   $0x9
  4007ab:	e9 50 ff ff ff       	jmp    400700 <.plt>

00000000004007b0 <malloc@plt>:
  4007b0:	ff 25 b2 18 20 00    	jmp    *0x2018b2(%rip)        # 602068 <malloc@GLIBC_2.2.5>
  4007b6:	68 0a 00 00 00       	push   $0xa
  4007bb:	e9 40 ff ff ff       	jmp    400700 <.plt>

00000000004007c0 <open@plt>:
  4007c0:	ff 25 aa 18 20 00    	jmp    *0x2018aa(%rip)        # 602070 <open@GLIBC_2.2.5>
  4007c6:	68 0b 00 00 00       	push   $0xb
  4007cb:	e9 30 ff ff ff       	jmp    400700 <.plt>

00000000004007d0 <atoi@plt>:
  4007d0:	ff 25 a2 18 20 00    	jmp    *0x2018a2(%rip)        # 602078 <atoi@GLIBC_2.2.5>
  4007d6:	68 0c 00 00 00       	push   $0xc
  4007db:	e9 20 ff ff ff       	jmp    400700 <.plt>

00000000004007e0 <exit@plt>:
  4007e0:	ff 25 9a 18 20 00    	jmp    *0x20189a(%rip)        # 602080 <exit@GLIBC_2.2.5>
  4007e6:	68 0d 00 00 00       	push   $0xd
  4007eb:	e9 10 ff ff ff       	jmp    400700 <.plt>

Disassembly of section .plt.got:

00000000004007f0 <__gmon_start__@plt>:
  4007f0:	ff 25 02 18 20 00    	jmp    *0x201802(%rip)        # 601ff8 <__gmon_start__>
  4007f6:	66 90                	xchg   %ax,%ax

Disassembly of section .text:

0000000000400800 <_start>:
  400800:	31 ed                	xor    %ebp,%ebp
  400802:	49 89 d1             	mov    %rdx,%r9
  400805:	5e                   	pop    %rsi
  400806:	48 89 e2             	mov    %rsp,%rdx
  400809:	48 83 e4 f0          	and    $0xfffffffffffffff0,%rsp
  40080d:	50                   	push   %rax
  40080e:	54                   	push   %rsp
  40080f:	49 c7 c0 a0 0d 40 00 	mov    $0x400da0,%r8
  400816:	48 c7 c1 30 0d 40 00 	mov    $0x400d30,%rcx
  40081d:	48 c7 c7 f6 08 40 00 	mov    $0x4008f6,%rdi
  400824:	e8 57 ff ff ff       	call   400780 <__libc_start_main@plt>
  400829:	f4                   	hlt
  40082a:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

0000000000400830 <deregister_tm_clones>:
  400830:	b8 9f 20 60 00       	mov    $0x60209f,%eax
  400835:	55                   	push   %rbp
  400836:	48 2d 98 20 60 00    	sub    $0x602098,%rax
  40083c:	48 83 f8 0e          	cmp    $0xe,%rax
  400840:	48 89 e5             	mov    %rsp,%rbp
  400843:	76 1b                	jbe    400860 <deregister_tm_clones+0x30>
  400845:	b8 00 00 00 00       	mov    $0x0,%eax
  40084a:	48 85 c0             	test   %rax,%rax
  40084d:	74 11                	je     400860 <deregister_tm_clones+0x30>
  40084f:	5d                   	pop    %rbp
  400850:	bf 98 20 60 00       	mov    $0x602098,%edi
  400855:	ff e0                	jmp    *%rax
  400857:	66 0f 1f 84 00 00 00 	nopw   0x0(%rax,%rax,1)
  40085e:	00 00 
  400860:	5d                   	pop    %rbp
  400861:	c3                   	ret
  400862:	0f 1f 40 00          	nopl   0x0(%rax)
  400866:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  40086d:	00 00 00 

0000000000400870 <register_tm_clones>:
  400870:	be 98 20 60 00       	mov    $0x602098,%esi
  400875:	55                   	push   %rbp
  400876:	48 81 ee 98 20 60 00 	sub    $0x602098,%rsi
  40087d:	48 c1 fe 03          	sar    $0x3,%rsi
  400881:	48 89 e5             	mov    %rsp,%rbp
  400884:	48 89 f0             	mov    %rsi,%rax
  400887:	48 c1 e8 3f          	shr    $0x3f,%rax
  40088b:	48 01 c6             	add    %rax,%rsi
  40088e:	48 d1 fe             	sar    %rsi
  400891:	74 15                	je     4008a8 <register_tm_clones+0x38>
  400893:	b8 00 00 00 00       	mov    $0x0,%eax
  400898:	48 85 c0             	test   %rax,%rax
  40089b:	74 0b                	je     4008a8 <register_tm_clones+0x38>
  40089d:	5d                   	pop    %rbp
  40089e:	bf 98 20 60 00       	mov    $0x602098,%edi
  4008a3:	ff e0                	jmp    *%rax
  4008a5:	0f 1f 00             	nopl   (%rax)
  4008a8:	5d                   	pop    %rbp
  4008a9:	c3                   	ret
  4008aa:	66 0f 1f 44 00 00    	nopw   0x0(%rax,%rax,1)

00000000004008b0 <__do_global_dtors_aux>:
  4008b0:	80 3d 11 18 20 00 00 	cmpb   $0x0,0x201811(%rip)        # 6020c8 <completed.7594>
  4008b7:	75 11                	jne    4008ca <__do_global_dtors_aux+0x1a>
  4008b9:	55                   	push   %rbp
  4008ba:	48 89 e5             	mov    %rsp,%rbp
  4008bd:	e8 6e ff ff ff       	call   400830 <deregister_tm_clones>
  4008c2:	5d                   	pop    %rbp
  4008c3:	c6 05 fe 17 20 00 01 	movb   $0x1,0x2017fe(%rip)        # 6020c8 <completed.7594>
  4008ca:	f3 c3                	repz ret
  4008cc:	0f 1f 40 00          	nopl   0x0(%rax)

00000000004008d0 <frame_dummy>:
  4008d0:	bf 20 1e 60 00       	mov    $0x601e20,%edi
  4008d5:	48 83 3f 00          	cmpq   $0x0,(%rdi)
  4008d9:	75 05                	jne    4008e0 <frame_dummy+0x10>
  4008db:	eb 93                	jmp    400870 <register_tm_clones>
  4008dd:	0f 1f 00             	nopl   (%rax)
  4008e0:	b8 00 00 00 00       	mov    $0x0,%eax
  4008e5:	48 85 c0             	test   %rax,%rax
  4008e8:	74 f1                	je     4008db <frame_dummy+0xb>
  4008ea:	55                   	push   %rbp
  4008eb:	48 89 e5             	mov    %rsp,%rbp
  4008ee:	ff d0                	call   *%rax
  4008f0:	5d                   	pop    %rbp
  4008f1:	e9 7a ff ff ff       	jmp    400870 <register_tm_clones>

00000000004008f6 <main>:
  4008f6:	55                   	push   %rbp
  4008f7:	48 89 e5             	mov    %rsp,%rbp
  4008fa:	48 83 ec 30          	sub    $0x30,%rsp
  4008fe:	89 7d dc             	mov    %edi,-0x24(%rbp)
  400901:	48 89 75 d0          	mov    %rsi,-0x30(%rbp)
  400905:	bf 50 00 00 00       	mov    $0x50,%edi
  40090a:	e8 a1 fe ff ff       	call   4007b0 <malloc@plt>
  40090f:	48 89 45 f8          	mov    %rax,-0x8(%rbp)
  400913:	48 83 7d f8 00       	cmpq   $0x0,-0x8(%rbp)
  400918:	75 39                	jne    400953 <main+0x5d>
  40091a:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  40091e:	48 8b 10             	mov    (%rax),%rdx
  400921:	48 8b 05 98 17 20 00 	mov    0x201798(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400928:	b9 b8 0d 40 00       	mov    $0x400db8,%ecx
  40092d:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400932:	48 89 c7             	mov    %rax,%rdi
  400935:	b8 00 00 00 00       	mov    $0x0,%eax
  40093a:	e8 61 fe ff ff       	call   4007a0 <fprintf@plt>
  40093f:	bf 0a 00 00 00       	mov    $0xa,%edi
  400944:	e8 c7 fd ff ff       	call   400710 <putchar@plt>
  400949:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  40094e:	e8 8d fe ff ff       	call   4007e0 <exit@plt>
  400953:	83 7d dc 01          	cmpl   $0x1,-0x24(%rbp)
  400957:	7f 39                	jg     400992 <main+0x9c>
  400959:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  40095d:	48 8b 10             	mov    (%rax),%rdx
  400960:	48 8b 05 59 17 20 00 	mov    0x201759(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400967:	b9 d3 0d 40 00       	mov    $0x400dd3,%ecx
  40096c:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400971:	48 89 c7             	mov    %rax,%rdi
  400974:	b8 00 00 00 00       	mov    $0x0,%eax
  400979:	e8 22 fe ff ff       	call   4007a0 <fprintf@plt>
  40097e:	bf 0a 00 00 00       	mov    $0xa,%edi
  400983:	e8 88 fd ff ff       	call   400710 <putchar@plt>
  400988:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  40098d:	e8 4e fe ff ff       	call   4007e0 <exit@plt>
  400992:	83 7d dc 02          	cmpl   $0x2,-0x24(%rbp)
  400996:	7e 39                	jle    4009d1 <main+0xdb>
  400998:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  40099c:	48 8b 10             	mov    (%rax),%rdx
  40099f:	48 8b 05 1a 17 20 00 	mov    0x20171a(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  4009a6:	b9 e4 0d 40 00       	mov    $0x400de4,%ecx
  4009ab:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  4009b0:	48 89 c7             	mov    %rax,%rdi
  4009b3:	b8 00 00 00 00       	mov    $0x0,%eax
  4009b8:	e8 e3 fd ff ff       	call   4007a0 <fprintf@plt>
  4009bd:	bf 0a 00 00 00       	mov    $0xa,%edi
  4009c2:	e8 49 fd ff ff       	call   400710 <putchar@plt>
  4009c7:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  4009cc:	e8 0f fe ff ff       	call   4007e0 <exit@plt>
  4009d1:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  4009d5:	48 83 c0 08          	add    $0x8,%rax
  4009d9:	48 8b 00             	mov    (%rax),%rax
  4009dc:	be 02 00 00 00       	mov    $0x2,%esi
  4009e1:	48 89 c7             	mov    %rax,%rdi
  4009e4:	b8 00 00 00 00       	mov    $0x0,%eax
  4009e9:	e8 d2 fd ff ff       	call   4007c0 <open@plt>
  4009ee:	89 45 ec             	mov    %eax,-0x14(%rbp)
  4009f1:	83 7d ec ff          	cmpl   $0xffffffff,-0x14(%rbp)
  4009f5:	75 39                	jne    400a30 <main+0x13a>
  4009f7:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  4009fb:	48 8b 10             	mov    (%rax),%rdx
  4009fe:	48 8b 05 bb 16 20 00 	mov    0x2016bb(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400a05:	b9 f8 0d 40 00       	mov    $0x400df8,%ecx
  400a0a:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400a0f:	48 89 c7             	mov    %rax,%rdi
  400a12:	b8 00 00 00 00       	mov    $0x0,%eax
  400a17:	e8 84 fd ff ff       	call   4007a0 <fprintf@plt>
  400a1c:	bf 0a 00 00 00       	mov    $0xa,%edi
  400a21:	e8 ea fc ff ff       	call   400710 <putchar@plt>
  400a26:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  400a2b:	e8 b0 fd ff ff       	call   4007e0 <exit@plt>
  400a30:	be 10 0e 40 00       	mov    $0x400e10,%esi
  400a35:	bf 3f 0e 40 00       	mov    $0x400e3f,%edi
  400a3a:	b8 00 00 00 00       	mov    $0x0,%eax
  400a3f:	e8 0c fd ff ff       	call   400750 <printf@plt>
  400a44:	48 8b 15 55 16 20 00 	mov    0x201655(%rip),%rdx        # 6020a0 <stdin@GLIBC_2.2.5>
  400a4b:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400a4f:	be 50 00 00 00       	mov    $0x50,%esi
  400a54:	48 89 c7             	mov    %rax,%rdi
  400a57:	e8 34 fd ff ff       	call   400790 <fgets@plt>
  400a5c:	48 85 c0             	test   %rax,%rax
  400a5f:	75 14                	jne    400a75 <main+0x17f>
  400a61:	bf 0a 00 00 00       	mov    $0xa,%edi
  400a66:	e8 a5 fc ff ff       	call   400710 <putchar@plt>
  400a6b:	bf 00 00 00 00       	mov    $0x0,%edi
  400a70:	e8 6b fd ff ff       	call   4007e0 <exit@plt>
  400a75:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400a79:	0f b6 00             	movzbl (%rax),%eax
  400a7c:	0f be c0             	movsbl %al,%eax
  400a7f:	83 f8 73             	cmp    $0x73,%eax
  400a82:	0f 84 9d 01 00 00    	je     400c25 <main+0x32f>
  400a88:	83 f8 77             	cmp    $0x77,%eax
  400a8b:	0f 84 d1 00 00 00    	je     400b62 <main+0x26c>
  400a91:	83 f8 72             	cmp    $0x72,%eax
  400a94:	0f 85 8f 02 00 00    	jne    400d29 <main+0x433>
  400a9a:	be 48 0e 40 00       	mov    $0x400e48,%esi
  400a9f:	bf 3f 0e 40 00       	mov    $0x400e3f,%edi
  400aa4:	b8 00 00 00 00       	mov    $0x0,%eax
  400aa9:	e8 a2 fc ff ff       	call   400750 <printf@plt>
  400aae:	48 8b 15 eb 15 20 00 	mov    0x2015eb(%rip),%rdx        # 6020a0 <stdin@GLIBC_2.2.5>
  400ab5:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400ab9:	be 50 00 00 00       	mov    $0x50,%esi
  400abe:	48 89 c7             	mov    %rax,%rdi
  400ac1:	e8 ca fc ff ff       	call   400790 <fgets@plt>
  400ac6:	48 85 c0             	test   %rax,%rax
  400ac9:	75 14                	jne    400adf <main+0x1e9>
  400acb:	bf 0a 00 00 00       	mov    $0xa,%edi
  400ad0:	e8 3b fc ff ff       	call   400710 <putchar@plt>
  400ad5:	bf 00 00 00 00       	mov    $0x0,%edi
  400ada:	e8 01 fd ff ff       	call   4007e0 <exit@plt>
  400adf:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400ae3:	48 89 c7             	mov    %rax,%rdi
  400ae6:	e8 e5 fc ff ff       	call   4007d0 <atoi@plt>
  400aeb:	48 63 d0             	movslq %eax,%rdx
  400aee:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
  400af2:	8b 45 ec             	mov    -0x14(%rbp),%eax
  400af5:	48 89 ce             	mov    %rcx,%rsi
  400af8:	89 c7                	mov    %eax,%edi
  400afa:	e8 71 fc ff ff       	call   400770 <read@plt>
  400aff:	89 45 f0             	mov    %eax,-0x10(%rbp)
  400b02:	83 7d f0 ff          	cmpl   $0xffffffff,-0x10(%rbp)
  400b06:	75 39                	jne    400b41 <main+0x24b>
  400b08:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  400b0c:	48 8b 10             	mov    (%rax),%rdx
  400b0f:	48 8b 05 aa 15 20 00 	mov    0x2015aa(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400b16:	b9 75 0e 40 00       	mov    $0x400e75,%ecx
  400b1b:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400b20:	48 89 c7             	mov    %rax,%rdi
  400b23:	b8 00 00 00 00       	mov    $0x0,%eax
  400b28:	e8 73 fc ff ff       	call   4007a0 <fprintf@plt>
  400b2d:	bf 0a 00 00 00       	mov    $0xa,%edi
  400b32:	e8 d9 fb ff ff       	call   400710 <putchar@plt>
  400b37:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  400b3c:	e8 9f fc ff ff       	call   4007e0 <exit@plt>
  400b41:	8b 45 f0             	mov    -0x10(%rbp),%eax
  400b44:	48 63 d0             	movslq %eax,%rdx
  400b47:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400b4b:	48 01 d0             	add    %rdx,%rax
  400b4e:	c6 00 00             	movb   $0x0,(%rax)
  400b51:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400b55:	48 89 c7             	mov    %rax,%rdi
  400b58:	e8 c3 fb ff ff       	call   400720 <puts@plt>
  400b5d:	e9 c7 01 00 00       	jmp    400d29 <main+0x433>
  400b62:	be 88 0e 40 00       	mov    $0x400e88,%esi
  400b67:	bf 3f 0e 40 00       	mov    $0x400e3f,%edi
  400b6c:	b8 00 00 00 00       	mov    $0x0,%eax
  400b71:	e8 da fb ff ff       	call   400750 <printf@plt>
  400b76:	48 8b 15 23 15 20 00 	mov    0x201523(%rip),%rdx        # 6020a0 <stdin@GLIBC_2.2.5>
  400b7d:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400b81:	be 50 00 00 00       	mov    $0x50,%esi
  400b86:	48 89 c7             	mov    %rax,%rdi
  400b89:	e8 02 fc ff ff       	call   400790 <fgets@plt>
  400b8e:	48 85 c0             	test   %rax,%rax
  400b91:	75 14                	jne    400ba7 <main+0x2b1>
  400b93:	bf 0a 00 00 00       	mov    $0xa,%edi
  400b98:	e8 73 fb ff ff       	call   400710 <putchar@plt>
  400b9d:	bf 00 00 00 00       	mov    $0x0,%edi
  400ba2:	e8 39 fc ff ff       	call   4007e0 <exit@plt>
  400ba7:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400bab:	48 89 c7             	mov    %rax,%rdi
  400bae:	e8 8d fb ff ff       	call   400740 <strlen@plt>
  400bb3:	48 8d 50 ff          	lea    -0x1(%rax),%rdx
  400bb7:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400bbb:	48 01 d0             	add    %rdx,%rax
  400bbe:	c6 00 00             	movb   $0x0,(%rax)
  400bc1:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400bc5:	48 89 c7             	mov    %rax,%rdi
  400bc8:	e8 73 fb ff ff       	call   400740 <strlen@plt>
  400bcd:	48 8d 50 01          	lea    0x1(%rax),%rdx
  400bd1:	48 8b 4d f8          	mov    -0x8(%rbp),%rcx
  400bd5:	8b 45 ec             	mov    -0x14(%rbp),%eax
  400bd8:	48 89 ce             	mov    %rcx,%rsi
  400bdb:	89 c7                	mov    %eax,%edi
  400bdd:	e8 4e fb ff ff       	call   400730 <write@plt>
  400be2:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
  400be6:	0f 85 36 01 00 00    	jne    400d22 <main+0x42c>
  400bec:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  400bf0:	48 8b 10             	mov    (%rax),%rdx
  400bf3:	48 8b 05 c6 14 20 00 	mov    0x2014c6(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400bfa:	b9 ab 0e 40 00       	mov    $0x400eab,%ecx
  400bff:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400c04:	48 89 c7             	mov    %rax,%rdi
  400c07:	b8 00 00 00 00       	mov    $0x0,%eax
  400c0c:	e8 8f fb ff ff       	call   4007a0 <fprintf@plt>
  400c11:	bf 0a 00 00 00       	mov    $0xa,%edi
  400c16:	e8 f5 fa ff ff       	call   400710 <putchar@plt>
  400c1b:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  400c20:	e8 bb fb ff ff       	call   4007e0 <exit@plt>
  400c25:	be b8 0e 40 00       	mov    $0x400eb8,%esi
  400c2a:	bf 3f 0e 40 00       	mov    $0x400e3f,%edi
  400c2f:	b8 00 00 00 00       	mov    $0x0,%eax
  400c34:	e8 17 fb ff ff       	call   400750 <printf@plt>
  400c39:	48 8b 15 60 14 20 00 	mov    0x201460(%rip),%rdx        # 6020a0 <stdin@GLIBC_2.2.5>
  400c40:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400c44:	be 50 00 00 00       	mov    $0x50,%esi
  400c49:	48 89 c7             	mov    %rax,%rdi
  400c4c:	e8 3f fb ff ff       	call   400790 <fgets@plt>
  400c51:	48 85 c0             	test   %rax,%rax
  400c54:	75 14                	jne    400c6a <main+0x374>
  400c56:	bf 0a 00 00 00       	mov    $0xa,%edi
  400c5b:	e8 b0 fa ff ff       	call   400710 <putchar@plt>
  400c60:	bf 00 00 00 00       	mov    $0x0,%edi
  400c65:	e8 76 fb ff ff       	call   4007e0 <exit@plt>
  400c6a:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400c6e:	48 89 c7             	mov    %rax,%rdi
  400c71:	e8 5a fb ff ff       	call   4007d0 <atoi@plt>
  400c76:	89 45 f0             	mov    %eax,-0x10(%rbp)
  400c79:	be d0 0e 40 00       	mov    $0x400ed0,%esi
  400c7e:	bf 3f 0e 40 00       	mov    $0x400e3f,%edi
  400c83:	b8 00 00 00 00       	mov    $0x0,%eax
  400c88:	e8 c3 fa ff ff       	call   400750 <printf@plt>
  400c8d:	48 8b 15 0c 14 20 00 	mov    0x20140c(%rip),%rdx        # 6020a0 <stdin@GLIBC_2.2.5>
  400c94:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400c98:	be 50 00 00 00       	mov    $0x50,%esi
  400c9d:	48 89 c7             	mov    %rax,%rdi
  400ca0:	e8 eb fa ff ff       	call   400790 <fgets@plt>
  400ca5:	48 85 c0             	test   %rax,%rax
  400ca8:	75 14                	jne    400cbe <main+0x3c8>
  400caa:	bf 0a 00 00 00       	mov    $0xa,%edi
  400caf:	e8 5c fa ff ff       	call   400710 <putchar@plt>
  400cb4:	bf 00 00 00 00       	mov    $0x0,%edi
  400cb9:	e8 22 fb ff ff       	call   4007e0 <exit@plt>
  400cbe:	48 8b 45 f8          	mov    -0x8(%rbp),%rax
  400cc2:	48 89 c7             	mov    %rax,%rdi
  400cc5:	e8 06 fb ff ff       	call   4007d0 <atoi@plt>
  400cca:	89 45 f4             	mov    %eax,-0xc(%rbp)
  400ccd:	8b 45 f0             	mov    -0x10(%rbp),%eax
  400cd0:	48 63 c8             	movslq %eax,%rcx
  400cd3:	8b 55 f4             	mov    -0xc(%rbp),%edx
  400cd6:	8b 45 ec             	mov    -0x14(%rbp),%eax
  400cd9:	48 89 ce             	mov    %rcx,%rsi
  400cdc:	89 c7                	mov    %eax,%edi
  400cde:	e8 7d fa ff ff       	call   400760 <lseek@plt>
  400ce3:	48 83 f8 ff          	cmp    $0xffffffffffffffff,%rax
  400ce7:	75 3f                	jne    400d28 <main+0x432>
  400ce9:	48 8b 45 d0          	mov    -0x30(%rbp),%rax
  400ced:	48 8b 10             	mov    (%rax),%rdx
  400cf0:	48 8b 05 c9 13 20 00 	mov    0x2013c9(%rip),%rax        # 6020c0 <stderr@GLIBC_2.2.5>
  400cf7:	b9 eb 0e 40 00       	mov    $0x400eeb,%ecx
  400cfc:	be c6 0d 40 00       	mov    $0x400dc6,%esi
  400d01:	48 89 c7             	mov    %rax,%rdi
  400d04:	b8 00 00 00 00       	mov    $0x0,%eax
  400d09:	e8 92 fa ff ff       	call   4007a0 <fprintf@plt>
  400d0e:	bf 0a 00 00 00       	mov    $0xa,%edi
  400d13:	e8 f8 f9 ff ff       	call   400710 <putchar@plt>
  400d18:	bf ff ff ff ff       	mov    $0xffffffff,%edi
  400d1d:	e8 be fa ff ff       	call   4007e0 <exit@plt>
  400d22:	90                   	nop
  400d23:	e9 08 fd ff ff       	jmp    400a30 <main+0x13a>
  400d28:	90                   	nop
  400d29:	e9 02 fd ff ff       	jmp    400a30 <main+0x13a>
  400d2e:	66 90                	xchg   %ax,%ax

0000000000400d30 <__libc_csu_init>:
  400d30:	41 57                	push   %r15
  400d32:	41 56                	push   %r14
  400d34:	41 89 ff             	mov    %edi,%r15d
  400d37:	41 55                	push   %r13
  400d39:	41 54                	push   %r12
  400d3b:	4c 8d 25 ce 10 20 00 	lea    0x2010ce(%rip),%r12        # 601e10 <__frame_dummy_init_array_entry>
  400d42:	55                   	push   %rbp
  400d43:	48 8d 2d ce 10 20 00 	lea    0x2010ce(%rip),%rbp        # 601e18 <__do_global_dtors_aux_fini_array_entry>
  400d4a:	53                   	push   %rbx
  400d4b:	49 89 f6             	mov    %rsi,%r14
  400d4e:	49 89 d5             	mov    %rdx,%r13
  400d51:	4c 29 e5             	sub    %r12,%rbp
  400d54:	48 83 ec 08          	sub    $0x8,%rsp
  400d58:	48 c1 fd 03          	sar    $0x3,%rbp
  400d5c:	e8 7f f9 ff ff       	call   4006e0 <_init>
  400d61:	48 85 ed             	test   %rbp,%rbp
  400d64:	74 20                	je     400d86 <__libc_csu_init+0x56>
  400d66:	31 db                	xor    %ebx,%ebx
  400d68:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
  400d6f:	00 
  400d70:	4c 89 ea             	mov    %r13,%rdx
  400d73:	4c 89 f6             	mov    %r14,%rsi
  400d76:	44 89 ff             	mov    %r15d,%edi
  400d79:	41 ff 14 dc          	call   *(%r12,%rbx,8)
  400d7d:	48 83 c3 01          	add    $0x1,%rbx
  400d81:	48 39 eb             	cmp    %rbp,%rbx
  400d84:	75 ea                	jne    400d70 <__libc_csu_init+0x40>
  400d86:	48 83 c4 08          	add    $0x8,%rsp
  400d8a:	5b                   	pop    %rbx
  400d8b:	5d                   	pop    %rbp
  400d8c:	41 5c                	pop    %r12
  400d8e:	41 5d                	pop    %r13
  400d90:	41 5e                	pop    %r14
  400d92:	41 5f                	pop    %r15
  400d94:	c3                   	ret
  400d95:	90                   	nop
  400d96:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  400d9d:	00 00 00 

0000000000400da0 <__libc_csu_fini>:
  400da0:	f3 c3                	repz ret

Disassembly of section .fini:

0000000000400da4 <_fini>:
  400da4:	48 83 ec 08          	sub    $0x8,%rsp
  400da8:	48 83 c4 08          	add    $0x8,%rsp
  400dac:	c3                   	ret