// File: /workspace/github_cpp_makefile_star2_O3/roberty65[P]bServer/common/src/ConfigProperty.cpp
// Function: ConfigProperty::getChildren[abi:cxx11](char const*) const
std::set<std::string> ConfigProperty::getChildren(const char *name) const
{
	std::set<std::string> result;

	char prefix[CP_NAME_MAX];
	snprintf(prefix, sizeof prefix, "%s.", name);
	prefix[sizeof(prefix) - 1] = 0;

	int nlen = strlen(prefix);
	const_iterator first = properties.lower_bound(std::string(prefix));

	snprintf(prefix, sizeof prefix, "%s/", name);
	prefix[sizeof(prefix) - 1] = 0;
	const_iterator end = properties.upper_bound(std::string(prefix));

	for (const_iterator iter = first; iter != end; ++iter) {
		std::size_t dot = iter->first.find_first_of('.', nlen);
		if (dot != std::string::npos) {
			// after {name}. and next DOT
			result.insert(iter->first.substr(nlen, dot - nlen));
		}
	}

	return result;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdx, %r13
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x8(%rdi), %rax
movl $0x0, 0x8(%rdi)
xorl %ecx, %ecx
movq %rcx, 0x10(%rdi)
movq %rax, 0x18(%rdi)
movq %rax, 0x20(%rdi)
movq %rcx, 0x28(%rdi)
leaq 0x2bd4(%rip), %rdx      # 0xb456
leaq 0x30(%rsp), %r14
movl $0x100, %esi            # imm = 0x100
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x3560
movb $0x0, 0xff(%r14)
movq %r14, %rdi
callq 0x3140
movq %rax, 0x28(%rsp)
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
movq %r14, %rdi
callq 0x3140
leaq (%rsp,%rax), %rdx
addq $0x30, %rdx
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x47f8
movq 0x10(%r12), %rsi
leaq 0x8(%r12), %rbp
leaq 0x8(%rsp), %rcx
movq %r12, %rdi
movq %rbp, %rdx
callq 0x8d02
movq %rax, %r14
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x890d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3340
leaq 0x2b46(%rip), %rdx      # 0xb45a
leaq 0x30(%rsp), %r15
movl $0x100, %esi            # imm = 0x100
movq %r15, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0x3560
movb $0x0, 0xff(%r15)
leaq 0x8(%rsp), %r13
leaq 0x18(%rsp), %rax
movq %rax, (%r13)
movq %r15, %rdi
callq 0x3140
leaq (%rsp,%rax), %rdx
addq $0x30, %rdx
movq %r13, %rdi
movq %r15, %rsi
callq 0x47f8
movq 0x10(%r12), %rsi
leaq 0x8(%rsp), %rcx
movq %r12, %rdi
movq %rbp, %rdx
callq 0x8d46
movq %rax, %r12
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x8990
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3340
cmpq %r12, %r14
je 0x8a04
movslq 0x28(%rsp), %r15
leaq 0x8(%rsp), %r13
leaq 0x20(%r14), %rbp
movq %rbp, %rdi
movl $0x2e, %esi
movq %r15, %rdx
callq 0x3470
cmpq $-0x1, %rax
je 0x89f4
subq %r15, %rax
movq %r13, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %rax, %rcx
callq 0x3350
movq %rbx, %rdi
movq %r13, %rsi
callq 0x8d8c
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x89f4
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3340
movq %r14, %rdi
callq 0x33d0
movq %rax, %r14
cmpq %r12, %rax
jne 0x899f
movq %rbx, %rax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8a26
jmp 0x8a21
jmp 0x8a26
jmp 0x8a21
movq %rax, %r14
jmp 0x8a45
movq %rax, %r14
movq 0x8(%rsp), %rdi
leaq 0x18(%rsp), %rax
cmpq %rax, %rdi
je 0x8a45
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x3340
movq %rbx, %rdi
callq 0x4664
movq %r14, %rdi
callq 0x35d0
nop