// File: /workspace/github_cpp_makefile_star2_O2/mrexodia[P]AsmParser/AsmParser.cpp
// Function: AsmParser::AsmParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
explicit AsmParser(std::string line)
        : mLine(line)
    {
        mRegisters.insert("eax");
        mRegisters.insert("ebx");
        mRegisters.insert("ecx");
        mRegisters.insert("edx");
        mRegisters.insert("ebp");
        mRegisters.insert("esp");
        mRegisters.insert("esi");
        mRegisters.insert("edi");

        mPrefixes.insert("lock");
        mPrefixes.insert("rep");
        mPrefixes.insert("repne");
        mPrefixes.insert("repe");
        mPrefixes.insert("repz");

        mMemsizes.insert("byte");
        mMemsizes.insert("word");
        mMemsizes.insert("dword");
        mMemsizes.insert("qword");

        mSegments.insert("fs");
        mSegments.insert("ds");
        mSegments.insert("gs");
        mSegments.insert("es");
        mSegments.insert("ss");
        mSegments.insert("cs");
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rdi, %rbx
callq 0x1160
leaq 0x30(%rbx), %rax
movq %rax, 0x20(%rbx)
andq $0x0, 0x28(%rbx)
movb $0x0, 0x30(%rbx)
andq $0x0, 0x50(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rbx)
leaq 0x58(%rbx), %r14
leaq 0x88(%rbx), %rax
movq %rax, 0x58(%rbx)
pushq $0x1
popq %rax
movq %rax, 0x60(%rbx)
movups %xmm0, 0x68(%rbx)
movl $0x3f800000, %ecx       # imm = 0x3F800000
movl %ecx, 0x78(%rbx)
movups %xmm0, 0x80(%rbx)
leaq 0x90(%rbx), %r15
leaq 0xc0(%rbx), %rdx
movq %rdx, 0x90(%rbx)
movq %rax, 0x98(%rbx)
movups %xmm0, 0xa0(%rbx)
movl %ecx, 0xb0(%rbx)
movups %xmm0, 0xb8(%rbx)
leaq 0xc8(%rbx), %r12
leaq 0xf8(%rbx), %rdx
movq %rdx, 0xc8(%rbx)
movq %rax, 0xd0(%rbx)
movups %xmm0, 0xd8(%rbx)
movl %ecx, 0xe8(%rbx)
movups %xmm0, 0xf0(%rbx)
leaq 0x100(%rbx), %r13
leaq 0x130(%rbx), %rdx
movq %rdx, 0x100(%rbx)
movq %rax, 0x108(%rbx)
movups %xmm0, 0x110(%rbx)
movl %ecx, 0x120(%rbx)
movups %xmm0, 0x128(%rbx)
leaq 0x1bff(%rip), %rsi      # 0x3085
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1bda(%rip), %rsi      # 0x3089
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1bb5(%rip), %rsi      # 0x308d
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1b90(%rip), %rsi      # 0x3091
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1b6b(%rip), %rsi      # 0x3095
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1b46(%rip), %rsi      # 0x3099
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1b21(%rip), %rsi      # 0x309d
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1afc(%rip), %rsi      # 0x30a1
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r14, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1ad7(%rip), %rsi      # 0x30a5
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r15, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1ab3(%rip), %rsi      # 0x30aa
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r15, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1a8e(%rip), %rsi      # 0x30ae
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r15, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1a6b(%rip), %rsi      # 0x30b4
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r15, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1a47(%rip), %rsi      # 0x30b9
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r15, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1a23(%rip), %rsi      # 0x30be
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r12, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1a00(%rip), %rsi      # 0x30c4
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r12, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x19d6(%rip), %rsi      # 0x30c3
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r12, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x19b3(%rip), %rsi      # 0x30c9
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r12, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1990(%rip), %rsi      # 0x30cf
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x196a(%rip), %rsi      # 0x30d2
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x1944(%rip), %rsi      # 0x30d5
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x191e(%rip), %rsi      # 0x30d8
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x18f8(%rip), %rsi      # 0x30db
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
leaq 0x18d2(%rip), %rsi      # 0x30de
leaq -0x58(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0x1080
leaq -0x58(%rbp), %rsi
movq %r13, %rdi
callq 0x1bf6
leaq -0x58(%rbp), %rdi
callq 0x10b0
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
jmp 0x1895
jmp 0x18a4
movq %rax, -0x38(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x10b0
jmp 0x18a8
movq %rax, -0x38(%rbp)
leaq 0x20(%rbx), %rax
movq %rax, -0x68(%rbp)
leaq 0x40(%rbx), %rax
movq %rax, -0x60(%rbp)
movq %r13, %rdi
callq 0x20ca
movq %r12, %rdi
callq 0x20ca
movq %r15, %rdi
callq 0x20ca
movq %r14, %rdi
callq 0x20ca
movq -0x60(%rbp), %rdi
callq 0x1bbc
movq -0x68(%rbp), %rdi
callq 0x10b0
movq %rbx, %rdi
callq 0x10b0
movq -0x38(%rbp), %rdi
callq 0x11b0
nop