// File: zyLiu6707[P]Arknights-Pull-Simulation/./utils.h
// Function: display_simulation_settings(ProbabilityWrapper const&, unsigned long long, unsigned int, unsigned long long)
void display_simulation_settings(const ProbabilityWrapper& probability_wrapper,
                                 const unsigned long long int total_pull_time,
                                 const unsigned int pity_starting_point,
                                 const unsigned long long int current_pull) {
  std::cout << "The simulation settings are:\n";
  std::cout << "\tTotal Pulling Times: " << total_pull_time << "\n";
  std::cout << "\tPity System Starting Point: " << pity_starting_point << "\n";
  std::cout << "\tCurrent Pull Times: " << current_pull << "\n";

  if (probability_wrapper.get_on_banner_star6_conditional_rate() ==
      limited_banner_on_banner_star6_conditional_rate) {
    std::cout << "\tBanner Type: Limited Banner, the conditional rate is "
              << limited_banner_on_banner_star6_conditional_rate * 100
              << " %\n";
  } else if (probability_wrapper.get_on_banner_star6_conditional_rate() ==
             standard_banner_on_banner_star6_conditional_rate) {
    std::cout << "\tBanner Type: Standard Banner, the conditional rate is "
              << standard_banner_on_banner_star6_conditional_rate * 100
              << " %\n";
  }
  std::cout << "\tRate-Up Operator(s): "
            << probability_wrapper.get_banner_operator_num() << " operator(s)\n"
            << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq 0x11432(%rip), %rdi     # 0x16fd0
leaq 0xa600(%rip), %rsi      # 0x101a5
callq 0x2210
movq 0x1141f(%rip), %rdi     # 0x16fd0
leaq 0xa60b(%rip), %rsi      # 0x101c3
callq 0x2210
movq %rax, %rdi
movq -0x10(%rbp), %rsi
callq 0x21f0
movq %rax, %rdi
leaq 0xa311(%rip), %rsi      # 0xfee4
callq 0x2210
movq 0x113f1(%rip), %rdi     # 0x16fd0
leaq 0xa5f4(%rip), %rsi      # 0x101da
callq 0x2210
movq %rax, %rdi
movl -0x14(%rbp), %esi
callq 0x22e0
movq %rax, %rdi
leaq 0xa2e4(%rip), %rsi      # 0xfee4
callq 0x2210
movq 0x113c4(%rip), %rdi     # 0x16fd0
leaq 0xa5e5(%rip), %rsi      # 0x101f8
callq 0x2210
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x21f0
movq %rax, %rdi
leaq 0xa2b6(%rip), %rsi      # 0xfee4
callq 0x2210
movq -0x8(%rbp), %rdi
callq 0xe100
movsd 0x93cc(%rip), %xmm1     # 0xf010
ucomisd %xmm1, %xmm0
jne 0x5c80
jp 0x5c80
movq 0x1137d(%rip), %rdi     # 0x16fd0
leaq 0xa5b4(%rip), %rsi      # 0x1020e
callq 0x2210
movq %rax, %rdi
movsd 0x93be(%rip), %xmm0     # 0xf028
callq 0x2390
movq %rax, %rdi
leaq 0xa5cc(%rip), %rsi      # 0x10245
callq 0x2210
jmp 0x5ccd
movq -0x8(%rbp), %rdi
callq 0xe100
movsd 0x9387(%rip), %xmm1     # 0xf018
ucomisd %xmm1, %xmm0
jne 0x5ccb
jp 0x5ccb
movq 0x11330(%rip), %rdi     # 0x16fd0
leaq 0xa5a2(%rip), %rsi      # 0x10249
callq 0x2210
movq %rax, %rdi
movsd 0x9369(%rip), %xmm0     # 0xf020
callq 0x2390
movq %rax, %rdi
leaq 0xa57f(%rip), %rsi      # 0x10245
callq 0x2210
jmp 0x5ccd
movq 0x112fc(%rip), %rdi     # 0x16fd0
leaq 0xa5a6(%rip), %rsi      # 0x10281
callq 0x2210
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
callq 0xe140
movq -0x28(%rbp), %rdi
movl %eax, %esi
callq 0x22e0
movq %rax, %rdi
leaq 0xa596(%rip), %rsi      # 0x10298
callq 0x2210
movq %rax, %rdi
movq 0x112af(%rip), %rsi     # 0x16fc0
callq 0x2240
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)