At Mon, 27 Apr 2020 21:17:04 -0700, "Greg A. Woods" <woods%planix.ca@localhost> wrote: Subject: Re: odd behaviour of some programs on i386 cross-built from amd64 > > One of the kernels seems to be the same too, assuming one takes into > account the obvious difference in vers.o: > > text data bss dec hex filename > 20222422 515508 926144 21664074 14a914a sys/arch/i386/compile/MONOLITHIC/netbsd > 20222382 515508 926144 21664034 14a9122 /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/MONOLITHIC/netbsd > > text data bss dec hex filename > 795 0 0 795 31b sys/arch/i386/compile/MONOLITHIC/vers.o > 755 0 0 755 2f3 /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/MONOLITHIC/vers.o Indeed with a direct "cmp" of the .o files in each build, all are identical except for vers.o and debugsyms.o -- the latter differs only in one pathname to the compile directory, which is also to be expected since the path prefixes differ between the two build environments. Unfortunately this native-built kernel also works identically on the Soekris hardware (as expected, since there are no difference in the object code), i.e. causing the same odd behaviour to a few odd binaries. I guess now I'll have to dig into my local kernel changes to see what might be incompatible with a 32-bit system. Maybe I can also try an ARM build to see if the same problems happen on an RPi or Beaglebone. > However the other kernel I've tested is somehow not the same: The differences are few, but inexplicable. Here are all the object files which differ in the XEN3PAE_DOMU builds: /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/arc4.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/arc4.o differ: char 33, line 1 /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/bf_ecb.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/bf_ecb.o differ: char 33, line 1 /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/camellia-api.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/camellia-api.o differ: char 33, line 1 /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/debugsyms.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/debugsyms.o differ: char 180, line 1 /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/quota1_subr.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/quota1_subr.o differ: char 33, line 1 /build/woods/once.local/current-i386-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/vers.o /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/vers.o differ: char 33, line 1 Again debugsyms.o and vers.o differences can be ignored, but the rest are so far inexplicably different. All are built from the same source tree, with the same build options. The only difference is one build host ("future") is amd64 (running under Xen, also built from the same source tree), and the other ("once") is running on native i386 hardware (an old Dell PE2650, but running stock 9.0). (this sdiff output shows best at 132 column width) sys/arch/i386/compile/XEN3PAE_DOMU/arc4.o: file format elf3 | /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/ Disassembly of section .text: Disassembly of section .text: 00000000 <arc4_ctxlen>: 00000000 <arc4_ctxlen>: 0: 55 push %ebp | 0: b8 08 04 00 00 mov $0x408,%eax 1: b8 08 04 00 00 mov $0x408,%eax | 5: c3 ret 6: 89 e5 mov %esp,%ebp | 6: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 8: 5d pop %ebp | d: 8d 76 00 lea 0x0(%esi),%esi 9: c3 ret < a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi < 00000010 <arc4_setkey>: 00000010 <arc4_setkey>: 10: 55 push %ebp 10: 55 push %ebp 11: 31 c0 xor %eax,%eax 11: 31 c0 xor %eax,%eax 13: 89 e5 mov %esp,%ebp | 13: 57 push %edi 15: 57 push %edi | 14: 56 push %esi 16: 56 push %esi | 15: 53 push %ebx 17: 53 push %ebx | 16: 83 ec 04 sub $0x4,%esp 18: 83 ec 08 sub $0x8,%esp | 19: 8b 54 24 18 mov 0x18(%esp),%edx 1b: 8b 55 08 mov 0x8(%ebp),%edx | 1d: 8b 74 24 1c mov 0x1c(%esp),%esi 1e: 8d 72 08 lea 0x8(%edx),%esi | 21: 8d 7a 08 lea 0x8(%edx),%edi 21: c7 02 00 00 00 00 movl $0x0,(%edx) | 24: c7 02 00 00 00 00 movl $0x0,(%edx) 27: c7 42 04 00 00 00 00 movl $0x0,0x4(%edx) | 2a: c7 42 04 00 00 00 00 movl $0x0,0x4(%edx) 2e: 66 90 xchg %ax,%ax | 31: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 30: 89 04 86 mov %eax,(%esi,%eax,4) | 38: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 33: 40 inc %eax | 3f: 90 nop 34: 3d 00 01 00 00 cmp $0x100,%eax | 40: 89 04 87 mov %eax,(%edi,%eax,4) 39: 75 f5 jne 30 <arc4_setkey+0x20> | 43: 40 inc %eax 3b: 8d 82 08 04 00 00 lea 0x408(%edx),%eax | 44: 3d 00 01 00 00 cmp $0x100,%eax 41: 89 f1 mov %esi,%ecx | 49: 75 f5 jne 40 <arc4_setkey+0x30> 43: 89 45 f0 mov %eax,-0x10(%ebp) | 4b: 8d 82 08 04 00 00 lea 0x408(%edx),%eax 46: 31 d2 xor %edx,%edx | 51: 89 f9 mov %edi,%ecx 48: 31 c0 xor %eax,%eax | 53: 89 04 24 mov %eax,(%esp) 4a: 89 75 ec mov %esi,-0x14(%ebp) | 56: 31 d2 xor %edx,%edx 4d: 8d 76 00 lea 0x0(%esi),%esi | 58: 31 c0 xor %eax,%eax 50: 8b 7d 0c mov 0xc(%ebp),%edi | 5a: 89 74 24 1c mov %esi,0x1c(%esp) 53: 8b 31 mov (%ecx),%esi | 5e: 66 90 xchg %ax,%ax 55: 0f b6 1c 17 movzbl (%edi,%edx,1),%ebx | 60: 8b 74 24 1c mov 0x1c(%esp),%esi 59: 42 inc %edx | 64: 0f b6 1c 06 movzbl (%esi,%eax,1),%ebx 5a: 01 f3 add %esi,%ebx | 68: 40 inc %eax 5c: 8b 75 ec mov -0x14(%ebp),%esi | 69: 8b 31 mov (%ecx),%esi 5f: 01 d8 add %ebx,%eax | 6b: 01 f3 add %esi,%ebx 61: 0f b6 c0 movzbl %al,%eax | 6d: 8b 31 mov (%ecx),%esi 64: 3b 55 10 cmp 0x10(%ebp),%edx | 6f: 01 da add %ebx,%edx 67: 8d 1c 86 lea (%esi,%eax,4),%ebx | 71: 0f b6 d2 movzbl %dl,%edx 6a: 8b 31 mov (%ecx),%esi | 74: 8d 1c 97 lea (%edi,%edx,4),%ebx 6c: 8b 3b mov (%ebx),%edi | 77: 8b 2b mov (%ebx),%ebp 6e: 89 33 mov %esi,(%ebx) | 79: 3b 44 24 20 cmp 0x20(%esp),%eax 70: be 00 00 00 00 mov $0x0,%esi | 7d: 89 33 mov %esi,(%ebx) 75: 89 39 mov %edi,(%ecx) | 7f: be 00 00 00 00 mov $0x0,%esi 77: 0f 43 d6 cmovae %esi,%edx | 84: 89 29 mov %ebp,(%ecx) 7a: 83 c1 04 add $0x4,%ecx | 86: 0f 43 c6 cmovae %esi,%eax 7d: 39 4d f0 cmp %ecx,-0x10(%ebp) | 89: 83 c1 04 add $0x4,%ecx 80: 75 ce jne 50 <arc4_setkey+0x40> | 8c: 39 0c 24 cmp %ecx,(%esp) 82: 83 c4 08 add $0x8,%esp | 8f: 75 cf jne 60 <arc4_setkey+0x50> 85: 5b pop %ebx | 91: 58 pop %eax 86: 5e pop %esi | 92: 5b pop %ebx 87: 5f pop %edi | 93: 5e pop %esi 88: 5d pop %ebp | 94: 5f pop %edi 89: c3 ret | 95: 5d pop %ebp 8a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi | 96: c3 ret | 97: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 00000090 <arc4_encrypt>: | 9e: 66 90 xchg %ax,%ax 90: 55 push %ebp | 91: 89 e5 mov %esp,%ebp | 000000a0 <arc4_encrypt>: 93: 57 push %edi | a0: 55 push %ebp 94: 56 push %esi | a1: 57 push %edi 95: 53 push %ebx | a2: 56 push %esi 96: 83 ec 08 sub $0x8,%esp | a3: 53 push %ebx 99: 8b 45 08 mov 0x8(%ebp),%eax | a4: 83 ec 08 sub $0x8,%esp 9c: 8b 4d 10 mov 0x10(%ebp),%ecx | a7: 8b 44 24 1c mov 0x1c(%esp),%eax 9f: 8d 58 08 lea 0x8(%eax),%ebx | ab: 8b 5c 24 24 mov 0x24(%esp),%ebx a2: 8b 00 mov (%eax),%eax | af: 8d 70 08 lea 0x8(%eax),%esi a4: 89 45 f0 mov %eax,-0x10(%ebp) | b2: 8b 10 mov (%eax),%edx a7: 8b 45 08 mov 0x8(%ebp),%eax | b4: 8b 48 04 mov 0x4(%eax),%ecx aa: 8b 50 04 mov 0x4(%eax),%edx | b7: 8b 44 24 28 mov 0x28(%esp),%eax ad: 8b 45 14 mov 0x14(%ebp),%eax | bb: 01 d8 add %ebx,%eax b0: 01 c8 add %ecx,%eax | bd: 39 c3 cmp %eax,%ebx b2: 39 c1 cmp %eax,%ecx | bf: 89 44 24 04 mov %eax,0x4(%esp) b4: 89 45 ec mov %eax,-0x14(%ebp) | c3: 74 49 je 10e <arc4_encrypt+0x6e> b7: 74 40 je f9 <arc4_encrypt+0x69> | c5: 89 14 24 mov %edx,(%esp) b9: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi | c8: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi c0: 8b 45 f0 mov -0x10(%ebp),%eax | cf: 90 nop c3: 41 inc %ecx | d0: 8b 04 24 mov (%esp),%eax c4: 40 inc %eax | d3: 43 inc %ebx c5: 0f b6 c0 movzbl %al,%eax | d4: 40 inc %eax c8: 8d 3c 83 lea (%ebx,%eax,4),%edi | d5: 0f b6 c0 movzbl %al,%eax cb: 89 45 f0 mov %eax,-0x10(%ebp) | d8: 8d 3c 86 lea (%esi,%eax,4),%edi ce: 8b 07 mov (%edi),%eax | db: 8b 17 mov (%edi),%edx d0: 01 c2 add %eax,%edx | dd: 89 04 24 mov %eax,(%esp) d2: 0f b6 d2 movzbl %dl,%edx | e0: 01 d1 add %edx,%ecx d5: 8d 34 93 lea (%ebx,%edx,4),%esi | e2: 0f b6 c9 movzbl %cl,%ecx d8: 8b 36 mov (%esi),%esi | e5: 8d 2c 8e lea (%esi,%ecx,4),%ebp da: 89 37 mov %esi,(%edi) | e8: 8b 45 00 mov 0x0(%ebp),%eax dc: 8d 3c 93 lea (%ebx,%edx,4),%edi | eb: 89 07 mov %eax,(%edi) df: 89 07 mov %eax,(%edi) | ed: 01 d0 add %edx,%eax e1: 01 f0 add %esi,%eax | ef: 8b 7c 24 20 mov 0x20(%esp),%edi e3: 8b 7d 0c mov 0xc(%ebp),%edi | f3: 89 55 00 mov %edx,0x0(%ebp) e6: 0f b6 c0 movzbl %al,%eax | f6: 0f b6 c0 movzbl %al,%eax e9: 8b 04 83 mov (%ebx,%eax,4),%eax | f9: 8b 04 86 mov (%esi,%eax,4),%eax ec: 32 41 ff xor -0x1(%ecx),%al | fc: 32 43 ff xor -0x1(%ebx),%al ef: ff 45 0c incl 0xc(%ebp) | ff: ff 44 24 20 incl 0x20(%esp) f2: 39 4d ec cmp %ecx,-0x14(%ebp) | 103: 39 5c 24 04 cmp %ebx,0x4(%esp) f5: 88 07 mov %al,(%edi) | 107: 88 07 mov %al,(%edi) f7: 75 c7 jne c0 <arc4_encrypt+0x30> | 109: 75 c5 jne d0 <arc4_encrypt+0x30> f9: 8b 45 08 mov 0x8(%ebp),%eax | 10b: 8b 14 24 mov (%esp),%edx fc: 8b 5d f0 mov -0x10(%ebp),%ebx | 10e: 8b 44 24 1c mov 0x1c(%esp),%eax ff: 89 50 04 mov %edx,0x4(%eax) | 112: 89 10 mov %edx,(%eax) 102: 89 18 mov %ebx,(%eax) | 114: 89 48 04 mov %ecx,0x4(%eax) 104: 83 c4 08 add $0x8,%esp | 117: 83 c4 08 add $0x8,%esp 107: 5b pop %ebx | 11a: 5b pop %ebx 108: 5e pop %esi | 11b: 5e pop %esi 109: 5f pop %edi | 11c: 5f pop %edi 10a: 5d pop %ebp | 11d: 5d pop %ebp 10b: c3 ret | 11e: c3 ret 10c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi | 11f: 90 nop | 00000110 <arc4_stream>: | 00000120 <arc4_stream>: 110: 55 push %ebp | 120: 55 push %ebp 111: 89 e5 mov %esp,%ebp | 121: 57 push %edi 113: 57 push %edi | 122: 56 push %esi 114: 56 push %esi | 123: 53 push %ebx 115: 53 push %ebx | 124: 83 ec 08 sub $0x8,%esp 116: 83 ec 08 sub $0x8,%esp | 127: 8b 44 24 1c mov 0x1c(%esp),%eax 119: 8b 45 08 mov 0x8(%ebp),%eax | 12b: 8b 4c 24 20 mov 0x20(%esp),%ecx 11c: 8b 4d 0c mov 0xc(%ebp),%ecx | 12f: 8d 70 08 lea 0x8(%eax),%esi 11f: 8d 58 08 lea 0x8(%eax),%ebx | 132: 8b 10 mov (%eax),%edx 122: 8b 00 mov (%eax),%eax | 134: 8b 58 04 mov 0x4(%eax),%ebx 124: 89 45 f0 mov %eax,-0x10(%ebp) | 137: 8b 44 24 24 mov 0x24(%esp),%eax 127: 8b 45 08 mov 0x8(%ebp),%eax | 13b: 01 c8 add %ecx,%eax 12a: 8b 50 04 mov 0x4(%eax),%edx | 13d: 39 c1 cmp %eax,%ecx 12d: 8b 45 10 mov 0x10(%ebp),%eax | 13f: 89 44 24 04 mov %eax,0x4(%esp) 130: 01 c8 add %ecx,%eax | 143: 74 3f je 184 <arc4_stream+0x64> 132: 39 c1 cmp %eax,%ecx | 145: 89 14 24 mov %edx,(%esp) 134: 89 45 ec mov %eax,-0x14(%ebp) | 148: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 137: 74 38 je 171 <arc4_stream+0x61> | 14f: 90 nop 139: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi | 150: 8b 04 24 mov (%esp),%eax 140: 8b 45 f0 mov -0x10(%ebp),%eax | 153: 41 inc %ecx 143: 41 inc %ecx | 154: 40 inc %eax 144: 40 inc %eax | 155: 0f b6 c0 movzbl %al,%eax 145: 0f b6 c0 movzbl %al,%eax | 158: 8d 3c 86 lea (%esi,%eax,4),%edi 148: 8d 3c 83 lea (%ebx,%eax,4),%edi | 15b: 8b 17 mov (%edi),%edx 14b: 89 45 f0 mov %eax,-0x10(%ebp) | 15d: 89 04 24 mov %eax,(%esp) 14e: 8b 07 mov (%edi),%eax | 160: 01 d3 add %edx,%ebx 150: 01 c2 add %eax,%edx | 162: 0f b6 db movzbl %bl,%ebx 152: 0f b6 d2 movzbl %dl,%edx | 165: 8d 2c 9e lea (%esi,%ebx,4),%ebp 155: 8d 34 93 lea (%ebx,%edx,4),%esi | 168: 8b 45 00 mov 0x0(%ebp),%eax 158: 8b 36 mov (%esi),%esi | 16b: 89 07 mov %eax,(%edi) 15a: 89 37 mov %esi,(%edi) | 16d: 01 d0 add %edx,%eax 15c: 8d 3c 93 lea (%ebx,%edx,4),%edi | 16f: 89 55 00 mov %edx,0x0(%ebp) 15f: 89 07 mov %eax,(%edi) | 172: 0f b6 c0 movzbl %al,%eax 161: 01 f0 add %esi,%eax | 175: 8b 04 86 mov (%esi,%eax,4),%eax 163: 0f b6 c0 movzbl %al,%eax | 178: 88 41 ff mov %al,-0x1(%ecx) 166: 8b 04 83 mov (%ebx,%eax,4),%eax | 17b: 39 4c 24 04 cmp %ecx,0x4(%esp) 169: 88 41 ff mov %al,-0x1(%ecx) | 17f: 75 cf jne 150 <arc4_stream+0x30> 16c: 39 4d ec cmp %ecx,-0x14(%ebp) | 181: 8b 14 24 mov (%esp),%edx 16f: 75 cf jne 140 <arc4_stream+0x30> | 184: 8b 44 24 1c mov 0x1c(%esp),%eax 171: 8b 45 08 mov 0x8(%ebp),%eax | 188: 89 10 mov %edx,(%eax) 174: 8b 7d f0 mov -0x10(%ebp),%edi | 18a: 89 58 04 mov %ebx,0x4(%eax) 177: 89 50 04 mov %edx,0x4(%eax) | 18d: 83 c4 08 add $0x8,%esp 17a: 89 38 mov %edi,(%eax) | 190: 5b pop %ebx 17c: 83 c4 08 add $0x8,%esp | 191: 5e pop %esi 17f: 5b pop %ebx | 192: 5f pop %edi 180: 5e pop %esi < 181: 5f pop %edi < 182: 5d pop %ebp < 183: c3 ret < 184: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi < 18b: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi < 18f: 90 nop < < 00000190 <arc4_decrypt>: < 190: 55 push %ebp < 191: 89 e5 mov %esp,%ebp < 193: 5d pop %ebp 193: 5d pop %ebp 194: e9 f7 fe ff ff jmp 90 <arc4_encrypt> | 194: c3 ret > 195: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi > 19c: 8d 74 26 00 lea 0x0(%esi,%eiz,1),%esi > > 000001a0 <arc4_decrypt>: > 1a0: e9 fb fe ff ff jmp a0 <arc4_encrypt> Note that even the one that seems to have the same size as one of the others (from a different kernel, but with otherwise identical build options) is actually different in the text section: text data bss dec hex filename 665 0 0 665 299 sys/arch/i386/compile/MONOLITHIC/arc4.o 665 0 0 665 299 /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/sys/arch/i386/compile/XEN3PAE_DOMU/arc4.o sys/arch/i386/compile/MONOLITHIC/arc4.o: file format elf32- | /future/build/woods/future/current-amd64-i386-ppro-obj/usr/src/ Disassembly of section .text: Disassembly of section .text: 00000000 <arc4_ctxlen>: 00000000 <arc4_ctxlen>: 0: b8 08 04 00 00 mov $0x408,%eax 0: b8 08 04 00 00 mov $0x408,%eax 5: c3 ret 5: c3 ret 6: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 6: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi d: 8d 76 00 lea 0x0(%esi),%esi d: 8d 76 00 lea 0x0(%esi),%esi 00000010 <arc4_setkey>: 00000010 <arc4_setkey>: 10: 55 push %ebp 10: 55 push %ebp 11: 31 c0 xor %eax,%eax 11: 31 c0 xor %eax,%eax 13: 57 push %edi 13: 57 push %edi 14: 56 push %esi 14: 56 push %esi 15: 53 push %ebx 15: 53 push %ebx 16: 83 ec 04 sub $0x4,%esp 16: 83 ec 04 sub $0x4,%esp 19: 8b 4c 24 18 mov 0x18(%esp),%ecx | 19: 8b 54 24 18 mov 0x18(%esp),%edx 1d: 8b 74 24 1c mov 0x1c(%esp),%esi 1d: 8b 74 24 1c mov 0x1c(%esp),%esi 21: 8d 79 08 lea 0x8(%ecx),%edi | 21: 8d 7a 08 lea 0x8(%edx),%edi 24: c7 01 00 00 00 00 movl $0x0,(%ecx) | 24: c7 02 00 00 00 00 movl $0x0,(%edx) 2a: c7 41 04 00 00 00 00 movl $0x0,0x4(%ecx) | 2a: c7 42 04 00 00 00 00 movl $0x0,0x4(%edx) 31: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 31: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 38: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 38: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 3f: 90 nop 3f: 90 nop 40: 89 04 87 mov %eax,(%edi,%eax,4) 40: 89 04 87 mov %eax,(%edi,%eax,4) 43: 40 inc %eax 43: 40 inc %eax 44: 3d 00 01 00 00 cmp $0x100,%eax 44: 3d 00 01 00 00 cmp $0x100,%eax 49: 75 f5 jne 40 <arc4_setkey+0x30> 49: 75 f5 jne 40 <arc4_setkey+0x30> 4b: 8d 81 08 04 00 00 lea 0x408(%ecx),%eax | 4b: 8d 82 08 04 00 00 lea 0x408(%edx),%eax 51: 89 fa mov %edi,%edx | 51: 89 f9 mov %edi,%ecx 53: 89 04 24 mov %eax,(%esp) 53: 89 04 24 mov %eax,(%esp) 56: 31 c9 xor %ecx,%ecx | 56: 31 d2 xor %edx,%edx 58: 31 c0 xor %eax,%eax 58: 31 c0 xor %eax,%eax 5a: 89 74 24 1c mov %esi,0x1c(%esp) 5a: 89 74 24 1c mov %esi,0x1c(%esp) 5e: 66 90 xchg %ax,%ax 5e: 66 90 xchg %ax,%ax 60: 8b 74 24 1c mov 0x1c(%esp),%esi 60: 8b 74 24 1c mov 0x1c(%esp),%esi 64: 0f b6 1c 0e movzbl (%esi,%ecx,1),%ebx | 64: 0f b6 1c 06 movzbl (%esi,%eax,1),%ebx 68: 41 inc %ecx | 68: 40 inc %eax 69: 8b 32 mov (%edx),%esi | 69: 8b 31 mov (%ecx),%esi 6b: 01 f3 add %esi,%ebx 6b: 01 f3 add %esi,%ebx 6d: 8b 32 mov (%edx),%esi | 6d: 8b 31 mov (%ecx),%esi 6f: 01 d8 add %ebx,%eax | 6f: 01 da add %ebx,%edx 71: 0f b6 c0 movzbl %al,%eax | 71: 0f b6 d2 movzbl %dl,%edx 74: 8d 1c 87 lea (%edi,%eax,4),%ebx | 74: 8d 1c 97 lea (%edi,%edx,4),%ebx 77: 8b 2b mov (%ebx),%ebp 77: 8b 2b mov (%ebx),%ebp 79: 3b 4c 24 20 cmp 0x20(%esp),%ecx | 79: 3b 44 24 20 cmp 0x20(%esp),%eax 7d: 89 33 mov %esi,(%ebx) 7d: 89 33 mov %esi,(%ebx) 7f: 89 2a mov %ebp,(%edx) | 7f: be 00 00 00 00 mov $0x0,%esi 81: 72 02 jb 85 <arc4_setkey+0x75> | 84: 89 29 mov %ebp,(%ecx) 83: 31 c9 xor %ecx,%ecx | 86: 0f 43 c6 cmovae %esi,%eax 85: 83 c2 04 add $0x4,%edx | 89: 83 c1 04 add $0x4,%ecx 88: 39 14 24 cmp %edx,(%esp) | 8c: 39 0c 24 cmp %ecx,(%esp) 8b: 75 d3 jne 60 <arc4_setkey+0x50> | 8f: 75 cf jne 60 <arc4_setkey+0x50> 8d: 58 pop %eax | 91: 58 pop %eax 8e: 5b pop %ebx | 92: 5b pop %ebx 8f: 5e pop %esi | 93: 5e pop %esi 90: 5f pop %edi | 94: 5f pop %edi 91: 5d pop %ebp | 95: 5d pop %ebp 92: c3 ret | 96: c3 ret 93: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi | 97: 8d b4 26 00 00 00 00 lea 0x0(%esi,%eiz,1),%esi 9a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi | 9e: 66 90 xchg %ax,%ax -- Greg A. Woods <gwoods%acm.org@localhost> Kelowna, BC +1 250 762-7675 RoboHack <woods%robohack.ca@localhost> Planix, Inc. <woods%planix.com@localhost> Avoncote Farms <woods%avoncote.ca@localhost>
Attachment:
pgpoUJ2VtWrEb.pgp
Description: OpenPGP Digital Signature