// File: 0asa[P]TTree-source/Node.cpp
// Function: Node::print(_IO_FILE*)
void Node::print(FILE* out) {
	if (treeType == -1) {  // NORMAL TEST NODES
		if (!isLeaf()) { 
			fprintf(out,"N%d [label=\"att=%d\\nth=%0.2f\\nsize=%d\\nc1=%0.3f\\nc2=%0.3f\"]\n",(int)getId(),getAtt(),getTh(),(int)getSize(),vote[0],vote[1]); //*p
			//fprintf(out,"N%d [peripheries=2,label=\"size=%d\\nc1=%0.3f\\nc2=%0.3f\"]\n",(int)getId(),(int)getSize()); //*p	
			fprintf(out,"N%d -> N%d;\n",getId(),getLeft()->getId());
			fprintf(out,"N%d -> N%d;\n",getId(),getRight()->getId());
			getLeft()->print(out);
			getRight()->print(out);
		} else {
			fprintf(out,"N%d [peripheries=2,label=\"size=%d\\nc1=%0.3f\\nc2=%0.3f\"]\n",(int)getId(),(int)getSize(),vote[0],vote[1]); //*p	
		}
	} else { // TTREE NODES
		if (!isLeaf()) { 
			fprintf(out,"N%d [label=\"grp=%d\\nth=%0.2f\\nsize=%d\"]\n",(int)getId(),((TreeNodeTest*)test)->getGroup(),((TreeNodeTest*)test)->getTh(),(int)getSize()); 
			
			fprintf(out,"N%d -> N%d;\n",getId(),getLeft()->getId()); 
			fprintf(out,"N%d -> N%d;\n",getId(),getRight()->getId()); 
			
			getLeft()->print(out);
			getRight()->print(out);
		} else { 
			//fprintf(out,"N%d [peripheries=2,label=\"size=%d\\nc1=%0.3f\\nc2=%0.3f\"]\n",(int)getId(),(int)getSize(),vote[0],vote[1]); 
			fprintf(out,"N%d [peripheries=2,label=\"size=%d\"]\n",(int)getId(),(int)getSize()/*,vote[0],vote[1]*/); 
		}
	}
	
}

// Assembly:
subq $0xc8, %rsp
movq %rdi, 0xc0(%rsp)
movq %rsi, 0xb8(%rsp)
movq 0xc0(%rsp), %rax
movq %rax, 0xb0(%rsp)
cmpl $-0x1, 0x5c(%rax)
jne 0x22087
movq 0xb0(%rsp), %rdi
callq 0x21aa0
testb $0x1, %al
jne 0x21ff9
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x68(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x70(%rsp)
callq 0x21cd0
movq 0xb0(%rsp), %rdi
movl %eax, 0x74(%rsp)
callq 0x21cf0
movq 0xb0(%rsp), %rdi
movsd %xmm0, 0x78(%rsp)
callq 0x12650
movq 0xb0(%rsp), %rdi
movl %eax, 0x84(%rsp)
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xcda0
movq 0xb0(%rsp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, 0x88(%rsp)
addq $0x38, %rdi
movl $0x1, %esi
callq 0xcda0
movq 0x68(%rsp), %rdi
movl 0x70(%rsp), %edx
movl 0x74(%rsp), %ecx
movsd 0x78(%rsp), %xmm0
movl 0x84(%rsp), %r8d
movsd 0x88(%rsp), %xmm1
movsd (%rax), %xmm2
leaq 0xebad(%rip), %rsi      # 0x30ab0
movb $0x3, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x90(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x9c(%rsp)
callq 0x21af0
movq %rax, %rdi
callq 0x22240
movq 0x90(%rsp), %rdi
movl 0x9c(%rsp), %edx
movl %eax, %ecx
leaq 0xeb92(%rip), %rsi      # 0x30aed
movb $0x0, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0xa0(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0xac(%rsp)
callq 0x21b00
movq %rax, %rdi
callq 0x22240
movq 0xa0(%rsp), %rdi
movl 0xac(%rsp), %edx
movl %eax, %ecx
leaq 0xeb3a(%rip), %rsi      # 0x30aed
movb $0x0, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
callq 0x21af0
movq %rax, %rdi
movq 0xb8(%rsp), %rsi
callq 0x21e00
movq 0xb0(%rsp), %rdi
callq 0x21b00
movq %rax, %rdi
movq 0xb8(%rsp), %rsi
callq 0x21e00
jmp 0x22082
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x50(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x58(%rsp)
callq 0x12650
movq 0xb0(%rsp), %rdi
movl %eax, 0x5c(%rsp)
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xcda0
movq 0xb0(%rsp), %rdi
movsd (%rax), %xmm0
movsd %xmm0, 0x60(%rsp)
addq $0x38, %rdi
movl $0x1, %esi
callq 0xcda0
movq 0x50(%rsp), %rdi
movl 0x58(%rsp), %edx
movl 0x5c(%rsp), %ecx
movsd 0x60(%rsp), %xmm0
movsd (%rax), %xmm1
leaq 0xea7f(%rip), %rsi      # 0x30afa
movb $0x2, %al
callq 0x3360
jmp 0x22235
movq 0xb0(%rsp), %rdi
callq 0x21aa0
testb $0x1, %al
jne 0x221ef
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x18(%rsp)
callq 0x22240
movl %eax, %ecx
movq 0xb0(%rsp), %rax
movl %ecx, 0x20(%rsp)
movq 0x30(%rax), %rdi
callq 0x2dc20
movl %eax, %ecx
movq 0xb0(%rsp), %rax
movl %ecx, 0x24(%rsp)
movq 0x30(%rax), %rdi
callq 0x12670
movq 0xb0(%rsp), %rdi
movsd %xmm0, 0x28(%rsp)
callq 0x12650
movq 0x18(%rsp), %rdi
movl 0x20(%rsp), %edx
movl 0x24(%rsp), %ecx
movsd 0x28(%rsp), %xmm0
movl %eax, %r8d
leaq 0xea1f(%rip), %rsi      # 0x30b33
movb $0x1, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x30(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x3c(%rsp)
callq 0x21af0
movq %rax, %rdi
callq 0x22240
movq 0x30(%rsp), %rdi
movl 0x3c(%rsp), %edx
movl %eax, %ecx
leaq 0xe98d(%rip), %rsi      # 0x30aed
movb $0x0, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x40(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x4c(%rsp)
callq 0x21b00
movq %rax, %rdi
callq 0x22240
movq 0x40(%rsp), %rdi
movl 0x4c(%rsp), %edx
movl %eax, %ecx
leaq 0xe941(%rip), %rsi      # 0x30aed
movb $0x0, %al
callq 0x3360
movq 0xb0(%rsp), %rdi
callq 0x21af0
movq %rax, %rdi
movq 0xb8(%rsp), %rsi
callq 0x21e00
movq 0xb0(%rsp), %rdi
callq 0x21b00
movq %rax, %rdi
movq 0xb8(%rsp), %rsi
callq 0x21e00
jmp 0x22233
movq 0xb0(%rsp), %rdi
movq 0xb8(%rsp), %rax
movq %rax, 0x8(%rsp)
callq 0x22240
movq 0xb0(%rsp), %rdi
movl %eax, 0x14(%rsp)
callq 0x12650
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %edx
movl %eax, %ecx
leaq 0xe930(%rip), %rsi      # 0x30b5c
movb $0x0, %al
callq 0x3360
jmp 0x22235
addq $0xc8, %rsp
retq
nopl (%rax)