// File: pfnet-research[P]pml/src/translate_to_mdp.cpp
// Function: create_int_case(int)
mdp_with_info_t create_int_case(int n) {
    auto const_name = "c" + std::to_string(n);
    int current = translation_data::current_location();
    return mdp_with_info_t {
        mdp::mdp_t {
            "default",
            {},
            { mdp::constant_t{const_name, n} },
            {}
        },
        current, current,
        value_info_t {
            const_name, {bound_t{n, n}}
        }
    };
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x160, %rsp            # imm = 0x160
movq %rdi, -0xd0(%rbp)
movq %rdi, %rax
movq %rax, -0xc8(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl -0xc(%rbp), %esi
leaq -0x50(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x1e010
movq -0xc0(%rbp), %rdx
leaq 0x158b9(%rip), %rsi     # 0x9fced
leaq -0x30(%rbp), %rdi
callq 0x12fb0
jmp 0x8a43f
leaq -0x50(%rbp), %rdi
callq 0xa240
callq 0x8bbb0
movl %eax, -0xd4(%rbp)
jmp 0x8a455
movq -0xd0(%rbp), %rax
movl -0xd4(%rbp), %ecx
movl %ecx, -0x60(%rbp)
movq %rax, %rcx
movq %rcx, -0xf0(%rbp)
movq %rax, -0xe8(%rbp)
leaq -0x61(%rbp), %rdi
movq %rdi, -0xe0(%rbp)
callq 0xa660
movq -0xd0(%rbp), %rdi
movq -0xe0(%rbp), %rdx
leaq 0x1579f(%rip), %rsi     # 0x9fc3a
callq 0x1dd10
jmp 0x8a4a2
movq -0xf0(%rbp), %rax
movb $0x1, -0xab(%rbp)
movq %rax, %rdi
addq $0x20, %rdi
movq %rdi, -0x100(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x20(%rax)
movq $0x0, 0x30(%rax)
callq 0x79550
movq -0xf0(%rbp), %rax
movb $0x1, -0xaa(%rbp)
addq $0x38, %rax
movq %rax, -0xf8(%rbp)
leaq -0xa0(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
movl -0xc(%rbp), %edx
leaq -0x30(%rbp), %rsi
callq 0x79570
jmp 0x8a507
leaq -0xa0(%rbp), %rax
movq %rax, -0x78(%rbp)
movq $0x1, -0x70(%rbp)
leaq -0xa9(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x795d0
movq -0xf8(%rbp), %rdi
movq -0x108(%rbp), %rcx
movq -0x78(%rbp), %rsi
movq -0x70(%rbp), %rdx
callq 0x795f0
jmp 0x8a54a
movq -0xf0(%rbp), %rax
movq %rax, %rdi
addq $0x50, %rdi
xorps %xmm0, %xmm0
movups %xmm0, 0x50(%rax)
movq $0x0, 0x60(%rax)
callq 0x79670
movq -0xd0(%rbp), %rdi
movb $0x0, -0xaa(%rbp)
movb $0x0, -0xab(%rbp)
movl -0x60(%rbp), %eax
movl %eax, 0x68(%rdi)
movl -0x60(%rbp), %eax
movl %eax, 0x6c(%rdi)
addq $0x70, %rdi
movq %rdi, -0x118(%rbp)
movq %rdi, %rax
movq %rax, -0x110(%rbp)
leaq -0x30(%rbp), %rsi
callq 0xa190
jmp 0x8a5ad
movq -0x110(%rbp), %rdi
addq $0x20, %rdi
movl -0xc(%rbp), %eax
movl %eax, -0xb4(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0xb0(%rbp)
leaq -0xb4(%rbp), %rsi
callq 0x8b7c0
jmp 0x8a5d8
leaq -0xa9(%rbp), %rdi
callq 0xdc50
leaq -0xa0(%rbp), %rax
movq %rax, -0x128(%rbp)
addq $0x28, %rax
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x130(%rbp)
callq 0xd4b0
movq -0x128(%rbp), %rcx
movq -0x130(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x120(%rbp)
jne 0x8a5fd
leaq -0x61(%rbp), %rdi
callq 0xa420
leaq -0x30(%rbp), %rdi
callq 0xa240
movq -0xc8(%rbp), %rax
addq $0x160, %rsp            # imm = 0x160
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x50(%rbp), %rdi
callq 0xa240
jmp 0x8a7c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8a7b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8a7b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
movq -0xa8(%rbp), %rax
leaq -0xa0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x138(%rbp)
je 0x8a6e3
movq -0x138(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x140(%rbp)
callq 0xd4b0
movq -0x140(%rbp), %rax
leaq -0xa0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x138(%rbp)
jne 0x8a6b2
jmp 0x8a780
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8a728
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x8a71c
movq -0x118(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
callq 0xa240
movq -0xf0(%rbp), %rdi
callq 0xc340
leaq -0xa9(%rbp), %rdi
callq 0xdc50
leaq -0xa0(%rbp), %rax
movq %rax, -0x150(%rbp)
addq $0x28, %rax
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rdi
addq $-0x28, %rdi
movq %rdi, -0x158(%rbp)
callq 0xd4b0
movq -0x150(%rbp), %rcx
movq -0x158(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x148(%rbp)
jne 0x8a74d
jmp 0x8a780
testb $0x1, -0xaa(%rbp)
jne 0x8a78b
jmp 0x8a797
movq -0x100(%rbp), %rdi
callq 0xcc90
testb $0x1, -0xab(%rbp)
jne 0x8a7a2
jmp 0x8a7ae
movq -0xe8(%rbp), %rdi
callq 0xa240
jmp 0x8a7b0
leaq -0x61(%rbp), %rdi
callq 0xa420
leaq -0x30(%rbp), %rdi
callq 0xa240
movq -0x58(%rbp), %rdi
callq 0xa650
nopl (%rax,%rax)