// File: tewalds[P]morat/havannah/lbdist.h
// Function: Morat::Havannah::LBDists::init_player(bool, Morat::Side)
void init_player(bool crossvcs, Side player) {
		int e = board->lines() - 1;
		int m = e / 2;

		init(0, 0, 0, player, 3); flood(0, player, crossvcs); //corner 0
		init(m, 0, 1, player, 4); flood(1, player, crossvcs); //corner 1
		init(e, m, 2, player, 5); flood(2, player, crossvcs); //corner 2
		init(e, e, 3, player, 0); flood(3, player, crossvcs); //corner 3
		init(m, e, 4, player, 1); flood(4, player, crossvcs); //corner 4
		init(0, m, 5, player, 2); flood(5, player, crossvcs); //corner 5

		for(int x = 1; x < m; x++)   { init(x,   0, 6,  player, 3+(x==1));   } flood(6,  player, crossvcs); //edge 0
		for(int y = 1; y < m; y++)   { init(m+y, y, 7,  player, 4+(y==1));   } flood(7,  player, crossvcs); //edge 1
		for(int y = m+1; y < e; y++) { init(e,   y, 8,  player, 5+(y==m+1)); } flood(8,  player, crossvcs); //edge 2
		for(int x = m+1; x < e; x++) { init(x,   e, 9,  player, 0+(x==e-1)); } flood(9,  player, crossvcs); //edge 3
		for(int x = 1; x < m; x++)   { init(x, m+x, 10, player, 1+(x==m-1)); } flood(10, player, crossvcs); //edge 4
		for(int y = 1; y < m; y++)   { init(0,   y, 11, player, 2+(y==m-1)); } flood(11, player, crossvcs); //edge 5
	}

// Assembly:
subq $0x68, %rsp
movb %dl, %cl
movb %sil, %al
movb %cl, 0x67(%rsp)
movq %rdi, 0x58(%rsp)
andb $0x1, %al
movb %al, 0x57(%rsp)
movq 0x58(%rsp), %rax
movq %rax, 0x8(%rsp)
movq 0xcb28(%rax), %rdi
callq 0x20490
movq 0x8(%rsp), %rdi
subl $0x1, %eax
movl %eax, 0x50(%rsp)
movl 0x50(%rsp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, 0x4c(%rsp)
movb 0x67(%rsp), %al
movb %al, 0x4b(%rsp)
xorl %ecx, %ecx
movl $0x3, %r9d
movl %ecx, %esi
movl %ecx, %edx
movzbl 0x4b(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x4a(%rsp)
movb 0x57(%rsp), %al
xorl %esi, %esi
andb $0x1, %al
movzbl 0x4a(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movq 0x8(%rsp), %rdi
movl 0x4c(%rsp), %esi
movb 0x67(%rsp), %al
movb %al, 0x49(%rsp)
xorl %edx, %edx
movl $0x1, %ecx
movl $0x4, %r9d
movzbl 0x49(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x48(%rsp)
movb 0x57(%rsp), %al
movl $0x1, %esi
andb $0x1, %al
movzbl 0x48(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movq 0x8(%rsp), %rdi
movl 0x50(%rsp), %esi
movl 0x4c(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x47(%rsp)
movl $0x2, %ecx
movl $0x5, %r9d
movzbl 0x47(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x46(%rsp)
movb 0x57(%rsp), %al
movl $0x2, %esi
andb $0x1, %al
movzbl 0x46(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movq 0x8(%rsp), %rdi
movl 0x50(%rsp), %esi
movl 0x50(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x45(%rsp)
movl $0x3, %ecx
xorl %r9d, %r9d
movzbl 0x45(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x44(%rsp)
movb 0x57(%rsp), %al
movl $0x3, %esi
andb $0x1, %al
movzbl 0x44(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movq 0x8(%rsp), %rdi
movl 0x4c(%rsp), %esi
movl 0x50(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x43(%rsp)
movl $0x4, %ecx
movl $0x1, %r9d
movzbl 0x43(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x42(%rsp)
movb 0x57(%rsp), %al
movl $0x4, %esi
andb $0x1, %al
movzbl 0x42(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movq 0x8(%rsp), %rdi
movl 0x4c(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x41(%rsp)
xorl %esi, %esi
movl $0x5, %ecx
movl $0x2, %r9d
movzbl 0x41(%rsp), %r8d
callq 0x2c210
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x40(%rsp)
movb 0x57(%rsp), %al
movl $0x5, %esi
andb $0x1, %al
movzbl 0x40(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl $0x1, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
cmpl 0x4c(%rsp), %eax
jge 0x2bf48
movq 0x8(%rsp), %rdi
movl 0x3c(%rsp), %esi
movb 0x67(%rsp), %al
movb %al, 0x3b(%rsp)
cmpl $0x1, 0x3c(%rsp)
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x3, %r9d
xorl %edx, %edx
movl $0x6, %ecx
movzbl 0x3b(%rsp), %r8d
callq 0x2c210
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x2befc
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x3a(%rsp)
movb 0x57(%rsp), %al
movl $0x6, %esi
andb $0x1, %al
movzbl 0x3a(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl $0x1, 0x34(%rsp)
movl 0x34(%rsp), %eax
cmpl 0x4c(%rsp), %eax
jge 0x2bfc7
movq 0x8(%rsp), %rdi
movl 0x4c(%rsp), %esi
addl 0x34(%rsp), %esi
movl 0x34(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x33(%rsp)
cmpl $0x1, 0x34(%rsp)
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x4, %r9d
movl $0x7, %ecx
movzbl 0x33(%rsp), %r8d
callq 0x2c210
movl 0x34(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x34(%rsp)
jmp 0x2bf75
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x32(%rsp)
movb 0x57(%rsp), %al
movl $0x7, %esi
andb $0x1, %al
movzbl 0x32(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl 0x4c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
movl 0x2c(%rsp), %eax
cmpl 0x50(%rsp), %eax
jge 0x2c04d
movq 0x8(%rsp), %rdi
movl 0x50(%rsp), %esi
movl 0x2c(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x2b(%rsp)
movl 0x2c(%rsp), %eax
movl 0x4c(%rsp), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x5, %r9d
movl $0x8, %ecx
movzbl 0x2b(%rsp), %r8d
callq 0x2c210
movl 0x2c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x2c(%rsp)
jmp 0x2bff7
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x2a(%rsp)
movb 0x57(%rsp), %al
movl $0x8, %esi
andb $0x1, %al
movzbl 0x2a(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl 0x4c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %eax
cmpl 0x50(%rsp), %eax
jge 0x2c0d3
movq 0x8(%rsp), %rdi
movl 0x24(%rsp), %esi
movl 0x50(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x23(%rsp)
movl 0x24(%rsp), %eax
movl 0x50(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x0, %r9d
movl $0x9, %ecx
movzbl 0x23(%rsp), %r8d
callq 0x2c210
movl 0x24(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
jmp 0x2c07d
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x22(%rsp)
movb 0x57(%rsp), %al
movl $0x9, %esi
andb $0x1, %al
movzbl 0x22(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl $0x1, 0x1c(%rsp)
movl 0x1c(%rsp), %eax
cmpl 0x4c(%rsp), %eax
jge 0x2c15a
movq 0x8(%rsp), %rdi
movl 0x1c(%rsp), %esi
movl 0x4c(%rsp), %edx
addl 0x1c(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x1b(%rsp)
movl 0x1c(%rsp), %eax
movl 0x4c(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x1, %r9d
movl $0xa, %ecx
movzbl 0x1b(%rsp), %r8d
callq 0x2c210
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x2c100
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x1a(%rsp)
movb 0x57(%rsp), %al
movl $0xa, %esi
andb $0x1, %al
movzbl 0x1a(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
movl $0x1, 0x14(%rsp)
movl 0x14(%rsp), %eax
cmpl 0x4c(%rsp), %eax
jge 0x2c1db
movq 0x8(%rsp), %rdi
movl 0x14(%rsp), %edx
movb 0x67(%rsp), %al
movb %al, 0x13(%rsp)
movl 0x14(%rsp), %eax
movl 0x4c(%rsp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movzbl %al, %r9d
addl $0x2, %r9d
xorl %esi, %esi
movl $0xb, %ecx
movzbl 0x13(%rsp), %r8d
callq 0x2c210
movl 0x14(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x14(%rsp)
jmp 0x2c187
movq 0x8(%rsp), %rdi
movb 0x67(%rsp), %al
movb %al, 0x12(%rsp)
movb 0x57(%rsp), %al
movl $0xb, %esi
andb $0x1, %al
movzbl 0x12(%rsp), %edx
movzbl %al, %ecx
callq 0x2c360
addq $0x68, %rsp
retq
nopw %cs:(%rax,%rax)
nop