// File: /workspace/github_c_makefile_star2_O0/azhai[P]mlite/mlite.c
// Function: commit
void commit(char *s, int all) {
	int	tp = 0, ta = LEFT, sp = 0, sa;
	cell	n;

	find_binop(s, &tp, &ta);
	while (inf_ops() != NIL) {
		find_binop(symbol_name(inf_first_op()), &sp, &sa);
		if (!all && (tp > sp || (tp == sp && ta == RIGHT)))
			break;
		n = node(inf_first_arg(), NIL);	/* (op (tuple arg1 arg2)) */
		inf_args() = inf_other_args();	/* also remove arg2 */
		n = node(inf_first_arg(), n);	/* now other arg */
		n = node(S_tuple, n);
		n = node(n, NIL);
		n = node(inf_first_op(), n);
		inf_ops() = inf_other_ops();	/* remove op */
		inf_first_arg() = n;		/* replace arg1 */
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl $0x0, -0x10(%rbp)
movl $0x1, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x10(%rbp), %rsi
leaq -0x14(%rbp), %rdx
callq 0xc550
movq 0x18454(%rip), %rax     # 0x28180
movq 0x18405(%rip), %rcx     # 0x28138
cmpq $-0x1, (%rax,%rcx,8)
je 0xff10
movq 0x188b3(%rip), %rdi     # 0x285f8
movq 0x18884(%rip), %rax     # 0x285d0
movq 0x1842d(%rip), %rcx     # 0x28180
movq 0x18426(%rip), %rdx     # 0x28180
movq 0x183d7(%rip), %rsi     # 0x28138
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rax
shlq $0x3, %rax
addq %rax, %rdi
leaq -0x18(%rbp), %rsi
leaq -0x1c(%rbp), %rdx
callq 0xc550
cmpl $0x0, -0xc(%rbp)
jne 0xfda2
movl -0x10(%rbp), %eax
cmpl -0x18(%rbp), %eax
jg 0xfd9d
movl -0x10(%rbp), %eax
cmpl -0x18(%rbp), %eax
jne 0xfda2
cmpl $0x2, -0x14(%rbp)
jne 0xfda2
jmp 0xff10
movq 0x183d7(%rip), %rax     # 0x28180
movq 0x183d0(%rip), %rcx     # 0x28180
movq 0x18819(%rip), %rdx     # 0x285d0
movq 0x1837a(%rip), %rsi     # 0x28138
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq 0x187ed(%rip), %rax     # 0x285d0
movq 0x18396(%rip), %rcx     # 0x28180
movq 0x187df(%rip), %rdx     # 0x285d0
movq 0x18340(%rip), %rsi     # 0x28138
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x18375(%rip), %rax     # 0x28180
movq 0x187be(%rip), %rcx     # 0x285d0
movq 0x1831f(%rip), %rsi     # 0x28138
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
movq 0x18358(%rip), %rax     # 0x28180
movq 0x18351(%rip), %rcx     # 0x28180
movq 0x1879a(%rip), %rdx     # 0x285d0
movq 0x182fb(%rip), %rsi     # 0x28138
movq (%rdx,%rsi,8), %rdx
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq 0x188a1(%rip), %rdi     # 0x28700
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
movq $-0x1, %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq 0x182f5(%rip), %rax     # 0x28180
movq 0x182ee(%rip), %rcx     # 0x28180
movq 0x1829f(%rip), %rdx     # 0x28138
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdi
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x3780
movq %rax, -0x28(%rbp)
movq 0x18719(%rip), %rax     # 0x285d0
movq 0x182c2(%rip), %rcx     # 0x28180
movq 0x18273(%rip), %rdx     # 0x28138
movq (%rcx,%rdx,8), %rcx
movq (%rax,%rcx,8), %rdx
movq 0x182ac(%rip), %rax     # 0x28180
movq 0x1825d(%rip), %rcx     # 0x28138
movq %rdx, (%rax,%rcx,8)
movq -0x28(%rbp), %rdx
movq 0x18296(%rip), %rax     # 0x28180
movq 0x1828f(%rip), %rcx     # 0x28180
movq 0x186d8(%rip), %rsi     # 0x285d0
movq 0x18239(%rip), %rdi     # 0x28138
movq (%rsi,%rdi,8), %rsi
movq (%rcx,%rsi,8), %rcx
movq %rdx, (%rax,%rcx,8)
jmp 0xfd25
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)