Jeg kiggede på assemblyen til atoi() (på Linux) og den kalder strtol().
Her er assembly koden til strtol():
08049430 <strtol>:
8049430: 55 push %ebp
8049431: 31 c0 xor %eax,%eax
8049433: 89 e5 mov %esp,%ebp
8049435: 83 ec 10 sub $0x10,%esp
8049438: 89 44 24 0c mov %eax,0xc(%esp)
804943c: 8b 45 10 mov 0x10(%ebp),%eax
804943f: 89 44 24 08 mov %eax,0x8(%esp)
8049443: 8b 45 0c mov 0xc(%ebp),%eax
8049446: 89 44 24 04 mov %eax,0x4(%esp)
804944a: 8b 45 08 mov 0x8(%ebp),%eax
804944d: 89 04 24 mov %eax,(%esp)
8049450: e8 eb f8 ff ff call 8048d40 <__strtol_internal>
8049455: 89 ec mov %ebp,%esp
8049457: 5d pop %ebp
8049458: c3 ret
Den kalder altså videre til __strtol_internal. Den ser således ud:
08048d40 <__strtol_internal>:
8048d40: 55 push %ebp
8048d41: 89 e5 mov %esp,%ebp
8048d43: 57 push %edi
8048d44: 56 push %esi
8048d45: 53 push %ebx
8048d46: 83 ec 54 sub $0x54,%esp
8048d49: 8b 45 14 mov 0x14(%ebp),%eax
8048d4c: c7 45 dc 00 00 00 00 movl $0x0,0xffffffdc(%ebp)
8048d53: 8b 7d 10 mov 0x10(%ebp),%edi
8048d56: c7 45 d8 00 00 00 00 movl $0x0,0xffffffd8(%ebp)
8048d5d: 85 c0 test %eax,%eax
8048d5f: 0f 85 51 06 00 00 jne 80493b6 <__strtol_internal+0x676>
8048d65: c7 45 d4 00 00 00 00 movl $0x0,0xffffffd4(%ebp)
8048d6c: 85 ff test %edi,%edi
8048d6e: 78 0a js 8048d7a <__strtol_internal+0x3a>
8048d70: 83 ff 01 cmp $0x1,%edi
8048d73: 74 05 je 8048d7a <__strtol_internal+0x3a>
8048d75: 83 ff 24 cmp $0x24,%edi
8048d78: 7e 15 jle 8048d8f <__strtol_internal+0x4f>
8048d7a: e8 d1 fc ff ff call 8048a50 <__errno_location>
8048d7f: c7 00 16 00 00 00 movl $0x16,(%eax)
8048d85: 31 c0 xor %eax,%eax
8048d87: 83 c4 54 add $0x54,%esp
8048d8a: 5b pop %ebx
8048d8b: 5e pop %esi
8048d8c: 5f pop %edi
8048d8d: 5d pop %ebp
8048d8e: c3 ret
8048d8f: 8b 75 08 mov 0x8(%ebp),%esi
8048d92: 89 75 e8 mov %esi,0xffffffe8(%ebp)
8048d95: 8d 74 26 00 lea 0x0(%esi),%esi
8048d99: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi
8048da0: b9 00 00 00 00 mov $0x0,%ecx
8048da5: bb 08 e9 0a 08 mov $0x80ae908,%ebx
8048daa: 85 c9 test %ecx,%ecx
8048dac: 74 0e je 8048dbc <__strtol_internal+0x7c>
8048dae: c7 04 24 04 00 00 00 movl $0x4,(%esp)
8048db5: e8 46 72 fb f7 call 0 <_init-0x80480d4>
8048dba: 89 c3 mov %eax,%ebx
8048dbc: 8b 13 mov (%ebx),%edx
8048dbe: 85 d2 test %edx,%edx
8048dc0: 0f 84 c1 05 00 00 je 8049387 <__strtol_internal+0x647>
8048dc6: 0f b6 0e movzbl (%esi),%ecx
8048dc9: 0f be c1 movsbl %cl,%eax
8048dcc: f6 44 42 01 20 testb $0x20,0x1(%edx,%eax,2)
8048dd1: 74 03 je 8048dd6 <__strtol_internal+0x96>
8048dd3: 46 inc %esi
8048dd4: eb ca jmp 8048da0 <__strtol_internal+0x60>
8048dd6: 84 c9 test %cl,%cl
8048dd8: 0f 84 28 01 00 00 je 8048f06 <__strtol_internal+0x1c6>
8048dde: c7 45 f0 00 00 00 00 movl $0x0,0xfffffff0(%ebp)
8048de5: 80 f9 2d cmp $0x2d,%cl
8048de8: 0f 84 90 05 00 00 je 804937e <__strtol_internal+0x63e>
8048dee: 80 f9 2b cmp $0x2b,%cl
8048df1: 0f 84 7e 05 00 00 je 8049375 <__strtol_internal+0x635>
8048df7: 80 f9 30 cmp $0x30,%cl
8048dfa: 0f 84 f5 04 00 00 je 80492f5 <__strtol_internal+0x5b5>
8048e00: 85 ff test %edi,%edi
8048e02: 75 05 jne 8048e09 <__strtol_internal+0xc9>
8048e04: bf 0a 00 00 00 mov $0xa,%edi
8048e09: 89 75 e8 mov %esi,0xffffffe8(%ebp)
8048e0c: 31 c0 xor %eax,%eax
8048e0e: 83 ff 0a cmp $0xa,%edi
8048e11: 0f 95 c0 setne %al
8048e14: 48 dec %eax
8048e15: 21 45 d4 and %eax,0xffffffd4(%ebp)
8048e18: 0f 85 68 03 00 00 jne 8049186 <__strtol_internal+0x446>
8048e1e: c7 45 e4 00 00 00 00 movl $0x0,0xffffffe4(%ebp)
8048e25: c7 45 e0 00 00 00 00 movl $0x0,0xffffffe0(%ebp)
8048e2c: 31 d2 xor %edx,%edx
8048e2e: b8 ff ff ff ff mov $0xffffffff,%eax
8048e33: f7 f7 div %edi
8048e35: c7 45 ec 00 00 00 00 movl $0x0,0xffffffec(%ebp)
8048e3c: 89 55 c0 mov %edx,0xffffffc0(%ebp)
8048e3f: 89 45 c4 mov %eax,0xffffffc4(%ebp)
8048e42: 0f b6 1e movzbl (%esi),%ebx
8048e45: 84 db test %bl,%bl
8048e47: 74 49 je 8048e92 <__strtol_internal+0x152>
8048e49: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi
8048e50: 3b 75 e4 cmp 0xffffffe4(%ebp),%esi
8048e53: 74 3d je 8048e92 <__strtol_internal+0x152>
8048e55: 88 d8 mov %bl,%al
8048e57: 2c 30 sub $0x30,%al
8048e59: 3c 09 cmp $0x9,%al
8048e5b: 0f 87 4f 01 00 00 ja 8048fb0 <__strtol_internal+0x270>
8048e61: 88 c3 mov %al,%bl
8048e63: 0f b6 c3 movzbl %bl,%eax
8048e66: 39 f8 cmp %edi,%eax
8048e68: 7d 28 jge 8048e92 <__strtol_internal+0x152>
8048e6a: 8b 55 c4 mov 0xffffffc4(%ebp),%edx
8048e6d: 39 55 ec cmp %edx,0xffffffec(%ebp)
8048e70: 0f 87 2a 01 00 00 ja 8048fa0 <__strtol_internal+0x260>
8048e76: 0f 84 1b 01 00 00 je 8048f97 <__strtol_internal+0x257>
8048e7c: 8b 4d ec mov 0xffffffec(%ebp),%ecx
8048e7f: 0f b6 c3 movzbl %bl,%eax
8048e82: 0f af cf imul %edi,%ecx
8048e85: 01 c1 add %eax,%ecx
8048e87: 89 4d ec mov %ecx,0xffffffec(%ebp)
8048e8a: 46 inc %esi
8048e8b: 0f b6 1e movzbl (%esi),%ebx
8048e8e: 84 db test %bl,%bl
8048e90: 75 be jne 8048e50 <__strtol_internal+0x110>
8048e92: 3b 75 e8 cmp 0xffffffe8(%ebp),%esi
8048e95: 74 6f je 8048f06 <__strtol_internal+0x1c6>
8048e97: 8b 45 0c mov 0xc(%ebp),%eax
8048e9a: 85 c0 test %eax,%eax
8048e9c: 74 05 je 8048ea3 <__strtol_internal+0x163>
8048e9e: 8b 45 0c mov 0xc(%ebp),%eax
8048ea1: 89 30 mov %esi,(%eax)
8048ea3: 8b 45 e0 mov 0xffffffe0(%ebp),%eax
8048ea6: 85 c0 test %eax,%eax
8048ea8: 75 2c jne 8048ed6 <__strtol_internal+0x196>
8048eaa: 8b 45 f0 mov 0xfffffff0(%ebp),%eax
8048ead: 85 c0 test %eax,%eax
8048eaf: 74 4c je 8048efd <__strtol_internal+0x1bd>
8048eb1: 81 7d ec 00 00 00 80 cmpl $0x80000000,0xffffffec(%ebp)
8048eb8: 77 3a ja 8048ef4 <__strtol_internal+0x1b4>
8048eba: 8b 75 e0 mov 0xffffffe0(%ebp),%esi
8048ebd: 85 f6 test %esi,%esi
8048ebf: 75 15 jne 8048ed6 <__strtol_internal+0x196>
8048ec1: 8b 5d f0 mov 0xfffffff0(%ebp),%ebx
8048ec4: 8b 45 ec mov 0xffffffec(%ebp),%eax
8048ec7: 85 db test %ebx,%ebx
8048ec9: 0f 84 b8 fe ff ff je 8048d87 <__strtol_internal+0x47>
8048ecf: f7 d8 neg %eax
8048ed1: e9 b1 fe ff ff jmp 8048d87 <__strtol_internal+0x47>
8048ed6: e8 75 fb ff ff call 8048a50 <__errno_location>
8048edb: c7 00 22 00 00 00 movl $0x22,(%eax)
8048ee1: 31 c0 xor %eax,%eax
8048ee3: 83 7d f0 00 cmpl $0x0,0xfffffff0(%ebp)
8048ee7: 0f 95 c0 setne %al
8048eea: 05 ff ff ff 7f add $0x7fffffff,%eax
8048eef: e9 93 fe ff ff jmp 8048d87 <__strtol_internal+0x47>
8048ef4: c7 45 e0 01 00 00 00 movl $0x1,0xffffffe0(%ebp)
8048efb: eb bd jmp 8048eba <__strtol_internal+0x17a>
8048efd: 8b 7d ec mov 0xffffffec(%ebp),%edi
8048f00: 85 ff test %edi,%edi
8048f02: 79 b6 jns 8048eba <__strtol_internal+0x17a>
8048f04: eb ee jmp 8048ef4 <__strtol_internal+0x1b4>
8048f06: 8b 4d 0c mov 0xc(%ebp),%ecx
8048f09: 85 c9 test %ecx,%ecx
8048f0b: 0f 84 74 fe ff ff je 8048d85 <__strtol_internal+0x45>
8048f11: 8b 45 e8 mov 0xffffffe8(%ebp),%eax
8048f14: 8b 55 08 mov 0x8(%ebp),%edx
8048f17: 29 d0 sub %edx,%eax
8048f19: 48 dec %eax
8048f1a: 7e 2f jle 8048f4b <__strtol_internal+0x20b>
8048f1c: ba 00 00 00 00 mov $0x0,%edx
8048f21: bb 0c e9 0a 08 mov $0x80ae90c,%ebx
8048f26: 85 d2 test %edx,%edx
8048f28: 74 0e je 8048f38 <__strtol_internal+0x1f8>
8048f2a: c7 04 24 06 00 00 00 movl $0x6,(%esp)
8048f31: e8 ca 70 fb f7 call 0 <_init-0x80480d4>
8048f36: 89 c3 mov %eax,%ebx
8048f38: 8b 13 mov (%ebx),%edx
8048f3a: 85 d2 test %edx,%edx
8048f3c: 74 2d je 8048f6b <__strtol_internal+0x22b>
8048f3e: 8b 4d e8 mov 0xffffffe8(%ebp),%ecx
8048f41: 0f be 41 ff movsbl 0xffffffff(%ecx),%eax
8048f45: 83 3c 82 58 cmpl $0x58,(%edx,%eax,4)
8048f49: 74 0d je 8048f58 <__strtol_internal+0x218>
8048f4b: 8b 45 08 mov 0x8(%ebp),%eax
8048f4e: 8b 4d 0c mov 0xc(%ebp),%ecx
8048f51: 89 01 mov %eax,(%ecx)
8048f53: e9 2d fe ff ff jmp 8048d85 <__strtol_internal+0x45>
8048f58: 80 79 fe 30 cmpb $0x30,0xfffffffe(%ecx)
8048f5c: 75 ed jne 8048f4b <__strtol_internal+0x20b>
8048f5e: 8b 55 0c mov 0xc(%ebp),%edx
8048f61: 89 c8 mov %ecx,%eax
8048f63: 48 dec %eax
8048f64: 89 02 mov %eax,(%edx)
8048f66: e9 1a fe ff ff jmp 8048d85 <__strtol_internal+0x45>
8048f6b: b8 00 00 00 00 mov $0x0,%eax
8048f70: 85 c0 test %eax,%eax
8048f72: 74 1c je 8048f90 <__strtol_internal+0x250>
8048f74: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8048f7b: e8 80 70 fb f7 call 0 <_init-0x80480d4>
8048f80: 8b 00 mov (%eax),%eax
8048f82: 8b 40 28 mov 0x28(%eax),%eax
8048f85: 05 00 02 00 00 add $0x200,%eax
8048f8a: 89 03 mov %eax,(%ebx)
8048f8c: 89 c2 mov %eax,%edx
8048f8e: eb ae jmp 8048f3e <__strtol_internal+0x1fe>
8048f90: a1 54 ba 0a 08 mov 0x80aba54,%eax
8048f95: eb e9 jmp 8048f80 <__strtol_internal+0x240>
8048f97: 3b 45 c0 cmp 0xffffffc0(%ebp),%eax
8048f9a: 0f 86 dc fe ff ff jbe 8048e7c <__strtol_internal+0x13c>
8048fa0: c7 45 e0 01 00 00 00 movl $0x1,0xffffffe0(%ebp)
8048fa7: e9 de fe ff ff jmp 8048e8a <__strtol_internal+0x14a>
8048fac: 8d 74 26 00 lea 0x0(%esi),%esi
8048fb0: 8b 45 d8 mov 0xffffffd8(%ebp),%eax
8048fb3: 85 c0 test %eax,%eax
8048fb5: 0f 84 11 01 00 00 je 80490cc <__strtol_internal+0x38c>
8048fbb: 31 d2 xor %edx,%edx
8048fbd: 3b 55 d8 cmp 0xffffffd8(%ebp),%edx
8048fc0: 73 20 jae 8048fe2 <__strtol_internal+0x2a2>
8048fc2: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi
8048fc9: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi
8048fd0: 0f b6 04 32 movzbl (%edx,%esi,1),%eax
8048fd4: 8b 4d dc mov 0xffffffdc(%ebp),%ecx
8048fd7: 38 04 0a cmp %al,(%edx,%ecx,1)
8048fda: 75 06 jne 8048fe2 <__strtol_internal+0x2a2>
8048fdc: 42 inc %edx
8048fdd: 3b 55 d8 cmp 0xffffffd8(%ebp),%edx
8048fe0: 72 ee jb 8048fd0 <__strtol_internal+0x290>
8048fe2: 3b 55 d8 cmp 0xffffffd8(%ebp),%edx
8048fe5: 0f 84 d5 00 00 00 je 80490c0 <__strtol_internal+0x380>
8048feb: c7 45 bc 08 e9 0a 08 movl $0x80ae908,0xffffffbc(%ebp)
8048ff2: ba 00 00 00 00 mov $0x0,%edx
8048ff7: 85 d2 test %edx,%edx
8048ff9: 74 0f je 804900a <__strtol_internal+0x2ca>
8048ffb: c7 04 24 04 00 00 00 movl $0x4,(%esp)
8049002: e8 f9 6f fb f7 call 0 <_init-0x80480d4>
8049007: 89 45 bc mov %eax,0xffffffbc(%ebp)
804900a: 8b 4d bc mov 0xffffffbc(%ebp),%ecx
804900d: 8b 11 mov (%ecx),%edx
804900f: 85 d2 test %edx,%edx
8049011: 74 74 je 8049087 <__strtol_internal+0x347>
8049013: 0f b6 c3 movzbl %bl,%eax
8049016: f6 44 42 01 04 testb $0x4,0x1(%edx,%eax,2)
804901b: 0f 84 71 fe ff ff je 8048e92 <__strtol_internal+0x152>
8049021: c7 45 b8 0c e9 0a 08 movl $0x80ae90c,0xffffffb8(%ebp)
8049028: b9 00 00 00 00 mov $0x0,%ecx
804902d: 85 c9 test %ecx,%ecx
804902f: 74 0f je 8049040 <__strtol_internal+0x300>
8049031: c7 04 24 06 00 00 00 movl $0x6,(%esp)
8049038: e8 c3 6f fb f7 call 0 <_init-0x80480d4>
804903d: 89 45 b8 mov %eax,0xffffffb8(%ebp)
8049040: 8b 45 b8 mov 0xffffffb8(%ebp),%eax
8049043: 8b 10 mov (%eax),%edx
8049045: 85 d2 test %edx,%edx
8049047: 74 0f je 8049058 <__strtol_internal+0x318>
8049049: 0f b6 c3 movzbl %bl,%eax
804904c: 0f b6 1c 82 movzbl (%edx,%eax,4),%ebx
8049050: 80 eb 37 sub $0x37,%bl
8049053: e9 0b fe ff ff jmp 8048e63 <__strtol_internal+0x123>
8049058: ba 00 00 00 00 mov $0x0,%edx
804905d: 85 d2 test %edx,%edx
804905f: 74 1f je 8049080 <__strtol_internal+0x340>
8049061: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8049068: e8 93 6f fb f7 call 0 <_init-0x80480d4>
804906d: 8b 00 mov (%eax),%eax
804906f: 8b 4d b8 mov 0xffffffb8(%ebp),%ecx
8049072: 8b 40 28 mov 0x28(%eax),%eax
8049075: 05 00 02 00 00 add $0x200,%eax
804907a: 89 01 mov %eax,(%ecx)
804907c: 89 c2 mov %eax,%edx
804907e: eb c9 jmp 8049049 <__strtol_internal+0x309>
8049080: a1 54 ba 0a 08 mov 0x80aba54,%eax
8049085: eb e6 jmp 804906d <__strtol_internal+0x32d>
8049087: b8 00 00 00 00 mov $0x0,%eax
804908c: 85 c0 test %eax,%eax
804908e: 74 22 je 80490b2 <__strtol_internal+0x372>
8049090: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8049097: e8 64 6f fb f7 call 0 <_init-0x80480d4>
804909c: 8b 00 mov (%eax),%eax
804909e: 8b 55 bc mov 0xffffffbc(%ebp),%edx
80490a1: 8b 40 24 mov 0x24(%eax),%eax
80490a4: 05 00 01 00 00 add $0x100,%eax
80490a9: 89 02 mov %eax,(%edx)
80490ab: 89 c2 mov %eax,%edx
80490ad: e9 61 ff ff ff jmp 8049013 <__strtol_internal+0x2d3>
80490b2: a1 54 ba 0a 08 mov 0x80aba54,%eax
80490b7: eb e3 jmp 804909c <__strtol_internal+0x35c>
80490b9: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi
80490c0: 8b 45 d8 mov 0xffffffd8(%ebp),%eax
80490c3: 8d 74 30 ff lea 0xffffffff(%eax,%esi,1),%esi
80490c7: e9 be fd ff ff jmp 8048e8a <__strtol_internal+0x14a>
80490cc: c7 45 b4 08 e9 0a 08 movl $0x80ae908,0xffffffb4(%ebp)
80490d3: b8 00 00 00 00 mov $0x0,%eax
80490d8: 85 c0 test %eax,%eax
80490da: 74 0f je 80490eb <__strtol_internal+0x3ab>
80490dc: c7 04 24 04 00 00 00 movl $0x4,(%esp)
80490e3: e8 18 6f fb f7 call 0 <_init-0x80480d4>
80490e8: 89 45 b4 mov %eax,0xffffffb4(%ebp)
80490eb: 8b 4d b4 mov 0xffffffb4(%ebp),%ecx
80490ee: 8b 11 mov (%ecx),%edx
80490f0: 85 d2 test %edx,%edx
80490f2: 74 60 je 8049154 <__strtol_internal+0x414>
80490f4: 0f b6 c3 movzbl %bl,%eax
80490f7: f6 44 42 01 04 testb $0x4,0x1(%edx,%eax,2)
80490fc: 0f 84 90 fd ff ff je 8048e92 <__strtol_internal+0x152>
8049102: c7 45 b0 0c e9 0a 08 movl $0x80ae90c,0xffffffb0(%ebp)
8049109: b9 00 00 00 00 mov $0x0,%ecx
804910e: 85 c9 test %ecx,%ecx
8049110: 74 0f je 8049121 <__strtol_internal+0x3e1>
8049112: c7 04 24 06 00 00 00 movl $0x6,(%esp)
8049119: e8 e2 6e fb f7 call 0 <_init-0x80480d4>
804911e: 89 45 b0 mov %eax,0xffffffb0(%ebp)
8049121: 8b 45 b0 mov 0xffffffb0(%ebp),%eax
8049124: 8b 10 mov (%eax),%edx
8049126: 85 d2 test %edx,%edx
8049128: 0f 85 1b ff ff ff jne 8049049 <__strtol_internal+0x309>
804912e: ba 00 00 00 00 mov $0x0,%edx
8049133: 85 d2 test %edx,%edx
8049135: 74 16 je 804914d <__strtol_internal+0x40d>
8049137: c7 04 24 03 00 00 00 movl $0x3,(%esp)
804913e: e8 bd 6e fb f7 call 0 <_init-0x80480d4>
8049143: 8b 00 mov (%eax),%eax
8049145: 8b 4d b0 mov 0xffffffb0(%ebp),%ecx
8049148: e9 25 ff ff ff jmp 8049072 <__strtol_internal+0x332>
804914d: a1 54 ba 0a 08 mov 0x80aba54,%eax
8049152: eb ef jmp 8049143 <__strtol_internal+0x403>
8049154: b8 00 00 00 00 mov $0x0,%eax
8049159: 85 c0 test %eax,%eax
804915b: 74 22 je 804917f <__strtol_internal+0x43f>
804915d: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8049164: e8 97 6e fb f7 call 0 <_init-0x80480d4>
8049169: 8b 00 mov (%eax),%eax
804916b: 8b 55 b4 mov 0xffffffb4(%ebp),%edx
804916e: 8b 40 24 mov 0x24(%eax),%eax
8049171: 05 00 01 00 00 add $0x100,%eax
8049176: 89 02 mov %eax,(%edx)
8049178: 89 c2 mov %eax,%edx
804917a: e9 75 ff ff ff jmp 80490f4 <__strtol_internal+0x3b4>
804917f: a1 54 ba 0a 08 mov 0x80aba54,%eax
8049184: eb e3 jmp 8049169 <__strtol_internal+0x429>
8049186: 8b 55 dc mov 0xffffffdc(%ebp),%edx
8049189: 89 14 24 mov %edx,(%esp)
804918c: e8 1f 53 00 00 call 804e4b0 <strlen>
8049191: 89 45 d8 mov %eax,0xffffffd8(%ebp)
8049194: 31 d2 xor %edx,%edx
8049196: 39 c2 cmp %eax,%edx
8049198: 89 45 d0 mov %eax,0xffffffd0(%ebp)
804919b: 89 75 e4 mov %esi,0xffffffe4(%ebp)
804919e: 73 12 jae 80491b2 <__strtol_internal+0x472>
80491a0: 0f b6 04 32 movzbl (%edx,%esi,1),%eax
80491a4: 8b 4d dc mov 0xffffffdc(%ebp),%ecx
80491a7: 38 04 0a cmp %al,(%edx,%ecx,1)
80491aa: 75 06 jne 80491b2 <__strtol_internal+0x472>
80491ac: 42 inc %edx
80491ad: 3b 55 d0 cmp 0xffffffd0(%ebp),%edx
80491b0: 72 ee jb 80491a0 <__strtol_internal+0x460>
80491b2: 3b 55 d0 cmp 0xffffffd0(%ebp),%edx
80491b5: 0f 83 6a fc ff ff jae 8048e25 <__strtol_internal+0xe5>
80491bb: 0f b6 1e movzbl (%esi),%ebx
80491be: 84 db test %bl,%bl
80491c0: 0f 84 a9 00 00 00 je 804926f <__strtol_internal+0x52f>
80491c6: 88 d8 mov %bl,%al
80491c8: 2c 30 sub $0x30,%al
80491ca: 3c 09 cmp $0x9,%al
80491cc: 0f 86 8c 00 00 00 jbe 804925e <__strtol_internal+0x51e>
80491d2: 31 d2 xor %edx,%edx
80491d4: 3b 55 d0 cmp 0xffffffd0(%ebp),%edx
80491d7: 73 15 jae 80491ee <__strtol_internal+0x4ae>
80491d9: 8b 4d e4 mov 0xffffffe4(%ebp),%ecx
80491dc: 0f b6 04 0a movzbl (%edx,%ecx,1),%eax
80491e0: 8b 4d dc mov 0xffffffdc(%ebp),%ecx
80491e3: 38 04 0a cmp %al,(%edx,%ecx,1)
80491e6: 75 06 jne 80491ee <__strtol_internal+0x4ae>
80491e8: 42 inc %edx
80491e9: 3b 55 d0 cmp 0xffffffd0(%ebp),%edx
80491ec: 72 eb jb 80491d9 <__strtol_internal+0x499>
80491ee: 3b 55 d0 cmp 0xffffffd0(%ebp),%edx
80491f1: 73 6b jae 804925e <__strtol_internal+0x51e>
80491f3: c7 45 cc 08 e9 0a 08 movl $0x80ae908,0xffffffcc(%ebp)
80491fa: b8 00 00 00 00 mov $0x0,%eax
80491ff: 85 c0 test %eax,%eax
8049201: 74 0f je 8049212 <__strtol_internal+0x4d2>
8049203: c7 04 24 04 00 00 00 movl $0x4,(%esp)
804920a: e8 f1 6d fb f7 call 0 <_init-0x80480d4>
804920f: 89 45 cc mov %eax,0xffffffcc(%ebp)
8049212: 8b 4d cc mov 0xffffffcc(%ebp),%ecx
8049215: 8b 11 mov (%ecx),%edx
8049217: 85 d2 test %edx,%edx
8049219: 0f 84 a4 00 00 00 je 80492c3 <__strtol_internal+0x583>
804921f: 0f b6 c3 movzbl %bl,%eax
8049222: f6 44 42 01 04 testb $0x4,0x1(%edx,%eax,2)
8049227: 74 46 je 804926f <__strtol_internal+0x52f>
8049229: c7 45 c8 0c e9 0a 08 movl $0x80ae90c,0xffffffc8(%ebp)
8049230: b9 00 00 00 00 mov $0x0,%ecx
8049235: 85 c9 test %ecx,%ecx
8049237: 74 0f je 8049248 <__strtol_internal+0x508>
8049239: c7 04 24 06 00 00 00 movl $0x6,(%esp)
8049240: e8 bb 6d fb f7 call 0 <_init-0x80480d4>
8049245: 89 45 c8 mov %eax,0xffffffc8(%ebp)
8049248: 8b 45 c8 mov 0xffffffc8(%ebp),%eax
804924b: 8b 10 mov (%eax),%edx
804924d: 85 d2 test %edx,%edx
804924f: 74 43 je 8049294 <__strtol_internal+0x554>
8049251: 0f b6 c3 movzbl %bl,%eax
8049254: 8b 04 82 mov (%edx,%eax,4),%eax
8049257: 83 e8 37 sub $0x37,%eax
804925a: 39 f8 cmp %edi,%eax
804925c: 7d 11 jge 804926f <__strtol_internal+0x52f>
804925e: ff 45 e4 incl 0xffffffe4(%ebp)
8049261: 8b 4d e4 mov 0xffffffe4(%ebp),%ecx
8049264: 0f b6 19 movzbl (%ecx),%ebx
8049267: 84 db test %bl,%bl
8049269: 0f 85 57 ff ff ff jne 80491c6 <__strtol_internal+0x486>
804926f: 89 34 24 mov %esi,(%esp)
8049272: 8b 45 d4 mov 0xffffffd4(%ebp),%eax
8049275: 8b 55 dc mov 0xffffffdc(%ebp),%edx
8049278: 8b 4d e4 mov 0xffffffe4(%ebp),%ecx
804927b: 89 44 24 0c mov %eax,0xc(%esp)
804927f: 89 54 24 08 mov %edx,0x8(%esp)
8049283: 89 4c 24 04 mov %ecx,0x4(%esp)
8049287: e8 c4 08 00 00 call 8049b50 <__correctly_grouped_prefixmb>
804928c: 89 45 e4 mov %eax,0xffffffe4(%ebp)
804928f: e9 91 fb ff ff jmp 8048e25 <__strtol_internal+0xe5>
8049294: b8 00 00 00 00 mov $0x0,%eax
8049299: 85 c0 test %eax,%eax
804929b: 74 1f je 80492bc <__strtol_internal+0x57c>
804929d: c7 04 24 03 00 00 00 movl $0x3,(%esp)
80492a4: e8 57 6d fb f7 call 0 <_init-0x80480d4>
80492a9: 8b 00 mov (%eax),%eax
80492ab: 8b 55 c8 mov 0xffffffc8(%ebp),%edx
80492ae: 8b 40 28 mov 0x28(%eax),%eax
80492b1: 05 00 02 00 00 add $0x200,%eax
80492b6: 89 02 mov %eax,(%edx)
80492b8: 89 c2 mov %eax,%edx
80492ba: eb 95 jmp 8049251 <__strtol_internal+0x511>
80492bc: a1 54 ba 0a 08 mov 0x80aba54,%eax
80492c1: eb e6 jmp 80492a9 <__strtol_internal+0x569>
80492c3: b8 00 00 00 00 mov $0x0,%eax
80492c8: 85 c0 test %eax,%eax
80492ca: 74 22 je 80492ee <__strtol_internal+0x5ae>
80492cc: c7 04 24 03 00 00 00 movl $0x3,(%esp)
80492d3: e8 28 6d fb f7 call 0 <_init-0x80480d4>
80492d8: 8b 00 mov (%eax),%eax
80492da: 8b 55 cc mov 0xffffffcc(%ebp),%edx
80492dd: 8b 40 24 mov 0x24(%eax),%eax
80492e0: 05 00 01 00 00 add $0x100,%eax
80492e5: 89 02 mov %eax,(%edx)
80492e7: 89 c2 mov %eax,%edx
80492e9: e9 31 ff ff ff jmp 804921f <__strtol_internal+0x4df>
80492ee: a1 54 ba 0a 08 mov 0x80aba54,%eax
80492f3: eb e3 jmp 80492d8 <__strtol_internal+0x598>
80492f5: 85 ff test %edi,%edi
80492f7: 74 17 je 8049310 <__strtol_internal+0x5d0>
80492f9: 83 ff 10 cmp $0x10,%edi
80492fc: 74 12 je 8049310 <__strtol_internal+0x5d0>
80492fe: 85 ff test %edi,%edi
8049300: 0f 85 03 fb ff ff jne 8048e09 <__strtol_internal+0xc9>
8049306: bf 08 00 00 00 mov $0x8,%edi
804930b: e9 f9 fa ff ff jmp 8048e09 <__strtol_internal+0xc9>
8049310: b8 00 00 00 00 mov $0x0,%eax
8049315: bb 0c e9 0a 08 mov $0x80ae90c,%ebx
804931a: 85 c0 test %eax,%eax
804931c: 74 0e je 804932c <__strtol_internal+0x5ec>
804931e: c7 04 24 06 00 00 00 movl $0x6,(%esp)
8049325: e8 d6 6c fb f7 call 0 <_init-0x80480d4>
804932a: 89 c3 mov %eax,%ebx
804932c: 8b 13 mov (%ebx),%edx
804932e: 85 d2 test %edx,%edx
8049330: 74 17 je 8049349 <__strtol_internal+0x609>
8049332: 0f be 46 01 movsbl 0x1(%esi),%eax
8049336: 83 3c 82 58 cmpl $0x58,(%edx,%eax,4)
804933a: 75 c2 jne 80492fe <__strtol_internal+0x5be>
804933c: 83 c6 02 add $0x2,%esi
804933f: bf 10 00 00 00 mov $0x10,%edi
8049344: e9 c0 fa ff ff jmp 8048e09 <__strtol_internal+0xc9>
8049349: b8 00 00 00 00 mov $0x0,%eax
804934e: 85 c0 test %eax,%eax
8049350: 74 1c je 804936e <__strtol_internal+0x62e>
8049352: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8049359: e8 a2 6c fb f7 call 0 <_init-0x80480d4>
804935e: 8b 00 mov (%eax),%eax
8049360: 8b 40 28 mov 0x28(%eax),%eax
8049363: 05 00 02 00 00 add $0x200,%eax
8049368: 89 03 mov %eax,(%ebx)
804936a: 89 c2 mov %eax,%edx
804936c: eb c4 jmp 8049332 <__strtol_internal+0x5f2>
804936e: a1 54 ba 0a 08 mov 0x80aba54,%eax
8049373: eb e9 jmp 804935e <__strtol_internal+0x61e>
8049375: 46 inc %esi
8049376: 0f b6 0e movzbl (%esi),%ecx
8049379: e9 79 fa ff ff jmp 8048df7 <__strtol_internal+0xb7>
804937e: c7 45 f0 01 00 00 00 movl $0x1,0xfffffff0(%ebp)
8049385: eb ee jmp 8049375 <__strtol_internal+0x635>
8049387: b8 00 00 00 00 mov $0x0,%eax
804938c: 85 c0 test %eax,%eax
804938e: 74 1f je 80493af <__strtol_internal+0x66f>
8049390: c7 04 24 03 00 00 00 movl $0x3,(%esp)
8049397: e8 64 6c fb f7 call 0 <_init-0x80480d4>
804939c: 8b 00 mov (%eax),%eax
804939e: 8b 40 24 mov 0x24(%eax),%eax
80493a1: 05 00 01 00 00 add $0x100,%eax
80493a6: 89 03 mov %eax,(%ebx)
80493a8: 89 c2 mov %eax,%edx
80493aa: e9 17 fa ff ff jmp 8048dc6 <__strtol_internal+0x86>
80493af: a1 54 ba 0a 08 mov 0x80aba54,%eax
80493b4: eb e6 jmp 804939c <__strtol_internal+0x65c>
80493b6: bb 00 00 00 00 mov $0x0,%ebx
80493bb: 85 db test %ebx,%ebx
80493bd: 74 5d je 804941c <__strtol_internal+0x6dc>
80493bf: c7 04 24 03 00 00 00 movl $0x3,(%esp)
80493c6: e8 35 6c fb f7 call 0 <_init-0x80480d4>
80493cb: 8b 40 04 mov 0x4(%eax),%eax
80493ce: 8b 40 2c mov 0x2c(%eax),%eax
80493d1: 89 45 d4 mov %eax,0xffffffd4(%ebp)
80493d4: 0f b6 00 movzbl (%eax),%eax
80493d7: 84 c0 test %al,%al
80493d9: 0f 8e 86 f9 ff ff jle 8048d65 <__strtol_internal+0x25>
80493df: 3c 7f cmp $0x7f,%al
80493e1: 0f 84 7e f9 ff ff je 8048d65 <__strtol_internal+0x25>
80493e7: 85 db test %ebx,%ebx
80493e9: 74 2a je 8049415 <__strtol_internal+0x6d5>
80493eb: c7 04 24 03 00 00 00 movl $0x3,(%esp)
80493f2: e8 09 6c fb f7 call 0 <_init-0x80480d4>
80493f7: 8b 40 04 mov 0x4(%eax),%eax
80493fa: 8b 40 28 mov 0x28(%eax),%eax
80493fd: 89 45 dc mov %eax,0xffffffdc(%ebp)
8049400: 80 38 00 cmpb $0x0,(%eax)
8049403: 0f 85 63 f9 ff ff jne 8048d6c <__strtol_internal+0x2c>
8049409: c7 45 dc 00 00 00 00 movl $0x0,0xffffffdc(%ebp)
8049410: e9 50 f9 ff ff jmp 8048d65 <__strtol_internal+0x25>
8049415: a1 54 ba 0a 08 mov 0x80aba54,%eax
804941a: eb db jmp 80493f7 <__strtol_internal+0x6b7>
804941c: a1 54 ba 0a 08 mov 0x80aba54,%eax
8049421: eb a8 jmp 80493cb <__strtol_internal+0x68b>
8049423: 8d b6 00 00 00 00 lea 0x0(%esi),%esi
8049429: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi
Og så mister jeg lidt tråden, men værsgo at optimere :-)