// File: /workspace/github_cpp_makefile_star2_O2/trapexit[P]bbf/src/bbf_fsthrash.cpp
// Function: l::fsthrash(Options const&)
AppError
  fsthrash(const Options &opts_)
  {
    FSThrashState state(opts_.device);
    int rv;
    pthread_t thread_id;
    std::vector<pthread_t> threads;

    state.verbose = !opts_.quiet;
    l::spawn_thread(l::create_thread,&state,&threads);
    l::spawn_thread(l::open_thread,&state,&threads);
    l::spawn_thread(l::mkdir_thread,&state,&threads);
    l::spawn_thread(l::write_thread,&state,&threads);
    l::spawn_thread(l::read_thread,&state,&threads);
    l::spawn_thread(l::unlink_thread,&state,&threads);
    l::spawn_thread(l::rmdir_thread,&state,&threads);
    l::spawn_thread(l::close_thread,&state,&threads);
    l::spawn_thread(l::readdir_thread,&state,&threads);
    l::spawn_thread(l::stat_thread,&state,&threads);
    l::spawn_thread(l::chmod_thread,&state,&threads);
    l::spawn_thread(l::chown_thread,&state,&threads);
    l::spawn_thread(l::link_thread,&state,&threads);
    l::spawn_thread(l::symlink_thread,&state,&threads);

    printf("CTRL-C to exit...\n");
    pause();
    printf("Cleaning up...\n");

    l::disable_signals();
    state.is_finished = true;
    for(size_t i = 0; i < threads.size(); i++)
      pthread_join(threads[i],NULL);

    return AppError::success();
  }

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x180, %rsp            # imm = 0x180
movq %rsi, %r14
movq %rdi, %rbx
addq $0x8, %rsi
leaq 0x18(%rsp), %r15
movq %r15, %rdi
callq 0x8828
movq %rsp, %rdx
andq $0x0, 0x10(%rdx)
xorps %xmm0, %xmm0
movaps %xmm0, (%rdx)
cmpl $0x0, 0x28(%r14)
sete 0x1(%r15)
leaq 0x230(%rip), %rdi       # 0x7b4e
movq %r15, %rsi
callq 0x7ada
leaq 0x300(%rip), %rdi       # 0x7c2d
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x3c0(%rip), %rdi       # 0x7d01
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x482(%rip), %rdi       # 0x7dd7
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x517(%rip), %rdi       # 0x7e80
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x5fb(%rip), %rdi       # 0x7f78
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x702(%rip), %rdi       # 0x8093
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x809(%rip), %rdi       # 0x81ae
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x873(%rip), %rdi       # 0x822c
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x8d3(%rip), %rdi       # 0x82a0
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0x998(%rip), %rdi       # 0x8379
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0xa57(%rip), %rdi       # 0x844c
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0xb20(%rip), %rdi       # 0x8529
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0xc40(%rip), %rdi       # 0x865d
leaq 0x18(%rsp), %rsi
movq %rsp, %rdx
callq 0x7ada
leaq 0xa800(%rip), %rdi      # 0x12231
callq 0x4660
callq 0x4090
leaq 0xa98b(%rip), %rdi      # 0x123cd
callq 0x4660
leaq 0x100(%rsp), %r14
movq %r14, %rdi
callq 0x4170
xorl %r15d, %r15d
pushq $0x2
popq %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x40f0
movb $0x1, 0x18(%rsp)
movq (%rsp), %rax
movq 0x8(%rsp), %rcx
subq %rax, %rcx
sarq $0x3, %rcx
cmpq %rcx, %r15
jae 0x7a91
movq (%rax,%r15,8), %rdi
xorl %esi, %esi
callq 0x4440
incq %r15
jmp 0x7a6c
movq %rbx, %rdi
callq 0xb6d0
movq %rsp, %rdi
callq 0x63d8
leaq 0x18(%rsp), %rdi
callq 0x884e
movq %rbx, %rax
addq $0x180, %rsp            # imm = 0x180
popq %rbx
popq %r14
popq %r15
retq
jmp 0x7abd
movq %rax, %rbx
movq %rsp, %rdi
callq 0x63d8
leaq 0x18(%rsp), %rdi
callq 0x884e
movq %rbx, %rdi
callq 0x4730