// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Trainer.cpp
// Function: Trainer::Parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, 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>>>> const&)
void Trainer::Parse(const string &section, const vector<string> &content) {
  Unum num;
  double x, y, vx, vy, dir;
  int playerType;
  if (section == "Scene") {
    sscanf(content.at(0).c_str(), "%d %s", &mTrainTime, mTrainRcg);
    mHaveRcg = ReadRcgFile();
  } else if (section == "NeedOpponent") {
    Unum t;
    stringstream sin;
    sin.str(*content.begin());
    while (sin >> t) {
      mNeedOpponentList.push_back(t);
    }
  } else if (section == "Converse") {
    ReadConverseConf(content.at(0));
  } else if (section == "InitialTime") {
    sscanf(content.at(0).c_str(), "%d", &mInitialTime);
  } else if (!mHaveRcg) {
    mInitialTime = 0;
    if (section == "BallData") {
      sscanf(content.at(0).c_str(), "%lf %lf %lf %lf", &x, &y, &vx, &vy);
      mBallStateList.push_back(
          pair<Vector, Vector>(Vector(x, y), Vector(vx, vy)));
    } else if (section == "TeammateData") {
      vector<PlayerState> ps;
      for (vector<string>::const_iterator it = content.begin();
           it != content.end(); it++) {
        sscanf(it->c_str(), "%d %d %lf %lf %lf %lf %lf", &num, &playerType, &x,
               &y, &vx, &vy, &dir);
        ps.push_back(
            PlayerState(num, Vector(x, y), Vector(vx, vy), dir, playerType));
      }
      mPlayerStatesList.push_back(ps);
    } else if (section == "OpponentData") {
      vector<PlayerState> ps;
      for (vector<string>::const_iterator it = content.begin();
           it != content.end(); it++) {
        sscanf(it->c_str(), "%d %d %lf %lf %lf %lf %lf", &num, &playerType, &x,
               &y, &vx, &vy, &dir);
        ps.push_back(
            PlayerState(-num, Vector(x, y), Vector(vx, vy), dir, playerType));
      }
      mPlayerStatesList.push_back(ps);
    }
  } else if (section == "EndCondition") {
    std::string tmp; //把几行变成一行，便于控制结构

    for (vector<string>::const_iterator it = content.begin();
         it != content.end(); it++) {
      tmp.append(it->c_str());
    }
    tmp.append("\0");
    ParseCondition(tmp);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x2fc25(%rip), %rsi     # 0xc50c2
callq 0x36110
testb $0x1, %al
jne 0x954a8
jmp 0x95506
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x98810
movq %rax, %rdi
callq 0xa240
movq -0x380(%rbp), %rcx
movq %rax, %rdi
movq %rcx, %rdx
addq $0x98, %rdx
addq $0xa0, %rcx
leaq 0x2fbe9(%rip), %rsi     # 0xc50c8
movb $0x0, %al
callq 0xa580
movq -0x380(%rbp), %rdi
callq 0x95be0
movb %al, %cl
movq -0x380(%rbp), %rax
andb $0x1, %cl
movb %cl, 0x32(%rax)
jmp 0x95bc6
movq -0x10(%rbp), %rdi
leaq 0x2fbbd(%rip), %rsi     # 0xc50ce
callq 0x36110
testb $0x1, %al
jne 0x9551f
jmp 0x955f3
leaq -0x1d8(%rbp), %rdi
movq %rdi, -0x388(%rbp)
callq 0xa3e0
movq -0x18(%rbp), %rdi
callq 0x98850
movq %rax, -0x1e0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x98880
movq -0x388(%rbp), %rdi
movq %rax, %rsi
callq 0xa6c0
jmp 0x9555f
jmp 0x95561
leaq -0x1d8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa360
movq %rax, -0x390(%rbp)
jmp 0x9557a
movq -0x390(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x391(%rbp)
jmp 0x95598
movb -0x391(%rbp), %al
testb $0x1, %al
jne 0x955a4
jmp 0x955e2
movq -0x380(%rbp), %rdi
addq $0x140, %rdi            # imm = 0x140
leaq -0x50(%rbp), %rsi
callq 0x81810
jmp 0x955bd
jmp 0x95561
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0xa410
jmp 0x95bcf
leaq -0x1d8(%rbp), %rdi
callq 0xa410
jmp 0x95bc4
movq -0x10(%rbp), %rdi
leaq 0x2fadd(%rip), %rsi     # 0xc50db
callq 0x36110
testb $0x1, %al
jne 0x95609
jmp 0x9562a
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x98810
movq -0x380(%rbp), %rdi
movq %rax, %rsi
callq 0x969a0
jmp 0x95bc2
movq -0x10(%rbp), %rdi
leaq 0x2faaf(%rip), %rsi     # 0xc50e4
callq 0x36110
testb $0x1, %al
jne 0x95640
jmp 0x95679
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x98810
movq %rax, %rdi
callq 0xa240
movq -0x380(%rbp), %rdx
movq %rax, %rdi
addq $0x138, %rdx            # imm = 0x138
leaq 0x2d47a(%rip), %rsi     # 0xc2ae7
movb $0x0, %al
callq 0xa580
jmp 0x95bc0
movq -0x380(%rbp), %rax
testb $0x1, 0x32(%rax)
jne 0x95aca
movq -0x380(%rbp), %rax
movl $0x0, 0x138(%rax)
movq -0x10(%rbp), %rdi
leaq 0x2fa4a(%rip), %rsi     # 0xc50f0
callq 0x36110
testb $0x1, %al
jne 0x956b4
jmp 0x95758
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x98810
movq %rax, %rdi
callq 0xa240
movq %rax, %rdi
leaq 0x2fa3d(%rip), %rsi     # 0xc5110
leaq -0x28(%rbp), %rdx
leaq -0x30(%rbp), %rcx
leaq -0x38(%rbp), %r8
leaq -0x40(%rbp), %r9
movb $0x0, %al
callq 0xa580
movq -0x380(%rbp), %rax
addq $0x160, %rax            # imm = 0x160
movq %rax, -0x3a0(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x11a10
leaq -0x230(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x11a10
leaq -0x210(%rbp), %rdi
leaq -0x220(%rbp), %rsi
leaq -0x230(%rbp), %rdx
callq 0x988d0
movq -0x3a0(%rbp), %rdi
leaq -0x210(%rbp), %rsi
callq 0x988a0
jmp 0x95ac5
movq -0x10(%rbp), %rdi
leaq 0x2f996(%rip), %rsi     # 0xc50f9
callq 0x36110
testb $0x1, %al
jne 0x95771
jmp 0x9590e
leaq -0x248(%rbp), %rdi
callq 0x981a0
movq -0x18(%rbp), %rdi
callq 0x98850
movq %rax, -0x250(%rbp)
movq -0x18(%rbp), %rdi
callq 0x98950
movq %rax, -0x258(%rbp)
leaq -0x250(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x98910
testb $0x1, %al
jne 0x957b9
jmp 0x958e1
leaq -0x250(%rbp), %rdi
callq 0x98980
movq %rax, %rdi
callq 0xa240
movq %rax, %rdi
movq %rsp, %rax
leaq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq -0x40(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x38(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x2f915(%rip), %rsi     # 0xc5106
xorl %eax, %eax
leaq -0x1c(%rbp), %rdx
leaq -0x4c(%rbp), %rcx
leaq -0x28(%rbp), %r8
movq %r8, -0x3b8(%rbp)
leaq -0x30(%rbp), %r9
movq %r9, -0x3b0(%rbp)
callq 0xa580
movq -0x3b8(%rbp), %rsi
movq -0x3b0(%rbp), %rdx
movl -0x1c(%rbp), %eax
movl %eax, -0x3a4(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x11a10
jmp 0x9583b
leaq -0x2b0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x11a10
jmp 0x95851
movl -0x3a4(%rbp), %esi
movsd -0x48(%rbp), %xmm4
movl -0x4c(%rbp), %edx
movsd -0x2a0(%rbp), %xmm0
movsd -0x298(%rbp), %xmm1
movsd -0x2b0(%rbp), %xmm2
movsd -0x2a8(%rbp), %xmm3
leaq -0x290(%rbp), %rdi
callq 0x92be0
jmp 0x9588d
leaq -0x248(%rbp), %rdi
leaq -0x290(%rbp), %rsi
callq 0x982e0
jmp 0x958a2
jmp 0x958a4
leaq -0x250(%rbp), %rdi
xorl %esi, %esi
callq 0x989a0
movq %rax, -0x2b8(%rbp)
jmp 0x9578d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x98420
jmp 0x95bcf
movq -0x380(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
leaq -0x248(%rbp), %rsi
callq 0x98340
jmp 0x958fd
leaq -0x248(%rbp), %rdi
callq 0x98420
jmp 0x95ac3
movq -0x10(%rbp), %rdi
leaq 0x2f807(%rip), %rsi     # 0xc5120
callq 0x36110
testb $0x1, %al
jne 0x95927
jmp 0x95ac1
leaq -0x2d0(%rbp), %rdi
callq 0x981a0
movq -0x18(%rbp), %rdi
callq 0x98850
movq %rax, -0x2d8(%rbp)
movq -0x18(%rbp), %rdi
callq 0x98950
movq %rax, -0x2e0(%rbp)
leaq -0x2d8(%rbp), %rdi
leaq -0x2e0(%rbp), %rsi
callq 0x98910
testb $0x1, %al
jne 0x9596f
jmp 0x95a99
leaq -0x2d8(%rbp), %rdi
callq 0x98980
movq %rax, %rdi
callq 0xa240
movq %rax, %rdi
movq %rsp, %rax
leaq -0x48(%rbp), %rcx
movq %rcx, 0x10(%rax)
leaq -0x40(%rbp), %rcx
movq %rcx, 0x8(%rax)
leaq -0x38(%rbp), %rcx
movq %rcx, (%rax)
leaq 0x2f75f(%rip), %rsi     # 0xc5106
xorl %eax, %eax
leaq -0x1c(%rbp), %rdx
leaq -0x4c(%rbp), %rcx
leaq -0x28(%rbp), %r8
movq %r8, -0x3d0(%rbp)
leaq -0x30(%rbp), %r9
movq %r9, -0x3c8(%rbp)
callq 0xa580
movq -0x3d0(%rbp), %rsi
movq -0x3c8(%rbp), %rdx
movl -0x1c(%rbp), %eax
negl %eax
movl %eax, -0x3bc(%rbp)
leaq -0x328(%rbp), %rdi
callq 0x11a10
jmp 0x959f3
leaq -0x338(%rbp), %rdi
leaq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdx
callq 0x11a10
jmp 0x95a09
movl -0x3bc(%rbp), %esi
movsd -0x48(%rbp), %xmm4
movl -0x4c(%rbp), %edx
movsd -0x328(%rbp), %xmm0
movsd -0x320(%rbp), %xmm1
movsd -0x338(%rbp), %xmm2
movsd -0x330(%rbp), %xmm3
leaq -0x318(%rbp), %rdi
callq 0x92be0
jmp 0x95a45
leaq -0x2d0(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x982e0
jmp 0x95a5a
jmp 0x95a5c
leaq -0x2d8(%rbp), %rdi
xorl %esi, %esi
callq 0x989a0
movq %rax, -0x340(%rbp)
jmp 0x95943
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x98420
jmp 0x95bcf
movq -0x380(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
leaq -0x2d0(%rbp), %rsi
callq 0x98340
jmp 0x95ab5
leaq -0x2d0(%rbp), %rdi
callq 0x98420
jmp 0x95ac3
jmp 0x95ac5
jmp 0x95bbe
movq -0x10(%rbp), %rdi
leaq 0x2f658(%rip), %rsi     # 0xc512d
callq 0x36110
testb $0x1, %al
jne 0x95ae3
jmp 0x95bbc
leaq -0x360(%rbp), %rdi
callq 0xa820
movq -0x18(%rbp), %rdi
callq 0x98850
movq %rax, -0x368(%rbp)
movq -0x18(%rbp), %rdi
callq 0x98950
movq %rax, -0x370(%rbp)
leaq -0x368(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x98910
testb $0x1, %al
jne 0x95b28
jmp 0x95b86
leaq -0x368(%rbp), %rdi
callq 0x98980
movq %rax, %rdi
callq 0xa240
movq %rax, %rsi
leaq -0x360(%rbp), %rdi
callq 0xab70
jmp 0x95b4d
jmp 0x95b4f
leaq -0x368(%rbp), %rdi
xorl %esi, %esi
callq 0x989a0
movq %rax, -0x378(%rbp)
jmp 0x95aff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x360(%rbp), %rdi
callq 0xa370
jmp 0x95bcf
leaq 0x2f2f3(%rip), %rsi     # 0xc4e80
leaq -0x360(%rbp), %rdi
callq 0xab70
jmp 0x95b9b
movq -0x380(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x96b20
jmp 0x95bb0
leaq -0x360(%rbp), %rdi
callq 0xa370
jmp 0x95bbe
jmp 0x95bc0
jmp 0x95bc2
jmp 0x95bc4
jmp 0x95bc6
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
movq -0x1e8(%rbp), %rdi
callq 0xaa60
nopl (%rax,%rax)