// File: wrighteagle2d[P]wrighteaglebase/Debug/../src/Parser.cpp
// Function: Parser::ParsePlayMode(char*)
void Parser::ParsePlayMode(char *msg) {
  ServerPlayMode spm = ServerPlayModeMap::instance().GetServerPlayMode(msg);

  if (spm == SPM_Null) {
    PRINT_ERROR("unknown server play mode: " << msg << " @ "
                                             << mpObserver->CurrentTime());
    return;
  }

  PlayMode pm = PM_No_Mode;
  mpObserver->SetServerPlayMode(spm);
  switch (spm) {
  case SPM_PlayOn:
    pm = PM_Play_On;
    break;              /* play_on */
  case SPM_KickIn_Left: /* kick_in */
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Kick_In : PM_Opp_Kick_In;
    break;
  case SPM_KickIn_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Kick_In : PM_Opp_Kick_In;
    break;
  case SPM_KickOff_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Kick_Off : PM_Opp_Kick_Off;
    break;
  case SPM_KickOff_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Kick_Off : PM_Opp_Kick_Off;
    break;
  case SPM_GoalKick_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Goal_Kick
                                            : PM_Opp_Goal_Kick;
    break;
  case SPM_GoalKick_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Goal_Kick
                                            : PM_Opp_Goal_Kick;
    break;
  case SPM_AfterGoal_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Goal_Ours : PM_Goal_Opps;
    break;
  case SPM_AfterGoal_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Goal_Ours : PM_Goal_Opps;
    break;
  case SPM_CornerKick_Left: /* corner_kick */
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Corner_Kick
                                            : PM_Opp_Corner_Kick;
    break;
  case SPM_CornerKick_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Corner_Kick
                                            : PM_Opp_Corner_Kick;
    break;
  case SPM_Drop_Ball:
    pm = PM_Drop_Ball;
    break;               /* drop_ball */
  case SPM_OffSide_Left: /* offside */
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Opp_Offside_Kick
                                            : PM_Our_Offside_Kick;
    break;
  case SPM_OffSide_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Opp_Offside_Kick
                                            : PM_Our_Offside_Kick;
    break;
  case SPM_CatchFault_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Opp_CatchFault_Kick
                                            : PM_Our_CatchFault_Kick;
    break;
  case SPM_CatchFault_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Opp_CatchFault_Kick
                                            : PM_Our_CatchFault_Kick;
    break;
  case SPM_FreeKick_Left:
    if (mLastServerPlayMode == SPM_GoalieCatchBall_Left)
      pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Goalie_Free_Kick
                                              : PM_Opp_Goalie_Free_Kick;
    else
      pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Free_Kick
                                              : PM_Opp_Free_Kick;
    break;
  case SPM_FreeKick_Right:
    if (mLastServerPlayMode == SPM_GoalieCatchBall_Right)
      pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Goalie_Free_Kick
                                              : PM_Opp_Goalie_Free_Kick;
    else
      pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Free_Kick
                                              : PM_Opp_Free_Kick;
    break;
  case SPM_Free_Kick_Fault_Left:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Free_Kick_Fault_Kick
                                            : PM_Opp_Free_Kick_Fault_Kick;
    break;
  case SPM_Free_Kick_Fault_Right:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Free_Kick_Fault_Kick
                                            : PM_Opp_Free_Kick_Fault_Kick;
    break;
  case SPM_FirstHalfOver: /* half_time */
    pm = PM_Half_Time;    /* play_mode to before_kick_off        */
    break;
  case SPM_BeforeKickOff:
    pm = PM_Before_Kick_Off;
    break; /* before_kick_off */
    break;
  case SPM_Back_Pass_Left:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Back_Pass_Kick
                                            : PM_Opp_Back_Pass_Kick;
    break;
  case SPM_Back_Pass_Right:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Back_Pass_Kick
                                            : PM_Opp_Back_Pass_Kick;
    break;
  case SPM_TimeOver:
    pm = PM_Time_Over;
    break;
  case SPM_TimeUp:
    pm = PM_Time_Up;
    break;
  case SPM_IndFreeKick_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Indirect_Free_Kick
                                            : PM_Opp_Indirect_Free_Kick;
    break;
  case SPM_IndFreeKick_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Indirect_Free_Kick
                                            : PM_Opp_Indirect_Free_Kick;
    break;
  case SPM_PenaltySetup_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Setup
                                            : PM_Opp_Penalty_Setup;
    break;
  case SPM_PenaltySetup_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Setup
                                            : PM_Opp_Penalty_Setup;
    break;
  case SPM_PenaltyReady_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Ready
                                            : PM_Opp_Penalty_Ready;
    break;
  case SPM_PenaltyReady_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Ready
                                            : PM_Opp_Penalty_Ready;
    break;
  case SPM_PenaltyTaken_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Taken
                                            : PM_Opp_Penalty_Taken;
    break;
  case SPM_PenaltyTaken_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Taken
                                            : PM_Opp_Penalty_Taken;
    break;
  case SPM_PenaltyScore_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Score
                                            : PM_Opp_Penalty_Score;
    break;
  case SPM_PenaltyScore_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Score
                                            : PM_Opp_Penalty_Score;
    break;
  case SPM_PenaltyMiss_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Miss
                                            : PM_Opp_Penalty_Miss;
    break;
  case SPM_PenaltyMiss_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Miss
                                            : PM_Opp_Penalty_Miss;
    break;
  case SPM_GoalieCatchBall_Left:
    pm = mpObserver->GetPlayMode();
    break;
  case SPM_GoalieCatchBall_Right:
    pm = mpObserver->GetPlayMode();
    break;
  case SPM_HalfTime:
    pm = PM_Half_Time;
    break;
  case SPM_PenaltyOnfield_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Penalty_On_Our_Field
                                            : PM_Penalty_On_Opp_Field;
    break;
  case SPM_PenaltyOnfield_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Penalty_On_Our_Field
                                            : PM_Penalty_On_Opp_Field;
    break;
  case SPM_PenaltyFoul_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Foul
                                            : PM_Opp_Penalty_Foul;
    break;
  case SPM_PenaltyFoul_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Foul
                                            : PM_Opp_Penalty_Foul;
    break;
  case SPM_PenaltyWinner_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Penalty_Winner
                                            : PM_Opp_Penalty_Winner;
    break;
  case SPM_PenaltyWinner_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Penalty_Winner
                                            : PM_Opp_Penalty_Winner;
    break;
  case SPM_Foul_Left:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Foul : PM_Opp_Foul;
    break;
  case SPM_Foul_Right:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Foul : PM_Opp_Foul;
    break;
  case SPM_TimeExtended:
    pm = PM_Extended_Time;
    break;
  case SPM_Foul_Charge_Left:
    pm = (mpObserver->OurInitSide() == 'r') ? PM_Our_Foul_Charge_Kick
                                            : PM_Opp_Foul_Charge_Kick;
    break;
  case SPM_Foul_Charge_Right:
    pm = (mpObserver->OurInitSide() == 'l') ? PM_Our_Foul_Charge_Kick
                                            : PM_Opp_Foul_Charge_Kick;
    break;
  default:
    PRINT_ERROR("unknown server play mode: " << msg << " @ "
                                             << mpObserver->CurrentTime());
    break;
  }
  mLastServerPlayMode = spm;

  if (pm == PM_Penalty_On_Our_Field) {
    if (mpObserver->SelfUnum() != PlayerParam::instance().ourGoalieUnum()) {
      mpObserver->SetOurSide((mpObserver->OurInitSide() == 'l') ? 'r' : 'l');
      mpObserver->Initialize();
    }
  } else if (pm == PM_Penalty_On_Opp_Field) {
    if (mpObserver->SelfUnum() == PlayerParam::instance().ourGoalieUnum()) {
      mpObserver->SetOurSide((mpObserver->OurInitSide() == 'l') ? 'r' : 'l');
      mpObserver->Initialize();
    }
  }

  if (pm != PM_No_Mode) {
    switch (pm) {
    case PM_Goal_Ours:
      mpObserver->OurScoreInc();
      mpObserver->SetKickOffMode(KO_Opps);
      pm = PM_Before_Kick_Off;
      break;
    case PM_Goal_Opps:
      mpObserver->OppScoreInc();
      mpObserver->SetKickOffMode(KO_Ours);
      pm = PM_Before_Kick_Off;
      break;
    case PM_Our_Penalty_Score:
      mpObserver->OurScoreInc();
      break;
    case PM_Opp_Penalty_Score:
      mpObserver->OppScoreInc();
      break;
    case PM_Half_Time:
    case PM_Extended_Time:
      ++mHalfTime;
      if (mHalfTime % 2 == 1) {
        mpObserver->SetKickOffMode(
            (mpObserver->OurInitSide() == 'l') ? KO_Ours : KO_Opps);
      } else {
        mpObserver->SetKickOffMode(
            (mpObserver->OurInitSide() == 'r') ? KO_Ours : KO_Opps);
      }

      break;
    case PM_Drop_Ball:
      mpObserver->DropBall();
      break;
    default:
      break;
    }
    mpObserver->SetPlayMode(pm);
  } else {
    PRINT_ERROR("Unkonow playmode : " << msg << " @ "
                                      << mpObserver->CurrentTime());
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x70(%rbp)
callq 0x9ed90
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x58(%rbp)
callq 0xaa70
movq -0x60(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq -0x38(%rbp), %rdi
callq 0x1a540
jmp 0x7526c
movq -0x68(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa1390
movl %eax, -0x74(%rbp)
jmp 0x7527e
leaq -0x38(%rbp), %rdi
callq 0xa370
leaq -0x39(%rbp), %rdi
callq 0xa650
movl -0x74(%rbp), %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x7536f
jmp 0x752a2
movq 0x88d47(%rip), %rdi     # 0xfdff0
leaq 0x4e1d6(%rip), %rsi     # 0xc3486
callq 0xa5a0
movq %rax, %rdi
leaq 0x4ff92(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, %rdi
movl $0x693, %esi            # imm = 0x693
callq 0xaa40
movq %rax, %rdi
leaq 0x4e284(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, %rdi
leaq 0x4e24a(%rip), %rsi     # 0xc3534
callq 0xa5a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0xa5a0
movq %rax, %rdi
leaq 0x4ffb1(%rip), %rsi     # 0xc52b6
callq 0xa5a0
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, -0x80(%rbp)
movq 0x10(%rax), %rdi
callq 0x11a70
movq -0x80(%rbp), %rdi
movq %rax, %rsi
callq 0x11d40
movq %rax, %rdi
movq 0x88c7c(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x75f12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x75361
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x38(%rbp), %rdi
callq 0xa370
leaq -0x39(%rbp), %rdi
callq 0xa650
jmp 0x75f1b
movq -0x70(%rbp), %rax
movl $0x0, -0x50(%rbp)
movq 0x10(%rax), %rdi
movl -0x14(%rbp), %esi
callq 0x77b70
movl -0x14(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x88(%rbp)
subl $0x3d, %eax
ja 0x75b30
movq -0x88(%rbp), %rax
leaq 0x4ddc1(%rip), %rcx     # 0xc316c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x1, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x26, %eax
movl $0x3, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x26, %eax
movl $0x3, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x25, %eax
movl $0x2, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x25, %eax
movl $0x2, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x28, %eax
movl $0x5, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x28, %eax
movl $0x5, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x21, %eax
movl $0x20, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x21, %eax
movl $0x20, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x27, %eax
movl $0x4, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x27, %eax
movl $0x4, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movl $0x1b, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x9, %eax
movl $0x2c, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x9, %eax
movl $0x2c, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0xc, %eax
movl $0x2f, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0xc, %eax
movl $0x2f, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
cmpl $0x32, 0x18(%rax)
jne 0x7562b
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2b, %eax
movl $0x8, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x7564e
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x29, %eax
movl $0x6, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
cmpl $0x33, 0x18(%rax)
jne 0x75682
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2b, %eax
movl $0x8, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x756a5
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x29, %eax
movl $0x6, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2d, %eax
movl $0xb, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2d, %eax
movl $0xb, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movl $0x1c, -0x50(%rbp)
jmp 0x75bd1
movl $0x16, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2e, %eax
movl $0xa, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2e, %eax
movl $0xa, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movl $0x1d, -0x50(%rbp)
jmp 0x75bd1
movl $0x1e, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2a, %eax
movl $0x7, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x2a, %eax
movl $0x7, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x31, %eax
movl $0xe, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x31, %eax
movl $0xe, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x32, %eax
movl $0xf, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x32, %eax
movl $0xf, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x33, %eax
movl $0x10, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x33, %eax
movl $0x10, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x34, %eax
movl $0x11, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x34, %eax
movl $0x11, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x35, %eax
movl $0x12, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x35, %eax
movl $0x12, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x28970
movl (%rax), %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x28970
movl (%rax), %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movl $0x1c, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x1a, %eax
movl $0x17, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x1a, %eax
movl $0x17, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x36, %eax
movl $0x13, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x36, %eax
movl $0x13, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x37, %eax
movl $0x14, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x37, %eax
movl $0x14, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x23, %eax
movl $0x22, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x23, %eax
movl $0x22, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movl $0x1f, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x30, %eax
movl $0xd, %ecx
cmpl $0x72, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %edx
movl $0x30, %eax
movl $0xd, %ecx
cmpl $0x6c, %edx
cmovel %ecx, %eax
movl %eax, -0x50(%rbp)
jmp 0x75bd1
jmp 0x75b32
movq 0x884b7(%rip), %rdi     # 0xfdff0
leaq 0x4d946(%rip), %rsi     # 0xc3486
callq 0xa5a0
movq %rax, %rdi
leaq 0x4f702(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, %rdi
movl $0x763, %esi            # imm = 0x763
callq 0xaa40
movq %rax, %rdi
leaq 0x4d9f4(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, %rdi
leaq 0x4d9ba(%rip), %rsi     # 0xc3534
callq 0xa5a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0xa5a0
movq %rax, %rdi
leaq 0x4f721(%rip), %rsi     # 0xc52b6
callq 0xa5a0
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, -0x90(%rbp)
movq 0x10(%rax), %rdi
callq 0x11a70
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x11d40
movq %rax, %rdi
movq 0x883e6(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x75bd1
movq -0x70(%rbp), %rax
movl -0x14(%rbp), %ecx
movl %ecx, 0x18(%rax)
cmpl $0x17, -0x50(%rbp)
jne 0x75c77
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x11dd0
movl (%rax), %eax
movl %eax, -0x94(%rbp)
callq 0x798a0
movq %rax, %rdi
callq 0x29520
movq %rax, %rcx
movl -0x94(%rbp), %eax
cmpl (%rcx), %eax
je 0x75c72
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0xa0(%rbp)
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %ecx
movb $0x72, %al
movb $0x6c, %dl
movb %dl, -0x96(%rbp)
cmpl $0x6c, %ecx
movb %al, -0x95(%rbp)
je 0x75c50
movb -0x96(%rbp), %al
movb %al, -0x95(%rbp)
movq -0xa0(%rbp), %rdi
movb -0x95(%rbp), %al
movsbl %al, %esi
callq 0x77ae0
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x68ef0
jmp 0x75d12
cmpl $0x1a, -0x50(%rbp)
jne 0x75d10
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x11dd0
movl (%rax), %eax
movl %eax, -0xa4(%rbp)
callq 0x798a0
movq %rax, %rdi
callq 0x29520
movq %rax, %rcx
movl -0xa4(%rbp), %eax
cmpl (%rcx), %eax
jne 0x75d0e
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0xb0(%rbp)
movq 0x10(%rax), %rdi
callq 0x6e590
movsbl (%rax), %ecx
movb $0x72, %al
movb $0x6c, %dl
movb %dl, -0xa6(%rbp)
cmpl $0x6c, %ecx
movb %al, -0xa5(%rbp)
je 0x75cec
movb -0xa6(%rbp), %al
movb %al, -0xa5(%rbp)
movq -0xb0(%rbp), %rdi
movb -0xa5(%rbp), %al
movsbl %al, %esi
callq 0x77ae0
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x68ef0
jmp 0x75d10
jmp 0x75d12
cmpl $0x0, -0x50(%rbp)
je 0x75e71
movl -0x50(%rbp), %eax
addl $-0x11, %eax
movl %eax, %ecx
movq %rcx, -0xb8(%rbp)
subl $0x23, %eax
ja 0x75e5a
movq -0xb8(%rbp), %rax
leaq 0x4d522(%rip), %rcx     # 0xc3264
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x78820
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
movl $0x1, %esi
callq 0x77b90
movl $0x16, -0x50(%rbp)
jmp 0x75e5c
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x78840
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %esi, %esi
callq 0x77b90
movl $0x16, -0x50(%rbp)
jmp 0x75e5c
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x78820
jmp 0x75e5c
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x78840
jmp 0x75e5c
movq -0x70(%rbp), %rax
movl 0x48(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x48(%rax)
movl 0x48(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cmpl $0x1, %edx
jne 0x75e15
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0xc0(%rbp)
movq 0x10(%rax), %rdi
callq 0x6e590
movq -0xc0(%rbp), %rdi
movsbl (%rax), %ecx
movl $0x1, %esi
xorl %eax, %eax
cmpl $0x6c, %ecx
cmovel %eax, %esi
callq 0x77b90
jmp 0x75e49
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rcx
movq %rcx, -0xc8(%rbp)
movq 0x10(%rax), %rdi
callq 0x6e590
movq -0xc8(%rbp), %rdi
movsbl (%rax), %ecx
movl $0x1, %esi
xorl %eax, %eax
cmpl $0x72, %ecx
cmovel %eax, %esi
callq 0x77b90
jmp 0x75e5c
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x78860
jmp 0x75e5c
jmp 0x75e5c
movq -0x70(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x50(%rbp), %esi
callq 0x77b50
jmp 0x75f12
jmp 0x75e73
movq 0x88176(%rip), %rdi     # 0xfdff0
leaq 0x4d605(%rip), %rsi     # 0xc3486
callq 0xa5a0
movq %rax, %rdi
leaq 0x4f3c1(%rip), %rsi     # 0xc5251
callq 0xa5a0
movq %rax, %rdi
movl $0x79b, %esi            # imm = 0x79B
callq 0xaa40
movq %rax, %rdi
leaq 0x4d6b3(%rip), %rsi     # 0xc355f
callq 0xa5a0
movq %rax, %rdi
leaq 0x4d694(%rip), %rsi     # 0xc354f
callq 0xa5a0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0xa5a0
movq %rax, %rdi
leaq 0x4f3e0(%rip), %rsi     # 0xc52b6
callq 0xa5a0
movq %rax, %rcx
movq -0x70(%rbp), %rax
movq %rcx, -0xd0(%rbp)
movq 0x10(%rax), %rdi
callq 0x11a70
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x11d40
movq %rax, %rdi
movq 0x880a5(%rip), %rsi     # 0xfdfb0
callq 0xa630
jmp 0x75f12
addq $0xd0, %rsp
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0xaa60
nopw %cs:(%rax,%rax)