// File: /workspace/github_cpp_makefile_star2_O3/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
leaq 0x10(%rdi), %rax
movq %rax, -0x70(%rbp)
movq %rax, (%rdi)
movq (%rsi), %rax
movq 0x8(%rsi), %rdx
addq %rax, %rdx
movq %rax, %rsi
callq 0x1f1c
leaq 0x30(%rbx), %rax
movq %rax, -0x68(%rbp)
movq %rax, 0x20(%rbx)
xorl %eax, %eax
movq %rax, 0x28(%rbx)
movb $0x0, 0x30(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rbx)
movq %rax, 0x50(%rbx)
leaq 0x58(%rbx), %r14
leaq 0x88(%rbx), %rax
movq %rax, 0x58(%rbx)
movl $0x1, %eax
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), %rdx
movq %rdx, -0x60(%rbp)
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 -0x40(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x1b44(%rip), %rsi      # 0x3085
leaq 0x1b40(%rip), %rdx      # 0x3088
leaq -0x50(%rbp), %rdi
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1572
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1b09(%rip), %rsi      # 0x3089
leaq 0x1b05(%rip), %rdx      # 0x308c
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x15ad
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1ad2(%rip), %rsi      # 0x308d
leaq 0x1ace(%rip), %rdx      # 0x3090
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x15e8
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1a9b(%rip), %rsi      # 0x3091
leaq 0x1a97(%rip), %rdx      # 0x3094
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1623
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1a64(%rip), %rsi      # 0x3095
leaq 0x1a60(%rip), %rdx      # 0x3098
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x165e
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1a2d(%rip), %rsi      # 0x3099
leaq 0x1a29(%rip), %rdx      # 0x309c
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1699
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x19f6(%rip), %rsi      # 0x309d
leaq 0x19f2(%rip), %rdx      # 0x30a0
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x16d4
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x19bf(%rip), %rsi      # 0x30a1
leaq 0x19bb(%rip), %rdx      # 0x30a4
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r14, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r14, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x170f
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1988(%rip), %rsi      # 0x30a5
leaq 0x1985(%rip), %rdx      # 0x30a9
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x174a
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1952(%rip), %rsi      # 0x30aa
leaq 0x194e(%rip), %rdx      # 0x30ad
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1785
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x191b(%rip), %rsi      # 0x30ae
leaq 0x1919(%rip), %rdx      # 0x30b3
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x17c0
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x18e6(%rip), %rsi      # 0x30b4
leaq 0x18e3(%rip), %rdx      # 0x30b8
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x17fb
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x18b0(%rip), %rsi      # 0x30b9
leaq 0x18ad(%rip), %rdx      # 0x30bd
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r15, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r15, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1836
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x187a(%rip), %rsi      # 0x30be
leaq 0x1877(%rip), %rdx      # 0x30c2
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq %rdi, (%rdx)
leaq -0x50(%rbp), %rsi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1872
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1844(%rip), %rsi      # 0x30c4
leaq 0x1841(%rip), %rdx      # 0x30c8
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq %rdi, (%rdx)
leaq -0x50(%rbp), %rsi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x18ae
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1807(%rip), %rsi      # 0x30c3
leaq 0x1805(%rip), %rdx      # 0x30c8
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq %rdi, (%rdx)
leaq -0x50(%rbp), %rsi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x18ea
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x17d1(%rip), %rsi      # 0x30c9
leaq 0x17cf(%rip), %rdx      # 0x30ce
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rdi
movq %rdi, (%rdx)
leaq -0x50(%rbp), %rsi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1926
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x179b(%rip), %rsi      # 0x30cf
leaq 0x1796(%rip), %rdx      # 0x30d1
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1961
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1763(%rip), %rsi      # 0x30d2
leaq 0x175e(%rip), %rdx      # 0x30d4
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x199c
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x172b(%rip), %rsi      # 0x30d5
leaq 0x1726(%rip), %rdx      # 0x30d7
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x19d7
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x16f3(%rip), %rsi      # 0x30d8
leaq 0x16ee(%rip), %rdx      # 0x30da
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1a12
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x16bb(%rip), %rsi      # 0x30db
leaq 0x16b6(%rip), %rdx      # 0x30dd
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1a4d
callq 0x1110
leaq -0x50(%rbp), %rdi
movq %r12, (%rdi)
leaq 0x1683(%rip), %rsi      # 0x30de
leaq 0x167e(%rip), %rdx      # 0x30e0
callq 0x28f4
leaq -0x58(%rbp), %rdx
movq %r13, (%rdx)
leaq -0x50(%rbp), %rsi
movq %r13, %rdi
callq 0x1fc8
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1a88
callq 0x1110
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
jmp 0x1aef
jmp 0x1b03
movq %rax, -0x30(%rbp)
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x1b07
callq 0x1110
jmp 0x1b07
movq %rax, -0x30(%rbp)
leaq 0x40(%rbx), %r12
movq %r13, %rdi
callq 0x2402
movq -0x60(%rbp), %rdi
callq 0x2402
movq %r15, %rdi
callq 0x2402
movq %r14, %rdi
callq 0x2402
movq %r12, %rdi
callq 0x1ec2
movq 0x20(%rbx), %rdi
cmpq -0x68(%rbp), %rdi
je 0x1b43
callq 0x1110
movq (%rbx), %rdi
cmpq -0x70(%rbp), %rdi
je 0x1b51
callq 0x1110
movq -0x30(%rbp), %rdi
callq 0x1190