// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Trainer.cpp
// Function: Trainer::ReadRcgFile()
bool Trainer::ReadRcgFile() {
  // TODO 读取之前的PlayMode
  string line;
  const char *buf = 0;
  ifstream fin(mTrainRcg);
  int time = 0, n_read = 0;

  const int begin_time = mTrainTime - mInitialTime;
  const int end_time = mTrainTime;

  ServerPlayMode server_playmode = SPM_PlayOn;

  while (1) {
    vector<PlayerState> ps;
    pair<Vector, Vector> bs;

    bool read = false;

    while (getline(fin, line)) {
      read = true;
      if (!line.compare(0, 5, "(show")) {
        if (sscanf(line.c_str(), "(show %d %n", &time, &n_read) != 1) {
          PRINT_ERROR("error time info:" << line);
          return false;
        }

        if (time >= begin_time) {
          buf = line.c_str();
          buf += n_read;
          break;
        }
      } else if (line.compare(0, 10, "(playmode ") == 0) {
        int time = 0;
        char pm_string[32];

        if (std::sscanf(line.c_str(), " (playmode %d %31[^)] ) ", &time,
                        pm_string) != 2) {
          std::cerr << "error: "
                    << "Illegal playmode line. \"" << line << "\"" << std::endl;
          return false;
        }

        server_playmode =
            ServerPlayModeMap::instance().GetServerPlayMode(pm_string);
      }
    }

    if (!read) {
      break;
    }

    mServerPlayModeList.push_back(server_playmode);

    float bx, by, bvx, bvy;

    if (buf == 0) //没有找到对应周期
    {
      return false;
    }

    {
      if (sscanf(buf, " ((b) %f %f %f %f) %n", &bx, &by, &bvx, &bvy, &n_read) !=
          4) {
        PRINT_ERROR("error ball info:" << line);
        return false;
      }
      buf += n_read;
      bs.first = Vector(bx, by);
      bs.second = Vector(bvx, bvy);
      bs.second /= 0.94;
      bs.first -= bs.second; //这是因为Server接到后会模拟一周期
    }

    // players
    char side;
    short unum;
    short type;
    int state;
    float x, y, vx, vy, body, neck;
    for (int i = 0; i < ServerParam::TEAM_SIZE * 2; ++i) {
      if (*buf == '\0' || *buf == ')')
        break;

      if (sscanf(buf, " ((%c %hd) %hd %x %f %f %f %f %f %f %n", &side, &unum,
                 &type, &state, &x, &y, &vx, &vy, &body, &neck,
                 &n_read) != 10) {
        PRINT_ERROR("error player info:" << buf);
        return false;
      }
      buf += n_read;

      int idx = unum - 1;
      if (side == 'r')
        idx += ServerParam::TEAM_SIZE;
      if (idx < 0 || ServerParam::TEAM_SIZE * 2 <= idx) {
        PRINT_ERROR("error player info:" << buf);
        return false;
      }

      if (side == 'r')
        unum = -unum;

      //对球员的微调安排在开场前，而不是建立前，因为牵涉到Server发来的异构
      ps.push_back(
          Trainer::PlayerState(unum, Vector(x, y), Vector(vx, vy), body, type));

      while (strncmp(buf, "((", 2)) {
        buf++;
        if (*buf == '\0')
          break;
      }
    }

    if (ps.size() == 22) {
      mPlayerStatesList.push_back(ps);
      mBallStateList.push_back(bs);
    }

    if (time >= end_time) {
      break;
    }
  }

  Assert(mPlayerStatesList.size() == mBallStateList.size());
  Assert(mPlayerStatesList.size() == mServerPlayModeList.size());

  return !mPlayerStatesList.empty();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x550, %rsp            # imm = 0x550
movq %rdi, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x420(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xa820
movq -0x420(%rbp), %rsi
movq $0x0, -0x58(%rbp)
addq $0xa0, %rsi
leaq -0x260(%rbp), %rdi
movl $0x8, %edx
callq 0xab00
jmp 0x95c33
movq -0x420(%rbp), %rax
movl $0x0, -0x270(%rbp)
movl $0x0, -0x274(%rbp)
movl 0x98(%rax), %ecx
subl 0x138(%rax), %ecx
movl %ecx, -0x278(%rbp)
movl 0x98(%rax), %eax
movl %eax, -0x27c(%rbp)
movl $0x3, -0x280(%rbp)
jmp 0x95c78
leaq -0x298(%rbp), %rdi
callq 0x981a0
leaq -0x2c0(%rbp), %rdi
callq 0x981c0
jmp 0x95c92
movb $0x0, -0x2c1(%rbp)
leaq -0x260(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa140
movq %rax, -0x428(%rbp)
jmp 0x95cb2
movq -0x428(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0xa780
movb %al, -0x429(%rbp)
jmp 0x95cd0
movb -0x429(%rbp), %al
testb $0x1, %al
jne 0x95cdf
jmp 0x96047
movb $0x1, -0x2c1(%rbp)
leaq 0x2f2fa(%rip), %rcx     # 0xc4fe7
xorl %eax, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
movl $0x5, %edx
callq 0xa7e0
movl %eax, -0x430(%rbp)
jmp 0x95d07
movl -0x430(%rbp), %eax
cmpl $0x0, %eax
jne 0x95e7f
leaq -0x50(%rbp), %rdi
callq 0xa240
movq %rax, %rdi
leaq 0x2f2c4(%rip), %rsi     # 0xc4fed
leaq -0x270(%rbp), %rdx
leaq -0x274(%rbp), %rcx
movb $0x0, %al
callq 0xa580
cmpl $0x1, %eax
je 0x95e46
jmp 0x95d49
movq 0x682a0(%rip), %rdi     # 0xfdff0
leaq 0x2f142(%rip), %rsi     # 0xc4e99
callq 0xa5a0
movq %rax, -0x438(%rbp)
jmp 0x95d65
movq -0x438(%rbp), %rdi
leaq 0x2f4de(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, -0x440(%rbp)
jmp 0x95d81
movq -0x440(%rbp), %rdi
movl $0x204, %esi            # imm = 0x204
callq 0xaa40
movq %rax, -0x448(%rbp)
jmp 0x95d9b
movq -0x448(%rbp), %rdi
leaq 0x2d7b6(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, -0x450(%rbp)
jmp 0x95db7
movq -0x450(%rbp), %rdi
leaq 0x2f234(%rip), %rsi     # 0xc4ff9
callq 0xa5a0
movq %rax, -0x458(%rbp)
jmp 0x95dd3
movq -0x458(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa4f0
movq %rax, -0x460(%rbp)
jmp 0x95dec
movq -0x460(%rbp), %rdi
movq 0x681b6(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x95e01
jmp 0x95e03
jmp 0x95e05
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x967cf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x96767
movl -0x270(%rbp), %eax
cmpl -0x278(%rbp), %eax
jl 0x95e7a
leaq -0x50(%rbp), %rdi
callq 0xa240
movq %rax, -0x58(%rbp)
movl -0x274(%rbp), %ecx
movq -0x58(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
jmp 0x96047
jmp 0x96042
leaq 0x2cb20(%rip), %rcx     # 0xc29a6
xorl %eax, %eax
movl %eax, %esi
leaq -0x50(%rbp), %rdi
movl $0xa, %edx
callq 0xa7e0
movl %eax, -0x464(%rbp)
jmp 0x95ea0
movl -0x464(%rbp), %eax
cmpl $0x0, %eax
jne 0x96040
movl $0x0, -0x2cc(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xa240
movq %rax, %rdi
leaq -0x2f0(%rbp), %rcx
leaq 0x2f137(%rip), %rsi     # 0xc500a
leaq -0x2cc(%rbp), %rdx
movb $0x0, %al
callq 0xa580
cmpl $0x2, %eax
je 0x95f7f
movq 0x680ff(%rip), %rdi     # 0xfdff0
leaq 0x2f12b(%rip), %rsi     # 0xc5023
callq 0xa5a0
movq %rax, -0x470(%rbp)
jmp 0x95f06
movq -0x470(%rbp), %rdi
leaq 0x2f117(%rip), %rsi     # 0xc502b
callq 0xa5a0
movq %rax, -0x478(%rbp)
jmp 0x95f22
movq -0x478(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa4f0
movq %rax, -0x480(%rbp)
jmp 0x95f3b
movq -0x480(%rbp), %rdi
leaq 0x2f0f9(%rip), %rsi     # 0xc5042
callq 0xa5a0
movq %rax, -0x488(%rbp)
jmp 0x95f57
movq -0x488(%rbp), %rdi
movq 0x6804b(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x95f6c
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
callq 0x9ed90
movq %rax, -0x490(%rbp)
jmp 0x95f8d
leaq -0x311(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0xaa70
movq -0x498(%rbp), %rdx
leaq -0x310(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x1a540
jmp 0x95fbc
movq -0x490(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0xa1390
movl %eax, -0x49c(%rbp)
jmp 0x95fd7
movl -0x49c(%rbp), %eax
movl %eax, -0x280(%rbp)
leaq -0x310(%rbp), %rdi
callq 0xa370
leaq -0x311(%rbp), %rdi
callq 0xa650
jmp 0x96040
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
jmp 0x9602f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x268(%rbp)
movl %eax, -0x26c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0xa370
leaq -0x311(%rbp), %rdi
callq 0xa650
jmp 0x96767
jmp 0x96042
jmp 0x95c99
testb $0x1, -0x2c1(%rbp)
jne 0x9605f
movl $0x3, -0x2c8(%rbp)
jmp 0x96737
movq -0x420(%rbp), %rdi
addq $0x178, %rdi            # imm = 0x178
leaq -0x280(%rbp), %rsi
callq 0x98220
jmp 0x9607b
cmpq $0x0, -0x58(%rbp)
jne 0x96095
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
movq -0x58(%rbp), %rdi
leaq 0x2efa4(%rip), %rsi     # 0xc5044
leaq -0x318(%rbp), %rdx
leaq -0x31c(%rbp), %rcx
leaq -0x320(%rbp), %r8
leaq -0x324(%rbp), %r9
leaq -0x274(%rbp), %rax
movq %rax, (%rsp)
movb $0x0, %al
callq 0xa580
cmpl $0x4, %eax
je 0x961a8
jmp 0x960d9
movq 0x67f10(%rip), %rdi     # 0xfdff0
leaq 0x2edb2(%rip), %rsi     # 0xc4e99
callq 0xa5a0
movq %rax, -0x4a8(%rbp)
jmp 0x960f5
movq -0x4a8(%rbp), %rdi
leaq 0x2f14e(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, -0x4b0(%rbp)
jmp 0x96111
movq -0x4b0(%rbp), %rdi
movl $0x22d, %esi            # imm = 0x22D
callq 0xaa40
movq %rax, -0x4b8(%rbp)
jmp 0x9612b
movq -0x4b8(%rbp), %rdi
leaq 0x2d426(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, -0x4c0(%rbp)
jmp 0x96147
movq -0x4c0(%rbp), %rdi
leaq 0x2ef05(%rip), %rsi     # 0xc505a
callq 0xa5a0
movq %rax, -0x4c8(%rbp)
jmp 0x96163
movq -0x4c8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa4f0
movq %rax, -0x4d0(%rbp)
jmp 0x9617c
movq -0x4d0(%rbp), %rdi
movq 0x67e26(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x96191
jmp 0x96193
jmp 0x96195
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
movslq -0x274(%rbp), %rcx
movq -0x58(%rbp), %rax
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movss -0x318(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x340(%rbp)
movss -0x31c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x348(%rbp)
leaq -0x338(%rbp), %rdi
leaq -0x340(%rbp), %rsi
leaq -0x348(%rbp), %rdx
callq 0x11a10
jmp 0x961fe
movups -0x338(%rbp), %xmm0
movaps %xmm0, -0x2c0(%rbp)
movss -0x320(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x360(%rbp)
movss -0x324(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x368(%rbp)
leaq -0x358(%rbp), %rdi
leaq -0x360(%rbp), %rsi
leaq -0x368(%rbp), %rdx
callq 0x11a10
jmp 0x96250
leaq -0x2b0(%rbp), %rdi
movups -0x358(%rbp), %xmm0
movups %xmm0, -0x2b0(%rbp)
movabsq $0x3fee147ae147ae14, %rax # imm = 0x3FEE147AE147AE14
movq %rax, -0x370(%rbp)
leaq -0x370(%rbp), %rsi
callq 0x98290
jmp 0x96284
leaq -0x2b0(%rbp), %rsi
leaq -0x2c0(%rbp), %rdi
callq 0x32970
jmp 0x96299
movl $0x0, -0x398(%rbp)
movl -0x398(%rbp), %eax
leaq 0x2ddf8(%rip), %rcx     # 0xc40a8
movl (%rcx), %ecx
shll %ecx
cmpl %ecx, %eax
jge 0x966c7
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x962d4
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x29, %eax
jne 0x962d9
jmp 0x966c7
movq -0x58(%rbp), %rdi
leaq 0x2ed87(%rip), %rsi     # 0xc506b
leaq -0x371(%rbp), %rdx
leaq -0x374(%rbp), %rcx
leaq -0x376(%rbp), %r8
leaq -0x37c(%rbp), %r9
leaq -0x380(%rbp), %r12
leaq -0x384(%rbp), %r15
leaq -0x388(%rbp), %r14
leaq -0x38c(%rbp), %rbx
leaq -0x390(%rbp), %r11
leaq -0x394(%rbp), %r10
leaq -0x274(%rbp), %rax
movq %r12, (%rsp)
movq %r15, 0x8(%rsp)
movq %r14, 0x10(%rsp)
movq %rbx, 0x18(%rsp)
movq %r11, 0x20(%rsp)
movq %r10, 0x28(%rsp)
movq %rax, 0x30(%rsp)
movb $0x0, %al
callq 0xa580
cmpl $0xa, %eax
je 0x96434
jmp 0x96365
movq 0x67c84(%rip), %rdi     # 0xfdff0
leaq 0x2eb26(%rip), %rsi     # 0xc4e99
callq 0xa5a0
movq %rax, -0x4d8(%rbp)
jmp 0x96381
movq -0x4d8(%rbp), %rdi
leaq 0x2eec2(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, -0x4e0(%rbp)
jmp 0x9639d
movq -0x4e0(%rbp), %rdi
movl $0x244, %esi            # imm = 0x244
callq 0xaa40
movq %rax, -0x4e8(%rbp)
jmp 0x963b7
movq -0x4e8(%rbp), %rdi
leaq 0x2d19a(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, -0x4f0(%rbp)
jmp 0x963d3
movq -0x4f0(%rbp), %rdi
leaq 0x2ecb1(%rip), %rsi     # 0xc5092
callq 0xa5a0
movq %rax, -0x4f8(%rbp)
jmp 0x963ef
movq -0x4f8(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0xa5a0
movq %rax, -0x500(%rbp)
jmp 0x96408
movq -0x500(%rbp), %rdi
movq 0x67b9a(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x9641d
jmp 0x9641f
jmp 0x96421
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
movl -0x274(%rbp), %ecx
movq -0x58(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x58(%rbp)
movswl -0x374(%rbp), %eax
subl $0x1, %eax
movl %eax, -0x39c(%rbp)
movsbl -0x371(%rbp), %eax
cmpl $0x72, %eax
jne 0x96479
leaq 0x2dc3d(%rip), %rax     # 0xc40a8
movl (%rax), %eax
addl -0x39c(%rbp), %eax
movl %eax, -0x39c(%rbp)
cmpl $0x0, -0x39c(%rbp)
jl 0x96499
leaq 0x2dc1f(%rip), %rax     # 0xc40a8
movl (%rax), %eax
shll %eax
cmpl -0x39c(%rbp), %eax
jg 0x9656a
jmp 0x9649b
movq 0x67b4e(%rip), %rdi     # 0xfdff0
leaq 0x2e9f0(%rip), %rsi     # 0xc4e99
callq 0xa5a0
movq %rax, -0x508(%rbp)
jmp 0x964b7
movq -0x508(%rbp), %rdi
leaq 0x2ed8c(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, -0x510(%rbp)
jmp 0x964d3
movq -0x510(%rbp), %rdi
movl $0x24d, %esi            # imm = 0x24D
callq 0xaa40
movq %rax, -0x518(%rbp)
jmp 0x964ed
movq -0x518(%rbp), %rdi
leaq 0x2d064(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, -0x520(%rbp)
jmp 0x96509
movq -0x520(%rbp), %rdi
leaq 0x2eb7b(%rip), %rsi     # 0xc5092
callq 0xa5a0
movq %rax, -0x528(%rbp)
jmp 0x96525
movq -0x528(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0xa5a0
movq %rax, -0x530(%rbp)
jmp 0x9653e
movq -0x530(%rbp), %rdi
movq 0x67a64(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x96553
jmp 0x96555
jmp 0x96557
movb $0x0, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
jmp 0x96737
movsbl -0x371(%rbp), %eax
cmpl $0x72, %eax
jne 0x96588
movswl -0x374(%rbp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x374(%rbp)
movswl -0x374(%rbp), %eax
movl %eax, -0x534(%rbp)
movss -0x380(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x3f0(%rbp)
movss -0x384(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x3f8(%rbp)
leaq -0x3e8(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
leaq -0x3f8(%rbp), %rdx
callq 0x11a10
jmp 0x965d9
movss -0x388(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x410(%rbp)
movss -0x38c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x418(%rbp)
leaq -0x408(%rbp), %rdi
leaq -0x410(%rbp), %rsi
leaq -0x418(%rbp), %rdx
callq 0x11a10
jmp 0x9661d
movl -0x534(%rbp), %esi
movss -0x390(%rbp), %xmm0
cvtss2sd %xmm0, %xmm4
movswl -0x376(%rbp), %edx
movsd -0x3e8(%rbp), %xmm0
movsd -0x3e0(%rbp), %xmm1
movsd -0x408(%rbp), %xmm2
movsd -0x400(%rbp), %xmm3
leaq -0x3d8(%rbp), %rdi
callq 0x92be0
jmp 0x96664
leaq -0x298(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x982e0
jmp 0x96679
jmp 0x9667b
movq -0x58(%rbp), %rdi
leaq 0x2c2f1(%rip), %rsi     # 0xc2977
movl $0x2, %edx
callq 0xa2c0
cmpl $0x0, %eax
je 0x966b1
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x966af
jmp 0x966b1
jmp 0x9667b
jmp 0x966b3
movl -0x398(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x398(%rbp)
jmp 0x962a3
leaq -0x298(%rbp), %rdi
callq 0x98310
cmpq $0x16, %rax
jne 0x96713
movq -0x420(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
leaq -0x298(%rbp), %rsi
callq 0x98340
jmp 0x966f5
movq -0x420(%rbp), %rdi
addq $0x160, %rdi            # imm = 0x160
leaq -0x2c0(%rbp), %rsi
callq 0x983b0
jmp 0x96711
jmp 0x96713
movl -0x270(%rbp), %eax
cmpl -0x27c(%rbp), %eax
jl 0x9672d
movl $0x3, -0x2c8(%rbp)
jmp 0x96737
movl $0x0, -0x2c8(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x98420
movl -0x2c8(%rbp), %eax
movl %eax, -0x538(%rbp)
testl %eax, %eax
je 0x96762
jmp 0x96755
movl -0x538(%rbp), %eax
subl $0x3, %eax
je 0x96781
jmp 0x967a5
jmp 0x95c76
leaq -0x298(%rbp), %rdi
callq 0x98420
leaq -0x260(%rbp), %rdi
callq 0xa1b0
jmp 0x967cf
movq -0x420(%rbp), %rdi
addq $0x120, %rdi            # imm = 0x120
callq 0x98480
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0x21(%rbp)
movl $0x1, -0x2c8(%rbp)
leaq -0x260(%rbp), %rdi
callq 0xa1b0
leaq -0x50(%rbp), %rdi
callq 0xa370
movb -0x21(%rbp), %al
andb $0x1, %al
addq $0x550, %rsp            # imm = 0x550
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0xa370
movq -0x268(%rbp), %rdi
callq 0xaa60
nopw %cs:(%rax,%rax)