// File: EmbeddedPaul166[P]SNMP-Agent/src/parser.cpp
// Function: Parser::parseDiminishedNodes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
void Parser::parseDiminishedNodes(std::string fileContent)
{
    std::string nodeLine;
    std::string nodeName;
    unsigned int OID;
    std::vector<std::string> parentVector;
    std::vector<unsigned int> vectorOID;
    std::regex patternOIDLine("\\n[^-].*?OBJECT IDENTIFIER ::=.*?}");
    std::smatch match;
    std::sregex_iterator begin(fileContent.cbegin(), fileContent.cend(), patternOIDLine);
    std::sregex_iterator end;
    
    for (std::sregex_iterator it = begin; it != end; it++)
    {
        match = *it;
        nodeLine = match.str(0);
        nodeName = parseLineForNodeNameDiminished(nodeLine, nodeName);
        OID = parseLineForOIDDiminished(nodeLine, OID);
        parseLineForParentNamesDiminished(nodeLine, parentVector, vectorOID); 
        if (parentVector.size() != 1)
        {
            addParentNodes(parentVector, vectorOID);
            m_pNode = addNodeOneOrMore(nodeName, OID, parentVector); 
        }
        else
        {
            m_pNode = addNodeOneOrMore(nodeName, OID, parentVector);
        }
        parentVector.clear();
        vectorOID.clear();
    }   
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x270, %rsp            # imm = 0x270
movq %rsi, -0x238(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x230(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x6600
leaq -0x50(%rbp), %rdi
callq 0x6600
leaq -0x70(%rbp), %rdi
callq 0x81e0
leaq -0x88(%rbp), %rdi
callq 0x82d0
leaq 0x34068(%rip), %rsi     # 0x4856b
leaq -0xa8(%rbp), %rdi
movl $0x10, %edx
callq 0x18ef0
jmp 0x14516
leaq -0xd8(%rbp), %rdi
callq 0x18eb0
jmp 0x14524
movq -0x238(%rbp), %rdi
callq 0x61b0
movq -0x238(%rbp), %rdi
movq %rax, -0x120(%rbp)
callq 0x60c0
movq %rax, -0x128(%rbp)
movq -0x120(%rbp), %rsi
movq -0x128(%rbp), %rdx
leaq -0x118(%rbp), %rdi
leaq -0xa8(%rbp), %rcx
xorl %r8d, %r8d
callq 0x190a0
jmp 0x14570
leaq -0x168(%rbp), %rdi
callq 0x191d0
jmp 0x1457e
leaq -0x1a8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x19220
jmp 0x14593
jmp 0x14595
leaq -0x1a8(%rbp), %rdi
leaq -0x168(%rbp), %rsi
callq 0x19270
testb $0x1, %al
jne 0x14634
leaq -0x1a8(%rbp), %rdi
callq 0x193b0
jmp 0x14809
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x14899
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x1488d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x14881
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x14875
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
jmp 0x14869
leaq -0x1a8(%rbp), %rdi
callq 0x192a0
movq %rax, %rsi
leaq -0xd8(%rbp), %rdi
callq 0x192c0
jmp 0x14651
xorl %eax, %eax
movl %eax, %edx
leaq -0x1c8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x18ff0
jmp 0x1466a
leaq -0x30(%rbp), %rdi
movq %rdi, -0x240(%rbp)
leaq -0x1c8(%rbp), %rsi
movq %rsi, -0x248(%rbp)
callq 0x6560
movq -0x248(%rbp), %rdi
callq 0x62e0
movq -0x230(%rbp), %rsi
movq -0x240(%rbp), %rdx
leaq -0x1e8(%rbp), %rdi
leaq -0x50(%rbp), %rcx
callq 0x148d0
jmp 0x146b4
leaq -0x50(%rbp), %rdi
leaq -0x1e8(%rbp), %rsi
movq %rsi, -0x258(%rbp)
callq 0x6560
movq -0x258(%rbp), %rdi
callq 0x62e0
movq -0x230(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x54(%rbp), %rdx
callq 0x14b10
movl %eax, -0x24c(%rbp)
jmp 0x146f3
movq -0x230(%rbp), %rdi
movl -0x24c(%rbp), %eax
movl %eax, -0x54(%rbp)
leaq -0x30(%rbp), %rsi
leaq -0x70(%rbp), %rdx
leaq -0x88(%rbp), %rcx
callq 0x14c60
jmp 0x14719
leaq -0x70(%rbp), %rdi
callq 0x8200
cmpq $0x1, %rax
je 0x14799
movq -0x230(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x15120
jmp 0x14741
movq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x54(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0x15410
movq %rax, -0x260(%rbp)
jmp 0x14762
movq -0x230(%rbp), %rax
movq -0x260(%rbp), %rcx
movq %rcx, 0x68(%rax)
jmp 0x147cc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xb0(%rbp)
movl %eax, -0xb4(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x193b0
jmp 0x14869
movq -0x230(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x54(%rbp), %rdx
leaq -0x70(%rbp), %rcx
callq 0x15410
movq %rax, -0x268(%rbp)
jmp 0x147ba
movq -0x230(%rbp), %rax
movq -0x268(%rbp), %rcx
movq %rcx, 0x68(%rax)
leaq -0x70(%rbp), %rdi
callq 0x196e0
leaq -0x88(%rbp), %rdi
callq 0xb9b0
leaq -0x228(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
xorl %edx, %edx
callq 0x19330
jmp 0x147f8
leaq -0x228(%rbp), %rdi
callq 0x193b0
jmp 0x14595
leaq -0x168(%rbp), %rdi
callq 0x193b0
leaq -0x118(%rbp), %rdi
callq 0x193b0
leaq -0xd8(%rbp), %rdi
callq 0x195a0
leaq -0xa8(%rbp), %rdi
callq 0x19570
leaq -0x88(%rbp), %rdi
callq 0x8510
leaq -0x70(%rbp), %rdi
callq 0x8570
leaq -0x50(%rbp), %rdi
callq 0x62e0
leaq -0x30(%rbp), %rdi
callq 0x62e0
addq $0x270, %rsp            # imm = 0x270
popq %rbp
retq
leaq -0x168(%rbp), %rdi
callq 0x193b0
leaq -0x118(%rbp), %rdi
callq 0x193b0
leaq -0xd8(%rbp), %rdi
callq 0x195a0
leaq -0xa8(%rbp), %rdi
callq 0x19570
leaq -0x88(%rbp), %rdi
callq 0x8510
leaq -0x70(%rbp), %rdi
callq 0x8570
leaq -0x50(%rbp), %rdi
callq 0x62e0
leaq -0x30(%rbp), %rdi
callq 0x62e0
movq -0xb0(%rbp), %rdi
callq 0x6790
nopl (%rax)