// File: mh0fm4[P]SCDC/src/components/compcoup/compcoup_transport.cc
// Function: scdc_compcoup_transport::dataset_cmd(scdc_dataset*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, _scdc_dataset_inout_t*, _scdc_dataset_inout_t*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
bool scdc_compcoup_transport::dataset_cmd(scdc_dataset *dataset, const string &cmd, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
{
  SCDC_TRACE("dataset_cmd: dataset: " << dataset << ", cmd: '" << cmd << "'");

  if (!transport_connection->acquire())
  {
    result = "acquiring connection failed";
    SCDC_FAIL(__func__ << ": " << result);
    return false;
  }

  bool ret = true;

  scdc_dataset_transport *dataset_transport = static_cast<scdc_dataset_transport *>(dataset);

  /* send request: DATASET_CMD <output-info> (STATE <state>|NOSTATE) <cmd> (<input-info> <input-data> )+ */

  ret = ret && scdc_dataset_transport::write_delim(transport_connection, "DATASET_CMD", -1, default_delim);
  ret = ret && scdc_dataset_transport::write_output_info(transport_connection, output);
  if (dataset_transport)
  {
    ret = ret && scdc_dataset_transport::write_delim(transport_connection, "STATE", -1, default_delim);
    ret = ret && dataset_transport->write_state();

  } else
  {
    ret = ret && scdc_dataset_transport::write_delim(transport_connection, "NOSTATE", -1, default_delim);
  }
  ret = ret && scdc_dataset_transport::write_string(transport_connection, cmd);

  if (!ret)
  {
    result = "sending cmd request failed";
    SCDC_FAIL(__func__ << ": " << result);
    transport_connection->release();
    return false;
  }

  /* send input */
  ret = ret && dataset_input_outgoing_produce(transport_connection, input);

  ret = ret && transport->send_outgoing(transport_connection);

  if (!ret)
  {
    result = "sending input failed";
    SCDC_FAIL(__func__ << ": " << result);
    transport_connection->release();
    return false;
  }

  /* read answer: DATASET_CMD (<output-info> <output-data> )+(OK|FAILED) (STATE <state>|NOSTATE) RESULT <string> (<output-info> <output-data> )+ */

  string s;

  ret = ret && scdc_dataset_transport::read_delim(transport_connection, &s, default_delim);
  SCDC_ASSERT(s == "DATASET_CMD");

  if (!ret)
  {
    result = "reading cmd answer (1) failed";
    SCDC_FAIL(__func__ << ": " << result);
    transport_connection->release();
    return false;
  }

  bool output_next = false;

  /* consume immediate output with a given next function */
  ret = ret && dataset_output_incoming_consume(transport_connection, output, &output_next);
  SCDC_ASSERT(!output_next);

  if (!ret)
  {
    result = "reading immediate output failed";
    SCDC_FAIL(__func__ << ": " << result);
    transport_connection->release();
    return false;
  }

  bool cmd_ret = false;

  ret = ret && scdc_dataset_transport::read_delim(transport_connection, &s, default_delim);

  if (s == "OK")
  {
    cmd_ret = true;

  } else
  {
    SCDC_ASSERT(s == "FAILED");
  }

  ret = ret && scdc_dataset_transport::read_delim(transport_connection, &s, default_delim);
  if (s == "STATE")
  {
    ret = ret && dataset_transport->read_state();

  } else
  {
    SCDC_ASSERT(s == "NOSTATE");
    SCDC_ASSERT(!dataset_transport);
  }

  ret = ret && scdc_dataset_transport::read_delim(transport_connection, &s, default_delim);
  SCDC_ASSERT(s == "RESULT");
  ret = ret && scdc_dataset_transport::read_string(transport_connection, &result);

  if (!ret)
  {
    result = "reading cmd answer (2) failed";
    SCDC_FAIL(__func__ << ": " << result);
    delete dataset_transport;
    transport_connection->release();
    return false;
  }

  /* final output is either consumed by a given next function or has to be further consumed using the next function */
  output_next = false;
  ret = ret && dataset_output_incoming_consume(transport_connection, output, &output_next);

  if (output)
  {
    if (output_next)
    {
      output->next = read_output_next;
      output->data = transport_connection;

    } else
    {
      if (transport_connection->current_incoming_output_intern)
      {
        output->next = read_output_next;
        output->data = transport_connection;

        /* unset internal buffer usage for next 'next' */
        transport_connection->current_incoming_output_intern = false;

      } else
      {
        output->next = 0;
        output->data = 0;
      }
    }
  }

  if (!ret)
  {
    result = "reading output failed";
    SCDC_FAIL(__func__ << ": " << result);
    delete dataset_transport;
    transport_connection->release();
    return false;
  }

  ret = cmd_ret;

  if (!output || !output->next) transport_connection->release();

  SCDC_TRACE_F("return: " << ret << ", result: '" << result << "'");

  return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x340, %rsp            # imm = 0x340
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
jmp 0x9eee0
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97b90
testb $0x1, %al
jne 0x9efb0
movq -0x38(%rbp), %rdi
leaq 0xaf28(%rip), %rsi      # 0xa9e2b
callq 0xc920
leaq 0x35799(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x9efa5
leaq 0x35780(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x35771(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x7267(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0xaeef(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, %rdi
leaq 0x64e4(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, %rdi
leaq 0xab75(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, %rdi
movq 0x3502f(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x3570b(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x9efa7
movb $0x0, -0x1(%rbp)
jmp 0xa03e3
movb $0x1, -0x39(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x89(%rbp)
je 0x9eff3
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xafc1(%rip), %rsi      # 0xa9f9d
movq $-0x1, %rdx
movl $0x20, %ecx
callq 0xa2c90
movb %al, -0x89(%rbp)
movb -0x89(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8a(%rbp)
je 0x9f028
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x30(%rbp), %rsi
xorl %edx, %edx
callq 0xa3620
movb %al, -0x8a(%rbp)
movb -0x8a(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x9f0a6
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8b(%rbp)
je 0x9f071
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xae7b(%rip), %rsi      # 0xa9ed5
movq $-0x1, %rdx
movl $0x20, %ecx
callq 0xa2c90
movb %al, -0x8b(%rbp)
movb -0x8b(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8c(%rbp)
je 0x9f099
movq -0x48(%rbp), %rdi
callq 0xa3550
movb %al, -0x8c(%rbp)
movb -0x8c(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
jmp 0x9f0e8
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8d(%rbp)
je 0x9f0dd
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0xae0d(%rip), %rsi      # 0xa9ed3
movq $-0x1, %rdx
movl $0x20, %ecx
callq 0xa2c90
movb %al, -0x8d(%rbp)
movb -0x8d(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8e(%rbp)
je 0x9f110
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x20(%rbp), %rsi
callq 0xa2db0
movb %al, -0x8e(%rbp)
movb -0x8e(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x9f1ed
movq -0x38(%rbp), %rdi
leaq 0xae79(%rip), %rsi      # 0xa9fa9
callq 0xc920
leaq 0x3556c(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x9f1d2
leaq 0x35553(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x35544(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x703a(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0xacc2(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, %rdi
leaq 0x62b7(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, %rdi
leaq 0xa948(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, %rdi
movq 0x34e02(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x354de(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x9f1d4
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
movb $0x0, -0x1(%rbp)
jmp 0xa03e3
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x8f(%rbp)
je 0x9f215
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0xa0400
movb %al, -0x8f(%rbp)
movb -0x8f(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x90(%rbp)
je 0x9f24c
movq -0x88(%rbp), %rax
movq 0x10(%rax), %rdi
movq 0x18(%rax), %rsi
movq (%rdi), %rax
callq *0xd0(%rax)
movb %al, -0x90(%rbp)
movb -0x90(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0x9f329
movq -0x38(%rbp), %rdi
leaq 0xad58(%rip), %rsi      # 0xa9fc4
callq 0xc920
leaq 0x35430(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x9f30e
leaq 0x35417(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
leaq 0x35408(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x6efe(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, %rdi
leaq 0xab86(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, %rdi
leaq 0x617b(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, %rdi
leaq 0xa80c(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, %rdi
movq 0x34cc6(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
leaq 0x353a2(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x9f310
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
movb $0x0, -0x1(%rbp)
jmp 0xa03e3
leaq -0x68(%rbp), %rdi
callq 0xc960
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x91(%rbp)
je 0x9f373
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x68(%rbp), %rsi
movl $0x20, %edx
callq 0xa2e00
movb %al, -0x92(%rbp)
jmp 0x9f365
movb -0x92(%rbp), %al
movb %al, -0x91(%rbp)
jmp 0x9f373
movb -0x91(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
leaq 0xac18(%rip), %rsi      # 0xa9f9d
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x93(%rbp)
jmp 0x9f396
movb -0x93(%rbp), %al
testb $0x1, %al
jne 0x9f4e8
jmp 0x9f3a6
jmp 0x9f3a8
leaq 0x352f9(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0xa0(%rbp)
jmp 0x9f3c0
movq -0xa0(%rbp), %rax
cmpq $0x0, %rax
je 0x9f4e2
leaq 0x352d0(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9f3e2
leaq 0x352bf(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0xa8(%rbp)
jmp 0x9f3fa
movq -0xa8(%rbp), %rdi
leaq 0x7161(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0xb0(%rbp)
jmp 0x9f416
movq -0xb0(%rbp), %rdi
leaq 0xaa61(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0xb8(%rbp)
jmp 0x9f432
movq -0xb8(%rbp), %rdi
leaq 0x6f24(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0xc0(%rbp)
jmp 0x9f44e
movq -0xc0(%rbp), %rdi
movl $0x2d7, %esi            # imm = 0x2D7
callq 0xcb80
movq %rax, -0xc8(%rbp)
jmp 0x9f468
movq -0xc8(%rbp), %rdi
leaq 0xab63(%rip), %rsi      # 0xa9fd9
callq 0xc670
movq %rax, -0xd0(%rbp)
jmp 0x9f484
movq -0xd0(%rbp), %rdi
leaq 0x8a7a(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0xd8(%rbp)
jmp 0x9f4a0
movq -0xd8(%rbp), %rdi
movq 0x34b12(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9f4b5
leaq 0x351ec(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9f4c6
jmp 0x9f4e2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xc3e0
jmp 0xa03f1
jmp 0x9f4e4
jmp 0x9f4e6
jmp 0x9f4e8
jmp 0x9f4ea
jmp 0x9f4ec
testb $0x1, -0x39(%rbp)
jne 0x9f633
movq -0x38(%rbp), %rdi
leaq 0xaaee(%rip), %rsi      # 0xa9fef
callq 0xc920
jmp 0x9f508
jmp 0x9f50a
leaq 0x35197(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0xe0(%rbp)
jmp 0x9f522
movq -0xe0(%rbp), %rax
cmpq $0x0, %rax
je 0x9f60d
leaq 0x3516e(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x9f544
leaq 0x3515d(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0xe8(%rbp)
jmp 0x9f55c
movq -0xe8(%rbp), %rdi
leaq 0x6c46(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0xf0(%rbp)
jmp 0x9f578
movq -0xf0(%rbp), %rdi
leaq 0xa8c1(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0xf8(%rbp)
jmp 0x9f594
movq -0xf8(%rbp), %rdi
leaq 0x5ea9(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, -0x100(%rbp)
jmp 0x9f5b0
movq -0x100(%rbp), %rdi
leaq 0xa52d(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, -0x108(%rbp)
jmp 0x9f5cc
movq -0x108(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x110(%rbp)
jmp 0x9f5e5
movq -0x110(%rbp), %rdi
movq 0x349cd(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9f5fa
leaq 0x350a7(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x9f60b
jmp 0x9f60d
jmp 0x9f60f
jmp 0x9f611
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
jmp 0x9f623
movb $0x0, -0x1(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0xa03da
movb $0x0, -0x79(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x111(%rbp)
je 0x9f673
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x30(%rbp), %rsi
leaq -0x79(%rbp), %rdx
callq 0xa0590
movb %al, -0x112(%rbp)
jmp 0x9f665
movb -0x112(%rbp), %al
movb %al, -0x111(%rbp)
jmp 0x9f673
movb -0x111(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
testb $0x1, -0x79(%rbp)
je 0x9f7b0
jmp 0x9f68a
leaq 0x35017(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x120(%rbp)
jmp 0x9f6a2
movq -0x120(%rbp), %rax
cmpq $0x0, %rax
je 0x9f7aa
leaq 0x34fee(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9f6c4
leaq 0x34fdd(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x128(%rbp)
jmp 0x9f6dc
movq -0x128(%rbp), %rdi
leaq 0x6e7f(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0x130(%rbp)
jmp 0x9f6f8
movq -0x130(%rbp), %rdi
leaq 0xa77f(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0x138(%rbp)
jmp 0x9f714
movq -0x138(%rbp), %rdi
leaq 0x6c42(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0x140(%rbp)
jmp 0x9f730
movq -0x140(%rbp), %rdi
movl $0x2e5, %esi            # imm = 0x2E5
callq 0xcb80
movq %rax, -0x148(%rbp)
jmp 0x9f74a
movq -0x148(%rbp), %rdi
leaq 0xa8b5(%rip), %rsi      # 0xaa00d
callq 0xc670
movq %rax, -0x150(%rbp)
jmp 0x9f766
movq -0x150(%rbp), %rdi
leaq 0x8798(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0x158(%rbp)
jmp 0x9f782
movq -0x158(%rbp), %rdi
movq 0x34830(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9f797
leaq 0x34f0a(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9f7a8
jmp 0x9f7aa
jmp 0x9f7ac
jmp 0x9f7ae
jmp 0x9f7b0
jmp 0x9f7b2
jmp 0x9f7b4
testb $0x1, -0x39(%rbp)
jne 0x9f8fb
movq -0x38(%rbp), %rdi
leaq 0xa854(%rip), %rsi      # 0xaa01d
callq 0xc920
jmp 0x9f7d0
jmp 0x9f7d2
leaq 0x34ecf(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x160(%rbp)
jmp 0x9f7ea
movq -0x160(%rbp), %rax
cmpq $0x0, %rax
je 0x9f8d5
leaq 0x34ea6(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0x9f80c
leaq 0x34e95(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x168(%rbp)
jmp 0x9f824
movq -0x168(%rbp), %rdi
leaq 0x697e(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0x170(%rbp)
jmp 0x9f840
movq -0x170(%rbp), %rdi
leaq 0xa5f9(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0x178(%rbp)
jmp 0x9f85c
movq -0x178(%rbp), %rdi
leaq 0x5be1(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, -0x180(%rbp)
jmp 0x9f878
movq -0x180(%rbp), %rdi
leaq 0xa265(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, -0x188(%rbp)
jmp 0x9f894
movq -0x188(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x190(%rbp)
jmp 0x9f8ad
movq -0x190(%rbp), %rdi
movq 0x34705(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9f8c2
leaq 0x34ddf(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x9f8d3
jmp 0x9f8d5
jmp 0x9f8d7
jmp 0x9f8d9
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
jmp 0x9f8eb
movb $0x0, -0x1(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0xa03da
movb $0x0, -0x7a(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x191(%rbp)
je 0x9f940
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x68(%rbp), %rsi
movl $0x20, %edx
callq 0xa2e00
movb %al, -0x192(%rbp)
jmp 0x9f932
movb -0x192(%rbp), %al
movb %al, -0x191(%rbp)
jmp 0x9f940
movb -0x191(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
leaq 0x5bea(%rip), %rsi      # 0xa553c
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x193(%rbp)
jmp 0x9f963
movb -0x193(%rbp), %al
testb $0x1, %al
jne 0x9f96f
jmp 0x9f978
movb $0x1, -0x7a(%rbp)
jmp 0x9fad0
jmp 0x9f97a
leaq 0xa53a(%rip), %rsi      # 0xa9ebb
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x194(%rbp)
jmp 0x9f992
movb -0x194(%rbp), %al
testb $0x1, %al
jne 0x9faca
jmp 0x9f9a2
jmp 0x9f9a4
leaq 0x34cfd(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x1a0(%rbp)
jmp 0x9f9bc
movq -0x1a0(%rbp), %rax
cmpq $0x0, %rax
je 0x9fac4
leaq 0x34cd4(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9f9de
leaq 0x34cc3(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x1a8(%rbp)
jmp 0x9f9f6
movq -0x1a8(%rbp), %rdi
leaq 0x6b65(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0x1b0(%rbp)
jmp 0x9fa12
movq -0x1b0(%rbp), %rdi
leaq 0xa465(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0x1b8(%rbp)
jmp 0x9fa2e
movq -0x1b8(%rbp), %rdi
leaq 0x6928(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0x1c0(%rbp)
jmp 0x9fa4a
movq -0x1c0(%rbp), %rdi
movl $0x2f9, %esi            # imm = 0x2F9
callq 0xcb80
movq %rax, -0x1c8(%rbp)
jmp 0x9fa64
movq -0x1c8(%rbp), %rdi
leaq 0xa450(%rip), %rsi      # 0xa9ec2
callq 0xc670
movq %rax, -0x1d0(%rbp)
jmp 0x9fa80
movq -0x1d0(%rbp), %rdi
leaq 0x847e(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0x1d8(%rbp)
jmp 0x9fa9c
movq -0x1d8(%rbp), %rdi
movq 0x34516(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9fab1
leaq 0x34bf0(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9fac2
jmp 0x9fac4
jmp 0x9fac6
jmp 0x9fac8
jmp 0x9faca
jmp 0x9facc
jmp 0x9face
jmp 0x9fad0
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x1d9(%rbp)
je 0x9fb11
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x68(%rbp), %rsi
movl $0x20, %edx
callq 0xa2e00
movb %al, -0x1da(%rbp)
jmp 0x9fb03
movb -0x1da(%rbp), %al
movb %al, -0x1d9(%rbp)
jmp 0x9fb11
movb -0x1d9(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
leaq 0xa3b2(%rip), %rsi      # 0xa9ed5
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x1db(%rbp)
jmp 0x9fb34
movb -0x1db(%rbp), %al
testb $0x1, %al
jne 0x9fb40
jmp 0x9fb7d
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x1dc(%rbp)
je 0x9fb6d
movq -0x48(%rbp), %rdi
callq 0xa3060
movb %al, -0x1dd(%rbp)
jmp 0x9fb5f
movb -0x1dd(%rbp), %al
movb %al, -0x1dc(%rbp)
jmp 0x9fb6d
movb -0x1dc(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
jmp 0x9fe0e
jmp 0x9fb7f
leaq 0xa34d(%rip), %rsi      # 0xa9ed3
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x1de(%rbp)
jmp 0x9fb97
movb -0x1de(%rbp), %al
testb $0x1, %al
jne 0x9fccf
jmp 0x9fba7
jmp 0x9fba9
leaq 0x34af8(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x1e8(%rbp)
jmp 0x9fbc1
movq -0x1e8(%rbp), %rax
cmpq $0x0, %rax
je 0x9fcc9
leaq 0x34acf(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9fbe3
leaq 0x34abe(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x1f0(%rbp)
jmp 0x9fbfb
movq -0x1f0(%rbp), %rdi
leaq 0x6960(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0x1f8(%rbp)
jmp 0x9fc17
movq -0x1f8(%rbp), %rdi
leaq 0xa260(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0x200(%rbp)
jmp 0x9fc33
movq -0x200(%rbp), %rdi
leaq 0x6723(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0x208(%rbp)
jmp 0x9fc4f
movq -0x208(%rbp), %rdi
movl $0x303, %esi            # imm = 0x303
callq 0xcb80
movq %rax, -0x210(%rbp)
jmp 0x9fc69
movq -0x210(%rbp), %rdi
leaq 0xa264(%rip), %rsi      # 0xa9edb
callq 0xc670
movq %rax, -0x218(%rbp)
jmp 0x9fc85
movq -0x218(%rbp), %rdi
leaq 0x8279(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0x220(%rbp)
jmp 0x9fca1
movq -0x220(%rbp), %rdi
movq 0x34311(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9fcb6
leaq 0x349eb(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9fcc7
jmp 0x9fcc9
jmp 0x9fccb
jmp 0x9fccd
jmp 0x9fccf
jmp 0x9fcd1
jmp 0x9fcd3
jmp 0x9fcd5
cmpq $0x0, -0x48(%rbp)
je 0x9fe08
jmp 0x9fce2
leaq 0x349bf(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x228(%rbp)
jmp 0x9fcfa
movq -0x228(%rbp), %rax
cmpq $0x0, %rax
je 0x9fe02
leaq 0x34996(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9fd1c
leaq 0x34985(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x230(%rbp)
jmp 0x9fd34
movq -0x230(%rbp), %rdi
leaq 0x6827(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0x238(%rbp)
jmp 0x9fd50
movq -0x238(%rbp), %rdi
leaq 0xa127(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0x240(%rbp)
jmp 0x9fd6c
movq -0x240(%rbp), %rdi
leaq 0x65ea(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0x248(%rbp)
jmp 0x9fd88
movq -0x248(%rbp), %rdi
movl $0x304, %esi            # imm = 0x304
callq 0xcb80
movq %rax, -0x250(%rbp)
jmp 0x9fda2
movq -0x250(%rbp), %rdi
leaq 0xa28d(%rip), %rsi      # 0xaa03d
callq 0xc670
movq %rax, -0x258(%rbp)
jmp 0x9fdbe
movq -0x258(%rbp), %rdi
leaq 0x8140(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0x260(%rbp)
jmp 0x9fdda
movq -0x260(%rbp), %rdi
movq 0x341d8(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9fdef
leaq 0x348b2(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9fe00
jmp 0x9fe02
jmp 0x9fe04
jmp 0x9fe06
jmp 0x9fe08
jmp 0x9fe0a
jmp 0x9fe0c
jmp 0x9fe0e
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x261(%rbp)
je 0x9fe4f
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %eax, %eax
movl %eax, %ecx
leaq -0x68(%rbp), %rsi
movl $0x20, %edx
callq 0xa2e00
movb %al, -0x262(%rbp)
jmp 0x9fe41
movb -0x262(%rbp), %al
movb %al, -0x261(%rbp)
jmp 0x9fe4f
movb -0x261(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
leaq 0xa08c(%rip), %rsi      # 0xa9eed
leaq -0x68(%rbp), %rdi
callq 0x25b80
movb %al, -0x263(%rbp)
jmp 0x9fe72
movb -0x263(%rbp), %al
testb $0x1, %al
jne 0x9ffaa
jmp 0x9fe82
jmp 0x9fe84
leaq 0x3481d(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x270(%rbp)
jmp 0x9fe9c
movq -0x270(%rbp), %rax
cmpq $0x0, %rax
je 0x9ffa4
leaq 0x347f4(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e900
jmp 0x9febe
leaq 0x347e3(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e8e0
movq %rax, -0x278(%rbp)
jmp 0x9fed6
movq -0x278(%rbp), %rdi
leaq 0x6685(%rip), %rsi      # 0xa6569
callq 0xc670
movq %rax, -0x280(%rbp)
jmp 0x9fef2
movq -0x280(%rbp), %rdi
leaq 0x9f85(%rip), %rsi      # 0xa9e85
callq 0xc670
movq %rax, -0x288(%rbp)
jmp 0x9ff0e
movq -0x288(%rbp), %rdi
leaq 0x6448(%rip), %rsi      # 0xa6364
callq 0xc670
movq %rax, -0x290(%rbp)
jmp 0x9ff2a
movq -0x290(%rbp), %rdi
movl $0x308, %esi            # imm = 0x308
callq 0xcb80
movq %rax, -0x298(%rbp)
jmp 0x9ff44
movq -0x298(%rbp), %rdi
leaq 0x9fa2(%rip), %rsi      # 0xa9ef4
callq 0xc670
movq %rax, -0x2a0(%rbp)
jmp 0x9ff60
movq -0x2a0(%rbp), %rdi
leaq 0x7f9e(%rip), %rsi      # 0xa7f0c
callq 0xc670
movq %rax, -0x2a8(%rbp)
jmp 0x9ff7c
movq -0x2a8(%rbp), %rdi
movq 0x34036(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x9ff91
leaq 0x34710(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x2e920
jmp 0x9ffa2
jmp 0x9ffa4
jmp 0x9ffa6
jmp 0x9ffa8
jmp 0x9ffaa
jmp 0x9ffac
jmp 0x9ffae
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x2a9(%rbp)
je 0x9ffe6
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x38(%rbp), %rsi
callq 0xa31d0
movb %al, -0x2aa(%rbp)
jmp 0x9ffd8
movb -0x2aa(%rbp), %al
movb %al, -0x2a9(%rbp)
jmp 0x9ffe6
movb -0x2a9(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
testb $0x1, -0x39(%rbp)
jne 0xa0156
movq -0x38(%rbp), %rdi
leaq 0xa04d(%rip), %rsi      # 0xaa053
callq 0xc920
jmp 0xa000d
jmp 0xa000f
leaq 0x34692(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x2b8(%rbp)
jmp 0xa0027
movq -0x2b8(%rbp), %rax
cmpq $0x0, %rax
je 0xa0112
leaq 0x34669(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0xa0049
leaq 0x34658(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x2c0(%rbp)
jmp 0xa0061
movq -0x2c0(%rbp), %rdi
leaq 0x6141(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0x2c8(%rbp)
jmp 0xa007d
movq -0x2c8(%rbp), %rdi
leaq 0x9dbc(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0x2d0(%rbp)
jmp 0xa0099
movq -0x2d0(%rbp), %rdi
leaq 0x53a4(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, -0x2d8(%rbp)
jmp 0xa00b5
movq -0x2d8(%rbp), %rdi
leaq 0x9a28(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, -0x2e0(%rbp)
jmp 0xa00d1
movq -0x2e0(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x2e8(%rbp)
jmp 0xa00ea
movq -0x2e8(%rbp), %rdi
movq 0x33ec8(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0xa00ff
leaq 0x345a2(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0xa0110
jmp 0xa0112
jmp 0xa0114
jmp 0xa0116
movq -0x48(%rbp), %rax
movq %rax, -0x2f0(%rbp)
cmpq $0x0, %rax
je 0xa0134
movq -0x2f0(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
jmp 0xa0146
movb $0x0, -0x1(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0xa03da
movb $0x0, -0x79(%rbp)
xorl %eax, %eax
testb $0x1, -0x39(%rbp)
movb %al, -0x2f1(%rbp)
je 0xa0196
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x30(%rbp), %rsi
leaq -0x79(%rbp), %rdx
callq 0xa0590
movb %al, -0x2f2(%rbp)
jmp 0xa0188
movb -0x2f2(%rbp), %al
movb %al, -0x2f1(%rbp)
jmp 0xa0196
movb -0x2f1(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0xa0235
testb $0x1, -0x79(%rbp)
je 0xa01d6
movq -0x88(%rbp), %rax
movq -0x30(%rbp), %rcx
leaq 0x59c(%rip), %rdx       # 0xa0760
movq %rdx, 0x38(%rcx)
movq 0x18(%rax), %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0xa0233
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rax
testb $0x1, 0x2d3(%rax)
je 0xa0219
movq -0x88(%rbp), %rax
movq -0x30(%rbp), %rcx
leaq 0x564(%rip), %rdx       # 0xa0760
movq %rdx, 0x38(%rcx)
movq 0x18(%rax), %rdx
movq -0x30(%rbp), %rcx
movq %rdx, 0x40(%rcx)
movq 0x18(%rax), %rax
movb $0x0, 0x2d3(%rax)
jmp 0xa0231
movq -0x30(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x30(%rbp), %rax
movq $0x0, 0x40(%rax)
jmp 0xa0233
jmp 0xa0235
testb $0x1, -0x39(%rbp)
jne 0xa0397
movq -0x38(%rbp), %rdi
leaq 0x9e27(%rip), %rsi      # 0xaa071
callq 0xc920
jmp 0xa0251
jmp 0xa0253
leaq 0x3444e(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x300(%rbp)
jmp 0xa026b
movq -0x300(%rbp), %rax
cmpq $0x0, %rax
je 0xa0356
leaq 0x34425(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25800
jmp 0xa028d
leaq 0x34414(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
movq %rax, -0x308(%rbp)
jmp 0xa02a5
movq -0x308(%rbp), %rdi
leaq 0x5efd(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0x310(%rbp)
jmp 0xa02c1
movq -0x310(%rbp), %rdi
leaq 0x9b78(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0x318(%rbp)
jmp 0xa02dd
movq -0x318(%rbp), %rdi
leaq 0x5160(%rip), %rsi      # 0xa544b
callq 0xc670
movq %rax, -0x320(%rbp)
jmp 0xa02f9
movq -0x320(%rbp), %rdi
leaq 0x97e4(%rip), %rsi      # 0xa9aeb
callq 0xc670
movq %rax, -0x328(%rbp)
jmp 0xa0315
movq -0x328(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x330(%rbp)
jmp 0xa032e
movq -0x330(%rbp), %rdi
movq 0x33c84(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0xa0343
leaq 0x3435e(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0xa0354
jmp 0xa0356
jmp 0xa0358
jmp 0xa035a
movq -0x48(%rbp), %rax
movq %rax, -0x338(%rbp)
cmpq $0x0, %rax
je 0xa0378
movq -0x338(%rbp), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
jmp 0xa038a
movb $0x0, -0x1(%rbp)
movl $0x1, -0x78(%rbp)
jmp 0xa03da
movb -0x7a(%rbp), %al
andb $0x1, %al
movb %al, -0x39(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0xa03b1
movq -0x30(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0xa03c5
movq -0x88(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x97bd0
jmp 0xa03c3
jmp 0xa03c5
jmp 0xa03c7
jmp 0xa03c9
jmp 0xa03cb
movb -0x39(%rbp), %al
andb $0x1, %al
movb %al, -0x1(%rbp)
movl $0x1, -0x78(%rbp)
leaq -0x68(%rbp), %rdi
callq 0xc3e0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x340, %rsp            # imm = 0x340
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0xcba0
nopw (%rax,%rax)