// File: mh0fm4[P]SCDC/src/components/dataprov/dataprov_fs2.cc
// Function: scdc_dataset_fs2_store::do_cmd_cd(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 do_cmd_cd(const string &params, scdc_dataset_input_t *input, scdc_dataset_output_t *output, scdc_result &result)
    {
      SCDC_TRACE("do_cmd_cd: '" << params << "'");

      if (params == "ADMIN")
      {
        admin = true;
        return scdc_dataset::do_cmd_cd(params, input, output, result);
      }

      scdc_dataprov_fs2 *dataprov_fs2 = static_cast<scdc_dataprov_fs2 *>(dataprov);

      if (!params.empty())
      {
        string store_path;
        dataprov_fs2->do_full_path(0, store_path);

        store_path += DIR_STORE_PREFIX + string(params) + "/";

        SCDC_TRACE("do_cmd_cd: store_path: '" << store_path << "'");

        if (!z_fs_is_directory(store_path.c_str()))
        {
          result = "store does not exist";
          SCDC_FAIL(__func__ << ": changing to store '" << params << "' failed: " << result);
          return false;
        }
      }

      admin = false;

      return scdc_dataset_fs2::do_cmd_cd(params, input, output, result);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd8(%rbp)
jmp 0x7833c
movq -0x18(%rbp), %rdi
leaq 0x2e947(%rip), %rsi     # 0xa6c8e
callq 0x25b80
testb $0x1, %al
jne 0x78352
jmp 0x7837c
movq -0xd8(%rbp), %rdi
movb $0x1, 0x6c(%rdi)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %r8
callq 0x42870
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x78669
movq -0xd8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
callq 0xcb60
testb $0x1, %al
jne 0x78644
leaq -0x58(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0xc960
movq -0xe0(%rbp), %rdx
movq -0x38(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x716b0
jmp 0x783c2
movq -0x18(%rbp), %rsi
leaq -0xc8(%rbp), %rdi
callq 0xc270
jmp 0x783d4
leaq 0x30234(%rip), %rsi     # 0xa860f
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rdx
callq 0x3b040
jmp 0x783f0
leaq 0x2df76(%rip), %rdx     # 0xa636d
leaq -0x88(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x2eef0
jmp 0x7840c
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0xc8a0
jmp 0x7841e
leaq -0x88(%rbp), %rdi
callq 0xc3e0
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
leaq -0xc8(%rbp), %rdi
callq 0xc3e0
jmp 0x78444
jmp 0x78446
leaq -0x58(%rbp), %rdi
callq 0xc260
movq %rax, %rdi
callq 0x5d460
movq %rax, -0xe8(%rbp)
jmp 0x78460
movq -0xe8(%rbp), %rax
cmpq $0x0, %rax
jne 0x78616
movq -0x30(%rbp), %rdi
leaq 0x302c5(%rip), %rsi     # 0xa8741
callq 0xc920
jmp 0x78483
jmp 0x78485
leaq 0x5c21c(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x257e0
cmpq $0x0, %rax
je 0x78602
leaq 0x5c203(%rip), %rax     # 0xd46a8
movq %rax, -0xf8(%rbp)
movq (%rax), %rdi
callq 0x25800
movq -0xf8(%rbp), %rax
movq (%rax), %rdi
callq 0x257e0
movq %rax, %rdi
leaq 0x2dce3(%rip), %rsi     # 0xa61b0
callq 0xc670
movq %rax, -0xf0(%rbp)
jmp 0x784db
movq -0xf0(%rbp), %rdi
leaq 0x300e9(%rip), %rsi     # 0xa85d2
callq 0xc670
movq %rax, -0x100(%rbp)
jmp 0x784f7
movq -0x100(%rbp), %rdi
leaq 0x2e79f(%rip), %rsi     # 0xa6ca4
callq 0xc670
movq %rax, -0x108(%rbp)
jmp 0x78513
movq -0x108(%rbp), %rdi
leaq 0x302cc(%rip), %rsi     # 0xa87ed
callq 0xc670
movq %rax, -0x110(%rbp)
jmp 0x7852f
movq -0x110(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x118(%rbp)
jmp 0x78548
movq -0x118(%rbp), %rdi
leaq 0x2e472(%rip), %rsi     # 0xa69c8
callq 0xc670
movq %rax, -0x120(%rbp)
jmp 0x78564
movq -0x120(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xc5b0
movq %rax, -0x128(%rbp)
jmp 0x7857d
movq -0x128(%rbp), %rdi
movq 0x5ba35(%rip), %rsi     # 0xd3fc0
callq 0xc6d0
jmp 0x78592
leaq 0x5c10f(%rip), %rax     # 0xd46a8
movq (%rax), %rdi
callq 0x25820
jmp 0x78602
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x78639
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x785f4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x785e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x88(%rbp), %rdi
callq 0xc3e0
leaq -0xa8(%rbp), %rdi
callq 0xc3e0
leaq -0xc8(%rbp), %rdi
callq 0xc3e0
jmp 0x78639
jmp 0x78604
jmp 0x78606
movb $0x0, -0x1(%rbp)
movl $0x1, -0xcc(%rbp)
jmp 0x78620
movl $0x0, -0xcc(%rbp)
leaq -0x58(%rbp), %rdi
callq 0xc3e0
movl -0xcc(%rbp), %eax
testl %eax, %eax
je 0x78637
jmp 0x78635
jmp 0x78669
jmp 0x78644
leaq -0x58(%rbp), %rdi
callq 0xc3e0
jmp 0x78677
movq -0xd8(%rbp), %rdi
movb $0x0, 0x6c(%rdi)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
movq -0x30(%rbp), %r8
callq 0x77e40
andb $0x1, %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0x60(%rbp), %rdi
callq 0xcba0