// File: /workspace/github_c_makefile_star2_O0/phase[P]o/o.c
// Function: gnop
V gnop(ST s,OTF*ft,I e,I t,OTF cx){
    I c;O a,b,x,r;b=pop(s);if(b->t==TA){if(e){O ad,bd;a=pop(s);if(a->t!=TA)TE;ad=newod(len(a->a));bd=newod(len(b->a));r=ft[TD](ad,bd,s);if(r)psh(s,r);dlo(ad);dlo(bd);dlo(a);dlo(b);R;}else{psh(s,opa(b,ft,e,t));dlo(b);R;}}
    a=pop(s);if(a->t==TA){if(cx)r=cx(a,b,s);else{r=newoa(newst());while(len(a->a)){psh(s,pop(a->a));psh(s,dup(b));gnop(s,ft,e,t,0);psh(r->a,pop(s));}dlo(a);dlo(b);rev(r->a);}psh(s,r);R;}
    c=a->t==TCB||b->t==TCB;/*two different types added together==str*/if(a->t!=b->t&&t){O ao=a,bo=b;a=tosocb(ao);b=tosocb(bo);dlo(ao);dlo(bo);}r=ft[a->t==TCB?TS:a->t](a,b,s);if(r&&c&&r->t==TS){x=r;r=newocb(x->s.s,x->s.z);dlo(x);}
    if(r)psh(s,r);dlo(a);dlo(b);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2920
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3945
cmpl $0x0, -0x14(%rbp)
je 0x390a
movq -0x8(%rbp), %rdi
callq 0x2920
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
je 0x3833
leaq 0x7c02(%rip), %rdi      # 0xb430
callq 0x23e0
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2a60
movq %rax, %xmm0
movaps 0x7b64(%rip), %xmm1     # 0xb3b0
movaps %xmm1, -0x90(%rbp)
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x7b61(%rip), %xmm1     # 0xb3c0
movaps %xmm1, -0x80(%rbp)
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x2ed0
movq %rax, -0x50(%rbp)
movq -0x38(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2a60
movaps -0x90(%rbp), %xmm2
movaps -0x80(%rbp), %xmm1
movq %rax, %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
callq 0x2ed0
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq -0x50(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq -0x8(%rbp), %rdx
callq *%rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x38e1
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x28c0
movq -0x50(%rbp), %rdi
callq 0x31d0
movq -0x58(%rbp), %rdi
callq 0x31d0
movq -0x30(%rbp), %rdi
callq 0x31d0
movq -0x38(%rbp), %rdi
callq 0x31d0
jmp 0x3b9f
movq -0x8(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
callq 0x3760
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0x28c0
movq -0x38(%rbp), %rdi
callq 0x31d0
jmp 0x3b9f
movq -0x8(%rbp), %rdi
callq 0x2920
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3a68
cmpq $0x0, -0x20(%rbp)
je 0x3981
movq -0x20(%rbp), %rax
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x8(%rbp), %rdx
callq *%rax
movq %rax, -0x48(%rbp)
jmp 0x3a56
callq 0x2810
movq %rax, %rdi
callq 0x3140
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2a60
cmpq $0x0, %rax
je 0x3a37
movq -0x8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2920
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x28c0
movq -0x8(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x38(%rbp), %rdi
callq 0x3360
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x28c0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movl -0x18(%rbp), %ecx
xorl %eax, %eax
movl %eax, %r8d
callq 0x37d0
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa0(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2920
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x28c0
jmp 0x3992
movq -0x30(%rbp), %rdi
callq 0x31d0
movq -0x38(%rbp), %rdi
callq 0x31d0
movq -0x48(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x2ae0
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x28c0
jmp 0x3b9f
movq -0x30(%rbp), %rcx
movb $0x1, %al
cmpl $0x3, (%rcx)
movb %al, -0xb1(%rbp)
je 0x3a89
movq -0x38(%rbp), %rax
cmpl $0x3, (%rax)
sete %al
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x24(%rbp)
movq -0x30(%rbp), %rax
movl (%rax), %eax
movq -0x38(%rbp), %rcx
cmpl (%rcx), %eax
je 0x3ae7
cmpl $0x0, -0x18(%rbp)
je 0x3ae7
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
callq 0x3430
movq %rax, -0x30(%rbp)
movq -0x68(%rbp), %rdi
callq 0x3430
movq %rax, -0x38(%rbp)
movq -0x60(%rbp), %rdi
callq 0x31d0
movq -0x68(%rbp), %rdi
callq 0x31d0
movq -0x10(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x3b08
movl $0x1, %eax
movl %eax, -0xc4(%rbp)
jmp 0x3b14
movq -0x30(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xc4(%rbp)
movq -0xc0(%rbp), %rax
movl -0xc4(%rbp), %ecx
movl %ecx, %ecx
movq (%rax,%rcx,8), %rax
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x8(%rbp), %rdx
callq *%rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x3b79
cmpl $0x0, -0x24(%rbp)
je 0x3b79
movq -0x48(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x3b79
movq -0x48(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x2f10
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
callq 0x31d0
cmpq $0x0, -0x48(%rbp)
je 0x3b8d
movq -0x8(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x28c0
movq -0x30(%rbp), %rdi
callq 0x31d0
movq -0x38(%rbp), %rdi
callq 0x31d0
addq $0xd0, %rsp
popq %rbp
retq
nopl (%rax,%rax)