逆向工程实验---二进制炸弹(CSAPP Project)

本实验设计为一个黑客拆解二进制炸弹的游戏。我们仅给黑客(同学)提供一个二进制可执行文件bomb和主函数所在的源程序bomb.c,不提供每个关卡的源代码。程序运行中有6个关卡(6个phase),每个关卡需要用户输入正确的字符串或数字才能通关,否则会引爆炸弹(打印出一条错误信息,并导致评分下降)!

要求同学运用GDB调试工具和objdump反汇编工具,通过分析汇编代码,找到在每个phase程序段中,引导程序跳转到“explode_bomb”程序段的地方,并分析其成功跳转的条件,以此为突破口寻找应该在命令行输入何种字符串来通关。

本实验要求解决Phase_1(15分)、Phase_2(10分)、Phase_3(10分)、Phase_4(10分)、Phase_5(10分)。通过截图把结果写在实验报告上。

#思路、#代码分析及最后的成绩截图

首先,先 cd 到bomb的文件里面,

  1. 输入反汇编命令查看汇编代码(保存在1.txt文件中)
    $ objdump -d bomb > 1.txt
  2. 首先找到main函数,发现它调用了从phase1到phase6这六个函数。再找到phase1,代码如下:(举例分析)

逆向工程实验---二进制炸弹(CSAPP Project)_第1张图片
逆向工程实验---二进制炸弹(CSAPP Project)_第2张图片
3. 利用gdb调试工具来破解Phase1中的神秘字符串
$ gdb bomb

  1. 在0x8048b22处设置断点,运行并打印0x8049678地址的值
    (gdb) b *0x8048b22
    (gdb) r
    (gdb) p (char*)0x8049678

  2. 记录答案,对下一关进行破解。
    (gdb) c


第一关:

知识点:string,函数调用,栈
逆向工程实验---二进制炸弹(CSAPP Project)_第3张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第4张图片

可以看到0x8048b2c和0x8048b31指令中分别放入了两个字符串,一个在地址0x80497c0中,另一个在%eax中。而%eax是函数phase_1的mov 0x8(%ebp),%eax 传递过来的参数,所以依此可以判断0x8(%ebp)的内存地址中的值是我们输入的字符串,而0x80497c0则可能是程序中已经存储在代码中的一个字符串。

那么,找到这个内存地址中的字符串便能解决问题了。那么如何去寻找呢,
逆向工程实验---二进制炸弹(CSAPP Project)_第5张图片

所以,密码就是:Public speaking is very easy.

关键点在于,找到 退出函数 的地方和 引爆炸弹的地方。


第二关:
逆向工程实验---二进制炸弹(CSAPP Project)_第6张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第7张图片
这样,就发现了第一个数字必须为1。
逆向工程实验---二进制炸弹(CSAPP Project)_第8张图片
初始时,A[1]=1。所以,A[2] = A[1] * 2 = 2,A[3] = A[2] * 3 = 6,A[4] = A[3] * 4 = 24,A[5] = A[4] * 5 = 120,A[6] = A[5] * 6 = 720。

if ([0] != 1)  explode_bomb();  
for (int i = 1; i <= 5; i++) {  
    if ( (i+1) * A[i-1] != A[i])  
        explode_bomb();  
}  

第三关:

逆向工程实验---二进制炸弹(CSAPP Project)_第9张图片

这里写图片描述

爆炸了。
sscanf() - 是C语言中从一个字符串中读进与指定格式相符的数据的函数。
sscanf传入的参数为:ebp-0x4,ebp-0x5, ebp-0xc地址;格式字符串地址;输入的字符参数地址。
ebp-0xc存第一个数, ebp-0x5存第二数,ebp-0x4第三个数。

这里写图片描述

从这就可以看出,要输入的是一个整数,一个字符,一个整数。
第一个数字要小于7。

<sscanf@plt>,猜测sscanf可能是C语言的内部函数,于是查到其定义为:int sscanf(const char *str, const char *format,…),给出一个使用实例:sscanf(“s 1”, “%s %d”, str, &a),函数返回2(因为接收了2个参数),str为char*类型,保存”s”;a为int类型,保存1

我们试试倒推

逆向工程实验---二进制炸弹(CSAPP Project)_第10张图片

我们看到,只要是标注了 int 的语句,最后跳转到 8048c8f 都有希望结束!!!!
希望来了!!!

逆向工程实验---二进制炸弹(CSAPP Project)_第11张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第12张图片

求第一个数要小于等于7,那么使用最简单0进行测试,这样不用计算就可以跳转到明显的位置 ,就是 0x80497eb存储的内容—0x8048be0;

ebp-0x4存储的为第三个数,大小为0x309, 转10进制为:777。 同时,设置了bl 为 0x71。并跳转到0x8048c8f。

逆向工程实验---二进制炸弹(CSAPP Project)_第13张图片

bl 为 0x71。第二个输入的又是 字符型 ,对照ASC码表:

逆向工程实验---二进制炸弹(CSAPP Project)_第14张图片

字符串值为0x71,换算成字符为 ‘q’。

所以其中一个答案为: 0 q 777。
这道题的答案不为一,根据第一个参数的选择不同而不同。


第四关:

逆向工程实验---二进制炸弹(CSAPP Project)_第15张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第16张图片

这段代码还有一个 func4 的函数,有不祥的预感…..

逆向工程实验---二进制炸弹(CSAPP Project)_第17张图片

首先,又是 sscanf,老套路,我们先看一下 0x8049808字符串内容。
这里写图片描述

看来是一个整数!

逆向工程实验---二进制炸弹(CSAPP Project)_第18张图片

这么看来,成功的关键就是,输入一个大于0的数字,这个数字作为参数,使得返回值为 55。

接下来就看看函数内容了:

逆向工程实验---二进制炸弹(CSAPP Project)_第19张图片

当参数为1的时候,在8048cd0行,mov $0x1,%eax,将1放入了 eax里面,然后退栈,所以,当参数为1时候,返回值为1;

代码应该是这样的:

int func4(int a) {  
    if (a <= 1)  
        return 1;  
    else  
        return func4(a-1) + func4(a-2);          
}  

算法相当于:

f0=1
f1=1
f2=f1+f0
f3=f2+f1
......
fn=f(n-1)+f(n-2)

写代码算一下:


#include

using namespace std;

int func4(int a) {
    if (a <= 1)
        return 1;
    else
        return func4(a - 1) + func4(a - 2);
}

int main()
{
    int i;
    for (i = 0;i < 1000;i++)
    {
        if (func4(i) == 55)
        {
            cout << i << endl;
            break;
        }
    }
    return 0;
}

逆向工程实验---二进制炸弹(CSAPP Project)_第20张图片

得出结果是9。
所以,答案是9!!!


第五关

第五关的代码如下:

逆向工程实验---二进制炸弹(CSAPP Project)_第21张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第22张图片

在之间出现了两个字符串的地址,一个是0x804b220,另一个是0x804980b ,那么,我们先看看那是什么字符串:
这里写图片描述

看来是”isrveawhobpnutfg\260\001”和”giants”。

因为,这个循环做了6次,而且,匹配的字符串”giants”也是六个字符,所以,一定是和”giants”比较,但是怎么比较呢?

逆向工程实验---二进制炸弹(CSAPP Project)_第23张图片

要在”isrveawhobpnutfg\260\001”中间取到”giants”的字符顺序是 15 0 5 11 13 1,这样是不是说明直接输入”giants”就可以了呢?
这里写图片描述

所以,很明显,不是,为什么呢?
因为,输入的是 字符ASC码二进制后四位的数字为这六个数字,所以,还是翻翻ASC码表吧!

我们就选择第二列吧,第二列比较好玩,哈哈哈哈,?05;=1(记得一定要是英文,半角的符号),或者是0O5KM1等等都给可以…..


第六关

这是第六关的整个汇编的代码:

逆向工程实验---二进制炸弹(CSAPP Project)_第24张图片
逆向工程实验---二进制炸弹(CSAPP Project)_第25张图片

逆向工程实验---二进制炸弹(CSAPP Project)_第26张图片

  1. 明显是要输入6个数字。读取6个数,存放在ebp-18的地方,所以,ebp-18应该是一个数组首地址。
  2. 我们看看这一句线索是什么东西!!
    8048da4: c7 45 cc 6c b2 04 08 movl $0x804b26c,-0x34(%ebp)

这里写图片描述

原来是一个地址。

逆向工程实验---二进制炸弹(CSAPP Project)_第27张图片

代码大概是这样的:

for (int i =0; i<=5; i++){ 
    for (int j = i+1; j<=5; j++){  
        if (A[i]<= 6&&(A[i]!=A[j])) 
        {
            continue;
        } 
           else 
              explode_bomb();  
    }  
} 

所以,这一关输入的元素就只有 1,2,3,4,5,6;
但是,不是按照这个顺序输入的!!!!(不会告诉你,我为什么知道的,哈哈哈哈哈)

按照排列组合,A(6,6)=6*5*4*3*2*1=720 种 答案。所以范围已经缩小了。

8048e02:        31 ff               xor    %edi,%edi                  // i清零  
8048e04:        8d4d e8             lea    -0x18(%ebp),%ecx           //数组首地址A 
8048e07:        8d45 d0             lea    -0x30(%ebp),%eax           //ebp-0x30的地址  
8048e0a:        8945 c4             mov    %eax,-0x3c(%ebp)           //存放于ebp-0x3c中  
8048e0d:        8d76 00             lea    0x0(%esi),%esi             

8048e10:        8b75 cc             mov    -0x34(%ebp),%esi           //取ebp-34中值  
8048e13:        bb01 00 00 00       mov    $0x1,%ebx                  // j = 1  
8048e18:        8d04 bd 00 00 00 00 lea    0x0(,%edi,4),%eax          //eax = edi * 4  
8048e1f:         89c2               mov    %eax,%edx  
8048e21:        3b1c 08             cmp    (%eax,%ecx,1),%ebx        //A[i] 与 j比较  
8048e24:        7d12                jge    8048e38 0xa0>    //小于的话,进入循环  
8048e26:        8b04 0a             mov    (%edx,%ecx,1),%eax        //eax =  A[i]  
8048e29:        8db4 26 00 00 00 00        lea    0x0(%esi,%eiz,1),%esi          
8048e30:        8b76 08             mov    0x8(%esi),%esi           //esi+0x8的值给esi  
8048e33:        43                  inc    %ebx                     //j++  
8048e34:        39c3                cmp    %eax,%ebx                //A[i] == j 停止循环  
8048e36:        7cf8                jl     8048e30 0x98>  
8048e38:        8b55 c4             mov    -0x3c(%ebp),%edx          //获得ebp-0x30地址  
8048e3b:        8934 ba             mov    %esi,(%edx,%edi,4)        //esi存入新数组中  
8048e3e:        47                  inc    %edi  
8048e3f:         83ff 05            cmp    $0x5,%edi  
8048e42:        7ecc                jle    8048e10 0x78>  

记得刚刚我们看到那个节点是一个地址,从代码可以看出每次移动了0x8,然后传递,现在,调用:
gdb) x /3x 0x804b26c ,这个指令的意思为:以16进制格式显示地址0x804b26c处3个单位,默认每个单位四字节的内容。

逆向工程实验---二进制炸弹(CSAPP Project)_第28张图片

这说明是6个节点的内容,尾部是一个指针指向下一个节点的内容。


for (int i =0; i<=5; i++){  
    for (int j =0; A[i]> j; j++){  
        node = node.next;  
    }  
    P[i]= node;  
}

所以,P[i]这个数组所放的节点顺序,就是输入数字的顺序!!比如:输入 4,2,5,3,1,那就是 node[4],node[2],node[5],node[3],node[1],的排列顺序!!

这段代码就只是起连接作用:

8048e44:        8b 75 d0            mov    -0x30(%ebp),%esi    //取ptr地址  
8048e47:        8975 cc             mov    %esi,-0x34(%ebp)    //存于ebp – 0x34中  

8048e4a:        bf01 00 00 00       mov    $0x1,%edi               // i = 1        
8048e4f:        8d55 d0             lea    -0x30(%ebp),%edx         //ebp-0x30地址  
8048e52:        8b04 ba             mov    (%edx,%edi,4),%eax       //ptr[i] => eax  
8048e55:        8946 08             mov    %eax,0x8(%esi)          //ptr[i-1]->next = ptr[i]        
8048e58:        89c6                mov    %eax,%esi              //esi = ptr[i]  
8048e5a:        47                  inc    %edi  
8048e5b:        83ff 05             cmp    $0x5,%edi  
8048e5e:        7ef2                jle    8048e52 0xba>  


8048e60:        c746 08 00 00 00 00        movl   $0x0,0x8(%esi)  
8048e67:        8b75 cc             mov    -0x34(%ebp),%esi     //最后一个结点next 赋0 

那么,看看这样子排列究竟有什么用呢?

最后,链表的判断:
逆向工程实验---二进制炸弹(CSAPP Project)_第29张图片

原来,是想把按照节点中 数字大小的顺序输入数字!!!
节点的数字是什么呢?我们再看看:
逆向工程实验---二进制炸弹(CSAPP Project)_第30张图片

原来分别是

0x0fd 
0x2d5  
0x12d   
0x3e5  
0x0d4   
0x1b0

所以,大小顺序就是,4,2,6,3,1,5。

所以答案就是:4 2 6 3 1 5 !!!!!!!

整个花了大概25个小时才做完。非常不容易,很多汇编语言在百度上解释是有错误的。

附上答案:
Public speaking is very easy.
1 2 6 24 120 720
0 q 777(答案不唯一)
9
?05;=1或者0O5KM1等等(答案不唯一)
4 2 6 3 1 5

逆向工程实验---二进制炸弹(CSAPP Project)_第31张图片

反编译后的代码:

bomb:     file format elf32-i386


Disassembly of section .init:

080486e0 <_init>:
 80486e0:   55                      push   %ebp
 80486e1:   89 e5                   mov    %esp,%ebp
 80486e3:   53                      push   %ebx
 80486e4:   e8 00 00 00 00          call   80486e9 <_init+0x9>
 80486e9:   5b                      pop    %ebx
 80486ea:   81 c3 2f 2e 00 00       add    $0x2e2f,%ebx
 80486f0:   83 bb 7c 00 00 00 00    cmpl   $0x0,0x7c(%ebx)
 80486f7:   74 05                   je     80486fe <_init+0x1e>
 80486f9:   e8 02 79 fb f7          call   0 <_init-0x80486e0>
 80486fe:   89 f6                   mov    %esi,%esi
 8048700:   e8 6b 02 00 00          call   8048970 
 8048705:   e8 a6 0e 00 00          call   80495b0 <__do_global_ctors_aux>
 804870a:   8b 5d fc                mov    -0x4(%ebp),%ebx
 804870d:   c9                      leave  
 804870e:   c3                      ret    

Disassembly of section .plt:

08048710 <__register_frame_info@plt-0x10>:
 8048710:   ff 35 1c b5 04 08       pushl  0x804b51c
 8048716:   ff 25 20 b5 04 08       jmp    *0x804b520
 804871c:   00 00                   add    %al,(%eax)
    ...

08048720 <__register_frame_info@plt>:
 8048720:   ff 25 24 b5 04 08       jmp    *0x804b524
 8048726:   68 00 00 00 00          push   $0x0
 804872b:   e9 e0 ff ff ff          jmp    8048710 <_init+0x30>

08048730 :
 8048730:   ff 25 28 b5 04 08       jmp    *0x804b528
 8048736:   68 08 00 00 00          push   $0x8
 804873b:   e9 d0 ff ff ff          jmp    8048710 <_init+0x30>

08048740 <fprintf@plt>:
 8048740:   ff 25 2c b5 04 08       jmp    *0x804b52c
 8048746:   68 10 00 00 00          push   $0x10
 804874b:   e9 c0 ff ff ff          jmp    8048710 <_init+0x30>

08048750 :
 8048750:   ff 25 30 b5 04 08       jmp    *0x804b530
 8048756:   68 18 00 00 00          push   $0x18
 804875b:   e9 b0 ff ff ff          jmp    8048710 <_init+0x30>

08048760 :
 8048760:   ff 25 34 b5 04 08       jmp    *0x804b534
 8048766:   68 20 00 00 00          push   $0x20
 804876b:   e9 a0 ff ff ff          jmp    8048710 <_init+0x30>

08048770 :
 8048770:   ff 25 38 b5 04 08       jmp    *0x804b538
 8048776:   68 28 00 00 00          push   $0x28
 804877b:   e9 90 ff ff ff          jmp    8048710 <_init+0x30>

08048780 :
 8048780:   ff 25 3c b5 04 08       jmp    *0x804b53c
 8048786:   68 30 00 00 00          push   $0x30
 804878b:   e9 80 ff ff ff          jmp    8048710 <_init+0x30>

08048790 :
 8048790:   ff 25 40 b5 04 08       jmp    *0x804b540
 8048796:   68 38 00 00 00          push   $0x38
 804879b:   e9 70 ff ff ff          jmp    8048710 <_init+0x30>

080487a0 :
 80487a0:   ff 25 44 b5 04 08       jmp    *0x804b544
 80487a6:   68 40 00 00 00          push   $0x40
 80487ab:   e9 60 ff ff ff          jmp    8048710 <_init+0x30>

080487b0 :
 80487b0:   ff 25 48 b5 04 08       jmp    *0x804b548
 80487b6:   68 48 00 00 00          push   $0x48
 80487bb:   e9 50 ff ff ff          jmp    8048710 <_init+0x30>

080487c0 <__deregister_frame_info@plt>:
 80487c0:   ff 25 4c b5 04 08       jmp    *0x804b54c
 80487c6:   68 50 00 00 00          push   $0x50
 80487cb:   e9 40 ff ff ff          jmp    8048710 <_init+0x30>

080487d0 :
 80487d0:   ff 25 50 b5 04 08       jmp    *0x804b550
 80487d6:   68 58 00 00 00          push   $0x58
 80487db:   e9 30 ff ff ff          jmp    8048710 <_init+0x30>

080487e0 :
 80487e0:   ff 25 54 b5 04 08       jmp    *0x804b554
 80487e6:   68 60 00 00 00          push   $0x60
 80487eb:   e9 20 ff ff ff          jmp    8048710 <_init+0x30>

080487f0 <__strtol_internal@plt>:
 80487f0:   ff 25 58 b5 04 08       jmp    *0x804b558
 80487f6:   68 68 00 00 00          push   $0x68
 80487fb:   e9 10 ff ff ff          jmp    8048710 <_init+0x30>

08048800 <__libc_start_main@plt>:
 8048800:   ff 25 5c b5 04 08       jmp    *0x804b55c
 8048806:   68 70 00 00 00          push   $0x70
 804880b:   e9 00 ff ff ff          jmp    8048710 <_init+0x30>

08048810 <printf@plt>:
 8048810:   ff 25 60 b5 04 08       jmp    *0x804b560
 8048816:   68 78 00 00 00          push   $0x78
 804881b:   e9 f0 fe ff ff          jmp    8048710 <_init+0x30>

08048820 :
 8048820:   ff 25 64 b5 04 08       jmp    *0x804b564
 8048826:   68 80 00 00 00          push   $0x80
 804882b:   e9 e0 fe ff ff          jmp    8048710 <_init+0x30>

08048830 :
 8048830:   ff 25 68 b5 04 08       jmp    *0x804b568
 8048836:   68 88 00 00 00          push   $0x88
 804883b:   e9 d0 fe ff ff          jmp    8048710 <_init+0x30>

08048840 :
 8048840:   ff 25 6c b5 04 08       jmp    *0x804b56c
 8048846:   68 90 00 00 00          push   $0x90
 804884b:   e9 c0 fe ff ff          jmp    8048710 <_init+0x30>

08048850 <exit@plt>:
 8048850:   ff 25 70 b5 04 08       jmp    *0x804b570
 8048856:   68 98 00 00 00          push   $0x98
 804885b:   e9 b0 fe ff ff          jmp    8048710 <_init+0x30>

08048860 <sscanf@plt>:
 8048860:   ff 25 74 b5 04 08       jmp    *0x804b574
 8048866:   68 a0 00 00 00          push   $0xa0
 804886b:   e9 a0 fe ff ff          jmp    8048710 <_init+0x30>

08048870 :
 8048870:   ff 25 78 b5 04 08       jmp    *0x804b578
 8048876:   68 a8 00 00 00          push   $0xa8
 804887b:   e9 90 fe ff ff          jmp    8048710 <_init+0x30>

08048880 :
 8048880:   ff 25 7c b5 04 08       jmp    *0x804b57c
 8048886:   68 b0 00 00 00          push   $0xb0
 804888b:   e9 80 fe ff ff          jmp    8048710 <_init+0x30>

08048890 :
 8048890:   ff 25 80 b5 04 08       jmp    *0x804b580
 8048896:   68 b8 00 00 00          push   $0xb8
 804889b:   e9 70 fe ff ff          jmp    8048710 <_init+0x30>

080488a0 <sprintf@plt>:
 80488a0:   ff 25 84 b5 04 08       jmp    *0x804b584
 80488a6:   68 c0 00 00 00          push   $0xc0
 80488ab:   e9 60 fe ff ff          jmp    8048710 <_init+0x30>

080488b0 :
 80488b0:   ff 25 88 b5 04 08       jmp    *0x804b588
 80488b6:   68 c8 00 00 00          push   $0xc8
 80488bb:   e9 50 fe ff ff          jmp    8048710 <_init+0x30>

080488c0 :
 80488c0:   ff 25 8c b5 04 08       jmp    *0x804b58c
 80488c6:   68 d0 00 00 00          push   $0xd0
 80488cb:   e9 40 fe ff ff          jmp    8048710 <_init+0x30>

080488d0 <strcpy@plt>:
 80488d0:   ff 25 90 b5 04 08       jmp    *0x804b590
 80488d6:   68 d8 00 00 00          push   $0xd8
 80488db:   e9 30 fe ff ff          jmp    8048710 <_init+0x30>

Disassembly of section .text:

080488e0 <_start>:
 80488e0:   31 ed                   xor    %ebp,%ebp
 80488e2:   5e                      pop    %esi
 80488e3:   89 e1                   mov    %esp,%ecx
 80488e5:   83 e4 f8                and    $0xfffffff8,%esp
 80488e8:   50                      push   %eax
 80488e9:   54                      push   %esp
 80488ea:   52                      push   %edx
 80488eb:   68 e4 95 04 08          push   $0x80495e4
 80488f0:   68 e0 86 04 08          push   $0x80486e0
 80488f5:   51                      push   %ecx
 80488f6:   56                      push   %esi
 80488f7:   68 b0 89 04 08          push   $0x80489b0
 80488fc:   e8 ff fe ff ff          call   8048800 <__libc_start_main@plt>
 8048901:   f4                      hlt    
 8048902:   90                      nop
 8048903:   90                      nop

08048904 :
 8048904:   90 90 90 90 90 90 90 90 90 90 90 90                 ............

08048910 <__do_global_dtors_aux>:
 8048910:   55                      push   %ebp
 8048911:   89 e5                   mov    %esp,%ebp
 8048913:   83 ec 08                sub    $0x8,%esp
 8048916:   83 3d e8 ad 04 08 00    cmpl   $0x0,0x804ade8
 804891d:   75 3e                   jne    804895d <__do_global_dtors_aux+0x4d>
 804891f:   eb 12                   jmp    8048933 <__do_global_dtors_aux+0x23>
 8048921:   a1 e4 ad 04 08          mov    0x804ade4,%eax
 8048926:   8d 50 04                lea    0x4(%eax),%edx
 8048929:   89 15 e4 ad 04 08       mov    %edx,0x804ade4
 804892f:   8b 00                   mov    (%eax),%eax
 8048931:   ff d0                   call   *%eax
 8048933:   a1 e4 ad 04 08          mov    0x804ade4,%eax
 8048938:   83 38 00                cmpl   $0x0,(%eax)
 804893b:   75 e4                   jne    8048921 <__do_global_dtors_aux+0x11>
 804893d:   b8 c0 87 04 08          mov    $0x80487c0,%eax
 8048942:   85 c0                   test   %eax,%eax
 8048944:   74 0d                   je     8048953 <__do_global_dtors_aux+0x43>
 8048946:   83 c4 f4                add    $0xfffffff4,%esp
 8048949:   68 84 b4 04 08          push   $0x804b484
 804894e:   e8 6d fe ff ff          call   80487c0 <__deregister_frame_info@plt>
 8048953:   c7 05 e8 ad 04 08 01    movl   $0x1,0x804ade8
 804895a:   00 00 00 
 804895d:   89 ec                   mov    %ebp,%esp
 804895f:   5d                      pop    %ebp
 8048960:   c3                      ret    
 8048961:   8d 76 00                lea    0x0(%esi),%esi

08048964 :
 8048964:   55                      push   %ebp
 8048965:   89 e5                   mov    %esp,%ebp
 8048967:   83 ec 08                sub    $0x8,%esp
 804896a:   89 ec                   mov    %ebp,%esp
 804896c:   5d                      pop    %ebp
 804896d:   c3                      ret    
 804896e:   89 f6                   mov    %esi,%esi

08048970 :
 8048970:   55                      push   %ebp
 8048971:   89 e5                   mov    %esp,%ebp
 8048973:   83 ec 08                sub    $0x8,%esp
 8048976:   b8 20 87 04 08          mov    $0x8048720,%eax
 804897b:   85 c0                   test   %eax,%eax
 804897d:   74 12                   je     8048991 0x21>
 804897f:   83 c4 f8                add    $0xfffffff8,%esp
 8048982:   68 4c b6 04 08          push   $0x804b64c
 8048987:   68 84 b4 04 08          push   $0x804b484
 804898c:   e8 8f fd ff ff          call   8048720 <__register_frame_info@plt>
 8048991:   89 ec                   mov    %ebp,%esp
 8048993:   5d                      pop    %ebp
 8048994:   c3                      ret    
 8048995:   8d 76 00                lea    0x0(%esi),%esi

08048998 :
 8048998:   55                      push   %ebp
 8048999:   89 e5                   mov    %esp,%ebp
 804899b:   83 ec 08                sub    $0x8,%esp
 804899e:   89 ec                   mov    %ebp,%esp
 80489a0:   5d                      pop    %ebp
 80489a1:   c3                      ret    
 80489a2:   90                      nop
 80489a3:   90                      nop
 80489a4:   90                      nop
 80489a5:   90                      nop
 80489a6:   90                      nop
 80489a7:   90                      nop
 80489a8:   90                      nop
 80489a9:   90                      nop
 80489aa:   90                      nop
 80489ab:   90                      nop
 80489ac:   90                      nop
 80489ad:   90                      nop
 80489ae:   90                      nop
 80489af:   90                      nop

080489b0 
: 80489b0: 55 push %ebp 80489b1: 89 e5 mov %esp,%ebp 80489b3: 83 ec 14 sub $0x14,%esp 80489b6: 53 push %ebx 80489b7: 8b 45 08 mov 0x8(%ebp),%eax 80489ba: 8b 5d 0c mov 0xc(%ebp),%ebx 80489bd: 83 f8 01 cmp $0x1,%eax 80489c0: 75 0e jne 80489d0 0x20> 80489c2: a1 48 b6 04 08 mov 0x804b648,%eax 80489c7: a3 64 b6 04 08 mov %eax,0x804b664 80489cc: eb 62 jmp 8048a30 0x80> 80489ce: 89 f6 mov %esi,%esi 80489d0: 83 f8 02 cmp $0x2,%eax 80489d3: 75 3b jne 8048a10 0x60> 80489d5: 83 c4 f8 add $0xfffffff8,%esp 80489d8: 68 20 96 04 08 push $0x8049620 80489dd: 8b 43 04 mov 0x4(%ebx),%eax 80489e0: 50 push %eax 80489e1: e8 9a fe ff ff call 8048880 80489e6: a3 64 b6 04 08 mov %eax,0x804b664 80489eb: 83 c4 10 add $0x10,%esp 80489ee: 85 c0 test %eax,%eax 80489f0: 75 3e jne 8048a30 0x80> 80489f2: 83 c4 fc add $0xfffffffc,%esp 80489f5: 8b 43 04 mov 0x4(%ebx),%eax 80489f8: 50 push %eax 80489f9: 8b 03 mov (%ebx),%eax 80489fb: 50 push %eax 80489fc: 68 22 96 04 08 push $0x8049622 8048a01: e8 0a fe ff ff call 8048810 <printf@plt> 8048a06: 83 c4 f4 add $0xfffffff4,%esp 8048a09: 6a 08 push $0x8 8048a0b: e8 40 fe ff ff call 8048850 <exit@plt> 8048a10: 83 c4 f8 add $0xfffffff8,%esp 8048a13: 8b 03 mov (%ebx),%eax 8048a15: 50 push %eax 8048a16: 68 3f 96 04 08 push $0x804963f 8048a1b: e8 f0 fd ff ff call 8048810 <printf@plt> 8048a20: 83 c4 f4 add $0xfffffff4,%esp 8048a23: 6a 08 push $0x8 8048a25: e8 26 fe ff ff call 8048850 <exit@plt> 8048a2a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 8048a30: e8 2b 07 00 00 call 8049160 8048a35: 83 c4 f4 add $0xfffffff4,%esp 8048a38: 68 60 96 04 08 push $0x8049660 8048a3d: e8 ce fd ff ff call 8048810 <printf@plt> 8048a42: 83 c4 f4 add $0xfffffff4,%esp 8048a45: 68 a0 96 04 08 push $0x80496a0 8048a4a: e8 c1 fd ff ff call 8048810 <printf@plt> 8048a4f: 83 c4 20 add $0x20,%esp 8048a52: e8 a5 07 00 00 call 80491fc 8048a57: 83 c4 f4 add $0xfffffff4,%esp 8048a5a: 50 push %eax 8048a5b: e8 c0 00 00 00 call 8048b20 8048a60: e8 c7 0a 00 00 call 804952c 8048a65: 83 c4 f4 add $0xfffffff4,%esp 8048a68: 68 e0 96 04 08 push $0x80496e0 8048a6d: e8 9e fd ff ff call 8048810 <printf@plt> 8048a72: 83 c4 20 add $0x20,%esp 8048a75: e8 82 07 00 00 call 80491fc 8048a7a: 83 c4 f4 add $0xfffffff4,%esp 8048a7d: 50 push %eax 8048a7e: e8 c5 00 00 00 call 8048b48 8048a83: e8 a4 0a 00 00 call 804952c 8048a88: 83 c4 f4 add $0xfffffff4,%esp 8048a8b: 68 20 97 04 08 push $0x8049720 8048a90: e8 7b fd ff ff call 8048810 <printf@plt> 8048a95: 83 c4 20 add $0x20,%esp 8048a98: e8 5f 07 00 00 call 80491fc 8048a9d: 83 c4 f4 add $0xfffffff4,%esp 8048aa0: 50 push %eax 8048aa1: e8 f2 00 00 00 call 8048b98 8048aa6: e8 81 0a 00 00 call 804952c 8048aab: 83 c4 f4 add $0xfffffff4,%esp 8048aae: 68 3f 97 04 08 push $0x804973f 8048ab3: e8 58 fd ff ff call 8048810 <printf@plt> 8048ab8: 83 c4 20 add $0x20,%esp 8048abb: e8 3c 07 00 00 call 80491fc 8048ac0: 83 c4 f4 add $0xfffffff4,%esp 8048ac3: 50 push %eax 8048ac4: e8 17 02 00 00 call 8048ce0 8048ac9: e8 5e 0a 00 00 call 804952c 8048ace: 83 c4 f4 add $0xfffffff4,%esp 8048ad1: 68 60 97 04 08 push $0x8049760 8048ad6: e8 35 fd ff ff call 8048810 <printf@plt> 8048adb: 83 c4 20 add $0x20,%esp 8048ade: e8 19 07 00 00 call 80491fc 8048ae3: 83 c4 f4 add $0xfffffff4,%esp 8048ae6: 50 push %eax 8048ae7: e8 40 02 00 00 call 8048d2c 8048aec: e8 3b 0a 00 00 call 804952c 8048af1: 83 c4 f4 add $0xfffffff4,%esp 8048af4: 68 a0 97 04 08 push $0x80497a0 8048af9: e8 12 fd ff ff call 8048810 <printf@plt> 8048afe: 83 c4 20 add $0x20,%esp 8048b01: e8 f6 06 00 00 call 80491fc 8048b06: 83 c4 f4 add $0xfffffff4,%esp 8048b09: 50 push %eax 8048b0a: e8 89 02 00 00 call 8048d98 8048b0f: e8 18 0a 00 00 call 804952c 8048b14: 31 c0 xor %eax,%eax 8048b16: 8b 5d e8 mov -0x18(%ebp),%ebx 8048b19: 89 ec mov %ebp,%esp 8048b1b: 5d pop %ebp 8048b1c: c3 ret 8048b1d: 90 nop 8048b1e: 90 nop 8048b1f: 90 nop 08048b20 : 8048b20: 55 push %ebp 8048b21: 89 e5 mov %esp,%ebp 8048b23: 83 ec 08 sub $0x8,%esp 8048b26: 8b 45 08 mov 0x8(%ebp),%eax 8048b29: 83 c4 f8 add $0xfffffff8,%esp 8048b2c: 68 c0 97 04 08 push $0x80497c0 8048b31: 50 push %eax 8048b32: e8 f9 04 00 00 call 8049030 8048b37: 83 c4 10 add $0x10,%esp 8048b3a: 85 c0 test %eax,%eax 8048b3c: 74 05 je 8048b43 0x23> 8048b3e: e8 b9 09 00 00 call 80494fc 8048b43: 89 ec mov %ebp,%esp 8048b45: 5d pop %ebp 8048b46: c3 ret 8048b47: 90 nop 08048b48 : 8048b48: 55 push %ebp 8048b49: 89 e5 mov %esp,%ebp 8048b4b: 83 ec 20 sub $0x20,%esp 8048b4e: 56 push %esi 8048b4f: 53 push %ebx 8048b50: 8b 55 08 mov 0x8(%ebp),%edx 8048b53: 83 c4 f8 add $0xfffffff8,%esp 8048b56: 8d 45 e8 lea -0x18(%ebp),%eax 8048b59: 50 push %eax 8048b5a: 52 push %edx 8048b5b: e8 78 04 00 00 call 8048fd8 8048b60: 83 c4 10 add $0x10,%esp 8048b63: 83 7d e8 01 cmpl $0x1,-0x18(%ebp) 8048b67: 74 05 je 8048b6e 0x26> 8048b69: e8 8e 09 00 00 call 80494fc 8048b6e: bb 01 00 00 00 mov $0x1,%ebx 8048b73: 8d 75 e8 lea -0x18(%ebp),%esi 8048b76: 8d 43 01 lea 0x1(%ebx),%eax 8048b79: 0f af 44 9e fc imul -0x4(%esi,%ebx,4),%eax 8048b7e: 39 04 9e cmp %eax,(%esi,%ebx,4) 8048b81: 74 05 je 8048b88 0x40> 8048b83: e8 74 09 00 00 call 80494fc 8048b88: 43 inc %ebx 8048b89: 83 fb 05 cmp $0x5,%ebx 8048b8c: 7e e8 jle 8048b76 0x2e> 8048b8e: 8d 65 d8 lea -0x28(%ebp),%esp 8048b91: 5b pop %ebx 8048b92: 5e pop %esi 8048b93: 89 ec mov %ebp,%esp 8048b95: 5d pop %ebp 8048b96: c3 ret 8048b97: 90 nop 08048b98 : 8048b98: 55 push %ebp 8048b99: 89 e5 mov %esp,%ebp 8048b9b: 83 ec 14 sub $0x14,%esp 8048b9e: 53 push %ebx 8048b9f: 8b 55 08 mov 0x8(%ebp),%edx 8048ba2: 83 c4 f4 add $0xfffffff4,%esp 8048ba5: 8d 45 fc lea -0x4(%ebp),%eax 8048ba8: 50 push %eax 8048ba9: 8d 45 fb lea -0x5(%ebp),%eax 8048bac: 50 push %eax 8048bad: 8d 45 f4 lea -0xc(%ebp),%eax 8048bb0: 50 push %eax 8048bb1: 68 de 97 04 08 push $0x80497de 8048bb6: 52 push %edx 8048bb7: e8 a4 fc ff ff call 8048860 <sscanf@plt> 8048bbc: 83 c4 20 add $0x20,%esp 8048bbf: 83 f8 02 cmp $0x2,%eax 8048bc2: 7f 05 jg 8048bc9 0x31> 8048bc4: e8 33 09 00 00 call 80494fc 8048bc9: 83 7d f4 07 cmpl $0x7,-0xc(%ebp) 8048bcd: 0f 87 b5 00 00 00 ja 8048c88 0xf0> 8048bd3: 8b 45 f4 mov -0xc(%ebp),%eax 8048bd6: ff 24 85 e8 97 04 08 jmp *0x80497e8(,%eax,4) 8048bdd: 8d 76 00 lea 0x0(%esi),%esi 8048be0: b3 71 mov $0x71,%bl 8048be2: 81 7d fc 09 03 00 00 cmpl $0x309,-0x4(%ebp) 8048be9: 0f 84 a0 00 00 00 je 8048c8f 0xf7>////// 8048bef: e8 08 09 00 00 call 80494fc 8048bf4: e9 96 00 00 00 jmp 8048c8f 0xf7>/////// 8048bf9: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8048c00: b3 62 mov $0x62,%bl 8048c02: 81 7d fc d6 00 00 00 cmpl $0xd6,-0x4(%ebp) 8048c09: 0f 84 80 00 00 00 je 8048c8f 0xf7>////// 8048c0f: e8 e8 08 00 00 call 80494fc 8048c14: eb 79 jmp 8048c8f 0xf7>//// 8048c16: b3 62 mov $0x62,%bl 8048c18: 81 7d fc f3 02 00 00 cmpl $0x2f3,-0x4(%ebp) 8048c1f: 74 6e je 8048c8f 0xf7>//// 8048c21: e8 d6 08 00 00 call 80494fc 8048c26: eb 67 jmp 8048c8f 0xf7>//// 8048c28: b3 6b mov $0x6b,%bl 8048c2a: 81 7d fc fb 00 00 00 cmpl $0xfb,-0x4(%ebp) 8048c31: 74 5c je 8048c8f 0xf7>/////// 8048c33: e8 c4 08 00 00 call 80494fc 8048c38: eb 55 jmp 8048c8f 0xf7>////// 8048c3a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 8048c40: b3 6f mov $0x6f,%bl 8048c42: 81 7d fc a0 00 00 00 cmpl $0xa0,-0x4(%ebp) 8048c49: 74 44 je 8048c8f 0xf7>////// 8048c4b: e8 ac 08 00 00 call 80494fc 8048c50: eb 3d jmp 8048c8f 0xf7>////// 8048c52: b3 74 mov $0x74,%bl 8048c54: 81 7d fc ca 01 00 00 cmpl $0x1ca,-0x4(%ebp) 8048c5b: 74 32 je 8048c8f 0xf7>/////// 8048c5d: e8 9a 08 00 00 call 80494fc 8048c62: eb 2b jmp 8048c8f 0xf7> 8048c64: b3 76 mov $0x76,%bl 8048c66: 81 7d fc 0c 03 00 00 cmpl $0x30c,-0x4(%ebp) 8048c6d: 74 20 je 8048c8f 0xf7>////// 8048c6f: e8 88 08 00 00 call 80494fc 8048c74: eb 19 jmp 8048c8f 0xf7>///// 8048c76: b3 62 mov $0x62,%bl 8048c78: 81 7d fc 0c 02 00 00 cmpl $0x20c,-0x4(%ebp) 8048c7f: 74 0e je 8048c8f 0xf7>////// 8048c81: e8 76 08 00 00 call 80494fc 8048c86: eb 07 jmp 8048c8f 0xf7> 8048c88: b3 78 mov $0x78,%bl 8048c8a: e8 6d 08 00 00 call 80494fc 8048c8f: 3a 5d fb cmp -0x5(%ebp),%bl 8048c92: 74 05 je 8048c99 0x101>//////// 8048c94: e8 63 08 00 00 call 80494fc 8048c99: 8b 5d e8 mov -0x18(%ebp),%ebx 8048c9c: 89 ec mov %ebp,%esp 8048c9e: 5d pop %ebp 8048c9f: c3 ret 08048ca0 : 8048ca0: 55 push %ebp 8048ca1: 89 e5 mov %esp,%ebp 8048ca3: 83 ec 10 sub $0x10,%esp 8048ca6: 56 push %esi 8048ca7: 53 push %ebx 8048ca8: 8b 5d 08 mov 0x8(%ebp),%ebx 8048cab: 83 fb 01 cmp $0x1,%ebx 8048cae: 7e 20 jle 8048cd0 0x30> 8048cb0: 83 c4 f4 add $0xfffffff4,%esp 8048cb3: 8d 43 ff lea -0x1(%ebx),%eax 8048cb6: 50 push %eax 8048cb7: e8 e4 ff ff ff call 8048ca0 8048cbc: 89 c6 mov %eax,%esi 8048cbe: 83 c4 f4 add $0xfffffff4,%esp 8048cc1: 8d 43 fe lea -0x2(%ebx),%eax 8048cc4: 50 push %eax 8048cc5: e8 d6 ff ff ff call 8048ca0 8048cca: 01 f0 add %esi,%eax 8048ccc: eb 07 jmp 8048cd5 0x35> 8048cce: 89 f6 mov %esi,%esi 8048cd0: b8 01 00 00 00 mov $0x1,%eax 8048cd5: 8d 65 e8 lea -0x18(%ebp),%esp 8048cd8: 5b pop %ebx 8048cd9: 5e pop %esi 8048cda: 89 ec mov %ebp,%esp 8048cdc: 5d pop %ebp 8048cdd: c3 ret 8048cde: 89 f6 mov %esi,%esi 08048ce0 : 8048ce0: 55 push %ebp 8048ce1: 89 e5 mov %esp,%ebp 8048ce3: 83 ec 18 sub $0x18,%esp 8048ce6: 8b 55 08 mov 0x8(%ebp),%edx 8048ce9: 83 c4 fc add $0xfffffffc,%esp 8048cec: 8d 45 fc lea -0x4(%ebp),%eax 8048cef: 50 push %eax 8048cf0: 68 08 98 04 08 push $0x8049808 8048cf5: 52 push %edx 8048cf6: e8 65 fb ff ff call 8048860 <sscanf@plt> 8048cfb: 83 c4 10 add $0x10,%esp 8048cfe: 83 f8 01 cmp $0x1,%eax 8048d01: 75 06 jne 8048d09 0x29> 8048d03: 83 7d fc 00 cmpl $0x0,-0x4(%ebp) 8048d07: 7f 05 jg 8048d0e 0x2e> 8048d09: e8 ee 07 00 00 call 80494fc 8048d0e: 83 c4 f4 add $0xfffffff4,%esp 8048d11: 8b 45 fc mov -0x4(%ebp),%eax 8048d14: 50 push %eax 8048d15: e8 86 ff ff ff call 8048ca0 8048d1a: 83 c4 10 add $0x10,%esp 8048d1d: 83 f8 37 cmp $0x37,%eax 8048d20: 74 05 je 8048d27 0x47> 8048d22: e8 d5 07 00 00 call 80494fc 8048d27: 89 ec mov %ebp,%esp 8048d29: 5d pop %ebp 8048d2a: c3 ret 8048d2b: 90 nop 08048d2c : 8048d2c: 55 push %ebp 8048d2d: 89 e5 mov %esp,%ebp 8048d2f: 83 ec 10 sub $0x10,%esp 8048d32: 56 push %esi 8048d33: 53 push %ebx 8048d34: 8b 5d 08 mov 0x8(%ebp),%ebx 8048d37: 83 c4 f4 add $0xfffffff4,%esp 8048d3a: 53 push %ebx 8048d3b: e8 d8 02 00 00 call 8049018 8048d40: 83 c4 10 add $0x10,%esp 8048d43: 83 f8 06 cmp $0x6,%eax 8048d46: 74 05 je 8048d4d 0x21> 8048d48: e8 af 07 00 00 call 80494fc 8048d4d: 31 d2 xor %edx,%edx 8048d4f: 8d 4d f8 lea -0x8(%ebp),%ecx 8048d52: be 20 b2 04 08 mov $0x804b220,%esi 8048d57: 8a 04 1a mov (%edx,%ebx,1),%al 8048d5a: 24 0f and $0xf,%al 8048d5c: 0f be c0 movsbl %al,%eax 8048d5f: 8a 04 30 mov (%eax,%esi,1),%al 8048d62: 88 04 0a mov %al,(%edx,%ecx,1) 8048d65: 42 inc %edx 8048d66: 83 fa 05 cmp $0x5,%edx 8048d69: 7e ec jle 8048d57 0x2b> 8048d6b: c6 45 fe 00 movb $0x0,-0x2(%ebp) 8048d6f: 83 c4 f8 add $0xfffffff8,%esp 8048d72: 68 0b 98 04 08 push $0x804980b 8048d77: 8d 45 f8 lea -0x8(%ebp),%eax 8048d7a: 50 push %eax 8048d7b: e8 b0 02 00 00 call 8049030 8048d80: 83 c4 10 add $0x10,%esp 8048d83: 85 c0 test %eax,%eax 8048d85: 74 05 je 8048d8c 0x60> 8048d87: e8 70 07 00 00 call 80494fc 8048d8c: 8d 65 e8 lea -0x18(%ebp),%esp 8048d8f: 5b pop %ebx 8048d90: 5e pop %esi 8048d91: 89 ec mov %ebp,%esp 8048d93: 5d pop %ebp 8048d94: c3 ret 8048d95: 8d 76 00 lea 0x0(%esi),%esi 08048d98 : 8048d98: 55 push %ebp 8048d99: 89 e5 mov %esp,%ebp 8048d9b: 83 ec 4c sub $0x4c,%esp 8048d9e: 57 push %edi 8048d9f: 56 push %esi 8048da0: 53 push %ebx 8048da1: 8b 55 08 mov 0x8(%ebp),%edx 8048da4: c7 45 cc 6c b2 04 08 movl $0x804b26c,-0x34(%ebp) 8048dab: 83 c4 f8 add $0xfffffff8,%esp 8048dae: 8d 45 e8 lea -0x18(%ebp),%eax 8048db1: 50 push %eax 8048db2: 52 push %edx 8048db3: e8 20 02 00 00 call 8048fd8 8048db8: 31 ff xor %edi,%edi 8048dba: 83 c4 10 add $0x10,%esp 8048dbd: 8d 76 00 lea 0x0(%esi),%esi 8048dc0: 8d 45 e8 lea -0x18(%ebp),%eax 8048dc3: 8b 04 b8 mov (%eax,%edi,4),%eax 8048dc6: 48 dec %eax 8048dc7: 83 f8 05 cmp $0x5,%eax 8048dca: 76 05 jbe 8048dd1 0x39> 8048dcc: e8 2b 07 00 00 call 80494fc 8048dd1: 8d 5f 01 lea 0x1(%edi),%ebx 8048dd4: 83 fb 05 cmp $0x5,%ebx 8048dd7: 7f 23 jg 8048dfc 0x64> 8048dd9: 8d 04 bd 00 00 00 00 lea 0x0(,%edi,4),%eax 8048de0: 89 45 c8 mov %eax,-0x38(%ebp) 8048de3: 8d 75 e8 lea -0x18(%ebp),%esi 8048de6: 8b 55 c8 mov -0x38(%ebp),%edx 8048de9: 8b 04 32 mov (%edx,%esi,1),%eax 8048dec: 3b 04 9e cmp (%esi,%ebx,4),%eax 8048def: 75 05 jne 8048df6 0x5e> 8048df1: e8 06 07 00 00 call 80494fc 8048df6: 43 inc %ebx 8048df7: 83 fb 05 cmp $0x5,%ebx 8048dfa: 7e ea jle 8048de6 0x4e> 8048dfc: 47 inc %edi 8048dfd: 83 ff 05 cmp $0x5,%edi 8048e00: 7e be jle 8048dc0 0x28> 8048e02: 31 ff xor %edi,%edi 8048e04: 8d 4d e8 lea -0x18(%ebp),%ecx 8048e07: 8d 45 d0 lea -0x30(%ebp),%eax 8048e0a: 89 45 c4 mov %eax,-0x3c(%ebp) 8048e0d: 8d 76 00 lea 0x0(%esi),%esi 8048e10: 8b 75 cc mov -0x34(%ebp),%esi 8048e13: bb 01 00 00 00 mov $0x1,%ebx 8048e18: 8d 04 bd 00 00 00 00 lea 0x0(,%edi,4),%eax 8048e1f: 89 c2 mov %eax,%edx 8048e21: 3b 1c 08 cmp (%eax,%ecx,1),%ebx 8048e24: 7d 12 jge 8048e38 0xa0> 8048e26: 8b 04 0a mov (%edx,%ecx,1),%eax 8048e29: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8048e30: 8b 76 08 mov 0x8(%esi),%esi 8048e33: 43 inc %ebx 8048e34: 39 c3 cmp %eax,%ebx 8048e36: 7c f8 jl 8048e30 0x98> 8048e38: 8b 55 c4 mov -0x3c(%ebp),%edx 8048e3b: 89 34 ba mov %esi,(%edx,%edi,4) 8048e3e: 47 inc %edi 8048e3f: 83 ff 05 cmp $0x5,%edi 8048e42: 7e cc jle 8048e10 0x78> 8048e44: 8b 75 d0 mov -0x30(%ebp),%esi 8048e47: 89 75 cc mov %esi,-0x34(%ebp) 8048e4a: bf 01 00 00 00 mov $0x1,%edi 8048e4f: 8d 55 d0 lea -0x30(%ebp),%edx 8048e52: 8b 04 ba mov (%edx,%edi,4),%eax 8048e55: 89 46 08 mov %eax,0x8(%esi) 8048e58: 89 c6 mov %eax,%esi 8048e5a: 47 inc %edi 8048e5b: 83 ff 05 cmp $0x5,%edi 8048e5e: 7e f2 jle 8048e52 0xba> 8048e60: c7 46 08 00 00 00 00 movl $0x0,0x8(%esi) 8048e67: 8b 75 cc mov -0x34(%ebp),%esi 8048e6a: 31 ff xor %edi,%edi 8048e6c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi 8048e70: 8b 56 08 mov 0x8(%esi),%edx 8048e73: 8b 06 mov (%esi),%eax 8048e75: 3b 02 cmp (%edx),%eax 8048e77: 7d 05 jge 8048e7e 0xe6> 8048e79: e8 7e 06 00 00 call 80494fc 8048e7e: 8b 76 08 mov 0x8(%esi),%esi 8048e81: 47 inc %edi 8048e82: 83 ff 04 cmp $0x4,%edi 8048e85: 7e e9 jle 8048e70 0xd8> 8048e87: 8d 65 a8 lea -0x58(%ebp),%esp 8048e8a: 5b pop %ebx 8048e8b: 5e pop %esi 8048e8c: 5f pop %edi 8048e8d: 89 ec mov %ebp,%esp 8048e8f: 5d pop %ebp 8048e90: c3 ret 8048e91: 8d 76 00 lea 0x0(%esi),%esi 08048e94 : 8048e94: 55 push %ebp 8048e95: 89 e5 mov %esp,%ebp 8048e97: 83 ec 08 sub $0x8,%esp 8048e9a: 8b 55 08 mov 0x8(%ebp),%edx 8048e9d: 8b 45 0c mov 0xc(%ebp),%eax 8048ea0: 85 d2 test %edx,%edx 8048ea2: 75 0c jne 8048eb0 0x1c> 8048ea4: b8 ff ff ff ff mov $0xffffffff,%eax 8048ea9: eb 37 jmp 8048ee2 0x4e> 8048eab: 90 nop 8048eac: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi 8048eb0: 3b 02 cmp (%edx),%eax 8048eb2: 7d 11 jge 8048ec5 0x31> 8048eb4: 83 c4 f8 add $0xfffffff8,%esp 8048eb7: 50 push %eax 8048eb8: 8b 42 04 mov 0x4(%edx),%eax 8048ebb: 50 push %eax 8048ebc: e8 d3 ff ff ff call 8048e94 8048ec1: 01 c0 add %eax,%eax 8048ec3: eb 1d jmp 8048ee2 0x4e> 8048ec5: 3b 02 cmp (%edx),%eax 8048ec7: 74 17 je 8048ee0 0x4c> 8048ec9: 83 c4 f8 add $0xfffffff8,%esp 8048ecc: 50 push %eax 8048ecd: 8b 42 08 mov 0x8(%edx),%eax 8048ed0: 50 push %eax 8048ed1: e8 be ff ff ff call 8048e94 8048ed6: 01 c0 add %eax,%eax 8048ed8: 40 inc %eax 8048ed9: eb 07 jmp 8048ee2 0x4e> 8048edb: 90 nop 8048edc: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi 8048ee0: 31 c0 xor %eax,%eax 8048ee2: 89 ec mov %ebp,%esp 8048ee4: 5d pop %ebp 8048ee5: c3 ret 8048ee6: 89 f6 mov %esi,%esi 08048ee8 : 8048ee8: 55 push %ebp 8048ee9: 89 e5 mov %esp,%ebp 8048eeb: 83 ec 14 sub $0x14,%esp 8048eee: 53 push %ebx 8048eef: e8 08 03 00 00 call 80491fc 8048ef4: 6a 00 push $0x0 8048ef6: 6a 0a push $0xa 8048ef8: 6a 00 push $0x0 8048efa: 50 push %eax 8048efb: e8 f0 f8 ff ff call 80487f0 <__strtol_internal@plt> 8048f00: 83 c4 10 add $0x10,%esp 8048f03: 89 c3 mov %eax,%ebx 8048f05: 8d 43 ff lea -0x1(%ebx),%eax 8048f08: 3d e8 03 00 00 cmp $0x3e8,%eax 8048f0d: 76 05 jbe 8048f14 0x2c> 8048f0f: e8 e8 05 00 00 call 80494fc 8048f14: 83 c4 f8 add $0xfffffff8,%esp 8048f17: 53 push %ebx 8048f18: 68 20 b3 04 08 push $0x804b320 8048f1d: e8 72 ff ff ff call 8048e94 8048f22: 83 c4 10 add $0x10,%esp 8048f25: 83 f8 07 cmp $0x7,%eax 8048f28: 74 05 je 8048f2f 0x47> 8048f2a: e8 cd 05 00 00 call 80494fc 8048f2f: 83 c4 f4 add $0xfffffff4,%esp 8048f32: 68 20 98 04 08 push $0x8049820 8048f37: e8 d4 f8 ff ff call 8048810 <printf@plt> 8048f3c: e8 eb 05 00 00 call 804952c 8048f41: 8b 5d e8 mov -0x18(%ebp),%ebx 8048f44: 89 ec mov %ebp,%esp 8048f46: 5d pop %ebp 8048f47: c3 ret 8048f48: 90 nop 8048f49: 90 nop 8048f4a: 90 nop 8048f4b: 90 nop 8048f4c: 90 nop 8048f4d: 90 nop 8048f4e: 90 nop 8048f4f: 90 nop 08048f50 : 8048f50: 55 push %ebp 8048f51: 89 e5 mov %esp,%ebp 8048f53: 83 ec 08 sub $0x8,%esp 8048f56: 83 c4 f4 add $0xfffffff4,%esp 8048f59: 68 c0 9a 04 08 push $0x8049ac0 8048f5e: e8 ad f8 ff ff call 8048810 <printf@plt> 8048f63: 83 c4 f4 add $0xfffffff4,%esp 8048f66: 6a 03 push $0x3 8048f68: e8 73 f8 ff ff call 80487e0 8048f6d: 83 c4 20 add $0x20,%esp 8048f70: 83 c4 f4 add $0xfffffff4,%esp 8048f73: 68 f9 9a 04 08 push $0x8049af9 8048f78: e8 93 f8 ff ff call 8048810 <printf@plt> 8048f7d: 83 c4 f4 add $0xfffffff4,%esp 8048f80: a1 40 b6 04 08 mov 0x804b640,%eax 8048f85: 50 push %eax 8048f86: e8 f5 f7 ff ff call 8048780 8048f8b: 83 c4 20 add $0x20,%esp 8048f8e: 83 c4 f4 add $0xfffffff4,%esp 8048f91: 6a 01 push $0x1 8048f93: e8 48 f8 ff ff call 80487e0 8048f98: 83 c4 f4 add $0xfffffff4,%esp 8048f9b: 68 01 9b 04 08 push $0x8049b01 8048fa0: e8 6b f8 ff ff call 8048810 <printf@plt> 8048fa5: 83 c4 20 add $0x20,%esp 8048fa8: 83 c4 f4 add $0xfffffff4,%esp 8048fab: 6a 10 push $0x10 8048fad: e8 9e f8 ff ff call 8048850 <exit@plt> 8048fb2: 89 f6 mov %esi,%esi 08048fb4 : 8048fb4: 55 push %ebp 8048fb5: 89 e5 mov %esp,%ebp 8048fb7: 83 ec 08 sub $0x8,%esp 8048fba: 8b 45 08 mov 0x8(%ebp),%eax 8048fbd: 83 c4 f8 add $0xfffffff8,%esp 8048fc0: 50 push %eax 8048fc1: 68 0a 9b 04 08 push $0x8049b0a 8048fc6: e8 45 f8 ff ff call 8048810 <printf@plt> 8048fcb: 83 c4 f4 add $0xfffffff4,%esp 8048fce: 6a 08 push $0x8 8048fd0: e8 7b f8 ff ff call 8048850 <exit@plt> 8048fd5: 8d 76 00 lea 0x0(%esi),%esi 08048fd8 : 8048fd8: 55 push %ebp 8048fd9: 89 e5 mov %esp,%ebp 8048fdb: 83 ec 08 sub $0x8,%esp 8048fde: 8b 4d 08 mov 0x8(%ebp),%ecx 8048fe1: 8b 55 0c mov 0xc(%ebp),%edx 8048fe4: 8d 42 14 lea 0x14(%edx),%eax 8048fe7: 50 push %eax 8048fe8: 8d 42 10 lea 0x10(%edx),%eax 8048feb: 50 push %eax 8048fec: 8d 42 0c lea 0xc(%edx),%eax 8048fef: 50 push %eax 8048ff0: 8d 42 08 lea 0x8(%edx),%eax 8048ff3: 50 push %eax 8048ff4: 8d 42 04 lea 0x4(%edx),%eax 8048ff7: 50 push %eax 8048ff8: 52 push %edx 8048ff9: 68 1b 9b 04 08 push $0x8049b1b 8048ffe: 51 push %ecx 8048fff: e8 5c f8 ff ff call 8048860 <sscanf@plt> 8049004: 83 c4 20 add $0x20,%esp 8049007: 83 f8 05 cmp $0x5,%eax 804900a: 7f 05 jg 8049011 0x39> 804900c: e8 eb 04 00 00 call 80494fc 8049011: 89 ec mov %ebp,%esp 8049013: 5d pop %ebp 8049014: c3 ret 8049015: 8d 76 00 lea 0x0(%esi),%esi 08049018 : 8049018: 55 push %ebp 8049019: 89 e5 mov %esp,%ebp 804901b: 8b 55 08 mov 0x8(%ebp),%edx 804901e: 31 c0 xor %eax,%eax 8049020: 80 3a 00 cmpb $0x0,(%edx) 8049023: 74 07 je 804902c 0x14> 8049025: 42 inc %edx 8049026: 40 inc %eax 8049027: 80 3a 00 cmpb $0x0,(%edx) 804902a: 75 f9 jne 8049025 0xd> 804902c: 89 ec mov %ebp,%esp 804902e: 5d pop %ebp 804902f: c3 ret 08049030 : 8049030: 55 push %ebp 8049031: 89 e5 mov %esp,%ebp 8049033: 83 ec 0c sub $0xc,%esp 8049036: 57 push %edi 8049037: 56 push %esi 8049038: 53 push %ebx 8049039: 8b 75 08 mov 0x8(%ebp),%esi 804903c: 8b 7d 0c mov 0xc(%ebp),%edi 804903f: 83 c4 f4 add $0xfffffff4,%esp 8049042: 56 push %esi 8049043: e8 d0 ff ff ff call 8049018 8049048: 89 c3 mov %eax,%ebx 804904a: 83 c4 f4 add $0xfffffff4,%esp 804904d: 57 push %edi 804904e: e8 c5 ff ff ff call 8049018 8049053: 39 c3 cmp %eax,%ebx 8049055: 74 09 je 8049060 0x30> 8049057: b8 01 00 00 00 mov $0x1,%eax 804905c: eb 21 jmp 804907f 0x4f> 804905e: 89 f6 mov %esi,%esi 8049060: 89 f2 mov %esi,%edx 8049062: 89 f9 mov %edi,%ecx 8049064: 80 3a 00 cmpb $0x0,(%edx) 8049067: 74 14 je 804907d 0x4d> 8049069: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8049070: 8a 02 mov (%edx),%al 8049072: 3a 01 cmp (%ecx),%al 8049074: 75 e1 jne 8049057 0x27> 8049076: 42 inc %edx 8049077: 41 inc %ecx 8049078: 80 3a 00 cmpb $0x0,(%edx) 804907b: 75 f3 jne 8049070 0x40> 804907d: 31 c0 xor %eax,%eax 804907f: 8d 65 e8 lea -0x18(%ebp),%esp 8049082: 5b pop %ebx 8049083: 5e pop %esi 8049084: 5f pop %edi 8049085: 89 ec mov %ebp,%esp 8049087: 5d pop %ebp 8049088: c3 ret 8049089: 8d 76 00 lea 0x0(%esi),%esi 0804908c : 804908c: 55 push %ebp 804908d: 89 e5 mov %esp,%ebp 804908f: 83 ec 20 sub $0x20,%esp 8049092: 56 push %esi 8049093: 53 push %ebx 8049094: 83 c4 fc add $0xfffffffc,%esp 8049097: 6a 00 push $0x0 8049099: 6a 01 push $0x1 804909b: 6a 02 push $0x2 804909d: e8 0e f8 ff ff call 80488b0 80490a2: 89 c6 mov %eax,%esi 80490a4: 83 c4 10 add $0x10,%esp 80490a7: 85 f6 test %esi,%esi 80490a9: 7d 17 jge 80490c2 0x36> 80490ab: 83 c4 f4 add $0xfffffff4,%esp 80490ae: 68 2d 9b 04 08 push $0x8049b2d 80490b3: e8 58 f7 ff ff call 8048810 <printf@plt> 80490b8: 83 c4 f4 add $0xfffffff4,%esp 80490bb: 6a 08 push $0x8 80490bd: e8 8e f7 ff ff call 8048850 <exit@plt> 80490c2: 83 c4 f4 add $0xfffffff4,%esp 80490c5: 8b 45 08 mov 0x8(%ebp),%eax 80490c8: 50 push %eax 80490c9: e8 62 f7 ff ff call 8048830 80490ce: 89 c3 mov %eax,%ebx 80490d0: 83 c4 10 add $0x10,%esp 80490d3: 85 db test %ebx,%ebx 80490d5: 75 19 jne 80490f0 0x64> 80490d7: 83 c4 f4 add $0xfffffff4,%esp 80490da: 68 3c 9b 04 08 push $0x8049b3c 80490df: e8 2c f7 ff ff call 8048810 <printf@plt> 80490e4: 83 c4 f4 add $0xfffffff4,%esp 80490e7: 6a 08 push $0x8 80490e9: e8 62 f7 ff ff call 8048850 <exit@plt> 80490ee: 89 f6 mov %esi,%esi 80490f0: 83 c4 f8 add $0xfffffff8,%esp 80490f3: 6a 10 push $0x10 80490f5: 8d 45 f0 lea -0x10(%ebp),%eax 80490f8: 50 push %eax 80490f9: e8 42 f7 ff ff call 8048840 80490fe: 66 c7 45 f0 02 00 movw $0x2,-0x10(%ebp) 8049104: 83 c4 fc add $0xfffffffc,%esp 8049107: 8b 43 0c mov 0xc(%ebx),%eax 804910a: 50 push %eax 804910b: 8d 45 f4 lea -0xc(%ebp),%eax 804910e: 50 push %eax 804910f: 8b 43 10 mov 0x10(%ebx),%eax 8049112: 8b 00 mov (%eax),%eax 8049114: 50 push %eax 8049115: e8 76 f6 ff ff call 8048790 804911a: 83 c4 20 add $0x20,%esp 804911d: 8b 45 0c mov 0xc(%ebp),%eax 8049120: 66 c1 c8 08 ror $0x8,%ax 8049124: 66 89 45 f2 mov %ax,-0xe(%ebp) 8049128: 83 c4 fc add $0xfffffffc,%esp 804912b: 6a 10 push $0x10 804912d: 8d 45 f0 lea -0x10(%ebp),%eax 8049130: 50 push %eax 8049131: 56 push %esi 8049132: e8 39 f7 ff ff call 8048870 8049137: 83 c4 10 add $0x10,%esp 804913a: 85 c0 test %eax,%eax 804913c: 7d 17 jge 8049155 0xc9> 804913e: 83 c4 f4 add $0xfffffff4,%esp 8049141: 68 4b 9b 04 08 push $0x8049b4b 8049146: e8 c5 f6 ff ff call 8048810 <printf@plt> 804914b: 83 c4 f4 add $0xfffffff4,%esp 804914e: 6a 08 push $0x8 8049150: e8 fb f6 ff ff call 8048850 <exit@plt> 8049155: 89 f0 mov %esi,%eax 8049157: 8d 65 d8 lea -0x28(%ebp),%esp 804915a: 5b pop %ebx 804915b: 5e pop %esi 804915c: 89 ec mov %ebp,%esp 804915e: 5d pop %ebp 804915f: c3 ret 08049160 : 8049160: 55 push %ebp 8049161: 89 e5 mov %esp,%ebp 8049163: 83 ec 08 sub $0x8,%esp 8049166: 83 c4 f8 add $0xfffffff8,%esp 8049169: 68 50 8f 04 08 push $0x8048f50 804916e: 6a 02 push $0x2 8049170: e8 fb f5 ff ff call 8048770 8049175: 89 ec mov %ebp,%esp 8049177: 5d pop %ebp 8049178: c3 ret 8049179: 8d 76 00 lea 0x0(%esi),%esi 0804917c : 804917c: 55 push %ebp 804917d: 89 e5 mov %esp,%ebp 804917f: 8b 55 08 mov 0x8(%ebp),%edx 8049182: 80 3a 00 cmpb $0x0,(%edx) 8049185: 74 1e je 80491a5 0x29> 8049187: 8b 0d 44 b6 04 08 mov 0x804b644,%ecx 804918d: 8d 76 00 lea 0x0(%esi),%esi 8049190: 0f be 02 movsbl (%edx),%eax 8049193: 42 inc %edx 8049194: f6 44 41 01 20 testb $0x20,0x1(%ecx,%eax,2) 8049199: 75 05 jne 80491a0 0x24> 804919b: 31 c0 xor %eax,%eax 804919d: eb 0b jmp 80491aa 0x2e> 804919f: 90 nop 80491a0: 80 3a 00 cmpb $0x0,(%edx) 80491a3: 75 eb jne 8049190 0x14> 80491a5: b8 01 00 00 00 mov $0x1,%eax 80491aa: 89 ec mov %ebp,%esp 80491ac: 5d pop %ebp 80491ad: c3 ret 80491ae: 89 f6 mov %esi,%esi 080491b0 : 80491b0: 55 push %ebp 80491b1: 89 e5 mov %esp,%ebp 80491b3: 83 ec 14 sub $0x14,%esp 80491b6: 53 push %ebx 80491b7: 83 c4 fc add $0xfffffffc,%esp 80491ba: a1 64 b6 04 08 mov 0x804b664,%eax 80491bf: 50 push %eax 80491c0: 6a 50 push $0x50 80491c2: a1 80 b4 04 08 mov 0x804b480,%eax 80491c7: 8d 04 80 lea (%eax,%eax,4),%eax 80491ca: c1 e0 04 shl $0x4,%eax 80491cd: 05 80 b6 04 08 add $0x804b680,%eax 80491d2: 50 push %eax 80491d3: e8 f8 f5 ff ff call 80487d0 80491d8: 89 c3 mov %eax,%ebx 80491da: 83 c4 10 add $0x10,%esp 80491dd: 85 db test %ebx,%ebx 80491df: 74 10 je 80491f1 0x41> 80491e1: 83 c4 f4 add $0xfffffff4,%esp 80491e4: 53 push %ebx 80491e5: e8 92 ff ff ff call 804917c 80491ea: 83 c4 10 add $0x10,%esp 80491ed: 85 c0 test %eax,%eax 80491ef: 75 c6 jne 80491b7 0x7> 80491f1: 89 d8 mov %ebx,%eax 80491f3: 8b 5d e8 mov -0x18(%ebp),%ebx 80491f6: 89 ec mov %ebp,%esp 80491f8: 5d pop %ebp 80491f9: c3 ret 80491fa: 89 f6 mov %esi,%esi 080491fc : 80491fc: 55 push %ebp 80491fd: 89 e5 mov %esp,%ebp 80491ff: 83 ec 14 sub $0x14,%esp 8049202: 57 push %edi 8049203: e8 a8 ff ff ff call 80491b0 8049208: 85 c0 test %eax,%eax 804920a: 75 53 jne 804925f 0x63> 804920c: a1 64 b6 04 08 mov 0x804b664,%eax 8049211: 3b 05 48 b6 04 08 cmp 0x804b648,%eax 8049217: 74 31 je 804924a 0x4e> 8049219: 83 c4 f4 add $0xfffffff4,%esp 804921c: 68 7f 9b 04 08 push $0x8049b7f 8049221: e8 3a f5 ff ff call 8048760 8049226: 83 c4 10 add $0x10,%esp 8049229: 85 c0 test %eax,%eax 804922b: 74 0a je 8049237 0x3b> 804922d: 83 c4 f4 add $0xfffffff4,%esp 8049230: 6a 00 push $0x0 8049232: e8 19 f6 ff ff call 8048850 <exit@plt> 8049237: a1 48 b6 04 08 mov 0x804b648,%eax 804923c: a3 64 b6 04 08 mov %eax,0x804b664 8049241: e8 6a ff ff ff call 80491b0 8049246: 85 c0 test %eax,%eax 8049248: 75 15 jne 804925f 0x63> 804924a: 83 c4 f4 add $0xfffffff4,%esp 804924d: 68 60 9b 04 08 push $0x8049b60 8049252: e8 b9 f5 ff ff call 8048810 <printf@plt> 8049257: e8 a0 02 00 00 call 80494fc 804925c: 83 c4 10 add $0x10,%esp 804925f: a1 80 b4 04 08 mov 0x804b480,%eax 8049264: 8d 04 80 lea (%eax,%eax,4),%eax 8049267: c1 e0 04 shl $0x4,%eax 804926a: 8d b8 80 b6 04 08 lea 0x804b680(%eax),%edi 8049270: b0 00 mov $0x0,%al 8049272: fc cld 8049273: b9 ff ff ff ff mov $0xffffffff,%ecx 8049278: f2 ae repnz scas %es:(%edi),%al 804927a: 89 c8 mov %ecx,%eax 804927c: f7 d0 not %eax 804927e: 8d 78 ff lea -0x1(%eax),%edi 8049281: 83 ff 4f cmp $0x4f,%edi 8049284: 75 12 jne 8049298 0x9c> 8049286: 83 c4 f4 add $0xfffffff4,%esp 8049289: 68 8a 9b 04 08 push $0x8049b8a 804928e: e8 7d f5 ff ff call 8048810 <printf@plt> 8049293: e8 64 02 00 00 call 80494fc 8049298: a1 80 b4 04 08 mov 0x804b480,%eax 804929d: 8d 04 80 lea (%eax,%eax,4),%eax 80492a0: c1 e0 04 shl $0x4,%eax 80492a3: c6 84 07 7f b6 04 08 movb $0x0,0x804b67f(%edi,%eax,1) 80492aa: 00 80492ab: 05 80 b6 04 08 add $0x804b680,%eax 80492b0: ff 05 80 b4 04 08 incl 0x804b480 80492b6: 8b 7d e8 mov -0x18(%ebp),%edi 80492b9: 89 ec mov %ebp,%esp 80492bb: 5d pop %ebp 80492bc: c3 ret 80492bd: 8d 76 00 lea 0x0(%esi),%esi 080492c0 : 80492c0: 55 push %ebp 80492c1: 89 e5 mov %esp,%ebp 80492c3: 83 ec 5c sub $0x5c,%esp 80492c6: 57 push %edi 80492c7: 56 push %esi 80492c8: 53 push %ebx 80492c9: 83 c4 f4 add $0xfffffff4,%esp 80492cc: 6a 00 push $0x0 80492ce: e8 bd f5 ff ff call 8048890 80492d3: 89 c7 mov %eax,%edi 80492d5: 83 c4 10 add $0x10,%esp 80492d8: 83 ff ff cmp $0xffffffff,%edi 80492db: 75 17 jne 80492f4 0x34> 80492dd: 83 c4 f4 add $0xfffffff4,%esp 80492e0: 68 a6 9b 04 08 push $0x8049ba6 80492e5: e8 26 f5 ff ff call 8048810 <printf@plt> 80492ea: 83 c4 f4 add $0xfffffff4,%esp 80492ed: 6a 08 push $0x8 80492ef: e8 5c f5 ff ff call 8048850 <exit@plt> 80492f4: 83 c4 f4 add $0xfffffff4,%esp 80492f7: 6a 00 push $0x0 80492f9: e8 32 f4 ff ff call 8048730 80492fe: 83 c4 10 add $0x10,%esp 8049301: 83 f8 ff cmp $0xffffffff,%eax 8049304: 75 1a jne 8049320 0x60> 8049306: 83 c4 f4 add $0xfffffff4,%esp 8049309: 68 bb 9b 04 08 push $0x8049bbb 804930e: e8 fd f4 ff ff call 8048810 <printf@plt> 8049313: 83 c4 f4 add $0xfffffff4,%esp 8049316: 6a 08 push $0x8 8049318: e8 33 f5 ff ff call 8048850 <exit@plt> 804931d: 8d 76 00 lea 0x0(%esi),%esi 8049320: e8 2b f4 ff ff call 8048750 8049325: 89 c6 mov %eax,%esi 8049327: 85 f6 test %esi,%esi 8049329: 75 17 jne 8049342 0x82> 804932b: 83 c4 f4 add $0xfffffff4,%esp 804932e: 68 cf 9b 04 08 push $0x8049bcf 8049333: e8 d8 f4 ff ff call 8048810 <printf@plt> 8049338: 83 c4 f4 add $0xfffffff4,%esp 804933b: 6a 08 push $0x8 804933d: e8 0e f5 ff ff call 8048850 <exit@plt> 8049342: 83 c4 f8 add $0xfffffff8,%esp 8049345: 68 e5 9b 04 08 push $0x8049be5 804934a: 56 push %esi 804934b: e8 f0 f3 ff ff call 8048740 <fprintf@plt> 8049350: 83 c4 f8 add $0xfffffff8,%esp 8049353: 68 01 9c 04 08 push $0x8049c01 8049358: 56 push %esi 8049359: e8 e2 f3 ff ff call 8048740 <fprintf@plt> 804935e: 83 c4 20 add $0x20,%esp 8049361: 83 c4 f4 add $0xfffffff4,%esp 8049364: 6a 00 push $0x0 8049366: e8 55 f5 ff ff call 80488c0 804936b: 83 c4 10 add $0x10,%esp 804936e: 85 c0 test %eax,%eax 8049370: 75 1e jne 8049390 0xd0> 8049372: 8d 45 b0 lea -0x50(%ebp),%eax 8049375: c7 00 6e 6f 62 6f movl $0x6f626f6e,(%eax) 804937b: 83 c0 04 add $0x4,%eax 804937e: 66 c7 00 64 79 movw $0x7964,(%eax) 8049383: c6 40 02 00 movb $0x0,0x2(%eax) 8049387: eb 17 jmp 80493a0 0xe0> 8049389: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8049390: 83 c4 f8 add $0xfffffff8,%esp 8049393: 50 push %eax 8049394: 8d 45 b0 lea -0x50(%ebp),%eax 8049397: 50 push %eax 8049398: e8 33 f5 ff ff call 80488d0 <strcpy@plt> 804939d: 83 c4 10 add $0x10,%esp 80493a0: 83 c4 fc add $0xfffffffc,%esp 80493a3: a1 80 b4 04 08 mov 0x804b480,%eax 80493a8: 50 push %eax 80493a9: b8 12 9c 04 08 mov $0x8049c12,%eax 80493ae: 83 7d 08 00 cmpl $0x0,0x8(%ebp) 80493b2: 74 05 je 80493b9 0xf9> 80493b4: b8 0a 9c 04 08 mov $0x8049c0a,%eax 80493b9: 50 push %eax 80493ba: 8d 45 b0 lea -0x50(%ebp),%eax 80493bd: 50 push %eax 80493be: a1 00 ae 04 08 mov 0x804ae00,%eax 80493c3: 50 push %eax 80493c4: 68 20 ae 04 08 push $0x804ae20 80493c9: 68 1b 9c 04 08 push $0x8049c1b 80493ce: 56 push %esi 80493cf: e8 6c f3 ff ff call 8048740 <fprintf@plt> 80493d4: 31 d2 xor %edx,%edx 80493d6: 83 c4 20 add $0x20,%esp 80493d9: 3b 15 80 b4 04 08 cmp 0x804b480,%edx 80493df: 7d 3a jge 804941b 0x15b> 80493e1: 83 c4 fc add $0xfffffffc,%esp 80493e4: 8d 04 92 lea (%edx,%edx,4),%eax 80493e7: c1 e0 04 shl $0x4,%eax 80493ea: 05 80 b6 04 08 add $0x804b680,%eax 80493ef: 50 push %eax 80493f0: 8d 5a 01 lea 0x1(%edx),%ebx 80493f3: 53 push %ebx 80493f4: 8d 45 b0 lea -0x50(%ebp),%eax 80493f7: 50 push %eax 80493f8: a1 00 ae 04 08 mov 0x804ae00,%eax 80493fd: 50 push %eax 80493fe: 68 20 ae 04 08 push $0x804ae20 8049403: 68 37 9c 04 08 push $0x8049c37 8049408: 56 push %esi 8049409: e8 32 f3 ff ff call 8048740 <fprintf@plt> 804940e: 83 c4 20 add $0x20,%esp 8049411: 89 da mov %ebx,%edx 8049413: 3b 15 80 b4 04 08 cmp 0x804b480,%edx 8049419: 7c c6 jl 80493e1 0x121> 804941b: 83 c4 f4 add $0xfffffff4,%esp 804941e: 56 push %esi 804941f: e8 7c f3 ff ff call 80487a0 8049424: 83 c4 f4 add $0xfffffff4,%esp 8049427: 68 81 9a 04 08 push $0x8049a81 804942c: 68 53 9c 04 08 push $0x8049c53 8049431: 68 58 9c 04 08 push $0x8049c58 8049436: 68 6f 9c 04 08 push $0x8049c6f 804943b: 68 c0 bc 04 08 push $0x804bcc0 8049440: e8 5b f4 ff ff call 80488a0 <sprintf@plt> 8049445: 83 c4 30 add $0x30,%esp 8049448: 83 c4 f4 add $0xfffffff4,%esp 804944b: 68 c0 bc 04 08 push $0x804bcc0 8049450: e8 5b f3 ff ff call 80487b0 8049455: 83 c4 10 add $0x10,%esp 8049458: 85 c0 test %eax,%eax 804945a: 74 17 je 8049473 0x1b3> 804945c: 83 c4 f4 add $0xfffffff4,%esp 804945f: 68 78 9c 04 08 push $0x8049c78 8049464: e8 a7 f3 ff ff call 8048810 <printf@plt> 8049469: 83 c4 f4 add $0xfffffff4,%esp 804946c: 6a 08 push $0x8 804946e: e8 dd f3 ff ff call 8048850 <exit@plt> 8049473: 83 c4 f4 add $0xfffffff4,%esp 8049476: 56 push %esi 8049477: e8 a4 f3 ff ff call 8048820 804947c: 83 c4 10 add $0x10,%esp 804947f: 85 c0 test %eax,%eax 8049481: 74 1d je 80494a0 0x1e0> 8049483: 83 c4 f4 add $0xfffffff4,%esp 8049486: 68 93 9c 04 08 push $0x8049c93 804948b: e8 80 f3 ff ff call 8048810 <printf@plt> 8049490: 83 c4 f4 add $0xfffffff4,%esp 8049493: 6a 08 push $0x8 8049495: e8 b6 f3 ff ff call 8048850 <exit@plt> 804949a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi 80494a0: 83 c4 f4 add $0xfffffff4,%esp 80494a3: 57 push %edi 80494a4: e8 e7 f3 ff ff call 8048890 80494a9: 83 c4 10 add $0x10,%esp 80494ac: 85 c0 test %eax,%eax 80494ae: 74 17 je 80494c7 0x207> 80494b0: 83 c4 f4 add $0xfffffff4,%esp 80494b3: 68 ad 9c 04 08 push $0x8049cad 80494b8: e8 53 f3 ff ff call 8048810 <printf@plt> 80494bd: 83 c4 f4 add $0xfffffff4,%esp 80494c0: 6a 08 push $0x8 80494c2: e8 89 f3 ff ff call 8048850 <exit@plt> 80494c7: 83 c4 f4 add $0xfffffff4,%esp 80494ca: 57 push %edi 80494cb: e8 60 f2 ff ff call 8048730 80494d0: 83 c4 10 add $0x10,%esp 80494d3: 85 c0 test %eax,%eax 80494d5: 74 19 je 80494f0 0x230> 80494d7: 83 c4 f4 add $0xfffffff4,%esp 80494da: 68 c9 9c 04 08 push $0x8049cc9 80494df: e8 2c f3 ff ff call 8048810 <printf@plt> 80494e4: 83 c4 f4 add $0xfffffff4,%esp 80494e7: 6a 08 push $0x8 80494e9: e8 62 f3 ff ff call 8048850 <exit@plt> 80494ee: 89 f6 mov %esi,%esi 80494f0: 8d 65 98 lea -0x68(%ebp),%esp 80494f3: 5b pop %ebx 80494f4: 5e pop %esi 80494f5: 5f pop %edi 80494f6: 89 ec mov %ebp,%esp 80494f8: 5d pop %ebp 80494f9: c3 ret 80494fa: 89 f6 mov %esi,%esi 080494fc : 80494fc: 55 push %ebp 80494fd: 89 e5 mov %esp,%ebp 80494ff: 83 ec 08 sub $0x8,%esp 8049502: 83 c4 f4 add $0xfffffff4,%esp 8049505: 68 e1 9c 04 08 push $0x8049ce1 804950a: e8 01 f3 ff ff call 8048810 <printf@plt> 804950f: 83 c4 f4 add $0xfffffff4,%esp 8049512: 68 eb 9c 04 08 push $0x8049ceb 8049517: e8 f4 f2 ff ff call 8048810 <printf@plt> 804951c: 83 c4 20 add $0x20,%esp 804951f: 83 c4 f4 add $0xfffffff4,%esp 8049522: 6a 08 push $0x8 8049524: e8 27 f3 ff ff call 8048850 <exit@plt> 8049529: 8d 76 00 lea 0x0(%esi),%esi 0804952c : 804952c: 55 push %ebp 804952d: 89 e5 mov %esp,%ebp 804952f: 83 ec 64 sub $0x64,%esp 8049532: 53 push %ebx 8049533: 83 3d 80 b4 04 08 06 cmpl $0x6,0x804b480 804953a: 75 63 jne 804959f 0x73> 804953c: 8d 5d b0 lea -0x50(%ebp),%ebx 804953f: 53 push %ebx 8049540: 8d 45 ac lea -0x54(%ebp),%eax 8049543: 50 push %eax 8049544: 68 03 9d 04 08 push $0x8049d03 8049549: 68 70 b7 04 08 push $0x804b770 804954e: e8 0d f3 ff ff call 8048860 <sscanf@plt> 8049553: 83 c4 10 add $0x10,%esp 8049556: 83 f8 02 cmp $0x2,%eax 8049559: 75 37 jne 8049592 0x66> 804955b: 83 c4 f8 add $0xfffffff8,%esp 804955e: 68 09 9d 04 08 push $0x8049d09 8049563: 53 push %ebx 8049564: e8 c7 fa ff ff call 8049030 8049569: 83 c4 10 add $0x10,%esp 804956c: 85 c0 test %eax,%eax 804956e: 75 22 jne 8049592 0x66> 8049570: 83 c4 f4 add $0xfffffff4,%esp 8049573: 68 20 9d 04 08 push $0x8049d20 8049578: e8 93 f2 ff ff call 8048810 <printf@plt> 804957d: 83 c4 f4 add $0xfffffff4,%esp 8049580: 68 60 9d 04 08 push $0x8049d60 8049585: e8 86 f2 ff ff call 8048810 <printf@plt> 804958a: 83 c4 20 add $0x20,%esp 804958d: e8 56 f9 ff ff call 8048ee8 8049592: 83 c4 f4 add $0xfffffff4,%esp 8049595: 68 a0 9d 04 08 push $0x8049da0 804959a: e8 71 f2 ff ff call 8048810 <printf@plt> 804959f: 8b 5d 98 mov -0x68(%ebp),%ebx 80495a2: 89 ec mov %ebp,%esp 80495a4: 5d pop %ebp 80495a5: c3 ret 80495a6: 90 nop 80495a7: 90 nop 80495a8: 90 nop 80495a9: 90 nop 80495aa: 90 nop 80495ab: 90 nop 80495ac: 90 nop 80495ad: 90 nop 80495ae: 90 nop 80495af: 90 nop 080495b0 <__do_global_ctors_aux>: 80495b0: 55 push %ebp 80495b1: 89 e5 mov %esp,%ebp 80495b3: 83 ec 14 sub $0x14,%esp 80495b6: 53 push %ebx 80495b7: bb 08 b5 04 08 mov $0x804b508,%ebx 80495bc: 83 3d 08 b5 04 08 ff cmpl $0xffffffff,0x804b508 80495c3: 74 0c je 80495d1 <__do_global_ctors_aux+0x21> 80495c5: 8b 03 mov (%ebx),%eax 80495c7: ff d0 call *%eax 80495c9: 83 c3 fc add $0xfffffffc,%ebx 80495cc: 83 3b ff cmpl $0xffffffff,(%ebx) 80495cf: 75 f4 jne 80495c5 <__do_global_ctors_aux+0x15> 80495d1: 5b pop %ebx 80495d2: 89 ec mov %ebp,%esp 80495d4: 5d pop %ebp 80495d5: c3 ret 80495d6: 89 f6 mov %esi,%esi 080495d8 : 80495d8: 55 push %ebp 80495d9: 89 e5 mov %esp,%ebp 80495db: 83 ec 08 sub $0x8,%esp 80495de: 89 ec mov %ebp,%esp 80495e0: 5d pop %ebp 80495e1: c3 ret 80495e2: 90 nop 80495e3: 90 nop Disassembly of section .fini: 080495e4 <_fini>: 80495e4: 55 push %ebp 80495e5: 89 e5 mov %esp,%ebp 80495e7: 53 push %ebx 80495e8: e8 00 00 00 00 call 80495ed <_fini+0x9> 80495ed: 5b pop %ebx 80495ee: 81 c3 2b 1f 00 00 add $0x1f2b,%ebx 80495f4: e8 17 f3 ff ff call 8048910 <__do_global_dtors_aux> 80495f9: 8b 5d fc mov -0x4(%ebp),%ebx 80495fc: c9 leave 80495fd: c3 ret

你可能感兴趣的:(C语言,程序设计,计算机系统)