// File: EmbeddedPaul166[P]SNMP-Agent/src/parser.cpp
// Function: Parser::parseLineForParentNamesDiminished(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>&, std::vector<unsigned int, std::allocator<unsigned int>>&)
void Parser::parseLineForParentNamesDiminished(std::string & nodeLine, std::vector<std::string> & parentVector, std::vector<unsigned int> & vectorOID)
{
    std::regex patternParentNames("\\s+?([^ \\{]\\S*)\\s+?\\d\\s*\\}");
    std::regex patternParentOID("\\((.)\\)");
    std::regex patternCutBraceLeft("\\(");
    std::regex patternCutBraceRight("\\)");
    std::smatch match;
    std::string matchString;
    std::string cutString;
    
    while (std::regex_search(nodeLine, match, patternParentNames))
    {
        matchString = match.str(1);
        cutString = matchString;
        if (std::regex_search(matchString, match, patternParentOID))
        {
            vectorOID.push_back(std::stoi(match.str(1)));
            matchString = std::regex_replace(matchString, patternParentOID, "", std::regex_constants::format_first_only);
            parentVector.push_back(matchString);
        }
        else
        {
            vectorOID.push_back(1);
            parentVector.push_back(matchString);
        }
        cutString = std::regex_replace(cutString, patternCutBraceLeft, "\\(", std::regex_constants::format_first_only);
        cutString = std::regex_replace(cutString, patternCutBraceRight, "\\)", std::regex_constants::format_first_only);
        std::regex patternCut(cutString);
        nodeLine = std::regex_replace(nodeLine, patternCut, "", std::regex_constants::format_first_only);
    } 
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x260, %rsp            # imm = 0x260
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
leaq 0x33930(%rip), %rsi     # 0x485b2
leaq -0x40(%rbp), %rdi
movl $0x10, %edx
movl %edx, -0x204(%rbp)
callq 0x18ef0
movl -0x204(%rbp), %edx
leaq 0x3392a(%rip), %rsi     # 0x485cd
leaq -0x60(%rbp), %rdi
callq 0x18ef0
jmp 0x14cae
leaq 0x33920(%rip), %rsi     # 0x485d5
leaq -0x90(%rbp), %rdi
movl $0x10, %edx
callq 0x18ef0
jmp 0x14cc8
leaq 0x33abe(%rip), %rsi     # 0x4878d
leaq -0xb0(%rbp), %rdi
movl $0x10, %edx
callq 0x18ef0
jmp 0x14ce2
leaq -0xd0(%rbp), %rdi
callq 0x18eb0
jmp 0x14cf0
leaq -0xf0(%rbp), %rdi
callq 0x6600
leaq -0x110(%rbp), %rdi
callq 0x6600
movq -0x10(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0x40(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f90
movb %al, -0x205(%rbp)
jmp 0x14d26
movb -0x205(%rbp), %al
testb $0x1, %al
jne 0x14d35
jmp 0x1506f
leaq -0x130(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movl $0x1, %edx
callq 0x18ff0
jmp 0x14d4f
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x210(%rbp)
leaq -0x130(%rbp), %rsi
movq %rsi, -0x218(%rbp)
callq 0x6560
movq -0x218(%rbp), %rdi
callq 0x62e0
movq -0x210(%rbp), %rsi
leaq -0x110(%rbp), %rdi
callq 0x6070
jmp 0x14d91
leaq -0xf0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0x60(%rbp), %rdx
xorl %ecx, %ecx
callq 0x18f90
movb %al, -0x219(%rbp)
jmp 0x14db2
movb -0x219(%rbp), %al
testb $0x1, %al
jne 0x14dc1
jmp 0x14f0c
movq -0x20(%rbp), %rax
movq %rax, -0x228(%rbp)
leaq -0x158(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
movl $0x1, %edx
callq 0x18ff0
jmp 0x14de6
xorl %eax, %eax
movl %eax, %esi
leaq -0x158(%rbp), %rdi
movl $0xa, %edx
callq 0x19840
movl %eax, -0x22c(%rbp)
jmp 0x14e03
movq -0x228(%rbp), %rdi
movl -0x22c(%rbp), %eax
movl %eax, -0x134(%rbp)
leaq -0x134(%rbp), %rsi
callq 0x82f0
jmp 0x14e24
leaq -0x158(%rbp), %rdi
callq 0x62e0
leaq 0x33a0d(%rip), %rcx     # 0x48844
leaq -0x178(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x60(%rbp), %rdx
movl $0x400, %r8d            # imm = 0x400
callq 0x19760
jmp 0x14e56
leaq -0xf0(%rbp), %rdi
movq %rdi, -0x238(%rbp)
leaq -0x178(%rbp), %rsi
movq %rsi, -0x240(%rbp)
callq 0x6560
movq -0x240(%rbp), %rdi
callq 0x62e0
movq -0x238(%rbp), %rsi
movq -0x18(%rbp), %rdi
callq 0x19670
jmp 0x14e95
jmp 0x14f3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x1510b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x15102
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x150f6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x150ea
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x150c6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x62e0
jmp 0x150c6
movq -0x20(%rbp), %rdi
movl $0x1, -0x17c(%rbp)
leaq -0x17c(%rbp), %rsi
callq 0x82f0
jmp 0x14f28
movq -0x18(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x19670
jmp 0x14f3a
jmp 0x14f3c
leaq 0x33692(%rip), %rcx     # 0x485d5
leaq -0x1a0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
leaq -0x90(%rbp), %rdx
movl $0x400, %r8d            # imm = 0x400
callq 0x19760
jmp 0x14f65
leaq -0x110(%rbp), %rdi
movq %rdi, -0x248(%rbp)
leaq -0x1a0(%rbp), %rsi
movq %rsi, -0x250(%rbp)
callq 0x6560
movq -0x250(%rbp), %rdi
callq 0x62e0
movq -0x248(%rbp), %rsi
leaq 0x337ed(%rip), %rcx     # 0x4878d
leaq -0x1c0(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
movl $0x400, %r8d            # imm = 0x400
callq 0x19760
jmp 0x14fbb
leaq -0x110(%rbp), %rdi
movq %rdi, -0x258(%rbp)
leaq -0x1c0(%rbp), %rsi
movq %rsi, -0x260(%rbp)
callq 0x6560
movq -0x260(%rbp), %rdi
callq 0x62e0
movq -0x258(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
movl $0x10, %edx
callq 0x195c0
jmp 0x15002
movq -0x10(%rbp), %rsi
leaq 0x33837(%rip), %rcx     # 0x48844
leaq -0x200(%rbp), %rdi
leaq -0x1e0(%rbp), %rdx
movl $0x400, %r8d            # imm = 0x400
callq 0x19760
jmp 0x15028
movq -0x10(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x6560
leaq -0x200(%rbp), %rdi
callq 0x62e0
leaq -0x1e0(%rbp), %rdi
callq 0x19570
jmp 0x14d08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x19570
jmp 0x150c6
leaq -0x110(%rbp), %rdi
callq 0x62e0
leaq -0xf0(%rbp), %rdi
callq 0x62e0
leaq -0xd0(%rbp), %rdi
callq 0x195a0
leaq -0xb0(%rbp), %rdi
callq 0x19570
leaq -0x90(%rbp), %rdi
callq 0x19570
leaq -0x60(%rbp), %rdi
callq 0x19570
leaq -0x40(%rbp), %rdi
callq 0x19570
addq $0x260, %rsp            # imm = 0x260
popq %rbp
retq
leaq -0x110(%rbp), %rdi
callq 0x62e0
leaq -0xf0(%rbp), %rdi
callq 0x62e0
leaq -0xd0(%rbp), %rdi
callq 0x195a0
leaq -0xb0(%rbp), %rdi
callq 0x19570
leaq -0x90(%rbp), %rdi
callq 0x19570
leaq -0x60(%rbp), %rdi
callq 0x19570
leaq -0x40(%rbp), %rdi
callq 0x19570
movq -0x68(%rbp), %rdi
callq 0x6790
nopl (%rax)