// File: Manuel123cool[P]smiley/regex.cpp
// Function: MyRegex::testComandPrint(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Stack&)
void MyRegex::testComandPrint(std::string code, Stack &stack)
{
    if (code.length() <= 0)
        return;  

    if (!MyRegex::testString(code, "B) "))
        return;
    std::string value;
    bool start{ false };
    for(const auto &c : code)
    {
        if (start)
        {
            value += c;
        } 
        if (c == ' ' && !start)
            start = true;
    }
    if (value.at(0) == '"')
    {
        std::string printValue;
        int count{ -1 };
        for(const auto &c : value)
        {
            ++count;
            if (count == 0)
                continue;
            if (count == value.length() - 1)
                break;
            printValue += c; 
        }
        std::cout << printValue << std::endl; 
        return;
    }
    char testNum[value.length() + 1];
    std::strcpy(testNum, value.c_str());    
    if (static_cast<int>(testNum[0]) <= 57 && static_cast<int>(testNum[0]) >= 48)
    {
        std::cout << value << std::endl; 
        return;
    }
    stack().printValue(value);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x180, %rsp            # imm = 0x180
movq %rdi, -0x138(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
callq 0x3330
cmpq $0x0, %rax
ja 0xa51a
jmp 0xa953
movq -0x138(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x30e0
leaq -0x51(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x3390
movq -0x140(%rbp), %rdx
leaq 0xac70(%rip), %rsi      # 0x151b8
leaq -0x50(%rbp), %rdi
callq 0x8eb0
jmp 0xa553
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xa430
movb %al, -0x141(%rbp)
jmp 0xa568
movb -0x141(%rbp), %al
xorb $-0x1, %al
movb %al, -0x142(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3160
leaq -0x51(%rbp), %rdi
callq 0x3270
leaq -0x30(%rbp), %rdi
callq 0x3160
movb -0x142(%rbp), %al
testb $0x1, %al
jne 0xa59d
jmp 0xa5dc
jmp 0xa953
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa5c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x3160
leaq -0x51(%rbp), %rdi
callq 0x3270
leaq -0x30(%rbp), %rdi
callq 0x3160
jmp 0xa97c
leaq -0x88(%rbp), %rdi
callq 0x3300
movq -0x138(%rbp), %rax
movb $0x0, -0x89(%rbp)
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rdi
callq 0x31e0
movq %rax, -0xa0(%rbp)
movq -0x98(%rbp), %rdi
callq 0x3130
movq %rax, -0xa8(%rbp)
leaq -0xa0(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x9180
testb $0x1, %al
jne 0xa63c
jmp 0xa6b5
leaq -0xa0(%rbp), %rdi
callq 0x91c0
movq %rax, -0xb0(%rbp)
testb $0x1, -0x89(%rbp)
je 0xa683
movq -0xb0(%rbp), %rax
movsbl (%rax), %esi
leaq -0x88(%rbp), %rdi
callq 0x3170
jmp 0xa670
jmp 0xa683
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xa970
movq -0xb0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xa6a2
testb $0x1, -0x89(%rbp)
jne 0xa6a2
movb $0x1, -0x89(%rbp)
jmp 0xa6a4
leaq -0xa0(%rbp), %rdi
callq 0x91e0
jmp 0xa623
xorl %eax, %eax
movl %eax, %esi
leaq -0x88(%rbp), %rdi
callq 0x33c0
movq %rax, -0x150(%rbp)
jmp 0xa6ce
movq -0x150(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xa837
leaq -0xd0(%rbp), %rdi
callq 0x3300
movl $0xffffffff, -0xd4(%rbp) # imm = 0xFFFFFFFF
leaq -0x88(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x31e0
movq %rax, -0xe8(%rbp)
movq -0xe0(%rbp), %rdi
callq 0x3130
movq %rax, -0xf0(%rbp)
leaq -0xe8(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x9180
testb $0x1, %al
jne 0xa747
jmp 0xa7eb
leaq -0xe8(%rbp), %rdi
callq 0x91c0
movq %rax, -0xf8(%rbp)
movl -0xd4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xd4(%rbp)
cmpl $0x0, -0xd4(%rbp)
jne 0xa774
jmp 0xa7bd
movslq -0xd4(%rbp), %rax
movq %rax, -0x158(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x3330
movq %rax, %rcx
movq -0x158(%rbp), %rax
subq $0x1, %rcx
cmpq %rcx, %rax
jne 0xa7a3
jmp 0xa7eb
movq -0xf8(%rbp), %rax
movsbl (%rax), %esi
leaq -0xd0(%rbp), %rdi
callq 0x3170
jmp 0xa7bb
jmp 0xa7bd
leaq -0xe8(%rbp), %rdi
callq 0x91e0
jmp 0xa72b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3160
jmp 0xa970
movq 0x127c6(%rip), %rdi     # 0x1cfb8
leaq -0xd0(%rbp), %rsi
callq 0x3200
movq %rax, -0x160(%rbp)
jmp 0xa807
movq -0x160(%rbp), %rdi
movq 0x1278b(%rip), %rsi     # 0x1cfa0
callq 0x3250
jmp 0xa81c
movl $0x1, -0xfc(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x3160
jmp 0xa947
leaq -0x88(%rbp), %rdi
callq 0x3330
movq %rax, %rdx
movq %rdx, %rax
incq %rax
movq %rsp, %rcx
movq %rcx, -0x108(%rbp)
addq $0x10, %rdx
andq $-0x10, %rdx
movq %rsp, %rcx
subq %rdx, %rcx
movq %rcx, -0x168(%rbp)
movq %rcx, %rsp
movq %rax, -0x110(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x30d0
movq -0x168(%rbp), %rdi
movq %rax, %rsi
callq 0x3210
movq -0x168(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jg 0xa8eb
movq -0x168(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x30, %eax
jl 0xa8eb
movq 0x12703(%rip), %rdi     # 0x1cfb8
leaq -0x88(%rbp), %rsi
callq 0x3200
movq %rax, -0x170(%rbp)
jmp 0xa8ca
movq -0x170(%rbp), %rdi
movq 0x126c8(%rip), %rsi     # 0x1cfa0
callq 0x3250
jmp 0xa8df
movl $0x1, -0xfc(%rbp)
jmp 0xa93d
movq -0x10(%rbp), %rdi
callq 0xdf30
movq %rax, -0x178(%rbp)
jmp 0xa8fd
leaq -0x130(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x30e0
jmp 0xa912
movq -0x178(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x4fe0
jmp 0xa927
leaq -0x130(%rbp), %rdi
callq 0x3160
movl $0x0, -0xfc(%rbp)
movq -0x108(%rbp), %rax
movq %rax, %rsp
leaq -0x88(%rbp), %rdi
callq 0x3160
movq %rbp, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x130(%rbp), %rdi
callq 0x3160
leaq -0x88(%rbp), %rdi
callq 0x3160
movq -0x60(%rbp), %rdi
callq 0x3380
nopw %cs:(%rax,%rax)