// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Formation.cpp
// Function: Formation::Instance::Instance()
Formation::Instance::Instance() : mpAgent(0) {
  mpTeammateFormationsImp[0] =
      new TeammateFormation(FT_Attack_Forward, "formations/433_Attack");
  mpTeammateFormationsImp[1] =
      new TeammateFormation(FT_Defend_Back, "formations/433_Defend");
  mpTeammateFormationsImp[2] =
      new TeammateFormation(FT_Attack_Forward, "formations/442_Attack");
  mpTeammateFormationsImp[3] =
      new TeammateFormation(FT_Defend_Back, "formations/442_Defend");
  SetTeammateFormations();

  mpOpponentFormationsImp[0] = new OpponentFormation(0, FT_Attack_Forward);
  mpOpponentFormationsImp[1] = new OpponentFormation(0, FT_Attack_Midfield);
  mpOpponentFormationsImp[2] = new OpponentFormation(0, FT_Defend_Midfield);
  mpOpponentFormationsImp[3] = new OpponentFormation(0, FT_Defend_Back);
  for (int i = 0; i < FT_Max; ++i)
    SetOpponentFormation(FormationType(i), mpOpponentFormationsImp[i]);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0x409d0
movq -0x78(%rbp), %rdi
addq $0x20, %rdi
callq 0x409e0
movq -0x78(%rbp), %rdi
addq $0x40, %rdi
callq 0x409d0
movq -0x78(%rbp), %rdi
addq $0x60, %rdi
callq 0x409e0
movq -0x78(%rbp), %rax
movq $0x0, 0x80(%rax)
movl $0xca8, %edi            # imm = 0xCA8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x70(%rbp)
leaq 0x83af8(%rip), %rdx     # 0xc2595
xorl %esi, %esi
callq 0x39300
jmp 0x3eaa6
movq -0x78(%rbp), %rdi
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rsi
callq 0x409f0
movq -0x70(%rbp), %rcx
movq %rcx, (%rax)
movl $0xca8, %edi            # imm = 0xCA8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x80(%rbp)
leaq 0x83ace(%rip), %rdx     # 0xc25ab
movl $0x3, %esi
callq 0x39300
jmp 0x3eae9
movq -0x78(%rbp), %rdi
movq $0x1, -0x28(%rbp)
leaq -0x28(%rbp), %rsi
callq 0x409f0
movq -0x80(%rbp), %rcx
movq %rcx, (%rax)
movl $0xca8, %edi            # imm = 0xCA8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x88(%rbp)
leaq 0x83a9e(%rip), %rdx     # 0xc25c1
xorl %esi, %esi
callq 0x39300
jmp 0x3eb2c
movq -0x78(%rbp), %rdi
movq $0x2, -0x30(%rbp)
leaq -0x30(%rbp), %rsi
callq 0x409f0
movq -0x88(%rbp), %rcx
movq %rcx, (%rax)
movl $0xca8, %edi            # imm = 0xCA8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x90(%rbp)
leaq 0x83a6e(%rip), %rdx     # 0xc25d7
movl $0x3, %esi
callq 0x39300
jmp 0x3eb75
movq -0x78(%rbp), %rdi
movq $0x3, -0x38(%rbp)
leaq -0x38(%rbp), %rsi
callq 0x409f0
movq -0x90(%rbp), %rcx
movq -0x78(%rbp), %rdi
movq %rcx, (%rax)
callq 0x3ee20
movl $0xcf8, %edi            # imm = 0xCF8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x98(%rbp)
xorl %edx, %edx
movl %edx, %esi
callq 0x3b950
jmp 0x3ebbf
movq -0x78(%rbp), %rdi
addq $0x20, %rdi
movq $0x0, -0x40(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x40a10
movq -0x98(%rbp), %rcx
movq %rcx, (%rax)
movl $0xcf8, %edi            # imm = 0xCF8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
xorl %esi, %esi
movl $0x1, %edx
callq 0x3b950
jmp 0x3ec07
movq -0x78(%rbp), %rdi
addq $0x20, %rdi
movq $0x1, -0x48(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x40a10
movq -0xa0(%rbp), %rcx
movq %rcx, (%rax)
movl $0xcf8, %edi            # imm = 0xCF8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
xorl %esi, %esi
movl $0x2, %edx
callq 0x3b950
jmp 0x3ec4f
movq -0x78(%rbp), %rdi
addq $0x20, %rdi
movq $0x2, -0x50(%rbp)
leaq -0x50(%rbp), %rsi
callq 0x40a10
movq -0xa8(%rbp), %rcx
movq %rcx, (%rax)
movl $0xcf8, %edi            # imm = 0xCF8
callq 0xa5c0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
xorl %esi, %esi
movl $0x3, %edx
callq 0x3b950
jmp 0x3ec97
movq -0x78(%rbp), %rdi
addq $0x20, %rdi
movq $0x3, -0x58(%rbp)
leaq -0x58(%rbp), %rsi
callq 0x40a10
movq -0xb0(%rbp), %rcx
movq %rcx, (%rax)
movl $0x0, -0x5c(%rbp)
cmpl $0x4, -0x5c(%rbp)
jge 0x3ee08
movq -0x78(%rbp), %rdi
movl -0x5c(%rbp), %eax
movl %eax, -0xb4(%rbp)
addq $0x20, %rdi
movslq -0x5c(%rbp), %rax
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x40a10
movq -0x78(%rbp), %rdi
movl -0xb4(%rbp), %esi
movq (%rax), %rdx
callq 0x40a30
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x3ecc1
movq -0x70(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xca8, %esi            # imm = 0xCA8
callq 0xa5e0
jmp 0x3ee11
movq -0x80(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xca8, %esi            # imm = 0xCA8
callq 0xa5e0
jmp 0x3ee11
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xca8, %esi            # imm = 0xCA8
callq 0xa5e0
jmp 0x3ee11
movq -0x90(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xca8, %esi            # imm = 0xCA8
callq 0xa5e0
jmp 0x3ee11
movq -0x98(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xcf8, %esi            # imm = 0xCF8
callq 0xa5e0
jmp 0x3ee11
movq -0xa0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xcf8, %esi            # imm = 0xCF8
callq 0xa5e0
jmp 0x3ee11
movq -0xa8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xcf8, %esi            # imm = 0xCF8
callq 0xa5e0
jmp 0x3ee11
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x10(%rbp)
movl %eax, -0x14(%rbp)
movl $0xcf8, %esi            # imm = 0xCF8
callq 0xa5e0
jmp 0x3ee11
addq $0xc0, %rsp
popq %rbp
retq
movq -0x10(%rbp), %rdi
callq 0xaa60
nopw (%rax,%rax)