// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: pp_set
cell pp_set(cell x) {
	int	p, k;
	cell	n, a, new;

	p = integer_value("set", cadr(x));
	if (tuple_p(car(x))) {
		a = node(NIL, NIL);
		save(a);
		for (n = car(x); n != NIL && p; n = cdr(n), p--) {
			car(a) = car(n);
			set(cdr(a), node(NIL, NIL));
			a = cdr(a);
		}
		if (n == NIL)
			return error("set: index out of range", cadr(x));
		car(a) = caddr(x);
		cdr(a) = cdr(n);
		return unsave(1);
	}
	if (vector_p(car(x))) {
		k = vector_len(car(x));
		if (p < 0 || p >= k)
			return error("set: index out of range", cadr(x));
		vector(car(x))[p] = caddr(x);
		return car(x);
	}
	if (!string_p(car(x)))
		return error("ref: expected str/tuple/vec, got", car(x));
	if (!char_p(caddr(x)))
		return error("ref: expected char, got", caddr(x));
	k = string_len(car(x))-1;
	if (p < 0 || p >= k)
		return error("set: index out of range", cadr(x));
	n = make_string("", k);
	memcpy(string(n), string(car(x)), k+1);
	string(n)[p] = char_value(caddr(x));
	return n;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq 0x10f8d(%rip), %rax     # 0x28180
movq 0x113d6(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x9c02(%rip), %rdi      # 0x20e0f
callq 0x4960
movl %eax, -0x14(%rbp)
movq 0x10f64(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x17412
movq 0x113be(%rip), %rax     # 0x285f0
movq 0x10f47(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
jne 0x17412
movq 0x11398(%rip), %rax     # 0x285f0
movq 0x10f21(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
jne 0x17412
movq 0x11372(%rip), %rax     # 0x285f0
movq 0x10efb(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x17412
movq $-0x1, %rsi
xorl %edx, %edx
movq %rsi, %rdi
callq 0x3780
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movq 0x10e7b(%rip), %rsi     # 0x28138
xorl %edx, %edx
callq 0x3780
movq %rax, 0x10e6d(%rip)     # 0x28138
movq 0x10eae(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
xorl %eax, %eax
cmpq $-0x1, -0x20(%rbp)
movb %al, -0x31(%rbp)
je 0x172f4
cmpl $0x0, -0x14(%rbp)
setne %al
movb %al, -0x31(%rbp)
movb -0x31(%rbp), %al
testb $0x1, %al
jne 0x172fd
jmp 0x17377
movq 0x10e7c(%rip), %rax     # 0x28180
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x10e6d(%rip), %rax     # 0x28180
movq -0x28(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq $-0x1, %rsi
xorl %edx, %edx
movq %rsi, %rdi
callq 0x3780
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdx
movq 0x11295(%rip), %rax     # 0x285d0
movq -0x28(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x11286(%rip), %rax     # 0x285d0
movq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x28(%rbp)
movq 0x11273(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x172de
cmpq $-0x1, -0x20(%rbp)
jne 0x173ad
movq 0x10dfb(%rip), %rax     # 0x28180
movq 0x11244(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x9a74(%rip), %rdi      # 0x20e13
callq 0x34b0
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10dcc(%rip), %rax     # 0x28180
movq 0x11215(%rip), %rcx     # 0x285d0
movq 0x1120e(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x10da7(%rip), %rax     # 0x28180
movq -0x28(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x111e8(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x111d9(%rip), %rax     # 0x285d0
movq -0x28(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl $0x1, %edi
callq 0x3950
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10d67(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x17559
movq 0x111c1(%rip), %rax     # 0x285f0
movq 0x10d4a(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x17559
movq 0x10d2b(%rip), %rax     # 0x28180
movq 0x10d24(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x24, (%rax,%rcx,8)
jne 0x17559
movq 0x11182(%rip), %rax     # 0x285f8
movq 0x11153(%rip), %rcx     # 0x285d0
movq 0x10cfc(%rip), %rdx     # 0x28180
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
addq $0x8, %rax
subq $0x1, %rax
shrq $0x3, %rax
addq $0x3, %rax
subq $0x3, %rax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x174bd
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jl 0x174ec
movq 0x10cbc(%rip), %rax     # 0x28180
movq 0x11105(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x9935(%rip), %rdi      # 0x20e13
callq 0x34b0
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10c8d(%rip), %rax     # 0x28180
movq 0x110d6(%rip), %rcx     # 0x285d0
movq 0x110cf(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x110e0(%rip), %rax     # 0x285f8
movq 0x110b1(%rip), %rcx     # 0x285d0
movq 0x10c5a(%rip), %rsi     # 0x28180
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rcx,%rsi,8), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x10c38(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10c20(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x175aa
movq 0x1107e(%rip), %rax     # 0x285f0
movq 0x10c07(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x10, %eax
cmpl $0x0, %eax
je 0x175aa
movq 0x10bec(%rip), %rax     # 0x28180
movq 0x10be5(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x21, (%rax,%rcx,8)
je 0x175ce
movq 0x10bcf(%rip), %rax     # 0x28180
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x986b(%rip), %rdi      # 0x20e2b
callq 0x34b0
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10bab(%rip), %rax     # 0x28180
movq 0x10ff4(%rip), %rcx     # 0x285d0
movq 0x10fed(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $0x0, (%rax,%rcx,8)
jl 0x17661
movq 0x10ff3(%rip), %rax     # 0x285f0
movq 0x10b7c(%rip), %rcx     # 0x28180
movq 0x10fc5(%rip), %rdx     # 0x285d0
movq 0x10fbe(%rip), %rsi     # 0x285d0
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movsbl (%rax,%rcx), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x17661
movq 0x10b4b(%rip), %rax     # 0x28180
movq 0x10b44(%rip), %rcx     # 0x28180
movq 0x10f8d(%rip), %rdx     # 0x285d0
movq 0x10f86(%rip), %rsi     # 0x285d0
movq -0x10(%rbp), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
cmpq $-0x16, (%rax,%rcx,8)
je 0x1769b
movq 0x10b18(%rip), %rax     # 0x28180
movq 0x10f61(%rip), %rcx     # 0x285d0
movq 0x10f5a(%rip), %rdx     # 0x285d0
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x97bf(%rip), %rdi      # 0x20e4c
callq 0x34b0
movq %rax, -0x8(%rbp)
jmp 0x177d7
movq 0x10f56(%rip), %rax     # 0x285f8
movq 0x10f27(%rip), %rcx     # 0x285d0
movq 0x10ad0(%rip), %rdx     # 0x28180
movq -0x10(%rbp), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
subq $0x1, %rcx
movq (%rax,%rcx,8), %rax
subq $0x1, %rax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x176d9
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jl 0x17708
movq 0x10aa0(%rip), %rax     # 0x28180
movq 0x10ee9(%rip), %rcx     # 0x285d0
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x9719(%rip), %rdi      # 0x20e13
callq 0x34b0
movq %rax, -0x8(%rbp)
jmp 0x177d7
movl -0x18(%rbp), %esi
leaq 0xa2c2(%rip), %rdi      # 0x219d4
callq 0xa160
movq %rax, -0x20(%rbp)
movq 0x10ed6(%rip), %rdi     # 0x285f8
movq 0x10ea7(%rip), %rax     # 0x285d0
movq -0x20(%rbp), %rcx
movq (%rax,%rcx,8), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq 0x10eb9(%rip), %rsi     # 0x285f8
movq 0x10e8a(%rip), %rax     # 0x285d0
movq 0x10a33(%rip), %rcx     # 0x28180
movq -0x10(%rbp), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
shlq $0x3, %rax
addq %rax, %rsi
movl -0x18(%rbp), %eax
addl $0x1, %eax
movslq %eax, %rdx
callq 0x3140
movq 0x10a0b(%rip), %rax     # 0x28180
movq 0x10e54(%rip), %rcx     # 0x285d0
movq 0x109fd(%rip), %rdx     # 0x28180
movq 0x10e46(%rip), %rsi     # 0x285d0
movq 0x10e3f(%rip), %rdi     # 0x285d0
movq -0x10(%rbp), %r8
movq (%rdi,%r8,8), %rdi
movq (%rsi,%rdi,8), %rsi
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
movb %al, %dl
movq 0x10e46(%rip), %rax     # 0x285f8
movq 0x10e17(%rip), %rcx     # 0x285d0
movq -0x20(%rbp), %rsi
movq (%rcx,%rsi,8), %rcx
shlq $0x3, %rcx
addq %rcx, %rax
movslq -0x14(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)