// File: /workspace/github_cpp_makefile_star2_O3/wrighteagle2d[P]wrighteaglebase/Debug/../src/DynamicDebug.cpp
// Function: DynamicDebug::Run(char*)
MessageType DynamicDebug::Run(char *msg) {
  std::cerr << std::endl << mpObserver->CurrentTime(); // 输出当前周期

  if (mRunning == true) {
    if (mRuntoCycle >= Time(0, 0)) {
      if (mRuntoCycle <= mpObserver->CurrentTime()) {
        mRunning = false;
        mRuntoCycle = 0;
      }
    }

    if (mRunning) {
      return GetMessage(msg);
    }
  }

  std::string read_msg;
  while (std::cin) {
    if (std::cin.eof()) {
      std::cin.rdbuf(mpStreamBuffer);
    }

    std::cerr << std::endl << ">>> ";
    std::cin >> read_msg;

    if (*read_msg.c_str() == '\0') {
      std::cin.rdbuf(mpStreamBuffer); // 到达文件末尾会读入'\0'，这里重定向
      continue;
    }

    if (read_msg == "load") {
      std::string file_name;
      std::cin >> file_name;
      mpFile = fopen(file_name.c_str(), "rb");
      if (mpFile == 0) {
        std::cerr << "Can't open dynamicdebug file, exit..." << std::endl;
        continue;
      }

      char ch1(0), ch2(0);

      if (fread(&ch1, sizeof(char), 1, mpFile) < 1) {
        Assert(0);
      }

      if (fread(&ch2, sizeof(char), 1, mpFile) < 1) {
        Assert(0);
      }

      if (ch1 != 'D' || ch2 != 'D') {
        std::cerr << "Not a dynamicdebug logfile!" << std::endl;
        return MT_Null;
      }

      if (fread(&mFileHead, sizeof(mFileHead), 1, mpFile) < 1) {
        Assert(0);
      }

      long long size;

      size = mFileHead.mIndexTableSize;
      mpIndex = new MessageIndexTableUnit[size];
      fseek(mpFile, mFileHead.mIndexTableOffset, SEEK_SET);
      if (size > 0 &&
          fread(mpIndex, size * sizeof(MessageIndexTableUnit), 1, mpFile) < 1) {
        Assert(0);
      }

      size = mFileHead.mParserTableSize;
      mpParserTime = new timeval[size];
      fseek(mpFile, mFileHead.mParserTableOffset, SEEK_SET);
      if (size > 0 &&
          fread(mpParserTime, size * sizeof(timeval), 1, mpFile) < 1) {
        Assert(0);
      }

      size = mFileHead.mDecisionTableSize;
      mpDecisionTime = new timeval[size];
      fseek(mpFile, mFileHead.mDecisionTableOffset, SEEK_SET);
      if (size > 0 &&
          fread(mpDecisionTime, size * sizeof(timeval), 1, mpFile) < 1) {
        Assert(0);
      }

      size = mFileHead.mCommandSendTableSize;
      mpCommandSendTime = new timeval[size];
      fseek(mpFile, mFileHead.mCommandSendTableOffset, SEEK_SET);
      if (size > 0 &&
          fread(mpCommandSendTime, size * sizeof(timeval), 1, mpFile) < 1) {
        Assert(0);
      }

      fseek(mpFile, sizeof(mFileHead) + 2 * sizeof(char), SEEK_SET);
      mpCurrentIndex = mpIndex; // load后，第一个为初始化信息，先进行初始化

      std::cerr << "Load finished." << std::endl;
      fseek(mpFile, mpCurrentIndex->mDataOffset, SEEK_SET);
      if (fread(msg, 1, 1, mpFile) < 1) {
        Assert(0);
      }
      if (mpCurrentIndex->mDataSize > 0 &&
          fread(msg, mpCurrentIndex->mDataSize, 1, mpFile) < 1) {
        Assert(0);
      }
      msg[mpCurrentIndex->mDataSize] = '\0';
      return MT_Parse;
    } else if (read_msg == "step" || read_msg == "s") {
      if (mpCurrentIndex == 0) {
        std::cerr << "no file loaded!";
        continue;
      }
      return GetMessage(msg);
    } else if (read_msg == "goto" || read_msg == "g") {
      if (mpCurrentIndex == 0) {
        std::cerr << "no file loaded!";
        continue;
      }

      int cycle;
      std::cin >> cycle;
      if (FindCycle(cycle) == true) {
        std::cerr << "goto finished ..." << std::endl;
      } else {
        std::cerr << "no such cycle ..." << std::endl;
      }
      continue;
    } else if (read_msg == "runto" || read_msg == "rt") {
      if (mpCurrentIndex == 0) {
        std::cerr << "no file loaded!";
        continue;
      }

      std::string str;
      std::cin >> str;

      char a;
      int t; // time
      int s; // stop time
      if (sscanf(str.c_str(), "%d%c%d", &t, &a, &s) != 3) {
        s = 0;
      }

      mRuntoCycle = Time(t, s);

      if (mRuntoCycle == mpObserver->CurrentTime()) {
        std::cerr << "already here ...";
        continue;
      } else if (mRuntoCycle < mpObserver->CurrentTime()) {
        std::cerr << "can not run to previous cycle";
        continue;
      } else {
        mRunning = true;
        return GetMessage(msg);
      }
    } else if (read_msg == "run" || read_msg == "r") {
      mRuntoCycle = -1;
      mRunning = true;
      return GetMessage(msg);
    } else if (read_msg == "msg" || read_msg == "m") {
      mShowMessage = !mShowMessage;
      std::cerr << "Set ShowMessage: " << mShowMessage << std::endl;
      continue;
    } else if (read_msg == "quit" || read_msg == "q") {
      std::cerr << "Bye ..." << std::endl;
      return MT_Null;
    } else {
      std::cerr << "Error command, only the following commands are aviliable: "
                << std::endl;
      std::cerr << "\tload" << std::endl;
      std::cerr << "\tstep(s)" << std::endl;
      std::cerr << "\trunto(rt)" << std::endl;
      std::cerr << "\tgoto(g)" << std::endl;
      std::cerr << "\trun(r)" << std::endl;
      std::cerr << "\tmsg(m)" << std::endl;
      std::cerr << "\ttype(t)" << std::endl;
      std::cerr << "\tquit(q)" << std::endl;
      continue;
    }
  }

  return MT_Null;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rsi, %rbx
movq %rdi, %r14
movq 0x60ce6(%rip), %r13     # 0x83ff0
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
movq (%r14), %rsi
addq $0xc, %rsi
movq %rax, %rdi
callq 0xe974
movb 0x138(%r14), %al
cmpb $0x1, %al
jne 0x233ab
movl 0x13c(%r14), %ecx
testl %ecx, %ecx
jg 0x23363
jne 0x2338e
cmpl $0x0, 0x140(%r14)
js 0x2338e
movq (%r14), %rdx
cmpl 0xc(%rdx), %ecx
jge 0x23380
movb $0x0, 0x138(%r14)
movq $0x0, 0x13c(%r14)
jmp 0x233ab
jne 0x2338e
movl 0x140(%r14), %ecx
cmpl 0x10(%rdx), %ecx
jle 0x2336b
testb %al, %al
je 0x233ab
movq %r14, %rdi
movq %rbx, %rsi
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x23d68
movq %rbx, -0x60(%rbp)
leaq -0x70(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq 0x60c0e(%rip), %rcx     # 0x83fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
movl 0x20(%rcx,%rdi), %eax
testb $0x5, %al
je 0x23407
movl $0x0, -0x2c(%rbp)
movq -0x80(%rbp), %rdi
cmpq %r15, %rdi
je 0x233f5
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x94e0
movl -0x2c(%rbp), %eax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
addq %rcx, %rdi
leaq 0x10(%r14), %rcx
movq %rcx, -0x88(%rbp)
testb $0x2, %al
je 0x23425
movq 0x130(%r14), %rsi
callq 0x9960
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
movl $0x4, %edx
movq %rax, %rdi
leaq 0x46f5b(%rip), %rsi     # 0x6a3b7
callq 0x9560
movq 0x60b70(%rip), %rdi     # 0x83fd8
leaq -0x80(%rbp), %rsi
callq 0x9620
movq -0x80(%rbp), %rax
cmpb $0x0, (%rax)
je 0x236ae
leaq -0x80(%rbp), %rbx
movq %rbx, %rdi
leaq 0x47056(%rip), %rsi     # 0x6a4e2
callq 0x91a0
testl %eax, %eax
je 0x236f7
movq %rbx, %rdi
leaq 0x49133(%rip), %rsi     # 0x6c5d6
callq 0x91a0
testl %eax, %eax
je 0x236d0
movq %rbx, %rdi
leaq 0x49b53(%rip), %rsi     # 0x6d00d
callq 0x91a0
testl %eax, %eax
je 0x236d0
movq %rbx, %rdi
leaq 0x46f4f(%rip), %rsi     # 0x6a420
callq 0x91a0
testl %eax, %eax
je 0x23a26
movq %rbx, %rdi
leaq 0x473bb(%rip), %rsi     # 0x6a8a3
callq 0x91a0
testl %eax, %eax
je 0x23a26
movq %rbx, %rdi
leaq 0x46f4a(%rip), %rsi     # 0x6a449
callq 0x91a0
testl %eax, %eax
je 0x23b63
movq %rbx, %rdi
leaq 0x46bc2(%rip), %rsi     # 0x6a0d8
callq 0x91a0
testl %eax, %eax
je 0x23b63
movq %rbx, %rdi
leaq 0x46f58(%rip), %rsi     # 0x6a485
callq 0x91a0
testl %eax, %eax
je 0x23cc9
movq %rbx, %rdi
leaq 0x4a01c(%rip), %rsi     # 0x6d560
callq 0x91a0
testl %eax, %eax
je 0x23cc9
movq %rbx, %rdi
leaq 0x46f2e(%rip), %rsi     # 0x6a489
callq 0x91a0
testl %eax, %eax
je 0x23bbd
movq %rbx, %rdi
leaq 0x48ff8(%rip), %rsi     # 0x6c56a
callq 0x91a0
testl %eax, %eax
je 0x23bbd
movq %rbx, %rdi
leaq 0x46f16(%rip), %rsi     # 0x6a49f
callq 0x91a0
testl %eax, %eax
je 0x23cf1
movq %rbx, %rdi
leaq 0x46f04(%rip), %rsi     # 0x6a4a4
callq 0x91a0
testl %eax, %eax
je 0x23cf1
movl $0x3a, %edx
movq %r13, %rdi
leaq 0x46eea(%rip), %rsi     # 0x6a4a6
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x5, %edx
movq %r13, %rdi
leaq 0x46f09(%rip), %rsi     # 0x6a4e1
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x8, %edx
movq %r13, %rdi
leaq 0x46ef3(%rip), %rsi     # 0x6a4e7
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0xa, %edx
movq %r13, %rdi
leaq 0x46ee0(%rip), %rsi     # 0x6a4f0
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x8, %edx
movq %r13, %rdi
leaq 0x46ecf(%rip), %rsi     # 0x6a4fb
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x7, %edx
movq %r13, %rdi
leaq 0x46ebc(%rip), %rsi     # 0x6a504
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x7, %edx
movq %r13, %rdi
leaq 0x46ea8(%rip), %rsi     # 0x6a50c
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x8, %edx
movq %r13, %rdi
leaq 0x46e94(%rip), %rsi     # 0x6a514
callq 0x9560
movq %r13, %rdi
callq 0x9240
movl $0x8, %edx
movq %r13, %rdi
leaq 0x46e81(%rip), %rsi     # 0x6a51d
callq 0x9560
movq %r13, %rdi
callq 0x9240
jmp 0x23b40
movq 0x60923(%rip), %rcx     # 0x83fd8
movq (%rcx), %rax
movq -0x18(%rax), %rdi
addq %rcx, %rdi
movq 0x130(%r14), %rsi
callq 0x9960
jmp 0x23b40
cmpq $0x0, 0xf0(%r14)
jne 0x23cdd
movl $0xf, %edx
movq %r13, %rdi
leaq 0x46d23(%rip), %rsi     # 0x6a410
callq 0x9560
jmp 0x23b40
leaq -0x48(%rbp), %rax
movq %rax, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movb $0x0, -0x48(%rbp)
movq 0x608c6(%rip), %rdi     # 0x83fd8
leaq -0x58(%rbp), %rsi
callq 0x9620
movq -0x58(%rbp), %rdi
leaq 0x46c96(%rip), %rsi     # 0x6a3bc
callq 0x95a0
movq %rax, %r12
movq %rax, 0x120(%r14)
testq %rax, %rax
je 0x23a9d
xorl %eax, %eax
movb %al, -0x34(%rbp)
movb %al, -0x30(%rbp)
movl $0x1, %esi
movl $0x1, %edx
leaq -0x34(%rbp), %rdi
movq %r12, %rcx
callq 0x9720
movq 0x120(%r14), %rcx
movl $0x1, %esi
movl $0x1, %edx
leaq -0x30(%rbp), %rdi
callq 0x9720
cmpb $0x44, -0x34(%rbp)
jne 0x23adb
cmpb $0x44, -0x30(%rbp)
jne 0x23adb
movq 0x120(%r14), %rcx
movl $0x48, %esi
movl $0x1, %edx
movq -0x88(%rbp), %rdi
callq 0x9720
movq 0x18(%r14), %r15
movq %r15, %rax
shrq $0x3b, %rax
movq %r15, %rbx
shlq $0x5, %rbx
negq %rax
movl $0x0, %edi
sbbq %rdi, %rdi
orq %rbx, %rdi
callq 0x9050
testq %r15, %r15
movl $0xfffffffd, %esi       # imm = 0xFFFFFFFD
je 0x237eb
movq %rax, %rcx
addq %rbx, %rcx
movq %rax, %rdx
movq %rsi, (%rdx)
addq $0x20, %rdx
cmpq %rcx, %rdx
jne 0x237df
movq %rax, 0xd0(%r14)
movq 0x20(%r14), %rsi
movq 0x120(%r14), %rdi
xorl %edx, %edx
callq 0x9530
testq %r15, %r15
jle 0x23824
movq 0xd0(%r14), %rdi
movq 0x120(%r14), %rcx
movl $0x1, %edx
movq %rbx, %rsi
callq 0x9720
movq 0x28(%r14), %r15
movq %r15, %rbx
shlq $0x4, %rbx
movabsq $0xfffffffffffffff, %rax # imm = 0xFFFFFFFFFFFFFFF
cmpq %rax, %r15
movq %rbx, %rdi
movq $-0x1, %rax
cmovaq %rax, %rdi
callq 0x9050
movq %rax, 0xd8(%r14)
movq 0x30(%r14), %rsi
movq 0x120(%r14), %rdi
xorl %edx, %edx
callq 0x9530
testq %r15, %r15
jle 0x23888
movq 0xd8(%r14), %rdi
movq 0x120(%r14), %rcx
movl $0x1, %edx
movq %rbx, %rsi
callq 0x9720
movq 0x38(%r14), %r15
movq %r15, %rbx
shlq $0x4, %rbx
movabsq $0xfffffffffffffff, %rax # imm = 0xFFFFFFFFFFFFFFF
cmpq %rax, %r15
movq %rbx, %rdi
movq $-0x1, %rax
cmovaq %rax, %rdi
callq 0x9050
movq %rax, 0xe0(%r14)
movq 0x40(%r14), %rsi
movq 0x120(%r14), %rdi
xorl %edx, %edx
callq 0x9530
testq %r15, %r15
jle 0x238ec
movq 0xe0(%r14), %rdi
movq 0x120(%r14), %rcx
movl $0x1, %edx
movq %rbx, %rsi
callq 0x9720
movq 0x48(%r14), %r15
movq %r15, %rbx
shlq $0x4, %rbx
movabsq $0xfffffffffffffff, %rax # imm = 0xFFFFFFFFFFFFFFF
cmpq %rax, %r15
movq %rbx, %rdi
movq $-0x1, %rax
cmovaq %rax, %rdi
callq 0x9050
movq %rax, 0xe8(%r14)
movq 0x50(%r14), %rsi
movq 0x120(%r14), %rdi
xorl %edx, %edx
callq 0x9530
testq %r15, %r15
jle 0x23950
movq 0xe8(%r14), %rdi
movq 0x120(%r14), %rcx
movl $0x1, %edx
movq %rbx, %rsi
callq 0x9720
movq 0x120(%r14), %rdi
movl $0x4a, %esi
xorl %edx, %edx
callq 0x9530
movq 0xd0(%r14), %rax
movq %rax, 0xf0(%r14)
movl $0xe, %edx
movq %r13, %rdi
leaq 0x46a81(%rip), %rsi     # 0x6a401
callq 0x9560
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
movq 0xf0(%r14), %rax
movq 0x120(%r14), %rdi
movq 0x10(%rax), %rsi
xorl %edx, %edx
callq 0x9530
movq 0x120(%r14), %rcx
movl $0x1, %esi
movl $0x1, %edx
movq -0x60(%rbp), %rbx
movq %rbx, %rdi
callq 0x9720
movq 0xf0(%r14), %rax
movq 0x8(%rax), %rsi
testq %rsi, %rsi
jle 0x23a12
movq 0x120(%r14), %rcx
movl $0x1, %edx
movq %rbx, %rdi
callq 0x9720
movq 0xf0(%r14), %rax
movq 0x8(%rax), %rsi
leaq -0x70(%rbp), %r15
movb $0x0, (%rbx,%rsi)
movl $0x1, -0x2c(%rbp)
jmp 0x23b1e
cmpq $0x0, 0xf0(%r14)
je 0x236de
movq 0x6059d(%rip), %rdi     # 0x83fd8
leaq -0x58(%rbp), %rsi
callq 0x92e0
movl -0x58(%rbp), %esi
movq %r14, %rdi
callq 0x23e8a
testb %al, %al
leaq 0x469df(%rip), %rsi     # 0x6a437
leaq 0x469c6(%rip), %rax     # 0x6a425
cmovneq %rax, %rsi
movl $0x11, %edx
movq %r13, %rdi
callq 0x9560
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
jmp 0x23b40
movl $0x25, %edx
movq %r13, %rdi
leaq 0x46913(%rip), %rsi     # 0x6a3bf
callq 0x9560
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
jmp 0x23b1e
movl $0x1b, %edx
movq %r13, %rdi
leaq 0x468fb(%rip), %rsi     # 0x6a3e5
callq 0x9560
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %r13, %rdi
callq 0x9070
movl $0x0, -0x2c(%rbp)
movq %rax, %rdi
callq 0x9330
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x23b37
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x94e0
testq %r12, %r12
jne 0x233e0
movq 0x60491(%rip), %rcx     # 0x83fd8
movq (%rcx), %rax
movq -0x18(%rax), %rax
leaq (%rcx,%rax), %rdi
movl 0x20(%rcx,%rax), %eax
testb $0x5, %al
je 0x23415
jmp 0x233d9
cmpq $0x0, 0xf0(%r14)
je 0x236de
leaq -0x48(%rbp), %rax
movq %rax, -0x58(%rbp)
movq $0x0, -0x50(%rbp)
movb $0x0, -0x48(%rbp)
movq 0x6044c(%rip), %rdi     # 0x83fd8
leaq -0x58(%rbp), %rsi
callq 0x9620
movq -0x58(%rbp), %rdi
leaq 0x468af(%rip), %rsi     # 0x6a44f
leaq -0x34(%rbp), %rdx
leaq -0x35(%rbp), %rcx
leaq -0x30(%rbp), %r8
xorl %eax, %eax
callq 0x9490
cmpl $0x3, %eax
jne 0x23c18
movl -0x30(%rbp), %eax
jmp 0x23c21
xorb $0x1, 0x139(%r14)
movl $0x11, %edx
movq %r13, %rdi
leaq 0x468b9(%rip), %rsi     # 0x6a48d
callq 0x9560
movzbl 0x139(%r14), %esi
movq %r13, %rdi
callq 0x9820
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x9480
movsbl %al, %esi
movq %rbx, %rdi
callq 0x9070
movq %rax, %rdi
callq 0x9330
jmp 0x23b40
movl $0x0, -0x30(%rbp)
xorl %eax, %eax
movl -0x34(%rbp), %ecx
movq %rax, %rdx
shlq $0x20, %rdx
movl %ecx, %esi
orq %rdx, %rsi
movq %rsi, 0x13c(%r14)
movq (%r14), %rdx
movl 0xc(%rdx), %edi
movl 0x10(%rdx), %r8d
movl %eax, %esi
xorl %r8d, %esi
movl %ecx, %r9d
xorl %edi, %r9d
movl $0x10, %edx
orl %esi, %r9d
leaq 0x467fb(%rip), %rsi     # 0x6a456
jne 0x23c69
movb $0x1, %bl
movq %r13, %rdi
callq 0x9560
jmp 0x23ca3
cmpl %edi, %ecx
sete %r9b
cmpl %r8d, %eax
setl %al
movl $0x1d, %edx
leaq 0x467e6(%rip), %rsi     # 0x6a467
cmpl %edi, %ecx
jl 0x23c5d
andb %r9b, %al
jne 0x23c5d
movb $0x1, 0x138(%r14)
movq %r14, %rdi
movq -0x60(%rbp), %rsi
callq 0x23d68
movl %eax, -0x2c(%rbp)
xorl %ebx, %ebx
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x23cbc
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x94e0
testb %bl, %bl
jne 0x23b40
jmp 0x233e0
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, 0x13c(%r14)
movb $0x1, 0x138(%r14)
movq %r14, %rdi
movq -0x60(%rbp), %rsi
callq 0x23d68
movl %eax, -0x2c(%rbp)
jmp 0x233e0
movq 0x602f8(%rip), %rdi     # 0x83ff0
leaq 0x4630f(%rip), %rsi     # 0x6a00e
movl $0x7, %edx
callq 0x9560
movq 0x602e0(%rip), %rdi     # 0x83ff0
callq 0x9240
jmp 0x233d9
jmp 0x23d44
jmp 0x23d26
jmp 0x23d26
jmp 0x23d44
jmp 0x23d26
jmp 0x23d26
movq %rax, %rbx
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x23d47
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x94e0
jmp 0x23d47
movq %rax, %rbx
movq -0x80(%rbp), %rdi
leaq -0x70(%rbp), %rax
cmpq %rax, %rdi
je 0x23d60
movq -0x70(%rbp), %rsi
incq %rsi
callq 0x94e0
movq %rbx, %rdi
callq 0x98b0