// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: real_equal
int real_equal(cell a, cell b, int approx) {
	cell	ma, mb;

	if (integer_p(a) && integer_p(b))
		return bignum_equal_p(a, b);
	if (integer_p(a))
		a = bignum_to_real(a);
	if (integer_p(b)) {
		save(a);
		b = bignum_to_real(b);
		unsave(1);
	}
	if (x_real_negative_p(a) != x_real_negative_p(b))
		return 0;
	if (!approx) {
		if (x_real_exponent(a) != x_real_exponent(b))
			return 0;
		if (x_real_zero_p(a) && x_real_zero_p(b))
			return 1;
		ma = x_real_mantissa(a);
		mb = x_real_mantissa(b);
	}
	if (approx) {
		Tmp = b;
		save(a);
		save(b);
		Tmp = NIL;
		autoscale(&a, &b);
		if (a == NIL || b == NIL) {
			unsave(2);
			return 0;
		}
		ma = x_real_mantissa(a);
		mb = x_real_mantissa(b);
		ma = shift_mantissa(ma);
		mb = shift_mantissa(mb);
		unsave(2);
	}
	while (ma != NIL && mb != NIL) {
		if (car(ma) != car(mb))
			return 0;
		ma = cdr(ma);
		mb = cdr(mb);
	}
	if (ma != mb)
		return 0;
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
cmpq $0x0, -0x10(%rbp)
jl 0x7428
movq 0x2122f(%rip), %rax     # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7428
movq 0x20da8(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x18, (%rax,%rcx,8)
jne 0x7428
cmpq $0x0, -0x18(%rbp)
jl 0x7428
movq 0x211ff(%rip), %rax     # 0x285f0
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7428
movq 0x20d78(%rip), %rax     # 0x28180
movq -0x18(%rbp), %rcx
cmpq $-0x18, (%rax,%rcx,8)
jne 0x7428
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x51a0
movl %eax, -0x4(%rbp)
jmp 0x7942
cmpq $0x0, -0x10(%rbp)
jl 0x7465
movq 0x211ba(%rip), %rax     # 0x285f0
movq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x7465
movq 0x20d33(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x18, (%rax,%rcx,8)
jne 0x7465
movq -0x10(%rbp), %rdi
callq 0x6870
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x18(%rbp)
jl 0x74c5
movq 0x2117d(%rip), %rax     # 0x285f0
movq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x74c5
movq 0x20cf6(%rip), %rax     # 0x28180
movq -0x18(%rbp), %rcx
cmpq $-0x18, (%rax,%rcx,8)
jne 0x74c5
movq -0x10(%rbp), %rdi
movq 0x20c98(%rip), %rsi     # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0x20c8a(%rip)     # 0x28138
movq -0x18(%rbp), %rdi
callq 0x6870
movq %rax, -0x18(%rbp)
movl $0x1, %edi
callq 0x3950
movq 0x20cb4(%rip), %rax     # 0x28180
movq 0x210fd(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rcx
andq $0x1, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x31(%rbp)
je 0x7565
movq 0x20c8b(%rip), %rcx     # 0x28180
movq 0x210d4(%rip), %rax     # 0x285d0
movq 0x210cd(%rip), %rdx     # 0x285d0
movq 0x210c6(%rip), %rsi     # 0x285d0
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rax,%rdx,8), %rdx
xorl %eax, %eax
cmpq $0x0, (%rcx,%rdx,8)
movb %al, -0x32(%rbp)
jne 0x755d
movq 0x210a3(%rip), %rax     # 0x285d0
movq 0x2109c(%rip), %rcx     # 0x285d0
movq 0x21095(%rip), %rdx     # 0x285d0
movq 0x2108e(%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)
sete %al
movb %al, -0x32(%rbp)
movb -0x32(%rbp), %al
xorb $-0x1, %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x38(%rbp)
movq 0x20c09(%rip), %rax     # 0x28180
movq 0x21052(%rip), %rcx     # 0x285d0
movq -0x18(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rcx
andq $0x1, %rcx
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x33(%rbp)
je 0x7610
movq 0x20be0(%rip), %rcx     # 0x28180
movq 0x21029(%rip), %rax     # 0x285d0
movq 0x21022(%rip), %rdx     # 0x285d0
movq 0x2101b(%rip), %rsi     # 0x285d0
movq -0x18(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rax,%rdx,8), %rdx
xorl %eax, %eax
cmpq $0x0, (%rcx,%rdx,8)
movb %al, -0x39(%rbp)
jne 0x7608
movq 0x20ff8(%rip), %rax     # 0x285d0
movq 0x20ff1(%rip), %rcx     # 0x285d0
movq 0x20fea(%rip), %rdx     # 0x285d0
movq 0x20fe3(%rip), %rsi     # 0x285d0
movq -0x18(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x1, (%rax,%rcx,8)
sete %al
movb %al, -0x39(%rbp)
movb -0x39(%rbp), %al
xorb $-0x1, %al
movb %al, -0x33(%rbp)
movl -0x38(%rbp), %eax
movb -0x33(%rbp), %cl
andb $0x1, %cl
movzbl %cl, %ecx
cmpl %ecx, %eax
je 0x762c
movl $0x0, -0x4(%rbp)
jmp 0x7942
cmpl $0x0, -0x1c(%rbp)
jne 0x77bc
movq 0x20b43(%rip), %rax     # 0x28180
movq 0x20f8c(%rip), %rcx     # 0x285d0
movq 0x20f85(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20b1e(%rip), %rcx     # 0x28180
movq 0x20f67(%rip), %rdx     # 0x285d0
movq 0x20f60(%rip), %rsi     # 0x285d0
movq -0x18(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x768e
movl $0x0, -0x4(%rbp)
jmp 0x7942
movq 0x20aeb(%rip), %rax     # 0x28180
movq 0x20f34(%rip), %rcx     # 0x285d0
movq 0x20f2d(%rip), %rdx     # 0x285d0
movq 0x20f26(%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 0x776a
movq 0x20f04(%rip), %rax     # 0x285d0
movq 0x20efd(%rip), %rcx     # 0x285d0
movq 0x20ef6(%rip), %rdx     # 0x285d0
movq 0x20eef(%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)
jne 0x776a
movq 0x20a81(%rip), %rax     # 0x28180
movq 0x20eca(%rip), %rcx     # 0x285d0
movq 0x20ec3(%rip), %rdx     # 0x285d0
movq 0x20ebc(%rip), %rsi     # 0x285d0
movq -0x18(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $0x0, (%rax,%rcx,8)
jne 0x776a
movq 0x20e9e(%rip), %rax     # 0x285d0
movq 0x20e97(%rip), %rcx     # 0x285d0
movq 0x20e90(%rip), %rdx     # 0x285d0
movq 0x20e89(%rip), %rsi     # 0x285d0
movq -0x18(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x1, (%rax,%rcx,8)
jne 0x776a
movl $0x1, -0x4(%rbp)
jmp 0x7942
movq 0x20e5f(%rip), %rax     # 0x285d0
movq 0x20e58(%rip), %rcx     # 0x285d0
movq 0x20e51(%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)
movq 0x20e36(%rip), %rax     # 0x285d0
movq 0x20e2f(%rip), %rcx     # 0x285d0
movq 0x20e28(%rip), %rdx     # 0x285d0
movq -0x18(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x78b5
movq -0x18(%rbp), %rax
movq %rax, 0x2094f(%rip)     # 0x28120
movq -0x10(%rbp), %rdi
movq 0x2095c(%rip), %rsi     # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0x2094e(%rip)     # 0x28138
movq -0x18(%rbp), %rdi
movq 0x20943(%rip), %rsi     # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0x20935(%rip)     # 0x28138
movq $-0x1, 0x20912(%rip) # 0x28120
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x7250
cmpq $-0x1, -0x10(%rbp)
je 0x7829
cmpq $-0x1, -0x18(%rbp)
jne 0x783f
movl $0x2, %edi
callq 0x3950
movl $0x0, -0x4(%rbp)
jmp 0x7942
movq 0x20d8a(%rip), %rax     # 0x285d0
movq 0x20d83(%rip), %rcx     # 0x285d0
movq 0x20d7c(%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)
movq 0x20d61(%rip), %rax     # 0x285d0
movq 0x20d5a(%rip), %rcx     # 0x285d0
movq 0x20d53(%rip), %rdx     # 0x285d0
movq -0x18(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
callq 0x7030
movq %rax, -0x28(%rbp)
movq -0x30(%rbp), %rdi
callq 0x7030
movq %rax, -0x30(%rbp)
movl $0x2, %edi
callq 0x3950
jmp 0x78b7
xorl %eax, %eax
cmpq $-0x1, -0x28(%rbp)
movb %al, -0x3a(%rbp)
je 0x78ce
cmpq $-0x1, -0x30(%rbp)
setne %al
movb %al, -0x3a(%rbp)
movb -0x3a(%rbp), %al
testb $0x1, %al
jne 0x78d7
jmp 0x7928
movq 0x208a2(%rip), %rax     # 0x28180
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x20893(%rip), %rcx     # 0x28180
movq -0x30(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
je 0x7900
movl $0x0, -0x4(%rbp)
jmp 0x7942
movq 0x20cc9(%rip), %rax     # 0x285d0
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movq 0x20cb6(%rip), %rax     # 0x285d0
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x30(%rbp)
jmp 0x78b7
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
je 0x793b
movl $0x0, -0x4(%rbp)
jmp 0x7942
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)