(gdb) disassemble Dump of assembler code for function do_relocs: 0xb7f989ae <+0>: push %ebp 0xb7f989af <+1>: mov %esp,%ebp 0xb7f989b1 <+3>: push %edi 0xb7f989b2 <+4>: push %esi 0xb7f989b3 <+5>: push %ebx 0xb7f989b4 <+6>: sub $0x4c,%esp 0xb7f989b7 <+9>: mov (%eax),%esi 0xb7f989b9 <+11>: mov %eax,-0x28(%ebp) 0xb7f989bc <+14>: call 0xb7f8bf0c <__x86.get_pc_thunk.bx> 0xb7f989c1 <+19>: add $0x645bb,%ebx 0xb7f989c7 <+25>: mov %edx,-0x30(%ebp) 0xb7f989ca <+28>: mov %esi,-0x38(%ebp) 0xb7f989cd <+31>: mov 0x24(%eax),%esi 0xb7f989d0 <+34>: mov 0x34(%eax),%eax 0xb7f989d3 <+37>: mov %esi,-0x4c(%ebp) 0xb7f989d6 <+40>: mov %eax,-0x50(%ebp) 0xb7f989d9 <+43>: mov 0xc(%ebp),%eax 0xb7f989dc <+46>: shl $0x2,%eax 0xb7f989df <+49>: mov %eax,-0x54(%ebp) 0xb7f989e2 <+52>: cmpl $0x0,0x8(%ebp) 0xb7f989e6 <+56>: je 0xb7f98c17 0xb7f989ec <+62>: mov -0x30(%ebp),%eax 0xb7f989ef <+65>: mov 0x4(%eax),%eax 0xb7f989f2 <+68>: movzbl %al,%edx 0xb7f989f5 <+71>: test %edx,%edx 0xb7f989f7 <+73>: je 0xb7f98c09 0xb7f989fd <+79>: lea -0x1(%edx),%ecx 0xb7f98a00 <+82>: cmp $0x28,%ecx 0xb7f98a03 <+85>: ja 0xb7f98a14 0xb7f98a05 <+87>: movsbl -0x2520d(%edx,%ebx,1),%ecx 0xb7f98a0d <+95>: test %ecx,%ecx 0xb7f98a0f <+97>: mov %cl,-0x48(%ebp) 0xb7f98a12 <+100>: jne 0xb7f98a24 0xb7f98a14 <+102>: push %eax 0xb7f98a15 <+103>: mov -0x28(%ebp),%eax 0xb7f98a18 <+106>: push %edx 0xb7f98a19 <+107>: pushl 0x4(%eax) 0xb7f98a1c <+110>: lea -0x254dd(%ebx),%eax 0xb7f98a22 <+116>: jmp 0xb7f98a9b ---Type to continue, or q to quit--- 0xb7f98a24 <+118>: mov -0x30(%ebp),%edx 0xb7f98a27 <+121>: mov -0x38(%ebp),%esi 0xb7f98a2a <+124>: add (%edx),%esi 0xb7f98a2c <+126>: shr $0x8,%eax 0xb7f98a2f <+129>: je 0xb7f98aa9 0xb7f98a31 <+131>: shl $0x4,%eax 0xb7f98a34 <+134>: mov -0x50(%ebp),%edx 0xb7f98a37 <+137>: add -0x4c(%ebp),%eax 0xb7f98a3a <+140>: add (%eax),%edx 0xb7f98a3c <+142>: cmp $0x7,%ecx 0xb7f98a3f <+145>: mov %eax,-0x2c(%ebp) 0xb7f98a42 <+148>: mov %edx,-0x34(%ebp) 0xb7f98a45 <+151>: mov 0x948(%ebx),%edx 0xb7f98a4b <+157>: jne 0xb7f98a50 0xb7f98a4d <+159>: mov 0xc(%edx),%edx 0xb7f98a50 <+162>: cmp $0x3,%ecx 0xb7f98a53 <+165>: sete %cl 0xb7f98a56 <+168>: push %edi 0xb7f98a57 <+169>: movzbl %cl,%ecx 0xb7f98a5a <+172>: push %edi 0xb7f98a5b <+173>: push %ecx 0xb7f98a5c <+174>: pushl -0x34(%ebp) 0xb7f98a5f <+177>: lea -0x20(%ebp),%eax 0xb7f98a62 <+180>: call 0xb7f9889f 0xb7f98a67 <+185>: mov -0x20(%ebp),%eax 0xb7f98a6a <+188>: add $0x10,%esp 0xb7f98a6d <+191>: mov -0x1c(%ebp),%edx 0xb7f98a70 <+194>: test %eax,%eax 0xb7f98a72 <+196>: mov %eax,-0x24(%ebp) 0xb7f98a75 <+199>: jne 0xb7f98aba 0xb7f98a77 <+201>: mov -0x2c(%ebp),%eax 0xb7f98a7a <+204>: cmpw $0x0,0xe(%eax) 0xb7f98a7f <+209>: jne 0xb7f98a8b 0xb7f98a81 <+211>: mov 0xc(%eax),%al 0xb7f98a84 <+214>: shr $0x4,%al 0xb7f98a87 <+217>: cmp $0x2,%al 0xb7f98a89 <+219>: je 0xb7f98aba 0xb7f98a8b <+221>: mov -0x28(%ebp),%eax 0xb7f98a8e <+224>: push %ecx 0xb7f98a8f <+225>: pushl -0x34(%ebp) ---Type to continue, or q to quit--- 0xb7f98a92 <+228>: pushl 0x4(%eax) 0xb7f98a95 <+231>: lea -0x254a9(%ebx),%eax 0xb7f98a9b <+237>: push %eax 0xb7f98a9c <+238>: call 0xb7f97b90 0xb7f98aa1 <+243>: add $0x10,%esp 0xb7f98aa4 <+246>: jmp 0xb7f98c09 0xb7f98aa9 <+251>: mov -0x28(%ebp),%edx 0xb7f98aac <+254>: movl $0x0,-0x24(%ebp) 0xb7f98ab3 <+261>: movl $0x0,-0x2c(%ebp) 0xb7f98aba <+268>: cmpl $0x2,0xc(%ebp) 0xb7f98abe <+272>: jbe 0xb7f98ac8 0xb7f98ac0 <+274>: mov -0x30(%ebp),%eax 0xb7f98ac3 <+277>: mov 0x8(%eax),%edi 0xb7f98ac6 <+280>: jmp 0xb7f98ad9 0xb7f98ac8 <+282>: mov -0x48(%ebp),%ecx 0xb7f98acb <+285>: mov $0x8c,%eax 0xb7f98ad0 <+290>: xor %edi,%edi 0xb7f98ad2 <+292>: bt %ecx,%eax 0xb7f98ad5 <+295>: jb 0xb7f98ad9 0xb7f98ad7 <+297>: mov (%esi),%edi 0xb7f98ad9 <+299>: mov -0x24(%ebp),%eax 0xb7f98adc <+302>: test %eax,%eax 0xb7f98ade <+304>: je 0xb7f98aec 0xb7f98ae0 <+306>: mov 0x4(%eax),%eax 0xb7f98ae3 <+309>: mov (%edx),%ecx 0xb7f98ae5 <+311>: mov %eax,-0x24(%ebp) 0xb7f98ae8 <+314>: add %eax,%ecx 0xb7f98aea <+316>: jmp 0xb7f98af5 0xb7f98aec <+318>: xor %ecx,%ecx 0xb7f98aee <+320>: movl $0x0,-0x24(%ebp) 0xb7f98af5 <+327>: mov -0x48(%ebp),%al 0xb7f98af8 <+330>: dec %eax 0xb7f98af9 <+331>: cmp $0xd,%al 0xb7f98afb <+333>: ja 0xb7f98c09 0xb7f98b01 <+339>: movzbl %al,%eax 0xb7f98b04 <+342>: mov -0x25244(%ebx,%eax,4),%eax 0xb7f98b0b <+349>: add %ebx,%eax 0xb7f98b0d <+351>: jmp *%eax 0xb7f98b0f <+353>: sub %esi,%edi 0xb7f98b11 <+355>: jmp 0xb7f98b19 ---Type to continue, or q to quit--- 0xb7f98b13 <+357>: cmpl $0x0,-0x2c(%ebp) 0xb7f98b17 <+361>: je 0xb7f98b1d 0xb7f98b19 <+363>: add %ecx,%edi 0xb7f98b1b <+365>: jmp 0xb7f98b58 0xb7f98b1d <+367>: add -0x38(%ebp),%edi 0xb7f98b20 <+370>: jmp 0xb7f98b58 0xb7f98b22 <+372>: mov -0x2c(%ebp),%eax 0xb7f98b25 <+375>: push %edx 0xb7f98b26 <+376>: pushl 0x8(%eax) 0xb7f98b29 <+379>: push %ecx 0xb7f98b2a <+380>: push %esi 0xb7f98b2b <+381>: call 0xb7fc60c7 0xb7f98b30 <+386>: jmp 0xb7f98aa1 0xb7f98b35 <+391>: sub %esi,%edi 0xb7f98b37 <+393>: add %edi,%ecx 0xb7f98b39 <+395>: mov %ecx,(%esi) 0xb7f98b3b <+397>: jmp 0xb7f98c09 0xb7f98b40 <+402>: mov 0x74(%edx),%eax 0xb7f98b43 <+405>: mov %eax,(%esi) 0xb7f98b45 <+407>: jmp 0xb7f98c09 0xb7f98b4a <+412>: sub 0x78(%edx),%edi 0xb7f98b4d <+415>: add -0x24(%ebp),%edi 0xb7f98b50 <+418>: jmp 0xb7f98b58 0xb7f98b52 <+420>: add 0x78(%edx),%edi 0xb7f98b55 <+423>: sub -0x24(%ebp),%edi => 0xb7f98b58 <+426>: mov %edi,(%esi) 0xb7f98b5a <+428>: jmp 0xb7f98c09 0xb7f98b5f <+433>: cmpl $0x2,0xc(%ebp) 0xb7f98b63 <+437>: ja 0xb7f98b68 0xb7f98b65 <+439>: mov 0x4(%esi),%edi 0xb7f98b68 <+442>: cmpl $0x0,0x924(%ebx) 0xb7f98b6f <+449>: je 0xb7f98bf6 0xb7f98b75 <+455>: mov 0x8d4(%ebx),%eax 0xb7f98b7b <+461>: cmp %eax,0x74(%edx) 0xb7f98b7e <+464>: jb 0xb7f98bf6 0xb7f98b80 <+466>: sub $0xc,%esp 0xb7f98b83 <+469>: push $0xc 0xb7f98b85 <+471>: mov %edx,-0x48(%ebp) 0xb7f98b88 <+474>: call 0xb7f9e324 0xb7f98b8d <+479>: add $0x10,%esp ---Type to continue, or q to quit--- 0xb7f98b90 <+482>: mov -0x48(%ebp),%edx 0xb7f98b93 <+485>: test %eax,%eax 0xb7f98b95 <+487>: jne 0xb7f98bc9 0xb7f98b97 <+489>: cmpl $0x0,-0x2c(%ebp) 0xb7f98b9b <+493>: mov -0x34(%ebp),%ecx 0xb7f98b9e <+496>: jne 0xb7f98ba6 0xb7f98ba0 <+498>: lea -0x254e5(%ebx),%ecx 0xb7f98ba6 <+504>: mov %eax,-0x48(%ebp) 0xb7f98ba9 <+507>: push %eax 0xb7f98baa <+508>: mov -0x28(%ebp),%eax 0xb7f98bad <+511>: push %ecx 0xb7f98bae <+512>: lea -0x2547f(%ebx),%ecx 0xb7f98bb4 <+518>: mov %edx,-0x2c(%ebp) 0xb7f98bb7 <+521>: pushl 0x4(%eax) 0xb7f98bba <+524>: push %ecx 0xb7f98bbb <+525>: call 0xb7f97b90 0xb7f98bc0 <+530>: mov -0x48(%ebp),%eax 0xb7f98bc3 <+533>: add $0x10,%esp 0xb7f98bc6 <+536>: mov -0x2c(%ebp),%edx 0xb7f98bc9 <+539>: mov -0x28(%ebp),%ecx 0xb7f98bcc <+542>: mov 0x74(%edx),%edx 0xb7f98bcf <+545>: add -0x24(%ebp),%edi 0xb7f98bd2 <+548>: mov 0x94(%ecx),%ecx 0xb7f98bd8 <+554>: mov %ecx,0x8(%eax) 0xb7f98bdb <+557>: mov -0x28(%ebp),%ecx 0xb7f98bde <+560>: mov %eax,0x94(%ecx) 0xb7f98be4 <+566>: mov %edx,(%eax) 0xb7f98be6 <+568>: lea -0x62d6c(%ebx),%edx 0xb7f98bec <+574>: mov %edi,0x4(%eax) 0xb7f98bef <+577>: mov %eax,0x4(%esi) 0xb7f98bf2 <+580>: mov %edx,(%esi) 0xb7f98bf4 <+582>: jmp 0xb7f98c09 0xb7f98bf6 <+584>: lea -0x62d70(%ebx),%eax 0xb7f98bfc <+590>: mov %eax,(%esi) 0xb7f98bfe <+592>: mov -0x24(%ebp),%eax 0xb7f98c01 <+595>: sub 0x78(%edx),%eax 0xb7f98c04 <+598>: add %eax,%edi 0xb7f98c06 <+600>: mov %edi,0x4(%esi) 0xb7f98c09 <+603>: mov -0x54(%ebp),%eax 0xb7f98c0c <+606>: add %eax,-0x30(%ebp) ---Type to continue, or q to quit--- 0xb7f98c0f <+609>: sub %eax,0x8(%ebp) 0xb7f98c12 <+612>: jmp 0xb7f989e2 0xb7f98c17 <+617>: lea -0xc(%ebp),%esp 0xb7f98c1a <+620>: pop %ebx 0xb7f98c1b <+621>: pop %esi 0xb7f98c1c <+622>: pop %edi 0xb7f98c1d <+623>: pop %ebp 0xb7f98c1e <+624>: ret End of assembler dump. (gdb) info all-registers eax 0xb7f98b0f -1208382705 ecx 0xb7fa2033 -1208344525 edx 0xb7ffd610 -1207970288 ebx 0xb7ffcf7c -1207971972 esp 0xbffffa50 0xbffffa50 ebp 0xbffffaa8 0xbffffaa8 esi 0xc45f10 12869392 edi 0xb735c11f -1221213921 eip 0xb7f98b58 0xb7f98b58 eflags 0x10283 [ CF SF IF RF ] cs 0x73 115 ss 0x7b 123 ds 0x7b 123 es 0x7b 123 fs 0x0 0 gs 0x0 0 st0 0 (raw 0x00000000000000000000) st1 0 (raw 0x00000000000000000000) st2 0 (raw 0x00000000000000000000) st3 0 (raw 0x00000000000000000000) st4 0 (raw 0x00000000000000000000) st5 0 (raw 0x00000000000000000000) st6 0 (raw 0x00000000000000000000) st7 42 (raw 0x4004a800000000000000) fctrl 0x37f 895 fstat 0x0 0 ftag 0xffff 65535 fiseg 0x73 115 fioff 0xb7f9db4b -1208362165 foseg 0x7b 123 fooff 0xbffff770 -1073744016 fop 0x11c 284 xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} ---Type to continue, or q to quit--- xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0}, v16_int8 = {0x0 }, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0}, uint128 = 0x00000000000000000000000000000000} mxcsr 0x1f80 [ IM DM ZM OM UM PM ] mm0 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm1 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm2 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm4 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm5 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0, 0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}} mm7 {uint64 = 0xa800000000000000, v2_int32 = {0x0, 0xa8000000}, ---Type to continue, or q to quit--- v4_int16 = {0x0, 0x0, 0x0, 0xa800}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa8}} (gdb)