// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: print_real
int print_real(cell n) {
	int	n_digits;
	cell	m, e;
	char	buf[DIGITS_PER_WORD+2];

	if (!real_p(n))
		return 0;
	m = x_real_mantissa(n);
	n_digits = count_digits(m);
	e = x_real_exponent(n);
	if (n_digits == MANTISSA_SIZE && e < 0) {
		print_real(round_last(m, e, n_digits, x_real_flags(n)));
		return 1;
	}
	if (e+n_digits > -4 && e+n_digits <= 6) {
		print_expanded_real(m, e, n_digits, x_real_negative_flag(n));
		return 1;
	}
	if (x_real_negative_flag(n))
		pr("-");
	ntoa(buf, car(m), 0);
	pr_raw(buf, 1);
	pr(".");
	pr(buf[1] || cdr(m) != NIL? &buf[1]: "0");
	m = cdr(m);
	while (m != NIL) {
		pr(ntoa(buf, car(m), DIGITS_PER_WORD));
		m = cdr(m);
	}
	pr("e");
	if (e+n_digits-1 >= 0)
		pr("+");
	pr(ntoa(buf, e+n_digits-1, 0));
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jl 0xb09c
movq 0x1d576(%rip), %rax     # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0xb09c
movq 0x1d0ef(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x1f, (%rax,%rcx,8)
je 0xb0a8
movl $0x0, -0x4(%rbp)
jmp 0xb2fe
movq 0x1d521(%rip), %rax     # 0x285d0
movq 0x1d51a(%rip), %rcx     # 0x285d0
movq 0x1d513(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x63b0
movl %eax, -0x14(%rbp)
movq 0x1d09c(%rip), %rax     # 0x28180
movq 0x1d4e5(%rip), %rcx     # 0x285d0
movq 0x1d4de(%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)
cmpl $0x24, -0x14(%rbp)
jne 0xb153
cmpq $0x0, -0x28(%rbp)
jge 0xb153
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movl -0x14(%rbp), %edx
movq 0x1d05b(%rip), %rax     # 0x28180
movq 0x1d4a4(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %r8
movq (%rcx,%r8,8), %rcx
movq (%rax,%rcx,8), %rax
movl %eax, %ecx
callq 0xaf50
movq %rax, %rdi
callq 0xb060
movl $0x1, -0x4(%rbp)
jmp 0xb2fe
movq -0x28(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq %rcx, %rax
cmpq $-0x4, %rax
jle 0xb1b1
movq -0x28(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq %rcx, %rax
cmpq $0x6, %rax
jg 0xb1b1
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
movl -0x14(%rbp), %edx
movq 0x1cff9(%rip), %rax     # 0x28180
movq 0x1d442(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %r8
movq (%rcx,%r8,8), %rcx
movq (%rax,%rcx,8), %rax
andq $0x1, %rax
movl %eax, %ecx
callq 0xadb0
movl $0x1, -0x4(%rbp)
jmp 0xb2fe
movq 0x1cfc8(%rip), %rax     # 0x28180
movq 0x1d411(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
andq $0x1, %rax
cmpq $0x0, %rax
je 0xb1e1
leaq 0x150a0(%rip), %rdi     # 0x2027c
callq 0x3ab0
leaq -0x33(%rbp), %rdi
movq 0x1cf94(%rip), %rax     # 0x28180
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0xac50
leaq -0x33(%rbp), %rdi
movl $0x1, %esi
callq 0x39f0
leaq 0x1507a(%rip), %rdi     # 0x2028a
callq 0x3ab0
movsbl -0x32(%rbp), %eax
cmpl $0x0, %eax
jne 0xb230
movq 0x1d3ab(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
cmpq $-0x1, (%rax,%rcx,8)
je 0xb23e
leaq -0x33(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x40(%rbp)
jmp 0xb24b
leaq 0x1546f(%rip), %rax     # 0x206b4
movq %rax, -0x40(%rbp)
jmp 0xb24b
movq -0x40(%rbp), %rdi
callq 0x3ab0
movq 0x1d375(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
cmpq $-0x1, -0x20(%rbp)
je 0xb2a8
leaq -0x33(%rbp), %rdi
movq 0x1cf07(%rip), %rax     # 0x28180
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movl $0x9, %edx
callq 0xac50
movq %rax, %rdi
callq 0x3ab0
movq 0x1d336(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
jmp 0xb267
leaq 0x15e6e(%rip), %rdi     # 0x2111d
callq 0x3ab0
movq -0x28(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq %rcx, %rax
subq $0x1, %rax
cmpq $0x0, %rax
jl 0xb2d5
leaq 0x14faa(%rip), %rdi     # 0x2027a
callq 0x3ab0
leaq -0x33(%rbp), %rdi
movq -0x28(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq %rax, %rsi
subq $0x1, %rsi
xorl %edx, %edx
callq 0xac50
movq %rax, %rdi
callq 0x3ab0
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopw (%rax,%rax)