// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: bignum_less_p
int bignum_less_p(cell a, cell b) {
	int	ka, kb, neg_a, neg_b;

	neg_a = x_bignum_negative_p(a);
	neg_b = x_bignum_negative_p(b);
	if (neg_a && !neg_b) return 1;
	if (!neg_a && neg_b) return 0;
	ka = length(a);
	kb = length(b);
	if (ka < kb) return neg_a? 0: 1;
	if (ka > kb) return neg_a? 1: 0;
	Tmp = b;
	a = bignum_abs(a);
	save(a);
	b = bignum_abs(b);
	unsave(1);
	Tmp = NIL;
	a = cdr(a);
	b = cdr(b);
	while (a != NIL) {
		if (car(a) < car(b)) return neg_a? 0: 1;
		if (car(a) > car(b)) return neg_a? 1: 0;
		a = cdr(a);
		b = cdr(b);
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq 0x23219(%rip), %rax     # 0x28180
movq 0x23662(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $0x0, (%rax,%rcx,8)
setl %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x24(%rbp)
movq 0x231f3(%rip), %rax     # 0x28180
movq 0x2363c(%rip), %rcx     # 0x285d0
movq -0x18(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $0x0, (%rax,%rcx,8)
setl %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x28(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x4fc4
cmpl $0x0, -0x28(%rbp)
jne 0x4fc4
movl $0x1, -0x4(%rbp)
jmp 0x5154
cmpl $0x0, -0x24(%rbp)
jne 0x4fdc
cmpl $0x0, -0x28(%rbp)
je 0x4fdc
movl $0x0, -0x4(%rbp)
jmp 0x5154
movq -0x10(%rbp), %rdi
callq 0x5160
movl %eax, -0x1c(%rbp)
movq -0x18(%rbp), %rdi
callq 0x5160
movl %eax, -0x20(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x20(%rbp), %eax
jge 0x5014
movl -0x24(%rbp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5154
movl -0x1c(%rbp), %eax
cmpl -0x20(%rbp), %eax
jle 0x5034
movl -0x24(%rbp), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5154
movq -0x18(%rbp), %rax
movq %rax, 0x230e1(%rip)     # 0x28120
movq -0x10(%rbp), %rdi
callq 0x49f0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq 0x230e1(%rip), %rsi     # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0x230d3(%rip)     # 0x28138
movq -0x18(%rbp), %rdi
callq 0x49f0
movq %rax, -0x18(%rbp)
movl $0x1, %edi
callq 0x3950
movq $-0x1, 0x23099(%rip) # 0x28120
movq 0x23542(%rip), %rax     # 0x285d0
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq 0x2352f(%rip), %rax     # 0x285d0
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
cmpq $-0x1, -0x10(%rbp)
je 0x514d
movq 0x230c1(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x230b2(%rip), %rcx     # 0x28180
movq -0x18(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jge 0x50ed
movl -0x24(%rbp), %edx
movl $0x1, %eax
xorl %ecx, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5154
movq 0x2308c(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x2307d(%rip), %rcx     # 0x28180
movq -0x18(%rbp), %rdx
cmpq (%rcx,%rdx,8), %rax
jle 0x5122
movl -0x24(%rbp), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0x4(%rbp)
jmp 0x5154
movq 0x234a7(%rip), %rax     # 0x285d0
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
movq 0x23494(%rip), %rax     # 0x285d0
movq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
jmp 0x50ad
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)