// File: /workspace/github_c_makefile_star2_O1/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:
xorl %eax, %eax
testq %rdi, %rdi
js 0x8a7e
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq 0x15d6a(%rip), %rcx     # 0x1e5e0
testb $0x1, (%rcx,%rdi)
je 0x8a70
movq 0x158e9(%rip), %rsi     # 0x1e170
cmpq $-0x1f, (%rsi,%rdi,8)
jne 0x8a70
movq 0x15d27(%rip), %r8      # 0x1e5c0
movq (%r8,%rdi,8), %rdi
movq (%r8,%rdi,8), %r9
movq (%r8,%r9,8), %rbx
movq (%rsi,%rbx,8), %rcx
xorl %r10d, %r10d
testq %rcx, %rcx
je 0x88df
movabsq $0x6666666666666667, %r11 # imm = 0x6666666666666667
movq %rcx, %rax
imulq %r11
movq %rdx, %rax
shrq $0x3f, %rax
sarq $0x2, %rdx
addq %rax, %rdx
incl %r10d
addq $0x9, %rcx
cmpq $0x12, %rcx
movq %rdx, %rcx
ja 0x88bb
cmpl $0x1, %r10d
movl %r10d, %edx
adcl $0x0, %edx
xorl %r12d, %r12d
movq %rbx, %rax
movq (%r8,%rax,8), %rax
addq $0x9, %r12
cmpq $-0x1, %rax
jne 0x88ef
movq (%rsi,%r9,8), %r15
movl %r10d, %r13d
cmpq $0x1, %r13
movq %r13, %rax
adcq $0x0, %rax
addl %r12d, %eax
cmpl $0x2d, %eax
jne 0x8937
testq %r15, %r15
jns 0x8937
movl (%rsi,%rdi,8), %ecx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x8773
movq %rax, %rdi
callq 0x8853
jmp 0x8a6b
cmpq $0x1, %r13
movq %r15, %r14
adcq %r13, %r14
leaq (%r14,%r12), %rax
addq $-0x6, %rax
movq (%rsi,%rdi,8), %rcx
cmpq $0x9, %rax
ja 0x896c
addl $-0x9, %edx
addq %r12, %rdx
andl $0x1, %ecx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x863d
jmp 0x8a6b
testb $0x1, %cl
je 0x897d
leaq 0xd854(%rip), %rdi      # 0x161cc
callq 0x3965
movq 0x157ec(%rip), %rax     # 0x1e170
movq (%rax,%rbx,8), %rsi
leaq -0x33(%rbp), %rdi
xorl %edx, %edx
callq 0x84fe
leaq -0x33(%rbp), %rdi
movl $0x1, %esi
callq 0x38ba
leaq 0xd832(%rip), %rdi      # 0x161da
callq 0x3965
leaq -0x33(%rbp), %rax
cmpb $0x0, 0x1(%rax)
jne 0x89c9
movq 0x15c02(%rip), %rax     # 0x1e5c0
cmpq $-0x1, (%rax,%rbx,8)
je 0x8a7f
leaq -0x32(%rbp), %rdi
leaq (%r14,%r12), %rax
addq $-0x9, %rax
movq %rax, -0x40(%rbp)
callq 0x3965
movq 0x15bdb(%rip), %rax     # 0x1e5c0
movq (%rax,%rbx,8), %r14
cmpq $-0x1, %r14
je 0x8a24
leaq -0x33(%rbp), %rbx
movq 0x15776(%rip), %rax     # 0x1e170
movq (%rax,%r14,8), %rsi
movq %rbx, %rdi
movl $0x9, %edx
callq 0x84fe
movq %rbx, %rdi
callq 0x3965
movq 0x15ba6(%rip), %rax     # 0x1e5c0
movq (%rax,%r14,8), %r14
cmpq $-0x1, %r14
jne 0x89f3
leaq 0xe614(%rip), %rdi      # 0x1703f
callq 0x3965
cmpq $0x1, %r13
adcq %r13, %r15
leaq (%r15,%r12), %rbx
addq $-0xa, %rbx
cmpq $0x0, -0x40(%rbp)
jle 0x8a52
leaq 0xd77d(%rip), %rdi      # 0x161ca
callq 0x3965
leaq -0x33(%rbp), %r14
movq %r14, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x84fe
movq %r14, %rdi
callq 0x3965
movl $0x1, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdb7e(%rip), %rdi      # 0x16604
jmp 0x89cd