// File: /workspace/github_c_makefile_star2_O0/enzo1982[P]smooth/classes/misc/config.cpp
// Function: smooth::Configuration::Save()
S::Int S::Configuration::Save()
{
	if (configFile == NIL) return Error();

	XML::Node	*root = configFile->GetRootNode();

	if (fileName != NIL && root != NIL)
	{
		/* Create base directory first.
		 */
		Directory(File(fileName).GetFilePath()).Create();

		/* Save config file.
		 */
		XML::Node	*configurationNode = root->GetNodeByName(NodeConfigurationID);

		if (configurationNode != NIL && configurationNode->GetNOfNodes() >= 1) configFile->SaveFile(fileName);
	}

	return Success();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x198(%rbp)
cmpq $0x0, 0x30(%rax)
jne 0xeec9b
leaq -0x20(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x5a9c0
movq -0x1a8(%rbp), %rdi
callq 0x59680
movl %eax, -0x19c(%rbp)
jmp 0xeec6a
movl -0x19c(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0xeee8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x5b5b0
jmp 0xeee97
movq -0x198(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x5b410
movq -0x198(%rbp), %rdi
movq %rax, -0x38(%rbp)
xorl %esi, %esi
callq 0x5b110
testb $0x1, %al
jne 0xeecc6
jmp 0xeee33
cmpq $0x0, -0x38(%rbp)
je 0xeee33
leaq -0x160(%rbp), %rdi
movq %rdi, -0x1b0(%rbp)
xorl %esi, %esi
callq 0x5da90
movq -0x198(%rbp), %rsi
movq -0x1b0(%rbp), %rdx
leaq -0x148(%rbp), %rdi
callq 0x5acf0
jmp 0xeed02
leaq -0x148(%rbp), %rdi
callq 0x5ca70
movq %rax, -0x1b8(%rbp)
jmp 0xeed17
leaq -0x178(%rbp), %rdi
xorl %esi, %esi
callq 0x5da90
jmp 0xeed27
movq -0x1b8(%rbp), %rsi
leaq -0x118(%rbp), %rdi
leaq -0x178(%rbp), %rdx
callq 0x5d860
jmp 0xeed43
leaq -0x118(%rbp), %rdi
callq 0x59af0
jmp 0xeed51
leaq -0x118(%rbp), %rdi
callq 0x5df10
leaq -0x178(%rbp), %rdi
callq 0x5df00
leaq -0x148(%rbp), %rdi
callq 0x5de78
leaq -0x160(%rbp), %rdi
callq 0x5df00
movq -0x38(%rbp), %rdi
leaq 0x11dc0c(%rip), %rsi    # 0x20c998
callq 0x5ad00
movq %rax, -0x180(%rbp)
cmpq $0x0, -0x180(%rbp)
je 0xeee31
movq -0x180(%rbp), %rdi
callq 0x5a380
cmpl $0x1, %eax
jl 0xeee31
movq -0x198(%rbp), %rsi
movq 0x30(%rsi), %rdi
callq 0x5c1b0
jmp 0xeee31
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xeee23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xeee17
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
jmp 0xeee0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x5df10
leaq -0x178(%rbp), %rdi
callq 0x5df00
leaq -0x148(%rbp), %rdi
callq 0x5de78
leaq -0x160(%rbp), %rdi
callq 0x5df00
jmp 0xeee97
jmp 0xeee33
leaq -0x190(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x5ca80
movq -0x1c8(%rbp), %rdi
callq 0x59680
movl %eax, -0x1bc(%rbp)
jmp 0xeee5a
movl -0x1bc(%rbp), %eax
movl %eax, -0x4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x5a410
jmp 0xeee8b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x5a410
jmp 0xeee97
movl -0x4(%rbp), %eax
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x5b6b0