// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: pp_floor
cell pp_floor(cell x) {
	cell	n, m, e;

	x = car(x);
	if (integer_p(x))
		return x;
	e = x_real_exponent(x);
	if (e >= 0)
		return real_to_bignum(x);
	m = new_atom(T_INTEGER, x_real_mantissa(x));
	save(m);
	while (e < 0) {
		m = bignum_shift_right(m);
		m = car(m);
		car(Stack) = m;
		e++;
	}
	if (x_real_negative_p(x)) {
		/* sign not in mantissa! */
		m = bignum_add(m, make_integer(1));
	}
	unsave(1);
	n = make_real(x_real_flags(x), e, cdr(m));
	return real_to_bignum(n);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq 0xfc2d(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jl 0x1859c
movq 0x10083(%rip), %rax     # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x1859c
movq 0xfbfc(%rip), %rax      # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x18, (%rax,%rcx,8)
jne 0x1859c
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x1877b
movq 0xfbdd(%rip), %rax      # 0x28180
movq 0x10026(%rip), %rcx     # 0x285d0
movq 0x1001f(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jl 0x185de
movq -0x10(%rbp), %rdi
callq 0x9110
movq %rax, -0x8(%rbp)
jmp 0x1877b
movq 0xffeb(%rip), %rax      # 0x285d0
movq 0xffe4(%rip), %rcx      # 0x285d0
movq 0xffdd(%rip), %rdx      # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
movq $-0x18, %rdi
movl $0x1, %edx
callq 0x3780
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq 0xfb15(%rip), %rsi      # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0xfb07(%rip)      # 0x28138
cmpq $0x0, -0x28(%rbp)
jge 0x1867c
movq -0x20(%rbp), %rdi
callq 0x5760
movq %rax, -0x20(%rbp)
movq 0xfb34(%rip), %rax      # 0x28180
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdx
movq 0xfb1d(%rip), %rax      # 0x28180
movq 0xface(%rip), %rcx      # 0x28138
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x18631
movq 0xfafd(%rip), %rax      # 0x28180
movq 0xff46(%rip), %rcx      # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0x1872c
movq 0xfad5(%rip), %rax      # 0x28180
movq 0xff1e(%rip), %rcx      # 0x285d0
movq 0xff17(%rip), %rdx      # 0x285d0
movq 0xff10(%rip), %rsi      # 0x285d0
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x1870a
movq 0xfef2(%rip), %rax      # 0x285d0
movq 0xfeeb(%rip), %rcx      # 0x285d0
movq 0xfee4(%rip), %rdx      # 0x285d0
movq 0xfedd(%rip), %rsi      # 0x285d0
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x1, (%rax,%rcx,8)
je 0x1872c
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movl $0x1, %edi
callq 0x3740
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x4e50
movq %rax, -0x20(%rbp)
movl $0x1, %edi
callq 0x3950
movq 0xfa43(%rip), %rax      # 0x28180
movq 0xfe8c(%rip), %rcx      # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, %edi
movq -0x28(%rbp), %rsi
movq 0xfe73(%rip), %rax      # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x6350
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x9110
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)