// File: /workspace/github_c_makefile_star2_O0/phillbush[P]hoc/code.c
// Function: bltin
void
bltin(void)
{
	Datum d1, d2;
	Name *name;
	int narg, i;

	name = getnamearg();
	i = name->u.bltin;
	if (i == 0) {   /* sprintf */
		_sprintf();
		return;
	}
	narg = getintarg();
	if (narg == 0 && bltins[i].n == -1)
		narg = -1;
	if (narg != bltins[i].n)
		yyerror("%s: wrong arity", bltins[i].s);
	errno = 0;
	switch (narg) {
	case -1:
		d1.u.val = bltins[i].u.d;
		break;
	case 0:
		d1.u.val = (*bltins[i].u.f0)();
		break;
	case 1:
		d1 = popnum();
		d1.u.val = (*bltins[i].u.f1)(d1.u.val);
		break;
	case 2:
		d2 = popnum();
		d1 = popnum();
		d1.u.val = (*bltins[i].u.f2)(d1.u.val, d2.u.val);
		break;
	}
	d1.u.val = errcheck(d1.u.val, bltins[i].s);
	d1.isstr = 0;
	push(d1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
callq 0x3b80
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x567e
callq 0x4a20
jmp 0x5862
callq 0x5870
movl %eax, -0x3c(%rbp)
cmpl $0x0, -0x3c(%rbp)
jne 0x56ab
movslq -0x40(%rbp), %rcx
leaq 0xabd9(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
cmpl $-0x1, 0x8(%rax)
jne 0x56ab
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movl -0x3c(%rbp), %eax
movslq -0x40(%rbp), %rdx
leaq 0xabb7(%rip), %rcx      # 0x10270
imulq $0x18, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x8(%rcx), %eax
je 0x56e8
movslq -0x40(%rbp), %rcx
leaq 0xaba0(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rsi
leaq 0x5b45(%rip), %rdi      # 0xb226
movb $0x0, %al
callq 0x26c0
callq 0x2040
movl $0x0, (%rax)
movl -0x3c(%rbp), %eax
incl %eax
movl %eax, %ecx
movq %rcx, -0x90(%rbp)
subl $0x3, %eax
ja 0x5815
movq -0x90(%rbp), %rax
leaq 0x5a28(%rip), %rcx      # 0xb140
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movslq -0x40(%rbp), %rcx
leaq 0xab44(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movsd 0x10(%rax), %xmm0
movsd %xmm0, -0x10(%rbp)
jmp 0x5815
movslq -0x40(%rbp), %rcx
leaq 0xab23(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
callq *0x10(%rax)
movsd %xmm0, -0x10(%rbp)
jmp 0x5815
leaq -0x58(%rbp), %rdi
callq 0x3620
movq -0x58(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movslq -0x40(%rbp), %rcx
leaq 0xaae3(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movsd -0x10(%rbp), %xmm0
callq *%rax
movsd %xmm0, -0x10(%rbp)
jmp 0x5815
leaq -0x70(%rbp), %rdi
callq 0x3620
movq -0x70(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x20(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3620
movq -0x88(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x8(%rbp)
movslq -0x40(%rbp), %rcx
leaq 0xaa77(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq 0x10(%rax), %rax
movsd -0x10(%rbp), %xmm0
movsd -0x28(%rbp), %xmm1
callq *%rax
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movslq -0x40(%rbp), %rcx
leaq 0xaa4b(%rip), %rax      # 0x10270
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movq (%rax), %rdi
callq 0x58a0
movsd %xmm0, -0x10(%rbp)
movl $0x0, -0x8(%rbp)
leaq -0x18(%rbp), %rax
movq (%rax), %rcx
movq %rcx, (%rsp)
movq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq 0x10(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0x33a0
addq $0xb0, %rsp
popq %rbp
retq
nopl (%rax,%rax)