csu/init-first.os: file format elf32-i386 Disassembly of section .text: 00000000 : 0: 89 c4 mov %eax,%esp 2: ff e1 jmp *%ecx 00000004 : 4: 50 push %eax 5: ff e1 jmp *%ecx 7: 89 f6 mov %esi,%esi 9: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 00000010 <__libc_init_first>: 10: 55 push %ebp 11: 89 e5 mov %esp,%ebp 13: 5d pop %ebp 14: c3 ret 15: 8d 74 26 00 lea 0x0(%esi),%esi 19: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 00000020 <_dl_start>: 20: 55 push %ebp 21: 89 e5 mov %esp,%ebp 23: 53 push %ebx 24: e8 fc ff ff ff call 25 <_dl_start+0x5> 25: R_386_PC32 __i686.get_pc_thunk.bx 29: 81 c3 02 00 00 00 add $0x2,%ebx 2b: R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 2f: 83 ec 04 sub $0x4,%esp 32: e8 fc ff ff ff call 33 <_dl_start+0x13> 33: R_386_PLT32 abort 37: 89 f6 mov %esi,%esi 39: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 00000040 <_init>: 40: 55 push %ebp 41: 89 e5 mov %esp,%ebp 43: 83 ec 18 sub $0x18,%esp 46: 89 5d f4 mov %ebx,0xfffffff4(%ebp) 49: e8 fc ff ff ff call 4a <_init+0xa> 4a: R_386_PC32 __i686.get_pc_thunk.bx 4e: 81 c3 02 00 00 00 add $0x2,%ebx 50: R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 54: 89 75 f8 mov %esi,0xfffffff8(%ebp) 57: 8b 75 10 mov 0x10(%ebp),%esi 5a: 89 7d fc mov %edi,0xfffffffc(%ebp) 5d: 8b 7d 0c mov 0xc(%ebp),%edi 60: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 62: R_386_GOT32 _dl_starting_up 66: 85 c0 test %eax,%eax 68: 75 55 jne bf <_init+0x7f> 6a: 31 c0 xor %eax,%eax 6c: 89 83 00 00 00 00 mov %eax,0x0(%ebx) 6e: R_386_GOTOFF __libc_multiple_libcs 72: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 74: R_386_GOT32 __fpu_control 78: 0f b7 00 movzwl (%eax),%eax 7b: 89 04 24 mov %eax,(%esp) 7e: e8 fc ff ff ff call 7f <_init+0x3f> 7f: R_386_PLT32 __setfpucw 83: 8b 45 08 mov 0x8(%ebp),%eax 86: 89 bb 00 00 00 00 mov %edi,0x0(%ebx) 88: R_386_GOTOFF __libc_argv 8c: 89 83 00 00 00 00 mov %eax,0x0(%ebx) 8e: R_386_GOTOFF __libc_argc 92: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 94: R_386_GOT32 __environ 98: 89 30 mov %esi,(%eax) 9a: 8b 45 08 mov 0x8(%ebp),%eax 9d: 89 74 24 08 mov %esi,0x8(%esp) a1: 89 7c 24 04 mov %edi,0x4(%esp) a5: 89 04 24 mov %eax,(%esp) a8: e8 fc ff ff ff call a9 <_init+0x69> a9: R_386_PLT32 __init_misc ad: e8 fc ff ff ff call ae <_init+0x6e> ae: R_386_PLT32 __libc_global_ctors b2: 8b 5d f4 mov 0xfffffff4(%ebp),%ebx b5: 8b 75 f8 mov 0xfffffff8(%ebp),%esi b8: 8b 7d fc mov 0xfffffffc(%ebp),%edi bb: 89 ec mov %ebp,%esp bd: 5d pop %ebp be: c3 ret bf: 8b 08 mov (%eax),%ecx c1: 85 c9 test %ecx,%ecx c3: 75 a5 jne 6a <_init+0x2a> c5: ba 01 00 00 00 mov $0x1,%edx ca: 89 93 00 00 00 00 mov %edx,0x0(%ebx) cc: R_386_GOTOFF __libc_multiple_libcs d0: eb b1 jmp 83 <_init+0x43> d2: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi d9: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 000000e0 <_dl_init_first>: e0: 55 push %ebp e1: 89 e5 mov %esp,%ebp e3: 57 push %edi e4: 56 push %esi e5: 53 push %ebx e6: e8 fc ff ff ff call e7 <_dl_init_first+0x7> e7: R_386_PC32 __i686.get_pc_thunk.bx eb: 81 c3 02 00 00 00 add $0x2,%ebx ed: R_386_GOTPC _GLOBAL_OFFSET_TABLE_ f1: 83 ec 7c sub $0x7c,%esp f4: 8d b3 00 00 00 00 lea 0x0(%ebx),%esi f6: R_386_GOTOFF __start__hurd_preinit_hook fa: 8d bb 00 00 00 00 lea 0x0(%ebx),%edi fc: R_386_GOTOFF __stop__hurd_preinit_hook 100: e8 fc ff ff ff call 101 <_dl_init_first+0x21> 101: R_386_PLT32 __mach_init 105: 39 fe cmp %edi,%esi 107: 73 10 jae 119 <_dl_init_first+0x39> 109: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi 110: ff 16 call *(%esi) 112: 83 c6 04 add $0x4,%esi 115: 39 fe cmp %edi,%esi 117: 72 f7 jb 110 <_dl_init_first+0x30> 119: 8d 45 fc lea 0xfffffffc(%ebp),%eax 11c: b9 0b 00 00 00 mov $0xb,%ecx 121: 8b 55 fc mov 0xfffffffc(%ebp),%edx 124: fc cld 125: 89 45 c0 mov %eax,0xffffffc0(%ebp) 128: 8d 7d c8 lea 0xffffffc8(%ebp),%edi 12b: 31 c0 xor %eax,%eax 12d: 89 7d 98 mov %edi,0xffffff98(%ebp) 130: 8d 54 95 00 lea 0x0(%ebp,%edx,4),%edx 134: 89 6d b8 mov %ebp,0xffffffb8(%ebp) 137: 8d 72 04 lea 0x4(%edx),%esi 13a: f3 ab rep stos %eax,%es:(%edi) 13c: 8d 83 00 00 00 00 lea 0x0(%ebx),%eax 13e: R_386_GOTOFF _nl_global_locale 142: 89 45 e4 mov %eax,0xffffffe4(%ebp) 145: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 147: R_386_GOT32 __hurd_threadvar_stack_offset 14b: 8b 4d 98 mov 0xffffff98(%ebp),%ecx 14e: 89 08 mov %ecx,(%eax) 150: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 152: R_386_GOT32 __environ 156: 89 30 mov %esi,(%eax) 158: 8b 42 04 mov 0x4(%edx),%eax 15b: 85 c0 test %eax,%eax 15d: 74 0a je 169 <_dl_init_first+0x89> 15f: 90 nop 160: 83 c6 04 add $0x4,%esi 163: 8b 06 mov (%esi),%eax 165: 85 c0 test %eax,%eax 167: 75 f7 jne 160 <_dl_init_first+0x80> 169: 8b bb 00 00 00 00 mov 0x0(%ebx),%edi 16b: R_386_GOT32 __hurd_threadvar_max 16f: 83 3f 0a cmpl $0xa,(%edi) 172: 77 06 ja 17a <_dl_init_first+0x9a> 174: c7 07 0b 00 00 00 movl $0xb,(%edi) 17a: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 17c: R_386_GOT32 _cthread_init_routine 180: 85 c0 test %eax,%eax 182: 75 7a jne 1fe <_dl_init_first+0x11e> 184: 8b 93 00 00 00 00 mov 0x0(%ebx),%edx 186: R_386_GOT32 __hurd_threadvar_max 18a: 8b 02 mov (%edx),%eax 18c: c1 e0 02 shl $0x2,%eax 18f: 89 04 24 mov %eax,(%esp) 192: e8 fc ff ff ff call 193 <_dl_init_first+0xb3> 193: R_386_PLT32 _hurd_malloc 197: 85 c0 test %eax,%eax 199: 89 45 94 mov %eax,0xffffff94(%ebp) 19c: 0f 84 76 01 00 00 je 318 <_dl_init_first+0x238> 1a2: fc cld 1a3: 8b 7d 94 mov 0xffffff94(%ebp),%edi 1a6: 8b 75 98 mov 0xffffff98(%ebp),%esi 1a9: b9 0b 00 00 00 mov $0xb,%ecx 1ae: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 1b0: R_386_GOT32 __hurd_threadvar_stack_offset 1b4: f3 a5 rep movsl %ds:(%esi),%es:(%edi) 1b6: 8b 8b 00 00 00 00 mov 0x0(%ebx),%ecx 1b8: R_386_GOT32 __hurd_threadvar_max 1bc: 8b 55 94 mov 0xffffff94(%ebp),%edx 1bf: 89 10 mov %edx,(%eax) 1c1: 8b 01 mov (%ecx),%eax 1c3: 83 f8 0b cmp $0xb,%eax 1c6: 76 17 jbe 1df <_dl_init_first+0xff> 1c8: ba 0b 00 00 00 mov $0xb,%edx 1cd: 8d 76 00 lea 0x0(%esi),%esi 1d0: 8b 75 94 mov 0xffffff94(%ebp),%esi 1d3: c7 04 96 00 00 00 00 movl $0x0,(%esi,%edx,4) 1da: 42 inc %edx 1db: 39 c2 cmp %eax,%edx 1dd: 75 f1 jne 1d0 <_dl_init_first+0xf0> 1df: 8b 7d c0 mov 0xffffffc0(%ebp),%edi 1e2: 8d 8b 80 03 00 00 lea 0x380(%ebx),%ecx 1e4: R_386_GOTOFF .text 1e8: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 1ea: R_386_GOT32 call_init1 1ee: 8b 57 fc mov 0xfffffffc(%edi),%edx 1f1: 89 47 fc mov %eax,0xfffffffc(%edi) 1f4: 89 d0 mov %edx,%eax 1f6: 83 c4 7c add $0x7c,%esp 1f9: 5b pop %ebx 1fa: 5e pop %esi 1fb: 5f pop %edi 1fc: 5d pop %ebp 1fd: c3 ret 1fe: 8b 00 mov (%eax),%eax 200: 85 c0 test %eax,%eax 202: 74 80 je 184 <_dl_init_first+0xa4> 204: ff d0 call *%eax 206: 89 c2 mov %eax,%edx 208: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 20a: R_386_GOT32 __hurd_sigthread_stack_base 20e: 3b 10 cmp (%eax),%edx 210: 0f 82 10 01 00 00 jb 326 <_dl_init_first+0x246> 216: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 218: R_386_GOT32 __hurd_sigthread_stack_end 21c: 3b 10 cmp (%eax),%edx 21e: 0f 83 02 01 00 00 jae 326 <_dl_init_first+0x246> 224: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 226: R_386_GOT32 __hurd_sigthread_variables 22a: 8b 00 mov (%eax),%eax 22c: 83 c6 04 add $0x4,%esi 22f: 89 c7 mov %eax,%edi 231: 89 75 b4 mov %esi,0xffffffb4(%ebp) 234: b9 0b 00 00 00 mov $0xb,%ecx 239: 8b 75 98 mov 0xffffff98(%ebp),%esi 23c: fc cld 23d: f3 a5 rep movsl %ds:(%esi),%es:(%edi) 23f: 8b 4d c0 mov 0xffffffc0(%ebp),%ecx 242: 8b 45 b4 mov 0xffffffb4(%ebp),%eax 245: 8b 75 c0 mov 0xffffffc0(%ebp),%esi 248: 29 c8 sub %ecx,%eax 24a: 89 45 bc mov %eax,0xffffffbc(%ebp) 24d: c1 e0 02 shl $0x2,%eax 250: 29 c2 sub %eax,%edx 252: 8b 45 bc mov 0xffffffbc(%ebp),%eax 255: 8d 8a 40 ff ff ff lea 0xffffff40(%edx),%ecx 25b: 89 4d a8 mov %ecx,0xffffffa8(%ebp) 25e: 89 cf mov %ecx,%edi 260: 83 f8 07 cmp $0x7,%eax 263: 89 45 8c mov %eax,0xffffff8c(%ebp) 266: 76 22 jbe 28a <_dl_init_first+0x1aa> 268: f6 c1 04 test $0x4,%cl 26b: 74 1d je 28a <_dl_init_first+0x1aa> 26d: 8b 06 mov (%esi),%eax 26f: 8d ba 44 ff ff ff lea 0xffffff44(%edx),%edi 275: 89 82 40 ff ff ff mov %eax,0xffffff40(%edx) 27b: 8b 55 bc mov 0xffffffbc(%ebp),%edx 27e: 8b 75 c0 mov 0xffffffc0(%ebp),%esi 281: 83 ea 04 sub $0x4,%edx 284: 83 c6 04 add $0x4,%esi 287: 89 55 8c mov %edx,0xffffff8c(%ebp) 28a: 8b 55 8c mov 0xffffff8c(%ebp),%edx 28d: fc cld 28e: c1 ea 02 shr $0x2,%edx 291: 89 d1 mov %edx,%ecx 293: f3 a5 rep movsl %ds:(%esi),%es:(%edi) 295: f6 45 8c 02 testb $0x2,0xffffff8c(%ebp) 299: 89 ca mov %ecx,%edx 29b: 74 0c je 2a9 <_dl_init_first+0x1c9> 29d: 0f b7 06 movzwl (%esi),%eax 2a0: 83 c6 02 add $0x2,%esi 2a3: 66 89 07 mov %ax,(%edi) 2a6: 83 c7 02 add $0x2,%edi 2a9: f6 45 8c 01 testb $0x1,0xffffff8c(%ebp) 2ad: 74 05 je 2b4 <_dl_init_first+0x1d4> 2af: 0f b6 06 movzbl (%esi),%eax 2b2: 88 07 mov %al,(%edi) 2b4: 8b 8b 00 00 00 00 mov 0x0(%ebx),%ecx 2b6: R_386_GOT32 _dl_argv 2ba: 8b 75 b8 mov 0xffffffb8(%ebp),%esi 2bd: 3b 31 cmp (%ecx),%esi 2bf: 0f 85 86 00 00 00 jne 34b <_dl_init_first+0x26b> 2c5: 8b 45 a8 mov 0xffffffa8(%ebp),%eax 2c8: 8b 7d a8 mov 0xffffffa8(%ebp),%edi 2cb: 8b 75 bc mov 0xffffffbc(%ebp),%esi 2ce: 83 c0 04 add $0x4,%eax 2d1: 89 01 mov %eax,(%ecx) 2d3: 8b 45 b8 mov 0xffffffb8(%ebp),%eax 2d6: 8b 4d b4 mov 0xffffffb4(%ebp),%ecx 2d9: 01 f7 add %esi,%edi 2db: 89 7d 90 mov %edi,0xffffff90(%ebp) 2de: 3b 08 cmp (%eax),%ecx 2e0: 74 5d je 33f <_dl_init_first+0x25f> 2e2: fc cld 2e3: 8b 7d 90 mov 0xffffff90(%ebp),%edi 2e6: 8b 75 b4 mov 0xffffffb4(%ebp),%esi 2e9: b9 0c 00 00 00 mov $0xc,%ecx 2ee: f3 a5 rep movsl %ds:(%esi),%es:(%edi) 2f0: 8b 4d c0 mov 0xffffffc0(%ebp),%ecx 2f3: 8b 75 a8 mov 0xffffffa8(%ebp),%esi 2f6: 8b 55 a8 mov 0xffffffa8(%ebp),%edx 2f9: 8b 41 fc mov 0xfffffffc(%ecx),%eax 2fc: 83 ea 04 sub $0x4,%edx 2ff: 89 46 fc mov %eax,0xfffffffc(%esi) 302: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 304: R_386_GOT32 switch_stacks 308: 89 41 fc mov %eax,0xfffffffc(%ecx) 30b: 8d 8b 80 03 00 00 lea 0x380(%ebx),%ecx 30d: R_386_GOTOFF .text 311: 89 d0 mov %edx,%eax 313: e9 de fe ff ff jmp 1f6 <_dl_init_first+0x116> 318: 8d 83 00 00 00 00 lea 0x0(%ebx),%eax 31a: R_386_GOTOFF .LC2 31e: 89 04 24 mov %eax,(%esp) 321: e8 fc ff ff ff call 322 <_dl_init_first+0x242> 322: R_386_PLT32 __libc_fatal 326: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 328: R_386_GOT32 __hurd_threadvar_stack_mask 32c: 8b 8b 00 00 00 00 mov 0x0(%ebx),%ecx 32e: R_386_GOT32 __hurd_threadvar_stack_offset 332: 8b 00 mov (%eax),%eax 334: 8b 39 mov (%ecx),%edi 336: 21 d0 and %edx,%eax 338: 01 f8 add %edi,%eax 33a: e9 ed fe ff ff jmp 22c <_dl_init_first+0x14c> 33f: fc cld 340: b9 0c 00 00 00 mov $0xc,%ecx 345: 89 d0 mov %edx,%eax 347: f3 ab rep stos %eax,%es:(%edi) 349: eb a5 jmp 2f0 <_dl_init_first+0x210> 34b: 8d 83 00 00 00 00 lea 0x0(%ebx),%eax 34d: R_386_GOTOFF .rodata 351: bf e3 00 00 00 mov $0xe3,%edi 356: 89 44 24 0c mov %eax,0xc(%esp) 35a: 8d 83 00 00 00 00 lea 0x0(%ebx),%eax 35c: R_386_GOTOFF .LC0 360: 89 44 24 04 mov %eax,0x4(%esp) 364: 8d 83 00 00 00 00 lea 0x0(%ebx),%eax 366: R_386_GOTOFF .LC1 36a: 89 7c 24 08 mov %edi,0x8(%esp) 36e: 89 04 24 mov %eax,(%esp) 371: e8 fc ff ff ff call 372 <_dl_init_first+0x292> 372: R_386_PLT32 __assert_fail 376: 8d 76 00 lea 0x0(%esi),%esi 379: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 00000380 : 380: 55 push %ebp 381: 89 e5 mov %esp,%ebp 383: 57 push %edi 384: 56 push %esi 385: 53 push %ebx 386: 83 ec 2c sub $0x2c,%esp 389: 8b 45 08 mov 0x8(%ebp),%eax 38c: 8d 7d 0c lea 0xc(%ebp),%edi 38f: e8 fc ff ff ff call 390 390: R_386_PC32 __i686.get_pc_thunk.bx 394: 81 c3 02 00 00 00 add $0x2,%ebx 396: R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 39a: 8d 04 87 lea (%edi,%eax,4),%eax 39d: 8d 50 04 lea 0x4(%eax),%edx 3a0: 8b 40 04 mov 0x4(%eax),%eax 3a3: 85 c0 test %eax,%eax 3a5: 74 12 je 3b9 3a7: 89 f6 mov %esi,%esi 3a9: 8d bc 27 00 00 00 00 lea 0x0(%edi),%edi 3b0: 83 c2 04 add $0x4,%edx 3b3: 8b 02 mov (%edx),%eax 3b5: 85 c0 test %eax,%eax 3b7: 75 f7 jne 3b0 3b9: 8d 72 04 lea 0x4(%edx),%esi 3bc: 3b 75 0c cmp 0xc(%ebp),%esi 3bf: 74 4b je 40c 3c1: 8b 56 04 mov 0x4(%esi),%edx 3c4: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 3c6: R_386_GOT32 _hurd_init_dtable 3ca: 89 10 mov %edx,(%eax) 3cc: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 3ce: R_386_GOT32 _hurd_init_dtablesize 3d2: 8b 56 08 mov 0x8(%esi),%edx 3d5: 89 10 mov %edx,(%eax) 3d7: 8b 46 20 mov 0x20(%esi),%eax 3da: 85 c0 test %eax,%eax 3dc: 75 36 jne 414 3de: 8b 56 0c mov 0xc(%esi),%edx 3e1: 85 d2 test %edx,%edx 3e3: 74 5e je 443 3e5: 8b 46 18 mov 0x18(%esi),%eax 3e8: 89 44 24 14 mov %eax,0x14(%esp) 3ec: 8b 46 14 mov 0x14(%esi),%eax 3ef: 89 44 24 10 mov %eax,0x10(%esp) 3f3: 8b 46 10 mov 0x10(%esi),%eax 3f6: 89 54 24 08 mov %edx,0x8(%esp) 3fa: 89 7c 24 04 mov %edi,0x4(%esp) 3fe: 89 44 24 0c mov %eax,0xc(%esp) 402: 8b 06 mov (%esi),%eax 404: 89 04 24 mov %eax,(%esp) 407: e8 fc ff ff ff call 408 408: R_386_PLT32 _hurd_init 40c: 83 c4 2c add $0x2c,%esp 40f: 5b pop %ebx 410: 5e pop %esi 411: 5f pop %edi 412: 5d pop %ebp 413: c3 ret 414: 8b 56 1c mov 0x1c(%esi),%edx 417: 8d 4d f3 lea 0xfffffff3(%ebp),%ecx 41a: 39 d1 cmp %edx,%ecx 41c: 72 06 jb 424 41e: 29 d1 sub %edx,%ecx 420: 39 c8 cmp %ecx,%eax 422: 73 ba jae 3de 424: 89 44 24 08 mov %eax,0x8(%esp) 428: 8b 83 00 00 00 00 mov 0x0(%ebx),%eax 42a: R_386_GOT32 __mach_task_self_ 42e: 89 54 24 04 mov %edx,0x4(%esp) 432: 8b 00 mov (%eax),%eax 434: 89 04 24 mov %eax,(%esp) 437: e8 fc ff ff ff call 438 438: R_386_PLT32 __vm_deallocate 43c: 8b 56 0c mov 0xc(%esi),%edx 43f: 85 d2 test %edx,%edx 441: 75 a2 jne 3e5 443: 8b 46 14 mov 0x14(%esi),%eax 446: 85 c0 test %eax,%eax 448: 75 9b jne 3e5 44a: eb c0 jmp 40c Disassembly of section .text.__i686.get_pc_thunk.bx: 00000000 <__i686.get_pc_thunk.bx>: 0: 8b 1c 24 mov (%esp),%ebx 3: c3 ret