// File: /workspace/github_cpp_makefile_star2_O2/Merulo[P]CompilerJFTT/src/Calculators/MathOperations.cpp
// Function: MathOperations::generateModuloTwo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, Line)
std::vector<Line> MathOperations::generateModuloTwo(
    std::string registerB, Line l
)
{
    std::vector<Line> lines;
    std::string label4 = generateLabel();
    lines.push_back({"JODD", registerB, label4});
    lines.push_back({"SUB", registerB, registerB});
    std::string label6 = generateLabel();

    lines.push_back({"JUMP", "", label6}); 

    lines.push_back({label4});  
    lines.push_back({"SUB", registerB, registerB});
    lines.push_back({"INC", registerB});
    lines.push_back({label6});

    return lines;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x358, %rsp            # imm = 0x358
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rdi)
andq $0x0, 0x10(%rdi)
leaq 0x98(%rsp), %rdi
callq 0xaafc
leaq 0x147ed(%rip), %rsi     # 0x23182
leaq 0x338(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x318(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x2f8(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x338(%rsp), %rsi
leaq 0x318(%rsp), %rdx
leaq 0x2f8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x2f8(%rsp), %rdi
callq 0x4548
leaq 0x318(%rsp), %rdi
callq 0x4548
leaq 0x338(%rsp), %rdi
callq 0x4548
leaq 0x14663(%rip), %rsi     # 0x23096
leaq 0x2d8(%rsp), %rdi
leaq 0x78(%rsp), %rdx
callq 0x4a54
leaq 0x2b8(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x298(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x2d8(%rsp), %rsi
leaq 0x2b8(%rsp), %rdx
leaq 0x298(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x298(%rsp), %rdi
callq 0x4548
leaq 0x2b8(%rsp), %rdi
callq 0x4548
leaq 0x2d8(%rsp), %rdi
callq 0x4548
leaq 0x78(%rsp), %rdi
callq 0xaafc
leaq 0x146b6(%rip), %rsi     # 0x2318c
leaq 0x278(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x145f4(%rip), %rsi     # 0x230e3
leaq 0x258(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x238(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x278(%rsp), %rsi
leaq 0x258(%rsp), %rdx
leaq 0x238(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x238(%rsp), %rdi
callq 0x4548
leaq 0x258(%rsp), %rdi
callq 0x4548
leaq 0x278(%rsp), %rdi
callq 0x4548
leaq 0x218(%rsp), %rdi
leaq 0x98(%rsp), %rsi
callq 0x4390
leaq 0x14554(%rip), %rsi     # 0x230e3
leaq 0x1f8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x1453b(%rip), %rsi     # 0x230e3
leaq 0x1d8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x218(%rsp), %rsi
leaq 0x1f8(%rsp), %rdx
leaq 0x1d8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x1d8(%rsp), %rdi
callq 0x4548
leaq 0x1f8(%rsp), %rdi
callq 0x4548
leaq 0x218(%rsp), %rdi
callq 0x4548
leaq 0x14475(%rip), %rsi     # 0x23096
leaq 0x1b8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x198(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x178(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x10(%rsp), %rdi
leaq 0x1b8(%rsp), %rsi
leaq 0x198(%rsp), %rdx
leaq 0x178(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x178(%rsp), %rdi
callq 0x4548
leaq 0x198(%rsp), %rdi
callq 0x4548
leaq 0x1b8(%rsp), %rdi
callq 0x4548
leaq 0x143e4(%rip), %rsi     # 0x2309e
leaq 0x158(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x138(%rsp), %rdi
movq %r14, %rsi
callq 0x4390
leaq 0x14400(%rip), %rsi     # 0x230e3
leaq 0x118(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0x158(%rsp), %rsi
leaq 0x138(%rsp), %rdx
leaq 0x118(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0x118(%rsp), %rdi
callq 0x4548
leaq 0x138(%rsp), %rdi
callq 0x4548
leaq 0x158(%rsp), %rdi
callq 0x4548
leaq 0xf8(%rsp), %rdi
leaq 0x78(%rsp), %rsi
callq 0x4390
leaq 0x14375(%rip), %rsi     # 0x230e3
leaq 0xd8(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0x4a54
leaq 0x1435c(%rip), %rsi     # 0x230e3
leaq 0xb8(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x4a54
leaq 0x10(%rsp), %rdi
leaq 0xf8(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
leaq 0xb8(%rsp), %rcx
callq 0x816a
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x8f90
leaq 0x10(%rsp), %rdi
callq 0x81fe
leaq 0xb8(%rsp), %rdi
callq 0x4548
leaq 0xd8(%rsp), %rdi
callq 0x4548
leaq 0xf8(%rsp), %rdi
callq 0x4548
leaq 0x78(%rsp), %rdi
callq 0x4548
leaq 0x98(%rsp), %rdi
callq 0x4548
movq %rbx, %rax
addq $0x358, %rsp            # imm = 0x358
popq %rbx
popq %r14
retq
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xee30
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
callq 0x4548
jmp 0xee42
movq %rax, %r14
leaq 0xd8(%rsp), %rdi
callq 0x4548
jmp 0xee54
movq %rax, %r14
leaq 0xf8(%rsp), %rdi
jmp 0xef76
jmp 0xef7d
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xee78
movq %rax, %r14
leaq 0x118(%rsp), %rdi
callq 0x4548
jmp 0xee8a
movq %rax, %r14
leaq 0x138(%rsp), %rdi
callq 0x4548
jmp 0xee9c
movq %rax, %r14
leaq 0x158(%rsp), %rdi
jmp 0xef76
jmp 0xef7d
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xeec0
movq %rax, %r14
leaq 0x178(%rsp), %rdi
callq 0x4548
jmp 0xeed2
movq %rax, %r14
leaq 0x198(%rsp), %rdi
callq 0x4548
jmp 0xeee4
movq %rax, %r14
leaq 0x1b8(%rsp), %rdi
jmp 0xef76
jmp 0xef7d
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xef08
movq %rax, %r14
leaq 0x1d8(%rsp), %rdi
callq 0x4548
jmp 0xef1a
movq %rax, %r14
leaq 0x1f8(%rsp), %rdi
callq 0x4548
jmp 0xef2c
movq %rax, %r14
leaq 0x218(%rsp), %rdi
jmp 0xef76
jmp 0xef7d
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xef4a
movq %rax, %r14
leaq 0x238(%rsp), %rdi
callq 0x4548
jmp 0xef5c
movq %rax, %r14
leaq 0x258(%rsp), %rdi
callq 0x4548
jmp 0xef6e
movq %rax, %r14
leaq 0x278(%rsp), %rdi
callq 0x4548
jmp 0xef80
movq %rax, %r14
leaq 0x78(%rsp), %rdi
callq 0x4548
leaq 0x98(%rsp), %rdi
callq 0x4548
movq %rbx, %rdi
callq 0x8236
movq %r14, %rdi
callq 0x4490
jmp 0xf031
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xefbe
movq %rax, %r14
leaq 0x298(%rsp), %rdi
callq 0x4548
jmp 0xefd0
movq %rax, %r14
leaq 0x2b8(%rsp), %rdi
callq 0x4548
jmp 0xefe2
movq %rax, %r14
leaq 0x2d8(%rsp), %rdi
jmp 0xef85
jmp 0xf031
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x81fe
jmp 0xf000
movq %rax, %r14
leaq 0x2f8(%rsp), %rdi
callq 0x4548
jmp 0xf012
movq %rax, %r14
leaq 0x318(%rsp), %rdi
callq 0x4548
jmp 0xf024
movq %rax, %r14
leaq 0x338(%rsp), %rdi
jmp 0xef85
movq %rax, %r14
jmp 0xef8a
movq %rax, %r14
jmp 0xef97