// File: /workspace/github_c_makefile_star2_O0/sheneman[P]clearcut/clearcut.c
// Function: NJ_output_tree2
void
NJ_output_tree2(FILE *fp,
		NJ_ARGS *nj_args,
		NJ_TREE *tree,
		NJ_TREE *root,
		DMAT *dmat) {
  
  if(!tree) {
    return;
  }
	
  if(tree->taxa_index != NJ_INTERNAL_NODE) {

    if(nj_args->expblen) {
      fprintf(fp, "%s:%e", 
	      dmat->taxaname[tree->taxa_index],
	      tree->dist);
    } else {
      fprintf(fp, "%s:%f", 
	      dmat->taxaname[tree->taxa_index],
	      tree->dist);
    }
    
  } else {
    

    if(tree->left && tree->right) {
      fprintf(fp, "(");
    }
    if(tree->left) {
      NJ_output_tree2(fp, nj_args, tree->left, root, dmat);
    }

    if(tree->left && tree->right) {
      fprintf(fp, ",");
    }
    if(tree->right) {
      NJ_output_tree2(fp, nj_args, tree->right, root, dmat);
    }

    if(tree != root->left) { 
      if(tree->left && tree->right) {
	if(tree != root) {
	  if(nj_args->expblen) {
	    fprintf(fp, "):%e", tree->dist);
	  } else {
	    fprintf(fp, "):%f", tree->dist);
	  }
	} else {
	  fprintf(fp, ")");
	}
      }
    } else {
      fprintf(fp, ")");
    }
  }

  return;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x4bd8
jmp 0x4d9e
movq -0x18(%rbp), %rax
cmpq $-0x1, 0x18(%rax)
je 0x4c5a
movq -0x10(%rbp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4c22
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x664a(%rip), %rsi      # 0xb263
movb $0x1, %al
callq 0x2150
jmp 0x4c55
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x18(%rbp), %rcx
movq 0x18(%rcx), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x661b(%rip), %rsi      # 0xb269
movb $0x1, %al
callq 0x2150
jmp 0x4d9c
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
je 0x4c81
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x4c81
movq -0x8(%rbp), %rdi
leaq 0x65f5(%rip), %rsi      # 0xb26f
movb $0x0, %al
callq 0x2150
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
je 0x4ca7
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq (%rax), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
callq 0x4bb0
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
je 0x4cce
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x4cce
movq -0x8(%rbp), %rdi
leaq 0x664a(%rip), %rsi      # 0xb311
movb $0x0, %al
callq 0x2150
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x4cf6
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
callq 0x4bb0
movq -0x18(%rbp), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
je 0x4d88
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
je 0x4d86
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x4d86
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
je 0x4d72
movq -0x10(%rbp), %rax
cmpl $0x0, 0x60(%rax)
je 0x4d51
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x6529(%rip), %rsi      # 0xb271
movb $0x1, %al
callq 0x2150
jmp 0x4d70
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movss 0x10(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x650d(%rip), %rsi      # 0xb276
movb $0x1, %al
callq 0x2150
jmp 0x4d84
movq -0x8(%rbp), %rdi
leaq 0x7d32(%rip), %rsi      # 0xcaaf
movb $0x0, %al
callq 0x2150
jmp 0x4d86
jmp 0x4d9a
movq -0x8(%rbp), %rdi
leaq 0x7d1c(%rip), %rsi      # 0xcaaf
movb $0x0, %al
callq 0x2150
jmp 0x4d9c
jmp 0x4d9e
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)