// File: mh0fm4[P]SCDC/src/components/compcoup/compcoup_transport.cc
// Function: scdc_dataset_transport::read_inout_info(scdc_transport_connection_t*, _scdc_dataset_inout_t*, bool&)
static bool read_inout_info(scdc_transport_connection_t *transport_connection_, scdc_dataset_inout_t *inout, bool &next)
    {
      scdc_dataset_inout_t inout_null;
      if (!inout) inout = &inout_null;

      string s;
      if (!read_delim(transport_connection_, &s, default_delim))
      {
        SCDC_FAIL("read_inout_info: read failed");
        return false;
      }

      /* parse format separately to allow empty format strings */
      size_t end = s.find('|');
      strncpy(inout->format, s.c_str(), end);
      inout->format[end] = '\0';

      int inext;
      int r = sscanf(s.c_str() + end, "|%" scdcint_fmt "|%c|%" scdcint_fmt "|%d", &inout->total_size, &inout->total_size_given, &SCDC_DATASET_INOUT_BUF_CURRENT(inout), &inext);

      if (r != 4)
      {
        SCDC_FAIL("read_inout_info: read failed");
        return false;
      }

      next = (inext != 0);

      return true;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x110, %rsp            # imm = 0x110
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0xa4156
leaq -0x78(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x98(%rbp), %rdi
movq %rdi, -0xc8(%rbp)
callq 0xc960
movq -0xc8(%rbp), %rsi
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %ecx
movl $0x20, %edx
callq 0xa2e00
movb %al, -0xb9(%rbp)
jmp 0xa418a
movb -0xb9(%rbp), %al
testb $0x1, %al
jne 0xa428a
jmp 0xa419a
jmp 0xa419c
leaq 0x30505(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0xa4273
leaq 0x304ec(%rip), %rax     # 0xd46a8
movq %rax, -0xd8(%rbp)
movq (%rax), %rdi
callq 0x25800
movq -0xd8(%rbp), %rax
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x1fcc(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0xd0(%rbp)
jmp 0xa41f2
movq -0xd0(%rbp), %rdi
leaq 0x5c47(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0xe0(%rbp)
jmp 0xa420e
movq -0xe0(%rbp), %rdi
leaq 0x62d1(%rip), %rsi      # 0xaa4ed
callq 0xc670
movq %rax, -0xe8(%rbp)
jmp 0xa422a
movq -0xe8(%rbp), %rdi
movq 0x2fd88(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0xa423f
leaq 0x30462(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0xa4273
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xc3e0
jmp 0xa443b
jmp 0xa4275
jmp 0xa4277
movb $0x0, -0x1(%rbp)
movl $0x1, -0xa8(%rbp)
jmp 0xa4421
leaq -0x98(%rbp), %rdi
movl $0x7c, %esi
xorl %eax, %eax
movl %eax, %edx
callq 0xc8e0
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0xf0(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xc260
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
movq -0xb0(%rbp), %rdx
callq 0xc320
movq -0x18(%rbp), %rax
movq -0xb0(%rbp), %rcx
movb $0x0, (%rax,%rcx)
leaq -0x98(%rbp), %rdi
callq 0xc260
movq %rax, %rdi
addq -0xb0(%rbp), %rdi
movq -0x18(%rbp), %rdx
addq $0x28, %rdx
movq -0x18(%rbp), %rcx
addq $0x30, %rcx
movq -0x18(%rbp), %r8
addq $0x20, %r8
leaq 0x61a6(%rip), %rsi      # 0xaa4bd
leaq -0xb4(%rbp), %r9
movb $0x0, %al
callq 0xc640
movl %eax, -0xb8(%rbp)
cmpl $0x4, -0xb8(%rbp)
je 0xa4400
jmp 0xa433a
leaq 0x30367(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0xa43ec
leaq 0x3034e(%rip), %rax     # 0xd46a8
movq %rax, -0x100(%rbp)
movq (%rax), %rdi
callq 0x25800
movq -0x100(%rbp), %rax
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x1e2e(%rip), %rsi      # 0xa61b0
callq 0xc670
movq %rax, -0xf8(%rbp)
jmp 0xa4390
movq -0xf8(%rbp), %rdi
leaq 0x5aa9(%rip), %rsi      # 0xa9e47
callq 0xc670
movq %rax, -0x108(%rbp)
jmp 0xa43ac
movq -0x108(%rbp), %rdi
leaq 0x6133(%rip), %rsi      # 0xaa4ed
callq 0xc670
movq %rax, -0x110(%rbp)
jmp 0xa43c8
movq -0x110(%rbp), %rdi
movq 0x2fbea(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0xa43dd
leaq 0x302c4(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0xa43ee
jmp 0xa43f0
movb $0x0, -0x1(%rbp)
movl $0x1, -0xa8(%rbp)
jmp 0xa4421
cmpl $0x0, -0xb4(%rbp)
setne %cl
movq -0x20(%rbp), %rax
andb $0x1, %cl
movb %cl, (%rax)
movb $0x1, -0x1(%rbp)
movl $0x1, -0xa8(%rbp)
leaq -0x98(%rbp), %rdi
callq 0xc3e0
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x110, %rsp            # imm = 0x110
popq %rbp
retq
movq -0xa0(%rbp), %rdi
callq 0xcba0
nopw (%rax,%rax)