.file "mktime.c" .text .p2align 4,,15 .type ranged_convert, @function ranged_convert: pushl %ebp movl %esp, %ebp subl $56, %esp movl %ecx, 4(%esp) movl %ebx, -12(%ebp) movl %edx, %ebx movl %esi, -8(%ebp) movl %edi, -4(%ebp) movl %eax, -28(%ebp) movl %ecx, -32(%ebp) movl %edx, (%esp) call *%eax testl %eax, %eax je .L11 .L2: movl -12(%ebp), %ebx movl -8(%ebp), %esi movl -4(%ebp), %edi movl %ebp, %esp popl %ebp ret .p2align 4,,7 .p2align 3 .L11: movl (%ebx), %esi testl %esi, %esi je .L2 xorl %edi, %edi jmp .L9 .p2align 4,,7 .p2align 3 .L6: movl %esi, %edx movl %edi, %eax sarl %eax sarl %edx addl %eax, %edx movl %esi, %eax andl %edi, %eax andl $1, %eax addl %eax, %edx movl -32(%ebp), %eax movl %edx, (%ebx) movl %edx, -36(%ebp) movl %ebx, (%esp) movl %eax, 4(%esp) call *-28(%ebp) movl -36(%ebp), %edx testl %eax, %eax cmovl.ne %edx, %edi cmovl.e %edx, %esi .L9: movl %esi, %edx sarl $31, %edx orl $1, %edx addl %edi, %edx cmpl %esi, %edx jne .L6 testl %edi, %edi je .L2 testl %eax, %eax jne .L2 movl -32(%ebp), %eax movl %edi, (%ebx) movl %ebx, (%esp) movl %eax, 4(%esp) call *-28(%ebp) jmp .L2 .size ranged_convert, .-ranged_convert .p2align 4,,15 .type guess_time_tm.clone.0, @function guess_time_tm.clone.0: pushl %ebp pushl %edi pushl %esi pushl %ebx movl %eax, %ebx subl $24, %esp movl 68(%esp), %ecx movl 44(%esp), %eax testl %ecx, %ecx movl %eax, 12(%esp) je .L13 movl 68(%esp), %ecx movl %ebx, %edi movl %ebx, %eax shrdl $2, %edx, %edi andl $3, %eax addl $475, %edi testl %eax, %eax sete %al movl 20(%ecx), %ecx movzbl %al, %eax subl %eax, %edi xorl %eax, %eax movl %ecx, %ebp sarl $2, %ebp addl $475, %ebp testb $3, %cl sete %al subl %eax, %ebp movl $1374389535, %eax imull %edi movl %edi, %eax sarl $31, %eax movl %ecx, 4(%esp) subl 4(%esp), %ebx sarl $3, %edx subl %eax, %edx leal (%edx,%edx,4), %eax leal (%eax,%eax,4), %ecx movl %edi, %eax subl %ecx, %eax movl %eax, %ecx movl $1374389535, %eax shrl $31, %ecx subl %ecx, %edx movl %edx, 8(%esp) imull %ebp movl %ebp, %eax sarl $31, %eax imull $365, %ebx, %ebx sarl $3, %edx subl %eax, %edx leal (%edx,%edx,4), %eax leal (%eax,%eax,4), %ecx movl %ebp, %eax subl %ecx, %eax movl %eax, %ecx movl 60(%esp), %eax shrl $31, %ecx subl %ecx, %edx movl 68(%esp), %ecx addl %edx, %edi subl %ebp, %edi sarl $2, %edx subl (%ecx), %eax subl %edx, %edi movl 8(%esp), %edx subl 8(%esp), %edi movl %eax, 16(%esp) movl 56(%esp), %eax subl 4(%ecx), %eax sarl $2, %edx addl %edx, %edi movl %eax, 20(%esp) movl 52(%esp), %eax subl 8(%ecx), %eax movl %eax, (%esp) movl 12(%esp), %eax subl 28(%ecx), %eax movl %eax, %ecx movl 64(%esp), %eax addl %ebx, %ecx addl %edi, %ecx leal (%ecx,%ecx,2), %edx movl (%esp), %ecx leal (%ecx,%edx,8), %edx imull $60, %edx, %edx addl 20(%esp), %edx imull $60, %edx, %edx addl 16(%esp), %edx leal (%edx,%eax), %eax cmpl 64(%esp), %eax setge %cl shrl $31, %edx cmpb %dl, %cl jne .L14 .L13: movl 64(%esp), %eax testl %eax, %eax js .L18 movl 64(%esp), %edx movl $2147483647, %eax subl $1, %edx cmpl $2147483646, 64(%esp) cmovl.ge %edx, %eax .L14: addl $24, %esp popl %ebx popl %esi popl %edi popl %ebp ret .p2align 4,,7 .p2align 3 .L18: movl 64(%esp), %edx movl $-2147483648, %eax addl $1, %edx cmpl $-2147483647, 64(%esp) cmovl.le %edx, %eax addl $24, %esp popl %ebx popl %esi popl %edi popl %ebp ret .size guess_time_tm.clone.0, .-guess_time_tm.clone.0 .globl __moddi3 .globl __divdi3 .p2align 4,,15 .globl mktime_internal .type mktime_internal, @function mktime_internal: pushl %ebp movl %esp, %ebp pushl %edi pushl %esi pushl %ebx subl $220, %esp movl 8(%ebp), %eax movl 8(%ebp), %edx movl 8(%ebp), %edi movl (%eax), %eax movl 4(%edx), %edx movl 8(%edi), %edi movl %eax, -176(%ebp) movl 8(%ebp), %eax movl %edx, -164(%ebp) movl 8(%ebp), %edx movl %edi, -168(%ebp) movl 12(%eax), %eax movl 16(%edx), %ecx movl 20(%edx), %edi movl %eax, -124(%ebp) movl 32(%edx), %eax movl %edi, -128(%ebp) movl $715827883, %edi movl %eax, -160(%ebp) movl %ecx, %eax imull %edi movl %ecx, %eax sarl $31, %eax movl %edx, %edi sarl %edi subl %eax, %edi leal (%edi,%edi,2), %eax movl %edi, %ebx sall $2, %eax movl %ecx, %edi subl %eax, %edi movl -128(%ebp), %eax movl %edi, %ecx shrl $31, %ecx subl %ecx, %ebx movl %ebx, %esi movl %eax, %edx sarl $31, %edx sarl $31, %esi addl %eax, %ebx adcl %edx, %esi movl %ebx, %edx xorl %eax, %eax andl $3, %edx movl %edx, -148(%ebp) jne .L20 movl $100, 8(%esp) movl $0, 12(%esp) movl %ebx, (%esp) movl %esi, 4(%esp) movl %ecx, -184(%ebp) call __moddi3 movl -184(%ebp), %ecx movl %eax, -132(%ebp) movl $1, %eax orl -132(%ebp), %edx je .L56 .L20: leal (%eax,%eax), %edx addl %eax, %edx leal (%eax,%edx,4), %eax leal (%ecx,%ecx), %edx leal (%edx,%ecx), %ecx leal (%edi,%ecx,4), %edx addl %edx, %eax movzwl __mon_yday(%eax,%eax), %eax subl $1, %eax movl %eax, -144(%ebp) movl %eax, %edi movl -124(%ebp), %eax sarl $31, %edi movl %edi, -140(%ebp) movl %eax, %edx sarl $31, %edx addl %eax, -144(%ebp) adcl %edx, -140(%ebp) movl 16(%ebp), %edx movl -176(%ebp), %eax movl (%edx), %edx testl %eax, %eax movl $0, -132(%ebp) movl %edx, -180(%ebp) js .L22 cmpl $59, -176(%ebp) movl $59, %edi cmovl.le -176(%ebp), %edi movl %edi, -132(%ebp) .L22: movl %ebx, %eax movl $1374389535, %edx shrdl $2, %esi, %eax leal 475(%eax), %ecx xorl %eax, %eax cmpl $0, -148(%ebp) sete %al subl %eax, %ecx movl %ecx, %eax movl %ecx, %edi imull %edx movl %ecx, %eax sarl $31, %eax sarl $3, %edx subl %eax, %edx leal (%edx,%edx,4), %eax leal (%eax,%eax,4), %eax subl %eax, %edi movl %edi, %eax movl -144(%ebp), %edi shrl $31, %eax subl %eax, %edx leal -70(%ebx), %eax imull $365, %eax, %eax leal (%eax,%edi), %edi movl %edx, %eax sarl $2, %eax leal -477(%ecx,%eax), %eax subl %edx, %eax movl -168(%ebp), %edx leal (%edi,%eax), %eax leal (%eax,%eax,2), %eax leal (%edx,%eax,8), %eax movl -128(%ebp), %edx imull $60, %eax, %eax addl -164(%ebp), %eax sarl %edx imull $60, %eax, %eax addl -180(%ebp), %eax addl -132(%ebp), %eax movl %eax, -172(%ebp) movl -124(%ebp), %eax sarl $10, %eax leal -35(%edx,%eax), %ecx movl -168(%ebp), %eax sarl $14, %eax addl %eax, %ecx movl -164(%ebp), %eax sarl $20, %eax addl %eax, %ecx movl -172(%ebp), %eax sarl $26, %eax subl %ecx, %eax movl %eax, %edx sarl $31, %edx xorl %eax, %edx cmpl $21, %edx jg .L57 .L24: movl -172(%ebp), %edi movl $0, -148(%ebp) movl $6, -128(%ebp) movl %edi, -32(%ebp) movl %edi, -28(%ebp) movl %edi, -124(%ebp) .L27: movl 12(%ebp), %eax leal -72(%ebp), %ecx leal -28(%ebp), %edx call ranged_convert movl -132(%ebp), %edx movl -28(%ebp), %edi movl %edx, 16(%esp) movl -168(%ebp), %edx movl %edi, 20(%esp) movl %eax, 24(%esp) movl -164(%ebp), %eax movl %edx, 8(%esp) movl -140(%ebp), %edx movl %eax, 12(%esp) movl -144(%ebp), %eax movl %edx, 4(%esp) movl %esi, %edx movl %eax, (%esp) movl %ebx, %eax call guess_time_tm.clone.0 cmpl %eax, %edi je .L58 cmpl %edi, -124(%ebp) jne .L28 movl -124(%ebp), %edx cmpl -32(%ebp), %edx je .L28 movl -40(%ebp), %edx testl %edx, %edx js .L29 movl -160(%ebp), %ecx testl %ecx, %ecx js .L59 movl -160(%ebp), %ecx testl %edx, %edx setne %dl testl %ecx, %ecx setne %cl cmpb %cl, %dl jne .L29 .L28: subl $1, -128(%ebp) je .L46 movl -32(%ebp), %edx movl %eax, -28(%ebp) xorl %eax, %eax cmpl $0, -40(%ebp) movl %edi, -32(%ebp) movl %edx, -124(%ebp) setne %al movl %eax, -148(%ebp) jmp .L27 .p2align 4,,7 .p2align 3 .L59: testl %edx, %edx setne %dl movzbl %dl, %edx cmpl %edx, -148(%ebp) jg .L28 .p2align 4,,7 .p2align 3 .L29: movl -180(%ebp), %eax movl 16(%ebp), %edi subl -172(%ebp), %eax addl -124(%ebp), %eax movl %eax, (%edi) movl -72(%ebp), %eax cmpl %eax, -176(%ebp) jne .L60 .L37: movl -72(%ebp), %eax movl 8(%ebp), %edi movl %eax, (%edi) movl -68(%ebp), %eax movl %eax, 4(%edi) movl -64(%ebp), %eax movl %eax, 8(%edi) movl -60(%ebp), %eax movl %eax, 12(%edi) movl -56(%ebp), %eax movl %eax, 16(%edi) movl -52(%ebp), %eax movl %eax, 20(%edi) movl -48(%ebp), %eax movl %eax, 24(%edi) movl -44(%ebp), %eax movl %eax, 28(%edi) movl -40(%ebp), %eax movl %eax, 32(%edi) movl -124(%ebp), %eax addl $220, %esp popl %ebx popl %esi popl %edi popl %ebp ret .p2align 4,,7 .p2align 3 .L46: movl $-1, -124(%ebp) .L26: movl -124(%ebp), %eax addl $220, %esp popl %ebx popl %esi popl %edi popl %ebp ret .p2align 4,,7 .p2align 3 .L56: movl $100, 8(%esp) movl $0, 12(%esp) movl %ebx, (%esp) movl %esi, 4(%esp) call __divdi3 movl -184(%ebp), %ecx andl $3, %eax cmpl $1, %eax sete %al movzbl %al, %eax jmp .L20 .p2align 4,,7 .p2align 3 .L58: movl -160(%ebp), %eax movl -40(%ebp), %edx movl %edi, -124(%ebp) testl %eax, %eax movl -160(%ebp), %eax sete -148(%ebp) orl %edx, %eax notl %eax shrl $31, %eax testl %edx, %edx sete %dl xorb -148(%ebp), %dl testl %edx, %eax je .L29 movl $-601200, -128(%ebp) movl $1202400, -124(%ebp) movl %ebx, -160(%ebp) movl %esi, -156(%ebp) jmp .L32 .p2align 4,,7 .p2align 3 .L33: addl $2, %esi addl -124(%ebp), %ebx cmpl $3, %esi jne .L36 addl $1202400, -124(%ebp) subl $601200, -128(%ebp) cmpl $538675200, -124(%ebp) je .L61 .L32: movl -128(%ebp), %ebx movl $-1, %esi .L36: leal (%edi,%ebx), %eax movl %ebx, %edx cmpl %edi, %eax setge %cl shrl $31, %edx cmpb %dl, %cl je .L33 movl %eax, -36(%ebp) movl 12(%ebp), %eax leal -36(%ebp), %edx leal -108(%ebp), %ecx call ranged_convert movl -76(%ebp), %eax movl %eax, %edx notl %edx shrl $31, %edx testl %eax, %eax sete %al xorb -148(%ebp), %al testl %eax, %edx je .L55 movl -28(%ebp), %edi jmp .L33 .L57: movl -172(%ebp), %edi movl $-1, -124(%ebp) notl %edi movl %edi, %eax sarl $26, %eax subl %ecx, %eax movl %eax, %edx sarl $31, %edx xorl %eax, %edx cmpl $21, %edx jg .L26 movl %edi, %eax subl -172(%ebp), %eax movl %edi, -172(%ebp) addl %eax, -180(%ebp) jmp .L24 .L55: movl -36(%ebp), %eax leal -108(%ebp), %edx movl %edx, 24(%esp) movl -168(%ebp), %edx movl -160(%ebp), %ebx movl -156(%ebp), %esi movl %eax, 20(%esp) movl -164(%ebp), %eax movl -132(%ebp), %edi movl %edx, 8(%esp) movl -140(%ebp), %edx movl %eax, 12(%esp) movl -144(%ebp), %eax movl %edi, 16(%esp) movl %edx, 4(%esp) movl %esi, %edx movl %eax, (%esp) movl %ebx, %eax call guess_time_tm.clone.0 leal -28(%ebp), %edx leal -72(%ebp), %ecx movl %eax, -28(%ebp) movl 12(%ebp), %eax call ranged_convert movl -28(%ebp), %edx movl %edx, -124(%ebp) jmp .L29 .L60: movl -132(%ebp), %esi xorl %ebx, %ebx testl %esi, %esi jne .L38 xorl %ebx, %ebx cmpl $60, %eax sete %bl .L38: movl -124(%ebp), %eax movl -176(%ebp), %ecx addl -176(%ebp), %eax cmpl -124(%ebp), %eax movl $-1, -124(%ebp) setge %dl shrl $31, %ecx cmpb %cl, %dl je .L26 subl -132(%ebp), %ebx leal (%ebx,%eax), %edx cmpl %edx, %eax setle %al shrl $31, %ebx cmpb %bl, %al je .L26 leal -72(%ebp), %eax movl %eax, 4(%esp) leal -32(%ebp), %eax movl %edx, -32(%ebp) movl %eax, (%esp) call *12(%ebp) testl %eax, %eax je .L26 movl -32(%ebp), %edx movl %edx, -124(%ebp) jmp .L37 .p2align 4,,7 .p2align 3 .L61: movl %edi, -124(%ebp) jmp .L29 .size mktime_internal, .-mktime_internal .p2align 4,,15 .globl rpl_mktime .type rpl_mktime, @function rpl_mktime: pushl %ebp movl %esp, %ebp subl $24, %esp movl 8(%ebp), %eax movl $localtime_offset, 8(%esp) movl $localtime_r, 4(%esp) movl %eax, (%esp) call mktime_internal leave ret .size rpl_mktime, .-rpl_mktime .local localtime_offset .comm localtime_offset,4,4 .section .rodata .align 32 .type __mon_yday, @object .size __mon_yday, 52 __mon_yday: .value 0 .value 31 .value 59 .value 90 .value 120 .value 151 .value 181 .value 212 .value 243 .value 273 .value 304 .value 334 .value 365 .value 0 .value 31 .value 60 .value 91 .value 121 .value 152 .value 182 .value 213 .value 244 .value 274 .value 305 .value 335 .value 366 .ident "GCC: (GNU) 4.5.2"