// File: /workspace/github_c_makefile_star2_O0/georgeweigt[P]eigenmath/eigenmath.c
// Function: arg_nib
void
arg_nib(void)
{
	int h;
	struct atom *p1, *x, *y;

	p1 = pop();

	if (isrational(p1)) {
		if (isnegativenumber(p1)) {
			push_symbol(PI);
			negate(); // see comment above
		} else
			push_integer(0);
		return;
	}

	if (isdouble(p1)) {
		if (isnegativenumber(p1))
			push_double(-M_PI);
		else
			push_double(0.0);
		return;
	}

	// (-1) ^ expr

	if (car(p1) == symbol(POWER) && isminusone(cadr(p1))) {
		push_symbol(PI);
		push(caddr(p1));
		multiply();
		return;
	}

	// e ^ expr

	if (car(p1) == symbol(POWER) && cadr(p1) == symbol(EXP1)) {
		push(caddr(p1));
		imag();
		return;
	}

	if (car(p1) == symbol(MULTIPLY)) {
		h = tos;
		p1 = cdr(p1);
		while (iscons(p1)) {
			push(car(p1));
			arg_nib();
			p1 = cdr(p1);
		}
		add_terms(tos - h);
		return;
	}

	if (car(p1) == symbol(ADD)) {
		push(p1);
		real();
		x = pop();
		push(p1);
		imag();
		y = pop();
		if (iszero(y)) {
			push_integer(0);
			return;
		}
		if (iszero(x)) {
			push_rational(1, 2);
			push_symbol(PI);
			multiply();
			return;
		}
		push(y);
		push(x);
		arctan();
		return;
	}

	push_integer(0); // p1 is real
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
callq 0x91d0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x4, %eax
jne 0x11f3e
movq -0x10(%rbp), %rdi
callq 0x9e30
cmpl $0x0, %eax
je 0x11f32
movq 0x4d12a(%rip), %rdi     # 0x5f050
callq 0x9110
callq 0xb4b0
jmp 0x11f39
xorl %edi, %edi
callq 0xca50
jmp 0x12573
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x5, %eax
jne 0x11f75
movq -0x10(%rbp), %rdi
callq 0x9e30
cmpl $0x0, %eax
je 0x11f68
movsd 0x3315f(%rip), %xmm0    # 0x450c0
callq 0xe5e0
jmp 0x11f70
xorps %xmm0, %xmm0
callq 0xe5e0
jmp 0x12573
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x11f8f
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x11f9a
movq 0x4ca6a(%rip), %rax     # 0x5ea00
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq 0x4f30b(%rip), %rax     # 0x612b0
jne 0x12156
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x11fc6
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
jmp 0x11fd1
movq 0x4ca33(%rip), %rax     # 0x5ea00
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12011
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x11ff9
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
jmp 0x12004
movq 0x4ca00(%rip), %rax     # 0x5ea00
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
jmp 0x1201c
movq 0x4c9e8(%rip), %rax     # 0x5ea00
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0x10770
cmpl $0x0, %eax
je 0x12156
movq 0x4d01b(%rip), %rdi     # 0x5f050
callq 0x9110
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12055
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x48(%rbp)
jmp 0x12060
movq 0x4c9a4(%rip), %rax     # 0x5ea00
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x120a1
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12088
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x12093
movq 0x4c971(%rip), %rax     # 0x5ea00
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x120ac
movq 0x4c958(%rip), %rax     # 0x5ea00
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12138
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x120d4
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x120df
movq 0x4c925(%rip), %rax     # 0x5ea00
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12120
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12107
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x12112
movq 0x4c8f2(%rip), %rax     # 0x5ea00
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
jmp 0x1212b
movq 0x4c8d9(%rip), %rax     # 0x5ea00
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x78(%rbp)
jmp 0x12143
movq 0x4c8c1(%rip), %rax     # 0x5ea00
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x9110
callq 0xc280
jmp 0x12573
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12170
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x80(%rbp)
jmp 0x1217b
movq 0x4c889(%rip), %rax     # 0x5ea00
movq %rax, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpq 0x4f12a(%rip), %rax     # 0x612b0
jne 0x12388
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x121aa
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x88(%rbp)
jmp 0x121b8
movq 0x4c84f(%rip), %rax     # 0x5ea00
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12207
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x121e6
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
jmp 0x121f4
movq 0x4c813(%rip), %rax     # 0x5ea00
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0x12215
movq 0x4c7f2(%rip), %rax     # 0x5ea00
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
cmpq 0x4f0a5(%rip), %rax     # 0x612c8
jne 0x12388
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12247
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa0(%rbp)
jmp 0x12255
movq 0x4c7b2(%rip), %rax     # 0x5ea00
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x122a5
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12283
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa8(%rbp)
jmp 0x12291
movq 0x4c776(%rip), %rax     # 0x5ea00
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb0(%rbp)
jmp 0x122b3
movq 0x4c754(%rip), %rax     # 0x5ea00
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12364
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x122e5
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xb8(%rbp)
jmp 0x122f3
movq 0x4c714(%rip), %rax     # 0x5ea00
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12343
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12321
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xc0(%rbp)
jmp 0x1232f
movq 0x4c6d8(%rip), %rax     # 0x5ea00
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xc8(%rbp)
jmp 0x12351
movq 0x4c6b6(%rip), %rax     # 0x5ea00
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd0(%rbp)
jmp 0x12372
movq 0x4c695(%rip), %rax     # 0x5ea00
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rdi
callq 0x9110
callq 0x12670
jmp 0x12573
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x123a5
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xd8(%rbp)
jmp 0x123b3
movq 0x4c654(%rip), %rax     # 0x5ea00
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
cmpq 0x4eee7(%rip), %rax     # 0x612a8
jne 0x1249f
movl 0x45eeb(%rip), %eax     # 0x582b8
movl %eax, -0x4(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x123ee
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xe0(%rbp)
jmp 0x123fc
movq 0x4c60b(%rip), %rax     # 0x5ea00
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x1248c
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x12431
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xe8(%rbp)
jmp 0x1243f
movq 0x4c5c8(%rip), %rax     # 0x5ea00
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rdi
callq 0x9110
callq 0x11ef0
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x1246e
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xf0(%rbp)
jmp 0x1247c
movq 0x4c58b(%rip), %rax     # 0x5ea00
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x12407
movl 0x45e26(%rip), %edi     # 0x582b8
subl -0x4(%rbp), %edi
callq 0xc520
jmp 0x12573
movq -0x10(%rbp), %rax
movzbl 0x10(%rax), %eax
cmpl $0x1, %eax
jne 0x124bc
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xf8(%rbp)
jmp 0x124ca
movq 0x4c53d(%rip), %rax     # 0x5ea00
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rax
cmpq 0x4edc8(%rip), %rax     # 0x612a0
jne 0x1256c
movq -0x10(%rbp), %rdi
callq 0x9110
callq 0x12760
callq 0x91d0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x9110
callq 0x12670
callq 0x91d0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0xcdc0
cmpl $0x0, %eax
je 0x12523
xorl %edi, %edi
callq 0xca50
jmp 0x12573
movq -0x18(%rbp), %rdi
callq 0xcdc0
cmpl $0x0, %eax
je 0x12553
movl $0x1, %edi
movl $0x2, %esi
callq 0xb840
movq 0x4cb09(%rip), %rdi     # 0x5f050
callq 0x9110
callq 0xc280
jmp 0x12573
movq -0x20(%rbp), %rdi
callq 0x9110
movq -0x18(%rbp), %rdi
callq 0x9110
callq 0x111e0
jmp 0x12573
xorl %edi, %edi
callq 0xca50
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)