// File: devvoid[P]vini/./vini.hpp
// Function: Vini::parse_text(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void parse_text(std::string file_text) {
        if (file_text == "") {
            return;
        }

        std::vector<std::string> lines = split(file_text, '\n');

        std::string current_section = "global";

        for (unsigned int i = 0; i < lines.size(); i++) {
            //Line is blank
            if (lines[i] == "")
                continue;
            
            //Line is a comment
            if (lines[i][0] == ';')
                continue;
            
            //Line is the start of a section
            if (lines[i][0] == '[' && lines[i][lines[i].length() - 1] == ']') {
                std::string key = lines[i].substr(1, lines[i].size() - 2);

                current_section = key;

                //If this section already exists, the next step isn't necessary.
                if (ini_file.count(key)) {
                    continue;
                }

                ini_file[key] = vini_content();
            }

            //Finally, line is actual content
            if (std::count(lines[i].begin(), lines[i].end(), '=') == 1) {
                std::vector<std::string> keyvalpair = split(lines[i], '=');

                std::string content_string = keyvalpair[1];

                content_string.erase(std::remove(content_string.begin(), content_string.end(), '"'), content_string.end());

                ini_file[current_section][keyvalpair[0]] = content_string;
            }
        }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x210, %rsp            # imm = 0x210
movq %rsi, -0x168(%rbp)
movq %rdi, %rax
movq -0x168(%rbp), %rdi
movq %rdi, -0x160(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq 0x59ee(%rip), %rsi      # 0xa0db
callq 0x4dc0
testb $0x1, %al
jne 0x46f8
jmp 0x46fd
jmp 0x4c5e
movq -0x160(%rbp), %rdx
movq -0x158(%rbp), %rsi
leaq -0x28(%rbp), %rdi
movl $0xa, %ecx
callq 0x4df0
leaq -0x49(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x33d0
movq -0x170(%rbp), %rdx
leaq 0x597a(%rip), %rsi      # 0xa0b1
leaq -0x48(%rbp), %rdi
callq 0x3fb0
jmp 0x4742
leaq -0x49(%rbp), %rdi
callq 0x32d0
movl $0x0, -0x60(%rbp)
movl -0x60(%rbp), %eax
movq %rax, -0x178(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x4f70
movq %rax, %rcx
movq -0x178(%rbp), %rax
cmpq %rcx, %rax
jae 0x4c4c
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x4f90
movq %rax, %rdi
leaq 0x594b(%rip), %rsi      # 0xa0db
callq 0x4dc0
movb %al, -0x179(%rbp)
jmp 0x479d
movb -0x179(%rbp), %al
testb $0x1, %al
jne 0x47a9
jmp 0x47d9
jmp 0x4c3e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x49(%rbp), %rdi
callq 0x32d0
jmp 0x4c70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c67
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x4f90
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3410
movq %rax, -0x188(%rbp)
jmp 0x47fc
movq -0x188(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3b, %eax
jne 0x4810
jmp 0x4c3e
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x4f90
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3410
movq %rax, -0x190(%rbp)
jmp 0x4833
movq -0x190(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5b, %eax
jne 0x49f6
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x4f90
movq -0x1a8(%rbp), %rdi
movq %rax, -0x1a0(%rbp)
movl -0x60(%rbp), %eax
movl %eax, %esi
callq 0x4f90
movq %rax, %rdi
callq 0x3360
movq -0x1a0(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x3410
movq %rax, -0x198(%rbp)
jmp 0x4896
movq -0x198(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5d, %eax
jne 0x49f6
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x4f90
movq -0x1b8(%rbp), %rdi
movq %rax, -0x1b0(%rbp)
movl -0x60(%rbp), %eax
movl %eax, %esi
callq 0x4f90
movq %rax, %rdi
callq 0x31b0
movq -0x1b0(%rbp), %rsi
movq %rax, %rcx
addq $-0x2, %rcx
leaq -0x80(%rbp), %rdi
movl $0x1, %edx
callq 0x3290
jmp 0x48fc
leaq -0x48(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x3040
jmp 0x490b
movq -0x158(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x4fb0
movq %rax, -0x1c0(%rbp)
jmp 0x4924
movq -0x1c0(%rbp), %rax
cmpq $0x0, %rax
je 0x494e
movl $0x4, -0x84(%rbp)
jmp 0x49b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x49e8
xorps %xmm0, %xmm0
movaps %xmm0, -0xa0(%rbp)
movaps %xmm0, -0xb0(%rbp)
movaps %xmm0, -0xc0(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x5010
movq -0x158(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x5030
movq %rax, -0x1c8(%rbp)
jmp 0x498b
movq -0x1c8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0x5110
leaq -0xc0(%rbp), %rdi
callq 0x5140
movl $0x0, -0x84(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x3170
movl -0x84(%rbp), %eax
testl %eax, %eax
je 0x49ce
jmp 0x49c9
jmp 0x4c3e
jmp 0x49f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x5140
leaq -0x80(%rbp), %rdi
callq 0x3170
jmp 0x4c67
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x4f90
movq %rax, %rdi
callq 0x3220
movq -0x1d8(%rbp), %rdi
movq %rax, -0xc8(%rbp)
movl -0x60(%rbp), %eax
movl %eax, %esi
callq 0x4f90
movq %rax, %rdi
callq 0x3150
movq %rax, -0xd0(%rbp)
movb $0x3d, -0xd1(%rbp)
movq -0xc8(%rbp), %rdi
movq -0xd0(%rbp), %rsi
leaq -0xd1(%rbp), %rdx
callq 0x5160
movq %rax, -0x1d0(%rbp)
jmp 0x4a64
movq -0x1d0(%rbp), %rax
cmpq $0x1, %rax
jne 0x4c3c
movl -0x60(%rbp), %eax
movl %eax, %esi
leaq -0x28(%rbp), %rdi
callq 0x4f90
movq -0x158(%rbp), %rsi
movq %rax, %rdx
leaq -0xf0(%rbp), %rdi
movl $0x3d, %ecx
callq 0x4df0
jmp 0x4aa0
leaq -0xf0(%rbp), %rdi
movl $0x1, %esi
callq 0x4f90
movq %rax, %rsi
leaq -0x110(%rbp), %rdi
callq 0x3110
jmp 0x4ac2
leaq -0x110(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x3220
movq -0x1e8(%rbp), %rdi
movq %rax, -0x128(%rbp)
callq 0x3150
movq %rax, -0x130(%rbp)
movb $0x22, -0x131(%rbp)
movq -0x128(%rbp), %rdi
movq -0x130(%rbp), %rsi
leaq -0x131(%rbp), %rdx
callq 0x51b0
movq %rax, -0x1e0(%rbp)
jmp 0x4b19
movq -0x1e0(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x118(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0x5200
leaq -0x110(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x3150
movq %rax, -0x148(%rbp)
leaq -0x140(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x5200
movq -0x1f8(%rbp), %rdi
movq -0x118(%rbp), %rsi
movq -0x140(%rbp), %rdx
callq 0x30a0
movq %rax, -0x1f0(%rbp)
jmp 0x4b8a
movq -0x158(%rbp), %rdi
movq -0x1f0(%rbp), %rax
movq %rax, -0x150(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x5030
movq %rax, -0x200(%rbp)
jmp 0x4bb1
xorl %eax, %eax
movl %eax, %esi
leaq -0xf0(%rbp), %rdi
callq 0x4f90
movq -0x200(%rbp), %rdi
movq %rax, %rsi
callq 0x5240
movq %rax, -0x208(%rbp)
jmp 0x4bd9
movq -0x208(%rbp), %rdi
leaq -0x110(%rbp), %rsi
callq 0x3040
jmp 0x4bee
leaq -0x110(%rbp), %rdi
callq 0x3170
leaq -0xf0(%rbp), %rdi
callq 0x5320
jmp 0x4c3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x4c2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x3170
leaq -0xf0(%rbp), %rdi
callq 0x5320
jmp 0x4c67
jmp 0x4c3e
movl -0x60(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x60(%rbp)
jmp 0x4752
leaq -0x48(%rbp), %rdi
callq 0x3170
leaq -0x28(%rbp), %rdi
callq 0x5320
addq $0x210, %rsp            # imm = 0x210
popq %rbp
retq
leaq -0x48(%rbp), %rdi
callq 0x3170
leaq -0x28(%rbp), %rdi
callq 0x5320
movq -0x58(%rbp), %rdi
callq 0x33c0
nopw %cs:(%rax,%rax)
nopl (%rax)