// File: /workspace/github_c_makefile_star2_O0/olcaytaner[P]Isell/image.c
// Function: set_limits_automatically
void set_limits_automatically(Limits* ax)
{
 /*!Last Changed 13.09.2006*/
 /*!Last Changed 25.01.2005*/
 double difference, power;
 int digits, firstdigit, seconddigit, digitsp, digitsm;
 if (ax->max < 0)
   return;
 if (ax->min < 0)
  {
   digitsm = (int) log10(-ax->min);
   digitsp = (int) log10(ax->max);
   if (digitsp >= digitsm)
     digits = digitsp;
   else
     digits = digitsm;
   power = fpow(10, digits);
   if (((int) (ax->max / power)) * power != ax->max)
     ax->max = ((int) (ax->max / power + 1)) * power;
   if (((int) (-ax->min / power)) * power != -ax->min)
     ax->min = -(((int) (-ax->min / power + 1)) * power);
   ax->division = (int) (ax->max / power) + (int) (-ax->min / power);
   if (digits >= 0)
     ax->precision = 0;
   else
     ax->precision = abs(digits);
   return;
  }
 difference = ax->max - ax->min;
 firstdigit = (int) log10(ax->min);
 seconddigit = (int) log10(ax->max);
 digits = (int) log10(difference);
 if (firstdigit == seconddigit)
  {
   power = fpow(10, firstdigit);
   ax->min = ((int) (ax->min / power)) * power;
   if (ax->max != (int) (ax->max))
     ax->max = ((int) (ax->max / power + 1)) * power;
   else
     ax->max = ((int) (ax->max / power)) * power;
   ax->division = (int) ((ax->max - ax->min) / power);
  }
 else
  {
   ax->min = 0;
   power = fpow(10, seconddigit);
   if (((int) (ax->max / power)) * power != ax->max)
     ax->max = ((int) (ax->max / power + 1)) * power;
   ax->division = (int) (ax->max / power);
  }
 if (digits >= 0)
   ax->precision = 0;
 else
   ax->precision = abs(digits);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x8(%rax), %xmm0
jbe 0x4164f
jmp 0x41a2d
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd (%rax), %xmm0
jbe 0x41847
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
callq 0x52a90
cvttsd2si %xmm0, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
callq 0x52a90
cvttsd2si %xmm0, %eax
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %eax
cmpl -0x2c(%rbp), %eax
jl 0x416b0
movl -0x28(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x416b6
movl -0x2c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %edi
movsd 0xa3287(%rip), %xmm0    # 0xe4948
callq 0x52840
movsd %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
ucomisd 0x8(%rax), %xmm0
jne 0x416f5
jp 0x416f5
jmp 0x41725
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
movsd 0xa090d(%rip), %xmm1    # 0xe2018
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd (%rax), %xmm1
movq %xmm1, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm1
ucomisd %xmm1, %xmm0
jne 0x4177f
jp 0x4177f
jmp 0x417db
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
divsd -0x18(%rbp), %xmm0
movsd 0xa086d(%rip), %xmm1    # 0xe2018
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rdx # imm = 0x8000000000000000
xorq %rdx, %rax
movq %rax, %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
addl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
cmpl $0x0, -0x1c(%rbp)
jl 0x41831
movq -0x8(%rbp), %rax
movl $0x0, 0x14(%rax)
jmp 0x41842
movl -0x1c(%rbp), %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
jmp 0x41a2d
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd (%rax), %xmm0
movsd %xmm0, -0x10(%rbp)
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
callq 0x52a90
cvttsd2si %xmm0, %eax
movl %eax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
callq 0x52a90
cvttsd2si %xmm0, %eax
movl %eax, -0x24(%rbp)
movsd -0x10(%rbp), %xmm0
callq 0x52a90
cvttsd2si %xmm0, %eax
movl %eax, -0x1c(%rbp)
movl -0x20(%rbp), %eax
cmpl -0x24(%rbp), %eax
jne 0x41976
movl -0x20(%rbp), %edi
movsd 0xa309a(%rip), %xmm0    # 0xe4948
callq 0x52840
movsd %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, (%rax)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
cvttsd2si 0x8(%rax), %eax
cvtsi2sd %eax, %xmm1
ucomisd %xmm1, %xmm0
jne 0x418fa
jp 0x418fa
jmp 0x4192c
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
movsd 0xa0708(%rip), %xmm1    # 0xe2018
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
jmp 0x41950
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
subsd (%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
jmp 0x41a09
movq -0x8(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movl -0x24(%rbp), %edi
movsd 0xa2fbc(%rip), %xmm0    # 0xe4948
callq 0x52840
movsd %xmm0, -0x18(%rbp)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
ucomisd 0x8(%rax), %xmm0
jne 0x419c0
jp 0x419c0
jmp 0x419f0
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
movsd 0xa0642(%rip), %xmm1    # 0xe2018
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %eax
cvtsi2sd %eax, %xmm0
mulsd -0x18(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x8(%rbp), %rax
movsd 0x8(%rax), %xmm0
divsd -0x18(%rbp), %xmm0
cvttsd2si %xmm0, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x10(%rax)
cmpl $0x0, -0x1c(%rbp)
jl 0x41a1c
movq -0x8(%rbp), %rax
movl $0x0, 0x14(%rax)
jmp 0x41a2d
movl -0x1c(%rbp), %ecx
movl %ecx, %eax
negl %eax
cmovnsl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x14(%rax)
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)