// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Formation.cpp
// Function: TeammateFormation::InitialFormation(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&)
void TeammateFormation::InitialFormation(std::vector<std::string> &config) {
  vector<string>::iterator conf_iter(config.begin());
  stringstream sin;
  for (int i(FORMATION_LINE_NUM); i >= 0 && conf_iter != config.end();
       --i, ++conf_iter) {
    sin.str(*conf_iter);
    sin.clear();
    int j(0);
    for (; sin >> mPos2Index[i][j]; ++j) {
      mPlayerRole[mPos2Index[i][j]].mIndexX = i;
      mPlayerRole[mPos2Index[i][j]].mIndexY = j + 1;
    }
    mLineArrange[i] = j;
  }
  if (conf_iter != config.end()) {
    sin.str(*conf_iter);
    sin.clear();
  }
  for (int i(0); i < FORMATION_LINE_NUM - 1 && sin >> mHInterval[i]; ++i)
    ;
  if (conf_iter != config.end()) {
    sin.str(*(++conf_iter));
    sin.clear();
  }
  for (int i(1); i <= FORMATION_LINE_NUM && sin >> mVInterval[i]; ++i)
    ;

  if (conf_iter != config.end()) {
    sin.str(*(++conf_iter));
    sin.clear();
  }
  sin >> m_FORMATION_MAX_X;
  if (conf_iter != config.end()) {
    sin.str(*(++conf_iter));
    sin.clear();
  }
  sin >> m_FORMATION_MAX_Y;

  SetTeammateRole();
  SetHInterval(mHInterval[0], mHInterval[1]);
  SetVInterval(mVInterval[1], mVInterval[2], mVInterval[3]);

  if (conf_iter != config.end()) {
    sin.str(*(++conf_iter));
    sin.clear();
  }
  for (int i(1), j; i <= TEAMSIZE && sin >> j; ++i) {
    mIndex2Unum[i] = j;
    mUnum2Index[j] = i;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3c0, %rsp            # imm = 0x3C0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x288(%rbp)
movq -0x10(%rbp), %rdi
callq 0x40180
movq %rax, -0x18(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0xa3e0
movl $0x3, -0x1a4(%rbp)
xorl %eax, %eax
cmpl $0x0, -0x1a4(%rbp)
movb %al, -0x289(%rbp)
jl 0x399f8
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x1b0(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x401b0
movb %al, -0x289(%rbp)
movb -0x289(%rbp), %al
testb $0x1, %al
jne 0x39a07
jmp 0x39cc7
leaq -0x18(%rbp), %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x39a21
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x39a3d
movl $0x0, -0x1c0(%rbp)
movq -0x288(%rbp), %rdi
addq $0x270, %rdi            # imm = 0x270
movslq -0x1a4(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x1c8(%rbp), %rsi
callq 0x3faf0
movq %rax, -0x298(%rbp)
jmp 0x39a78
movq -0x298(%rbp), %rdi
movslq -0x1c0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
leaq -0x1d0(%rbp), %rsi
callq 0x3fb10
movq %rax, -0x2a0(%rbp)
jmp 0x39aa2
movq -0x2a0(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa360
movq %rax, -0x2a8(%rbp)
jmp 0x39abe
movq -0x2a8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x2a9(%rbp)
jmp 0x39adc
movb -0x2a9(%rbp), %al
testb $0x1, %al
jne 0x39aeb
jmp 0x39c61
movq -0x288(%rbp), %rdi
movslq -0x1a4(%rbp), %rax
movl %eax, %ecx
movl %ecx, -0x2c4(%rbp)
movq %rdi, %rcx
addq $0x60, %rcx
movq %rcx, -0x2c0(%rbp)
addq $0x270, %rdi            # imm = 0x270
movq %rax, -0x1d8(%rbp)
leaq -0x1d8(%rbp), %rsi
callq 0x3faf0
movq %rax, -0x2b8(%rbp)
jmp 0x39b32
movq -0x2b8(%rbp), %rdi
movslq -0x1c0(%rbp), %rax
movq %rax, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rsi
callq 0x3fb10
movq %rax, -0x2d0(%rbp)
jmp 0x39b5c
movq -0x2d0(%rbp), %rsi
movq -0x2c0(%rbp), %rdi
callq 0x40240
movq %rax, -0x2d8(%rbp)
jmp 0x39b78
movq -0x288(%rbp), %rdi
movq -0x2d8(%rbp), %rax
movl -0x2c4(%rbp), %ecx
movl %ecx, (%rax)
movl -0x1c0(%rbp), %eax
incl %eax
movl %eax, -0x2ec(%rbp)
movq %rdi, %rax
addq $0x60, %rax
movq %rax, -0x2e8(%rbp)
addq $0x270, %rdi            # imm = 0x270
movslq -0x1a4(%rbp), %rax
movq %rax, -0x1e8(%rbp)
leaq -0x1e8(%rbp), %rsi
callq 0x3faf0
movq %rax, -0x2e0(%rbp)
jmp 0x39bd4
movq -0x2e0(%rbp), %rdi
movslq -0x1c0(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x1f0(%rbp), %rsi
callq 0x3fb10
movq %rax, -0x2f8(%rbp)
jmp 0x39bfe
movq -0x2f8(%rbp), %rsi
movq -0x2e8(%rbp), %rdi
callq 0x40240
movq %rax, -0x300(%rbp)
jmp 0x39c1a
movq -0x300(%rbp), %rax
movl -0x2ec(%rbp), %ecx
movl %ecx, 0x4(%rax)
movl -0x1c0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c0(%rbp)
jmp 0x39a47
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1b8(%rbp)
movl %eax, -0x1bc(%rbp)
leaq -0x1a0(%rbp), %rdi
callq 0xa410
jmp 0x3a2f6
movq -0x288(%rbp), %rdi
movl -0x1c0(%rbp), %eax
movl %eax, -0x30c(%rbp)
addq $0x40, %rdi
movslq -0x1a4(%rbp), %rax
movq %rax, -0x1f8(%rbp)
leaq -0x1f8(%rbp), %rsi
callq 0x40280
movq %rax, -0x308(%rbp)
jmp 0x39c9b
movq -0x308(%rbp), %rax
movl -0x30c(%rbp), %ecx
movl %ecx, (%rax)
movl -0x1a4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1a4(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x402a0
jmp 0x399c1
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x200(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x401b0
testb $0x1, %al
jne 0x39ced
jmp 0x39d25
leaq -0x18(%rbp), %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x39d07
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x39d23
jmp 0x39d25
movl $0x0, -0x204(%rbp)
xorl %eax, %eax
cmpl $0x2, -0x204(%rbp)
movb %al, -0x30d(%rbp)
jge 0x39db6
movq -0x288(%rbp), %rdi
addq $0x10, %rdi
movslq -0x204(%rbp), %rax
movq %rax, -0x210(%rbp)
leaq -0x210(%rbp), %rsi
callq 0x402c0
movq %rax, -0x318(%rbp)
jmp 0x39d6e
movq -0x318(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa4a0
movq %rax, -0x320(%rbp)
jmp 0x39d8a
movq -0x320(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x321(%rbp)
jmp 0x39da8
movb -0x321(%rbp), %al
movb %al, -0x30d(%rbp)
jmp 0x39db6
movb -0x30d(%rbp), %al
testb $0x1, %al
jne 0x39dc2
jmp 0x39dd8
jmp 0x39dc4
movl -0x204(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x204(%rbp)
jmp 0x39d2f
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x218(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x401b0
testb $0x1, %al
jne 0x39dfe
jmp 0x39e3e
leaq -0x18(%rbp), %rdi
callq 0x402a0
movq %rax, %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x39e20
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x39e3c
jmp 0x39e3e
movl $0x1, -0x21c(%rbp)
xorl %eax, %eax
cmpl $0x3, -0x21c(%rbp)
movb %al, -0x322(%rbp)
jg 0x39ecf
movq -0x288(%rbp), %rdi
addq $0x20, %rdi
movslq -0x21c(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x228(%rbp), %rsi
callq 0x402e0
movq %rax, -0x330(%rbp)
jmp 0x39e87
movq -0x330(%rbp), %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa4a0
movq %rax, -0x338(%rbp)
jmp 0x39ea3
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x339(%rbp)
jmp 0x39ec1
movb -0x339(%rbp), %al
movb %al, -0x322(%rbp)
jmp 0x39ecf
movb -0x322(%rbp), %al
testb $0x1, %al
jne 0x39edb
jmp 0x39ef1
jmp 0x39edd
movl -0x21c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x21c(%rbp)
jmp 0x39e48
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x230(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x401b0
testb $0x1, %al
jne 0x39f17
jmp 0x39f57
leaq -0x18(%rbp), %rdi
callq 0x402a0
movq %rax, %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x39f39
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x39f55
jmp 0x39f57
movq -0x288(%rbp), %rsi
addq $0xc90, %rsi            # imm = 0xC90
leaq -0x1a0(%rbp), %rdi
callq 0xa4a0
jmp 0x39f73
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x238(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x238(%rbp), %rsi
callq 0x401b0
testb $0x1, %al
jne 0x39f99
jmp 0x39fd9
leaq -0x18(%rbp), %rdi
callq 0x402a0
movq %rax, %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x39fbb
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x39fd7
jmp 0x39fd9
movq -0x288(%rbp), %rsi
addq $0xc98, %rsi            # imm = 0xC98
leaq -0x1a0(%rbp), %rdi
callq 0xa4a0
jmp 0x39ff5
movq -0x288(%rbp), %rdi
callq 0x3a3d0
jmp 0x3a003
movq -0x288(%rbp), %rdi
addq $0x10, %rdi
movq $0x0, -0x240(%rbp)
leaq -0x240(%rbp), %rsi
callq 0x402c0
movq %rax, -0x348(%rbp)
jmp 0x3a02e
movq -0x288(%rbp), %rdi
movq -0x348(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x358(%rbp)
addq $0x10, %rdi
movq $0x1, -0x248(%rbp)
leaq -0x248(%rbp), %rsi
callq 0x402c0
movq %rax, -0x350(%rbp)
jmp 0x3a06c
movsd -0x358(%rbp), %xmm0
movq -0x288(%rbp), %rdi
movq -0x350(%rbp), %rax
movsd (%rax), %xmm1
callq 0x3a660
jmp 0x3a08d
movq -0x288(%rbp), %rdi
addq $0x20, %rdi
movq $0x1, -0x250(%rbp)
leaq -0x250(%rbp), %rsi
callq 0x402e0
movq %rax, -0x360(%rbp)
jmp 0x3a0b8
movq -0x288(%rbp), %rdi
movq -0x360(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x370(%rbp)
addq $0x20, %rdi
movq $0x2, -0x258(%rbp)
leaq -0x258(%rbp), %rsi
callq 0x402e0
movq %rax, -0x368(%rbp)
jmp 0x3a0f6
movq -0x288(%rbp), %rdi
movq -0x368(%rbp), %rax
movsd (%rax), %xmm0
movsd %xmm0, -0x380(%rbp)
addq $0x20, %rdi
movq $0x3, -0x260(%rbp)
leaq -0x260(%rbp), %rsi
callq 0x402e0
movq %rax, -0x378(%rbp)
jmp 0x3a134
movsd -0x380(%rbp), %xmm1
movsd -0x370(%rbp), %xmm0
movq -0x288(%rbp), %rdi
movq -0x378(%rbp), %rax
movsd (%rax), %xmm2
callq 0x3b310
jmp 0x3a15d
movq -0x10(%rbp), %rdi
callq 0x401f0
movq %rax, -0x268(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x268(%rbp), %rsi
callq 0x401b0
testb $0x1, %al
jne 0x3a183
jmp 0x3a1c3
leaq -0x18(%rbp), %rdi
callq 0x402a0
movq %rax, %rdi
callq 0x40220
movq %rax, %rsi
leaq -0x1a0(%rbp), %rdi
callq 0xa6c0
jmp 0x3a1a5
movq -0x1a0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1a0(%rbp,%rax), %rdi
xorl %esi, %esi
callq 0xaa10
jmp 0x3a1c1
jmp 0x3a1c3
movl $0x1, -0x26c(%rbp)
xorl %eax, %eax
cmpl $0xb, -0x26c(%rbp)
movb %al, -0x381(%rbp)
jg 0x3a226
leaq -0x1a0(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0xa360
movq %rax, -0x390(%rbp)
jmp 0x3a1fa
movq -0x390(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x391(%rbp)
jmp 0x3a218
movb -0x391(%rbp), %al
movb %al, -0x381(%rbp)
jmp 0x3a226
movb -0x381(%rbp), %al
testb $0x1, %al
jne 0x3a235
jmp 0x3a2e1
movq -0x288(%rbp), %rdi
movl -0x270(%rbp), %eax
movl %eax, -0x3a4(%rbp)
addq $0x320, %rdi            # imm = 0x320
movslq -0x26c(%rbp), %rax
movq %rax, -0x278(%rbp)
leaq -0x278(%rbp), %rsi
callq 0x3fad0
movq %rax, -0x3a0(%rbp)
jmp 0x3a272
movq -0x288(%rbp), %rdi
movq -0x3a0(%rbp), %rax
movl -0x3a4(%rbp), %ecx
movl %ecx, (%rax)
movl -0x26c(%rbp), %eax
movl %eax, -0x3b4(%rbp)
addq $0x350, %rdi            # imm = 0x350
movslq -0x270(%rbp), %rax
movq %rax, -0x280(%rbp)
leaq -0x280(%rbp), %rsi
callq 0x3fad0
movq %rax, -0x3b0(%rbp)
jmp 0x3a2be
movq -0x3b0(%rbp), %rax
movl -0x3b4(%rbp), %ecx
movl %ecx, (%rax)
movl -0x26c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x26c(%rbp)
jmp 0x3a1cd
leaq -0x1a0(%rbp), %rdi
callq 0xa410
addq $0x3c0, %rsp            # imm = 0x3C0
popq %rbp
retq
movq -0x1b8(%rbp), %rdi
callq 0xaa60
nopw %cs:(%rax,%rax)