// File: fhirschman[P]CANF-gp/source/./../headers/./../headers/gnuplot-iostream.h
// Function: gnuplotio::Gnuplot::open_cmdline(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
static FileHandleWrapper open_cmdline(const std::string &in) {
		std::string cmd = in.empty() ? get_default_cmd() : in;
		assert(!cmd.empty());
		if(cmd[0] == '>') {
			std::string fn = cmd.substr(1);
			GNUPLOT_MSVC_WARNING_4996_PUSH
			FILE *fh = std::fopen(fn.c_str(), "w");
			GNUPLOT_MSVC_WARNING_4996_POP
			if(!fh) throw(std::ios_base::failure("cannot open file "+fn));
			return FileHandleWrapper(fh, false);
		} else {
			FILE *fh = GNUPLOT_POPEN(cmd.c_str(), "w");
			if(!fh) throw(std::ios_base::failure("cannot open pipe "+cmd));
			return FileHandleWrapper(fh, true);
		}
	}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0xe0(%rsp)
movq 0xe0(%rsp), %rdi
callq 0x88d0
testb $0x1, %al
jne 0x12aa2
jmp 0x12ab1
leaq 0xc0(%rsp), %rdi
callq 0x13180
jmp 0x12ac6
movq 0xe0(%rsp), %rsi
leaq 0xc0(%rsp), %rdi
callq 0x8230
leaq 0xc0(%rsp), %rdi
callq 0x88d0
xorb $-0x1, %al
testb $0x1, %al
jne 0x12adb
jmp 0x12add
jmp 0x12afc
leaq 0xbdde(%rip), %rdi      # 0x1e8c2
leaq 0xbde4(%rip), %rsi      # 0x1e8cf
movl $0x624, %edx            # imm = 0x624
leaq 0xbe0c(%rip), %rcx      # 0x1e903
callq 0x8370
xorl %eax, %eax
movl %eax, %esi
leaq 0xc0(%rsp), %rdi
callq 0x8a80
movq %rax, 0x28(%rsp)
jmp 0x12b14
movq 0x28(%rsp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x12ca6
leaq 0x90(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movl $0x1, %edx
movq $-0x1, %rcx
callq 0x8540
jmp 0x12b48
leaq 0x90(%rsp), %rdi
callq 0x8220
movq %rax, %rdi
leaq 0xbdf3(%rip), %rsi      # 0x1e952
callq 0x8660
movq %rax, 0x20(%rsp)
jmp 0x12b6b
movq 0x20(%rsp), %rax
movq %rax, 0x88(%rsp)
cmpq $0x0, 0x88(%rsp)
jne 0x12c61
movb $0x1, 0x67(%rsp)
movl $0x20, %edi
callq 0x8280
movq %rax, 0x18(%rsp)
leaq 0xbdb2(%rip), %rsi      # 0x1e954
leaq 0x68(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x13270
jmp 0x12bb6
movq 0x18(%rsp), %rdi
leaq 0x68(%rsp), %rsi
callq 0x8a20
jmp 0x12bc7
movq 0x18(%rsp), %rdi
movb $0x0, 0x67(%rsp)
movq 0x16380(%rip), %rsi     # 0x28f58
movq 0x163b9(%rip), %rdx     # 0x28f98
callq 0x8910
jmp 0x12de9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x12dcf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x12c94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x12c4c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x68(%rsp), %rdi
callq 0x8330
testb $0x1, 0x67(%rsp)
jne 0x12c55
jmp 0x12c5f
movq 0x18(%rsp), %rdi
callq 0x83c0
jmp 0x12c94
movq 0x88(%rsp), %rsi
leaq 0xe8(%rsp), %rdi
xorl %edx, %edx
callq 0x133a0
jmp 0x12c7a
movl $0x1, 0x60(%rsp)
leaq 0x90(%rsp), %rdi
callq 0x8330
jmp 0x12dab
leaq 0x90(%rsp), %rdi
callq 0x8330
jmp 0x12dcf
leaq 0xc0(%rsp), %rdi
callq 0x8220
movq %rax, %rdi
leaq 0xbc95(%rip), %rsi      # 0x1e952
callq 0x81a0
movq %rax, 0x10(%rsp)
jmp 0x12cc9
movq 0x10(%rsp), %rax
movq %rax, 0x58(%rsp)
cmpq $0x0, 0x58(%rsp)
jne 0x12d8a
movb $0x1, 0x37(%rsp)
movl $0x20, %edi
callq 0x8280
movq %rax, 0x8(%rsp)
leaq 0xbc6c(%rip), %rsi      # 0x1e966
leaq 0x38(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x13270
jmp 0x12d0e
movq 0x8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x8a20
jmp 0x12d1f
movq 0x8(%rsp), %rdi
movb $0x0, 0x37(%rsp)
movq 0x16228(%rip), %rsi     # 0x28f58
movq 0x16261(%rip), %rdx     # 0x28f98
callq 0x8910
jmp 0x12de9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
jmp 0x12d75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xb8(%rsp)
movl %eax, 0xb4(%rsp)
leaq 0x38(%rsp), %rdi
callq 0x8330
testb $0x1, 0x37(%rsp)
jne 0x12d7e
jmp 0x12d88
movq 0x8(%rsp), %rdi
callq 0x83c0
jmp 0x12dcf
movq 0x58(%rsp), %rsi
leaq 0xe8(%rsp), %rdi
movl $0x1, %edx
callq 0x133a0
jmp 0x12da3
movl $0x1, 0x60(%rsp)
leaq 0xc0(%rsp), %rdi
callq 0x8330
movq 0xe8(%rsp), %rax
movb 0xf0(%rsp), %dl
addq $0xf8, %rsp
retq
leaq 0xc0(%rsp), %rdi
callq 0x8330
movq 0xb8(%rsp), %rdi
callq 0x8960
nopl (%rax)