// File: /workspace/github_cpp_makefile_star2_O2/mniip[P]sandbox/main.cpp
// Function: TracedThread::can_write_path(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, int&)
bool can_write_path(std::string path, int at, int &error)
	{
		std::string canon = canon_path_at(tid, at, path);
		std::string cwd = canon_path_at(tid, AT_FDCWD, "");
		if(in_dir(cwd + "/http:", canon) || in_dir(cwd + "/https:", canon))
		{
			error = -EEXIST;
			return false;
		}
		for(std::vector<std::string>::const_iterator i = conf_write.begin(), end = conf_write.end(); i != end; i++)
			if(in_dir(*i, canon))
				return true;
		if(conf_report)
			if(at == AT_FDCWD)
				printf("[Write %s=%s]\n", path.c_str(), canon.c_str());
			else
				printf("[Write (%d)%s=%s]\n", at, path.c_str(), canon.c_str());
		return false;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x158, %rsp            # imm = 0x158
movq %rcx, %r15
movl %edx, %r13d
movq %rdi, %rbx
movl 0x8(%rdi), %ebp
leaq 0x138(%rsp), %r12
movq %r12, %rdi
movq %rsi, 0x10(%rsp)
callq 0x4590
leaq 0x18(%rsp), %r14
movq %r14, %rdi
movl %ebp, %esi
movl %r13d, 0xc(%rsp)
movl %r13d, %edx
movq %r12, %rcx
callq 0x91e0
leaq 0x138(%rsp), %rdi
callq 0x4828
movl 0x8(%rbx), %ebx
leaq 0x42ba(%rip), %rsi      # 0xc563
leaq 0xd8(%rsp), %rdi
leaq 0xb(%rsp), %rdx
callq 0x5422
leaq 0x78(%rsp), %rdi
pushq $-0x64
popq %rdx
leaq 0xd8(%rsp), %rcx
movl %ebx, %esi
callq 0x91e0
leaq 0xd8(%rsp), %rdi
callq 0x4828
leaq 0x435b(%rip), %rdx      # 0xc641
leaq 0x58(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x8a05
leaq 0x38(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x4590
leaq 0x58(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x972f
testb %al, %al
je 0x832d
leaq 0x38(%rsp), %rdi
callq 0x4828
leaq 0x58(%rsp), %rdi
callq 0x4828
jmp 0x83a1
leaq 0x4314(%rip), %rdx      # 0xc648
leaq 0xb8(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x8a05
leaq 0x98(%rsp), %rdi
leaq 0x18(%rsp), %rsi
callq 0x4590
leaq 0xb8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x972f
movl %eax, %ebx
leaq 0x98(%rsp), %rdi
callq 0x4828
leaq 0xb8(%rsp), %rdi
callq 0x4828
leaq 0x38(%rsp), %rdi
callq 0x4828
leaq 0x58(%rsp), %rdi
callq 0x4828
testb %bl, %bl
je 0x83d2
movl $0xffffffef, (%r15)     # imm = 0xFFFFFFEF
xorl %ebx, %ebx
leaq 0x78(%rsp), %rdi
callq 0x4828
leaq 0x18(%rsp), %rdi
callq 0x4828
movl %ebx, %eax
addq $0x158, %rsp            # imm = 0x158
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, (%rsp)
leaq 0xa16b(%rip), %rax      # 0x12548
movq (%rax), %r15
movq 0x8(%rax), %r14
leaq 0x118(%rsp), %r12
leaq 0xf8(%rsp), %r13
leaq 0x18(%rsp), %rbx
cmpq %r14, %r15
je 0x8441
movq %r12, %rdi
movq %r15, %rsi
callq 0x4590
movq %r13, %rdi
movq %rbx, %rsi
callq 0x4590
movq %r12, %rdi
movq %r13, %rsi
callq 0x972f
movl %eax, %ebp
movq %r13, %rdi
callq 0x4828
movq %r12, %rdi
callq 0x4828
addq $0x20, %r15
testb %bpl, %bpl
je 0x83f9
movb $0x1, %bl
jmp 0x83aa
leaq 0xa1b1(%rip), %rax      # 0x125f9
cmpb $0x1, (%rax)
jne 0x83a8
movq 0x10(%rsp), %rax
movq (%rax), %rdx
movq 0x18(%rsp), %rcx
movl 0xc(%rsp), %esi
cmpl $-0x64, %esi
jne 0x8482
leaq 0x41e2(%rip), %rdi      # 0xc650
xorl %ebx, %ebx
movq %rdx, %rsi
movq %rcx, %rdx
xorl %eax, %eax
callq 0x4060
jmp 0x83aa
leaq 0x41d6(%rip), %rdi      # 0xc65f
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x4060
jmp 0x83aa
movq %r14, (%rsp)
movq %rax, %r14
leaq 0x98(%rsp), %rdi
callq 0x4828
jmp 0x84b4
movq %r14, (%rsp)
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0x4828
jmp 0x84fc
movq %r14, (%rsp)
movq %rax, %r14
jmp 0x8506
movq %r14, (%rsp)
jmp 0x850d
movq %r14, (%rsp)
movq %rax, %r14
leaq 0xd8(%rsp), %rdi
jmp 0x8539
movq %r14, (%rsp)
movq %rax, %r14
jmp 0x853e
movq %rax, %r14
movq %r12, (%rsp)
jmp 0x853e
movq %r14, (%rsp)
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4828
leaq 0x58(%rsp), %rdi
jmp 0x852f
movq %rax, %r14
jmp 0x8534
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
callq 0x4828
jmp 0x8527
movq %rax, %r14
leaq 0x118(%rsp), %rdi
callq 0x4828
leaq 0x78(%rsp), %rdi
callq 0x4828
movq (%rsp), %rdi
callq 0x4828
movq %r14, %rdi
callq 0x4770
nop