// File: WeihuaZhu[P]hpc_prog2/./gtest/gtest-all.cc
// Function: testing::internal::FilePath::MakeFileName(testing::internal::FilePath const&, testing::internal::FilePath const&, int, char const*)
FilePath FilePath::MakeFileName(const FilePath& directory,
                                const FilePath& base_name,
                                int number,
                                const char* extension) {
  std::string file;
  if (number == 0) {
    file = base_name.string() + "." + extension;
  } else {
    file = base_name.string() + "_" + StreamableToString(number)
        + "." + extension;
  }
  return ConcatPaths(directory, FilePath(file));
}

// Assembly:
subq $0x188, %rsp            # imm = 0x188
movq %rdi, 0x20(%rsp)
movq %rdi, %rax
movq %rax, 0x28(%rsp)
movq %rdi, 0x180(%rsp)
movq %rsi, 0x178(%rsp)
movq %rdx, 0x170(%rsp)
movl %ecx, 0x16c(%rsp)
movq %r8, 0x160(%rsp)
leaq 0x140(%rsp), %rdi
callq 0xefa0
cmpl $0x0, 0x16c(%rsp)
jne 0x2f3d7
movq 0x170(%rsp), %rdi
callq 0x32c30
movq %rax, 0x18(%rsp)
jmp 0x2f32a
movq 0x18(%rsp), %rsi
leaq 0x1d627(%rip), %rdx     # 0x4c95d
leaq 0x100(%rsp), %rdi
callq 0x32cc0
jmp 0x2f345
movq 0x160(%rsp), %rdx
leaq 0x120(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x32c70
jmp 0x2f364
leaq 0x140(%rsp), %rdi
leaq 0x120(%rsp), %rsi
callq 0xed60
leaq 0x120(%rsp), %rdi
callq 0xf698
leaq 0x100(%rsp), %rdi
callq 0xf698
jmp 0x2f548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0x2f5c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0x100(%rsp), %rdi
callq 0xf698
jmp 0x2f5c1
movq 0x170(%rsp), %rdi
callq 0x32c30
movq %rax, 0x10(%rsp)
jmp 0x2f3eb
movq 0x10(%rsp), %rsi
leaq 0x1e751(%rip), %rdx     # 0x4db48
leaq 0x70(%rsp), %rdi
callq 0x32cc0
jmp 0x2f403
leaq 0x50(%rsp), %rdi
leaq 0x16c(%rsp), %rsi
callq 0x370b0
jmp 0x2f417
leaq 0x90(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x50(%rsp), %rdx
callq 0x36fc0
jmp 0x2f430
leaq 0x1d526(%rip), %rdx     # 0x4c95d
leaq 0xb0(%rsp), %rdi
leaq 0x90(%rsp), %rsi
callq 0x32c70
jmp 0x2f44e
movq 0x160(%rsp), %rdx
leaq 0xd0(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x32c70
jmp 0x2f46d
leaq 0x140(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
callq 0xed60
leaq 0xd0(%rsp), %rdi
callq 0xf698
leaq 0xb0(%rsp), %rdi
callq 0xf698
leaq 0x90(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0xf698
leaq 0x70(%rsp), %rdi
callq 0xf698
jmp 0x2f548
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0x2f53c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0x2f532
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
jmp 0x2f525
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0xb0(%rsp), %rdi
callq 0xf698
leaq 0x90(%rsp), %rdi
callq 0xf698
leaq 0x50(%rsp), %rdi
callq 0xf698
leaq 0x70(%rsp), %rdi
callq 0xf698
jmp 0x2f5c1
movq 0x178(%rsp), %rax
movq %rax, 0x8(%rsp)
leaq 0x30(%rsp), %rdi
leaq 0x140(%rsp), %rsi
callq 0x32bc0
jmp 0x2f569
movq 0x8(%rsp), %rsi
movq 0x20(%rsp), %rdi
leaq 0x30(%rsp), %rdx
callq 0x177e0
jmp 0x2f57f
leaq 0x30(%rsp), %rdi
callq 0x32c20
leaq 0x140(%rsp), %rdi
callq 0xf698
movq 0x28(%rsp), %rax
addq $0x188, %rsp            # imm = 0x188
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xf8(%rsp)
movl %eax, 0xf4(%rsp)
leaq 0x30(%rsp), %rdi
callq 0x32c20
leaq 0x140(%rsp), %rdi
callq 0xf698
movq 0xf8(%rsp), %rdi
callq 0xf410
nopl (%rax,%rax)