// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: pp_len
cell pp_len(cell x) {
	int	k = 0;

	if (string_p(car(x)))
		return make_integer(string_len(car(x))-1);
	if (vector_p(car(x)))
		return make_integer(vector_len(car(x)));
	if (!list_p(car(x)) && !tuple_p(car(x)))
		error("len: expected str/list/tuple/vec, got", car(x));
	for (x = car(x); x != NIL; x = cdr(x))
		k++;
	return make_integer(k);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq 0x12e06(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x153ff
movq 0x13264(%rip), %rax     # 0x285f0
movq 0x12ded(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x153ff
movq 0x12dd2(%rip), %rax     # 0x28180
movq 0x12dcb(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x21, (%rax,%rcx,8)
jne 0x153ff
movq 0x1322d(%rip), %rax     # 0x285f8
movq 0x131fe(%rip), %rcx     # 0x285d0
movq 0x12da7(%rip), %rdx     # 0x28180
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
subq $0x1, %rdi
callq 0x3740
movq %rax, -0x8(%rbp)
jmp 0x15609
movq 0x12d7a(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x1549f
movq 0x131d4(%rip), %rax     # 0x285f0
movq 0x12d5d(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x1549f
movq 0x12d42(%rip), %rax     # 0x28180
movq 0x12d3b(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x24, (%rax,%rcx,8)
jne 0x1549f
movq 0x1319d(%rip), %rax     # 0x285f8
movq 0x1316e(%rip), %rcx     # 0x285d0
movq 0x12d17(%rip), %rdx     # 0x28180
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rdi
addq $0x8, %rdi
subq $0x1, %rdi
shrq $0x3, %rdi
addq $0x3, %rdi
subq $0x3, %rdi
callq 0x3740
movq %rax, -0x8(%rbp)
jmp 0x15609
movq 0x12cda(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x1551b
movq 0x13138(%rip), %rax     # 0x285f0
movq 0x12cc1(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x1551b
movq 0x13116(%rip), %rax     # 0x285f0
movq 0x12c9f(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x1551b
movq 0x130f4(%rip), %rax     # 0x285f0
movq 0x12c7d(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x155c4
movq 0x12c5e(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $-0x1, (%rax,%rcx,8)
je 0x155c4
movq 0x12c48(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x155a9
movq 0x130a6(%rip), %rax     # 0x285f0
movq 0x12c2f(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x155a9
movq 0x13084(%rip), %rax     # 0x285f0
movq 0x12c0d(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x155a9
movq 0x13062(%rip), %rax     # 0x285f0
movq 0x12beb(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x155c4
movq 0x12bd0(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0xb74f(%rip), %rdi      # 0x20d0e
callq 0x34b0
movq 0x12bb5(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
cmpq $-0x1, -0x10(%rbp)
je 0x155fc
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
movq 0x12fe2(%rip), %rax     # 0x285d0
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x10(%rbp)
jmp 0x155d7
movslq -0x14(%rbp), %rdi
callq 0x3740
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)