// File: /workspace/github_c_makefile_star2_O0/kernfel[P]fNEAT/network.c
// Function: dump_pNetwork
void dump_pNetwork( pNetwork *net, FILE *fp ) {
	unsigned int i;
	int j;

	char coords[DIMENSIONS*8];
	char c_part[8];

	int block = -1, index;
	for ( i=0; i<net->num_nodes; i++ ) {
		index = i % BLOCKSIZE_NODES;
		if ( ! index )
			block++;
		coords[0] = '\0';
		for ( j=0; j<N_OUTPUTS; j++ ) {
			sprintf( c_part, j<DIMENSIONS-1 ? "%+5.4f, " : "%+5.4f", net->p_nodes[block][index].x[j] );
			strcat( coords, c_part );
		}
		fprintf( fp, "0x%08x | %s | %d | %s\n",
			(unsigned int) &net->p_nodes[block][index],
			i<net->num_inputs ? "input" : i<net->num_inputs+net->num_outputs ? "output" : "hidden",
			net->p_nodes[block][index].used,
			coords
		);
	}

	char readout[N_OUTPUTS*9];
	char r_part[9];

	block = -1;
	for ( i=0; i<net->num_links; i++ ) {
		index = i % BLOCKSIZE_LINKS;
		if ( ! index )
			block++;
		readout[0] = '\0';
		for ( j=0; j<N_OUTPUTS; j++ ) {
			sprintf( r_part, j<N_OUTPUTS-1 ? "%+6.4f, " : "%+6.4f", net->p_links[block][index].r[j] );
			strcat( readout, r_part );
		}
		fprintf( fp, "0x%08x | %d | 0x%08x > 0x%08x | %s\n",
			(unsigned int) &net->p_links[block][index],
			net->p_links[block][index].used,
			(unsigned int) net->p_links[block][index].from,
			(unsigned int) net->p_links[block][index].to,
			readout
		);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl (%rcx), %eax
jae 0x711a
movl -0x14(%rbp), %eax
andl $0xff, %eax
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x6ff7
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movb $0x0, -0x30(%rbp)
movl $0x0, -0x18(%rbp)
cmpl $0x1, -0x18(%rbp)
jge 0x7067
leaq -0x38(%rbp), %rdi
movl -0x18(%rbp), %ecx
leaq 0x32ab(%rip), %rsi      # 0xa2c1
leaq 0x329b(%rip), %rax      # 0xa2b8
cmpl $0x1, %ecx
cmovlq %rax, %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsd (%rax,%rcx,8), %xmm0
movb $0x1, %al
callq 0x1170
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x1150
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x7002
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movl %eax, -0x58(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x18(%rcx), %eax
jae 0x70a6
leaq 0x323f(%rip), %rax      # 0xa2df
movq %rax, -0x68(%rbp)
jmp 0x70cf
movl -0x14(%rbp), %edx
movq -0x8(%rbp), %rax
movl 0x18(%rax), %esi
movq -0x8(%rbp), %rax
addl 0x1c(%rax), %esi
leaq 0x322e(%rip), %rax      # 0xa2ec
leaq 0x3220(%rip), %rcx      # 0xa2e5
cmpl %esi, %edx
cmovbq %rcx, %rax
movq %rax, -0x68(%rbp)
movl -0x58(%rbp), %edx
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x3c(%rbp), %rsi
movq (%rax,%rsi,8), %rax
movslq -0x40(%rbp), %rsi
imulq $0x18, %rsi, %rsi
addq %rsi, %rax
movzbl 0x10(%rax), %r8d
leaq -0x30(%rbp), %r9
leaq 0x31c3(%rip), %rsi      # 0xa2c8
movb $0x0, %al
callq 0x10c0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x6fce
movl $0xffffffff, -0x3c(%rbp) # imm = 0xFFFFFFFF
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x20(%rcx), %eax
jae 0x726a
movl -0x14(%rbp), %eax
andl $0x3ff, %eax            # imm = 0x3FF
movl %eax, -0x40(%rbp)
cmpl $0x0, -0x40(%rbp)
jne 0x7152
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
movb $0x0, -0x49(%rbp)
movl $0x0, -0x18(%rbp)
cmpl $0x1, -0x18(%rbp)
jge 0x71c3
leaq -0x52(%rbp), %rdi
movl -0x18(%rbp), %ecx
leaq 0x318b(%rip), %rsi      # 0xa2fc
leaq 0x317b(%rip), %rax      # 0xa2f3
cmpl $0x0, %ecx
cmovlq %rax, %rsi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
movsd 0x10(%rax,%rcx,8), %xmm0
movb $0x1, %al
callq 0x1170
leaq -0x49(%rbp), %rdi
leaq -0x52(%rbp), %rsi
callq 0x1150
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x715d
movq -0x10(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movl %eax, %edx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movslq -0x40(%rbp), %rcx
shlq $0x5, %rcx
addq %rcx, %rax
movzbl 0x18(%rax), %ecx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x3c(%rbp), %rsi
movq (%rax,%rsi,8), %rax
movslq -0x40(%rbp), %rsi
shlq $0x5, %rsi
addq %rsi, %rax
movq (%rax), %rax
movl %eax, %r8d
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movslq -0x3c(%rbp), %rsi
movq (%rax,%rsi,8), %rax
movslq -0x40(%rbp), %rsi
shlq $0x5, %rsi
addq %rsi, %rax
movq 0x8(%rax), %rax
movl %eax, %r9d
leaq -0x49(%rbp), %rax
leaq 0x30b2(%rip), %rsi      # 0xa303
movq %rax, (%rsp)
movb $0x0, %al
callq 0x10c0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x7128
addq $0x70, %rsp
popq %rbp
retq