# The census of shapes_gcc_x64_O0: what `aa; pdd` renders for each function `afl` lists.
# Regenerate with `scripts/census.py golden` when `afl` moves, then bless.

NAME=afl
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=afl
EXPECT=<<EOF
0x00401000    3     27 sym._init
0x00401060    1     10 sym.imp.__stack_chk_fail
0x00401070    1     10 sym.imp.printf
0x00401080    1     10 sym.imp.snprintf
0x00401090    1     37 sym._start
0x004010c0    1      5 sym._dl_relocate_static_pie
0x004010d0    4     31 sym.deregister_tm_clones
0x00401100    4     49 sym.register_tm_clones
0x00401140    3     32 sym.__do_global_dtors_aux
0x00401170    1      6 sym.frame_dummy
0x00401176    3    595 sym.shape_variadic
0x004013c9   11    332 sym.vfold
0x00401515    1    286 sym.shape_variadic_local
0x00401633    1     45 sym.shape_step
0x00401660    1     30 sym.shape_stash
0x0040167e    3    302 sym.shape_call_chain
0x004017ac    1    128 sym.mixed_touch
0x0040182c    1     74 sym.mixed_fold
0x00401876    1     64 sym.mixed_from
0x004018b6    3    171 sym.shape_struct_pointer
0x00401961    1    139 sym.shape_struct_value
0x004019ec    9    214 sym.shape_struct_array
0x00401ac2    9    208 sym.shape_stack_buffer
0x00401b92    4    100 sym.shape_recurse_direct
0x00401bf6    4     84 sym.shape_mutual_even
0x00401c4a    4     85 sym.shape_mutual_odd
0x00401c9f    1     89 sym.shape_recurse_mutual
0x00401cf8   17    272 sym.shape_signed_divmod
0x00401e08    1     81 sym.wide_make
0x00401e59    1    104 sym.shape_multiword_return
0x00401ec1    1     41 sym.indirect_load
0x00401eea    1     50 sym.indirect_store
0x00401f1c    9    347 sym.shape_pointer_to_pointer
0x00402077    1     29 sym.op_add
0x00402094    1     38 sym.op_xor
0x004020ba    1     31 sym.op_mul
0x004020d9    6    197 sym.shape_function_pointer
0x0040219e    1     22 sym.shape_bool_probe
0x004021b4    5     82 sym.shape_bool_caller
0x00402206    1    565 sym.main
0x0040243c    1     13 sym._fini
EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401000
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401000
EXPECT=<<EOF
uint64_t _init(void)
{
    uint64_t rax_1;
    uint64_t rax_3;

    /* r2dec proof: 3 constructs are marked below; 22 source obligations: 8 rendered, 10 elided, 0 refused, 4 residual; 6 statements rendered; 1 never assigned, read as residuals (RAX_2) */
    {
        rax_1 = r2sleigh_load_u64((void*)(uint64_t)0x404fe0U);
        if ((uint8_t)((uint64_t)rax_1 == (uint64_t)0U)) {
            rax_3 = rax_1;
            return (uint64_t)rax_3;
        } else {
            r2sleigh_residual_void(1); /* r2dec gap: CallNotRendered at 0x401014:4 covering 1 op (render::values): call to an indirect target: no arity is stated, only the registers written before it */
            r2sleigh_residual_void(2); /* r2dec gap: ValueNotComputed at 0x401014:11 covering 1 op (render::values) */
            rax_3 = r2sleigh_residual_u64(3);
            return (uint64_t)rax_3;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401060
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401060
EXPECT=<<EOF
/* r2sleigh: import stub at 0x401060; this symbol is the import `__stack_chk_fail` and has no body of its own. */
extern void __stack_chk_fail(void);

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401070
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401070
EXPECT=<<EOF
/* r2sleigh: import stub at 0x401070; this symbol is the import `printf` and has no body of its own. */
extern int32_t printf(const char*, ...);

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401080
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401080
EXPECT=<<EOF
/* r2sleigh: import stub at 0x401080; this symbol is the import `snprintf` and has no body of its own. */
extern int32_t snprintf(char*, uint64_t, const char*, ...);

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401090
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401090
EXPECT=<<EOF
void _start(void)
{
    uint64_t tmp_401099_0_2;

    /* r2dec proof: 5 constructs are marked below; 28 source obligations: 0 rendered, 6 elided, 0 refused, 22 residual; 1 statements rendered; 1 held from entry, read as residuals (stack_p0) */
    {
        tmp_401099_0_2 = r2sleigh_residual_u64(1);
        r2sleigh_residual_void(2); /* r2dec gap: StoreNotSpelled at 0x401090:29 covering 1 op (render::values) */
        r2sleigh_residual_void(3); /* r2dec gap: StoreNotSpelled at 0x401090:32 covering 1 op (render::values) */
        r2sleigh_residual_void(4); /* r2dec gap: CallNotRendered at 0x401090:68 covering 1 op (render::values): call to __libc_start_main: the import's declaration has an argument this convention does not place */
        r2sleigh_residual_void(5); /* r2dec gap: TransferNotFollowed at 0x401090 (render::control) */
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004010c0
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004010c0
EXPECT=<<EOF
void _dl_relocate_static_pie(void)
{
    /* r2dec proof: no individual construct is marked; 5 source obligations: 1 rendered, 4 elided, 0 refused; 1 statements rendered */
    {
        return;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004010d0
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004010d0
EXPECT=<<EOF
uint64_t deregister_tm_clones(void)
{
    uint64_t rax_3;

    /* r2dec proof: no individual construct is marked; 8 source obligations: 5 rendered, 3 elided, 0 refused; 2 statements rendered */
    {
        rax_3 = 0x405028;
        {
            return (uint64_t)rax_3;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401100
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401100
EXPECT=<<EOF
uint64_t register_tm_clones(void)
{
    uint64_t rax_4;

    /* r2dec proof: no individual construct is marked; 10 source obligations: 7 rendered, 3 elided, 0 refused; 2 statements rendered */
    {
        rax_4 = 0;
        {
            return (uint64_t)rax_4;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401140
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401140
EXPECT=<<EOF
uint64_t __do_global_dtors_aux(void)
{
    void deregister_tm_clones(void);
    extern char __TMC_END__[];

    uint8_t tmp_401144_0_1;

    /* r2dec proof: 2 constructs are marked below; 24 source obligations: 8 rendered, 12 elided, 0 refused, 4 residual; 6 statements rendered; 1 data object type refused */
    {
        tmp_401144_0_1 = r2sleigh_load_u8((void*)&__TMC_END__);
        if ((uint8_t)((uint8_t)tmp_401144_0_1 != (uint8_t)0U)) {
            return r2sleigh_residual_u64(1);
        } else {
            deregister_tm_clones();
            r2sleigh_store_u8((void*)&__TMC_END__, (uint8_t)1U);
            return r2sleigh_residual_u64(2);
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401170
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401170
EXPECT=<<EOF
uint64_t frame_dummy(void)
{
    uint64_t register_tm_clones(void);

    /* r2dec proof: no individual construct is marked; 3 source obligations: 2 rendered, 1 elided, 0 refused; 1 statements rendered */
    {
        return register_tm_clones();
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401176
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401176
EXPECT=<<EOF
uint64_t shape_variadic(uint64_t arg0, uint64_t arg1)
{
    int32_t snprintf(char*, uint64_t, const char*, ...);

    uint64_t tmp_4011ad_8_1;
    uint64_t rax_5;
    uint64_t tmp_4011db_8_1;
    uint32_t tmp_4011f2_8_1;
    uint8_t tmp_4011fd_8_1;
    uint64_t tmp_401211_8_1;
    uint64_t tmp_401218_8_1;
    uint64_t rax_17;
    uint64_t tmp_401249_8_1;
    uint32_t tmp_401260_8_1;
    uint8_t tmp_40126b_8_1;
    uint64_t tmp_40127f_8_1;
    uint64_t tmp_401286_8_1;
    uint64_t rax_28;
    uint64_t tmp_401290_8_1;
    uint64_t tmp_401297_8_1;
    uint64_t rax_31;
    uint64_t tmp_4012cb_8_1;
    uint32_t tmp_4012e2_8_1;
    uint8_t tmp_4012ed_8_1;
    uint64_t tmp_401301_8_1;
    uint64_t tmp_401308_8_1;
    uint64_t rax_42;
    uint64_t tmp_401312_8_1;
    uint64_t tmp_401319_8_1;
    uint64_t tmp_401320_8_1;
    uint64_t tmp_401324_8_1;
    uint64_t tmp_40132b_8_1;
    uint64_t rax_45;
    uint64_t tmp_401335_8_1;
    uint64_t tmp_40133c_8_1;
    uint64_t rax_48;
    uint64_t tmp_401376_8_1;
    uint32_t tmp_40138d_8_1;
    uint8_t tmp_401398_8_1;
    uint64_t tmp_4013ac_8_1;
    uint64_t rax_58;
    _Alignas(16) uint8_t frame[264];

    /* r2dec proof: no individual construct is marked; 243 source obligations: 141 rendered, 60 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 37 assumed (frame extent unproven); 51 statements rendered; 4 callee prototypes supplied by the source; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 40U), (uint64_t)arg0);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 32U), (uint64_t)arg1);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 72U), (uint64_t)0U);
        tmp_4011ad_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        rax_5 = (uint64_t)(uint32_t)snprintf((char*)(uint64_t)(frame + 80U), 160, "%llu", tmp_4011ad_8_1);
        r2sleigh_store_u32((void*)(uint64_t)(frame + 56U), (uint32_t)((uint64_t)rax_5 >> 0U));
        tmp_4011db_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 72U));
        tmp_4011f2_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 56U));
        tmp_4011fd_8_1 = r2sleigh_load_u8((void*)(uint64_t)(frame + 80U));
        r2sleigh_store_u64((void*)(uint64_t)(frame + 72U), (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_4011db_8_1 * (uint64_t)128U) + (uint64_t)((uint64_t)tmp_4011db_8_1 * (uint64_t)2U)) + (uint64_t)tmp_4011db_8_1) + (uint64_t)(int32_t)tmp_4011f2_8_1) + (uint64_t)(uint8_t)tmp_4011fd_8_1));
        tmp_401211_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        tmp_401218_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        rax_17 = (uint64_t)(uint32_t)snprintf((char*)(uint64_t)(frame + 80U), 160, "%llu:%llu", tmp_401218_8_1, tmp_401211_8_1);
        r2sleigh_store_u32((void*)(uint64_t)(frame + 60U), (uint32_t)((uint64_t)rax_17 >> 0U));
        tmp_401249_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 72U));
        tmp_401260_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 60U));
        tmp_40126b_8_1 = r2sleigh_load_u8((void*)((uint64_t)(frame + 80U) + (uint64_t)1U));
        r2sleigh_store_u64((void*)(uint64_t)(frame + 72U), (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_401249_8_1 * (uint64_t)128U) + (uint64_t)((uint64_t)tmp_401249_8_1 * (uint64_t)2U)) + (uint64_t)tmp_401249_8_1) + (uint64_t)(int32_t)tmp_401260_8_1) + (uint64_t)(uint8_t)tmp_40126b_8_1));
        tmp_40127f_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_401286_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        rax_28 = (uint64_t)((uint64_t)tmp_40127f_8_1 ^ (uint64_t)tmp_401286_8_1);
        tmp_401290_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        tmp_401297_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        rax_31 = (uint64_t)(uint32_t)snprintf((char*)(uint64_t)(frame + 80U), 160, "%llu:%llu:%llu", tmp_401297_8_1, tmp_401290_8_1, rax_28);
        r2sleigh_store_u32((void*)(uint64_t)(frame + 64U), (uint32_t)((uint64_t)rax_31 >> 0U));
        tmp_4012cb_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 72U));
        tmp_4012e2_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 64U));
        tmp_4012ed_8_1 = r2sleigh_load_u8((void*)((uint64_t)(frame + 80U) + (uint64_t)2U));
        r2sleigh_store_u64((void*)(uint64_t)(frame + 72U), (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_4012cb_8_1 * (uint64_t)128U) + (uint64_t)((uint64_t)tmp_4012cb_8_1 * (uint64_t)2U)) + (uint64_t)tmp_4012cb_8_1) + (uint64_t)(int32_t)tmp_4012e2_8_1) + (uint64_t)(uint8_t)tmp_4012ed_8_1));
        tmp_401301_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_401308_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        rax_42 = (uint64_t)((uint64_t)tmp_401301_8_1 | (uint64_t)tmp_401308_8_1);
        tmp_401312_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_401319_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        tmp_401320_8_1 = (uint64_t)((uint64_t)tmp_401312_8_1 + (uint64_t)tmp_401319_8_1);
        tmp_401324_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_40132b_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        rax_45 = (uint64_t)((uint64_t)tmp_401324_8_1 ^ (uint64_t)tmp_40132b_8_1);
        tmp_401335_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 32U));
        tmp_40133c_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)rax_42);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 16U), (uint64_t)tmp_401320_8_1);
        rax_48 = (uint64_t)(uint32_t)snprintf((char*)(uint64_t)(frame + 80U), 160, "%llu-%llu-%llu-%llu-%llu", tmp_40133c_8_1, tmp_401335_8_1, rax_45, tmp_401320_8_1, rax_42);
        r2sleigh_store_u32((void*)(uint64_t)(frame + 68U), (uint32_t)((uint64_t)rax_48 >> 0U));
        tmp_401376_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 72U));
        tmp_40138d_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 68U));
        tmp_401398_8_1 = r2sleigh_load_u8((void*)((uint64_t)(frame + 80U) + (uint64_t)3U));
        r2sleigh_store_u64((void*)(uint64_t)(frame + 72U), (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_401376_8_1 * (uint64_t)128U) + (uint64_t)((uint64_t)tmp_401376_8_1 * (uint64_t)2U)) + (uint64_t)tmp_401376_8_1) + (uint64_t)(int32_t)tmp_40138d_8_1) + (uint64_t)(uint8_t)tmp_401398_8_1));
        tmp_4013ac_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 72U));
        rax_58 = tmp_4013ac_8_1;
        {
            return (uint64_t)rax_58;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004013c9
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004013c9
EXPECT=<<EOF
uint64_t vfold(uint32_t arg0, ...)
{
    uint32_t tmp_4014e7_8_1;
    uint32_t tmp_4014ed_8_1;
    uint64_t tmp_4014f5_8_1;
    uint64_t rax_17;
    uint64_t tmp_40147b_8_1;
    uint64_t rcx_2;
    uint32_t tmp_401493_8_1;
    uint64_t tmp_40149e_8_1;
    uint32_t tmp_4014a5_8_1;
    uint32_t tmp_4014b0_8_1;
    uint64_t tmp_4014c1_8_1;
    uint64_t rax_13;
    uint64_t rax_14;
    uint64_t tmp_4014d3_0_1;
    uint32_t tmp_4014e0_8_1;
    _Alignas(16) uint8_t frame[248];

    /* r2dec proof: 15 constructs are marked below; 125 source obligations: 62 rendered, 41 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 17 residual; 44 statements rendered; 8 held from entry, read as residuals (XMM0_0, XMM1_0, XMM2_0, XMM3_0, XMM4_0, XMM5_0, XMM6_0, XMM7_0); 6 variadic tail registers, read as residuals (R8_0, R9_0, RAX_0, RCX_0, RDX_0, RSI_0); the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u32((void*)(uint64_t)(frame + 12U), (uint32_t)arg0);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)8U), (uint64_t)r2sleigh_residual_u64(1));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)16U), (uint64_t)r2sleigh_residual_u64(2));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)24U), (uint64_t)r2sleigh_residual_u64(3));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)32U), (uint64_t)r2sleigh_residual_u64(4));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)40U), (uint64_t)r2sleigh_residual_u64(5));
        if ((uint8_t)((uint8_t)((uint64_t)r2sleigh_residual_u64(6) >> 0U) == (uint8_t)0U)) {
        } else {
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)48U), (__uint128_t)r2sleigh_residual_u128(7));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)64U), (__uint128_t)r2sleigh_residual_u128(8));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)80U), (__uint128_t)r2sleigh_residual_u128(9));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)96U), (__uint128_t)r2sleigh_residual_u128(10));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)112U), (__uint128_t)r2sleigh_residual_u128(11));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)128U), (__uint128_t)r2sleigh_residual_u128(12));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)144U), (__uint128_t)r2sleigh_residual_u128(13));
            r2sleigh_store_u128((void*)(uint64_t)((uint64_t)(frame + 64U) + (uint64_t)160U), (__uint128_t)r2sleigh_residual_u128(14));
        }
        {
            r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)0x1234U);
            r2sleigh_store_u32((void*)(uint64_t)(frame + 32U), (uint32_t)8U);
            r2sleigh_residual_void(15); /* r2dec gap: StoreNotSpelled at 0x401425:31 covering 1 op (render::values) */
            r2sleigh_store_u64((void*)(uint64_t)(frame + 48U), (uint64_t)(frame + 64U));
            r2sleigh_store_u32((void*)(uint64_t)(frame + 20U), (uint32_t)0U);
            for (; ; ) {
                tmp_4014e7_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 20U));
                tmp_4014ed_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 12U));
                if ((uint8_t)((uint32_t)tmp_4014e7_8_1 < (uint32_t)tmp_4014ed_8_1)) {
                    tmp_40147b_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
                    rcx_2 = (uint64_t)((uint64_t)tmp_40147b_8_1 + (uint64_t)((uint64_t)((uint64_t)tmp_40147b_8_1 * (uint64_t)128U) + (uint64_t)((uint64_t)tmp_40147b_8_1 * (uint64_t)2U)));
                    tmp_401493_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 32U));
                    if ((uint8_t)((uint32_t)47U < (uint32_t)tmp_401493_8_1)) {
                        tmp_4014c1_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
                        rax_13 = tmp_4014c1_8_1;
                        r2sleigh_store_u64((void*)(uint64_t)(frame + 40U), (uint64_t)((uint64_t)rax_13 + (uint64_t)8U));
                        rax_14 = rax_13;
                    } else {
                        tmp_40149e_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 48U));
                        tmp_4014a5_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 32U));
                        tmp_4014b0_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 32U));
                        r2sleigh_store_u32((void*)(uint64_t)(frame + 32U), (uint32_t)((uint32_t)tmp_4014b0_8_1 + (uint32_t)8U));
                        rax_14 = (uint64_t)((uint64_t)(uint32_t)tmp_4014a5_8_1 + (uint64_t)tmp_40149e_8_1);
                    }
                    {
                        tmp_4014d3_0_1 = r2sleigh_load_u64((void*)rax_14);
                        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)((uint64_t)tmp_4014d3_0_1 + (uint64_t)rcx_2));
                        tmp_4014e0_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 20U));
                        r2sleigh_store_u32((void*)(uint64_t)(frame + 20U), (uint32_t)((uint32_t)tmp_4014e0_8_1 + (uint32_t)1U));
                    }
                } else {
                    break;
                }
            }
            {
                tmp_4014f5_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
                rax_17 = tmp_4014f5_8_1;
                {
                    return (uint64_t)rax_17;
                }
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401515
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401515
EXPECT=<<EOF
uint64_t shape_variadic_local(uint64_t arg0, uint64_t arg1)
{
    uint64_t vfold(uint32_t, ...);

    uint64_t rax_6;
    uint64_t rax_7;
    uint64_t rax_13;
    uint64_t rax_14;
    uint64_t rax_19;
    uint64_t rax_22;
    uint64_t rax_23;
    uint64_t rax_28;
    uint64_t tmp_4015f3_8_1;
    uint64_t rax_31;
    uint64_t rax_34;

    /* r2dec proof: no individual construct is marked; 83 source obligations: 62 rendered, 21 elided, 0 refused; 12 statements rendered */
    {
        rax_6 = vfold(1, arg0);
        rax_7 = rax_6;
        rax_13 = vfold(2, arg0, arg1);
        rax_14 = (uint64_t)((uint64_t)((uint64_t)((uint64_t)rax_7 * (uint64_t)8U) + (uint64_t)rax_13) - (uint64_t)rax_7);
        rax_19 = (uint64_t)((uint64_t)arg0 ^ (uint64_t)arg1);
        rax_22 = vfold(3, arg0, arg1, rax_19);
        rax_23 = (uint64_t)((uint64_t)((uint64_t)((uint64_t)rax_14 * (uint64_t)8U) + (uint64_t)rax_22) - (uint64_t)rax_14);
        rax_28 = (uint64_t)((uint64_t)arg0 | (uint64_t)arg1);
        tmp_4015f3_8_1 = (uint64_t)((uint64_t)arg0 + (uint64_t)arg1);
        rax_31 = (uint64_t)((uint64_t)arg0 ^ (uint64_t)arg1);
        rax_34 = vfold(5, arg0, arg1, rax_31, tmp_4015f3_8_1, rax_28);
        return (uint64_t)((uint64_t)((uint64_t)((uint64_t)rax_23 * (uint64_t)8U) + (uint64_t)rax_34) - (uint64_t)rax_23);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401633
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401633
EXPECT=<<EOF
uint64_t shape_step(uint64_t arg0)
{
    /* r2dec proof: no individual construct is marked; 13 source obligations: 6 rendered, 7 elided, 0 refused; 1 statements rendered */
    {
        return (uint64_t)((uint64_t)((uint64_t)arg0 * (uint64_t)0x5851f42d4c957f2dU) + (uint64_t)0x14057b7ef767814fU);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401660
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401660
EXPECT=<<EOF
uint64_t shape_stash(uint64_t* arg0, uint64_t arg1)
{
    /* r2dec proof: no individual construct is marked; 12 source obligations: 4 rendered, 8 elided, 0 refused; 2 statements rendered; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)arg0, (uint64_t)arg1);
        return (uint64_t)arg0;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x0040167e
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x0040167e
EXPECT=<<EOF
uint64_t shape_call_chain(uint64_t arg0, uint64_t arg1)
{
    uint64_t shape_stash(uint64_t, uint64_t);
    uint64_t shape_step(uint64_t);

    uint64_t tmp_4016c3_8_1;
    uint64_t rax_4;
    uint64_t tmp_4016d9_8_1;
    uint64_t rax_8;
    uint64_t tmp_4016e9_8_1;
    uint64_t tmp_4016ed_8_1;
    uint64_t rdx_5;
    uint64_t tmp_401703_8_1;
    uint64_t rax_13;
    uint64_t tmp_401713_8_1;
    uint64_t tmp_401717_8_1;
    uint64_t rax_15;
    uint64_t tmp_40172d_8_1;
    uint64_t rax_19;
    uint64_t tmp_40173d_8_1;
    uint64_t tmp_40174b_8_1;
    uint64_t tmp_40175d_8_1;
    uint64_t tmp_401765_8_1;
    uint64_t tmp_401774_8_1;
    uint64_t tmp_40178c_8_1;
    uint64_t rax_35;
    _Alignas(16) uint8_t frame[104];

    /* r2dec proof: no individual construct is marked; 150 source obligations: 94 rendered, 47 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 4 assumed (frame extent unproven); 33 statements rendered; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)arg0);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 16U), (uint64_t)arg1);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 40U), (uint64_t)0U);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)8U), (uint64_t)0U);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)16U), (uint64_t)0U);
        tmp_4016c3_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
        rax_4 = (uint64_t)((uint64_t)tmp_4016c3_8_1 ^ (uint64_t)0x123456789abcdefU);
        shape_stash((uint64_t)(frame + 40U), rax_4);
        tmp_4016d9_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        rax_8 = shape_step(tmp_4016d9_8_1);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)24U), (uint64_t)rax_8);
        tmp_4016e9_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_4016ed_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 16U));
        rdx_5 = (uint64_t)((uint64_t)tmp_4016e9_8_1 + (uint64_t)tmp_4016ed_8_1);
        shape_stash((uint64_t)((uint64_t)(frame + 40U) + (uint64_t)8U), rdx_5);
        tmp_401703_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)8U));
        rax_13 = shape_step(tmp_401703_8_1);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)32U), (uint64_t)rax_13);
        tmp_401713_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)8U));
        tmp_401717_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)24U));
        rax_15 = (uint64_t)((uint64_t)tmp_401713_8_1 ^ (uint64_t)tmp_401717_8_1);
        shape_stash((uint64_t)((uint64_t)(frame + 40U) + (uint64_t)16U), rax_15);
        tmp_40172d_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)16U));
        rax_19 = shape_step(tmp_40172d_8_1);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)40U), (uint64_t)rax_19);
        tmp_40173d_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)8U));
        tmp_40174b_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)16U));
        tmp_40175d_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 40U));
        tmp_401765_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)32U));
        tmp_401774_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)40U));
        tmp_40178c_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 40U) + (uint64_t)24U));
        rax_35 = (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_40173d_8_1 + (uint64_t)tmp_40173d_8_1) + (uint64_t)tmp_40173d_8_1) + (uint64_t)((uint64_t)tmp_40174b_8_1 * (uint64_t)8U)) + (uint64_t)tmp_40175d_8_1) - (uint64_t)tmp_40174b_8_1) ^ (uint64_t)((uint64_t)tmp_40178c_8_1 + (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_401765_8_1 * (uint64_t)4U) + (uint64_t)tmp_401765_8_1) + (uint64_t)((uint64_t)tmp_401774_8_1 * (uint64_t)8U)) + (uint64_t)((uint64_t)tmp_401774_8_1 * (uint64_t)2U)) + (uint64_t)tmp_401774_8_1)));
        {
            return (uint64_t)rax_35;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004017ac
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004017ac
EXPECT=<<EOF
struct fcn_4017ac_arg0 {
    uint8_t f_0;
    uint8_t _pad_1[1];
    uint16_t f_2;
    int32_t f_4;
    uint64_t f_8;
};

uint64_t mixed_touch(struct fcn_4017ac_arg0* arg0)
{
    uint8_t tmp_4017bc_0_1;
    uint16_t tmp_4017cc_8_1;
    uint32_t tmp_4017e2_8_1;
    uint64_t tmp_4017f6_8_1;
    uint32_t tmp_4017fe_8_1;
    uint16_t tmp_40180a_8_1;
    uint8_t tmp_401818_0_1;

    /* r2dec proof: no individual construct is marked; 53 source obligations: 45 rendered, 8 elided, 0 refused; 12 statements rendered; the result's second register is open: no call read decides it; 1 structure laid out from a parameter's accesses */
    {
        tmp_4017bc_0_1 = r2sleigh_load_u8((void*)&arg0->f_0);
        r2sleigh_store_u8((void*)&arg0->f_0, (uint8_t)((uint64_t)((uint64_t)(uint8_t)tmp_4017bc_0_1 + (uint64_t)3U) >> 0U));
        tmp_4017cc_8_1 = r2sleigh_load_u16((void*)&arg0->f_2);
        r2sleigh_store_u16((void*)&arg0->f_2, (uint16_t)((uint32_t)tmp_4017cc_8_1 ^ (uint32_t)(uint16_t)0xbeefU));
        tmp_4017e2_8_1 = r2sleigh_load_u32((void*)&arg0->f_4);
        r2sleigh_store_u32((void*)&arg0->f_4, (uint32_t)((uint64_t)((uint64_t)(int32_t)tmp_4017e2_8_1 * (uint64_t)0xffffffff9e3779b1U) >> 0U));
        tmp_4017f6_8_1 = r2sleigh_load_u64((void*)&arg0->f_8);
        tmp_4017fe_8_1 = r2sleigh_load_u32((void*)&arg0->f_4);
        tmp_40180a_8_1 = r2sleigh_load_u16((void*)&arg0->f_2);
        tmp_401818_0_1 = r2sleigh_load_u8((void*)&arg0->f_0);
        r2sleigh_store_u64((void*)&arg0->f_8, (uint64_t)((uint64_t)((uint64_t)((uint64_t)(uint32_t)tmp_4017fe_8_1 + (uint64_t)tmp_4017f6_8_1) + (uint64_t)(uint16_t)tmp_40180a_8_1) + (uint64_t)(uint8_t)tmp_401818_0_1));
        return (uint64_t)arg0;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x0040182c
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x0040182c
EXPECT=<<EOF
uint64_t mixed_fold(uint64_t arg0, uint64_t arg1)
{
    uint8_t tmp_401845_8_1;
    uint16_t tmp_401853_8_1;
    uint32_t tmp_401861_8_1;
    _Alignas(16) uint8_t frame[24];

    /* r2dec proof: no individual construct is marked; 31 source obligations: 20 rendered, 11 elided, 0 refused; 5 statements rendered; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 0U), (uint64_t)arg0);
        tmp_401845_8_1 = r2sleigh_load_u8((void*)(uint64_t)(frame + 0U));
        tmp_401853_8_1 = r2sleigh_load_u16((void*)((uint64_t)(frame + 0U) + (uint64_t)2U));
        tmp_401861_8_1 = r2sleigh_load_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)4U));
        return (uint64_t)((uint64_t)arg1 ^ (uint64_t)((uint64_t)((uint64_t)(uint32_t)8U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint32_t)tmp_401861_8_1 << (uint64_t)(uint32_t)8U)) ^ (uint64_t)((uint64_t)((uint64_t)(uint32_t)56U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint8_t)tmp_401845_8_1 << (uint64_t)(uint32_t)56U)) ^ (uint64_t)((uint64_t)(uint32_t)40U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint16_t)tmp_401853_8_1 << (uint64_t)(uint32_t)40U)))));
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401876
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401876
EXPECT=<<EOF
__uint128_t mixed_from(uint64_t arg0, uint64_t arg1)
{
    uint64_t tmp_4018ac_8_1;
    _Alignas(16) uint8_t frame[24];

    /* r2dec proof: no individual construct is marked; 26 source obligations: 15 rendered, 11 elided, 0 refused; 5 statements rendered */
    {
        r2sleigh_store_u8((void*)(uint64_t)(frame + 0U), (uint8_t)((uint64_t)arg0 >> 0U));
        r2sleigh_store_u16((void*)((uint64_t)(frame + 0U) + (uint64_t)2U), (uint16_t)((uint64_t)((uint64_t)(uint32_t)8U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)arg0 >> (uint64_t)(uint32_t)8U)) >> 0U));
        r2sleigh_store_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)4U), (uint32_t)((uint64_t)arg1 >> 0U));
        tmp_4018ac_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 0U));
        return (__uint128_t)((__uint128_t)(uint64_t)((uint64_t)arg0 ^ (uint64_t)arg1) << 64U | (__uint128_t)tmp_4018ac_8_1);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004018b6
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004018b6
EXPECT=<<EOF
uint64_t shape_struct_pointer(uint64_t arg0, uint64_t arg1)
{
    __uint128_t mixed_from(uint64_t, uint64_t);
    uint64_t mixed_touch(uint64_t);

    uint64_t tmp_4018d9_8_1;
    uint64_t tmp_4018dd_8_1;
    uint64_t rax_4;
    uint64_t rdx_2;
    uint8_t tmp_40190c_8_1;
    uint64_t rdx_5;
    uint16_t tmp_40191d_8_1;
    uint64_t rdx_6;
    uint32_t tmp_401932_8_1;
    uint64_t rcx_2;
    uint64_t tmp_401944_8_1;
    uint64_t rax_21;
    _Alignas(16) uint8_t frame[72];
    __uint128_t pair_4018e7;

    /* r2dec proof: no individual construct is marked; 86 source obligations: 51 rendered, 26 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 4 assumed (frame extent unproven); 20 statements rendered; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)arg0);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 16U), (uint64_t)arg1);
        tmp_4018d9_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 16U));
        tmp_4018dd_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
        pair_4018e7 = mixed_from(tmp_4018dd_8_1, tmp_4018d9_8_1);
        rax_4 = (uint64_t)((__uint128_t)pair_4018e7 >> 0U);
        rdx_2 = (uint64_t)((__uint128_t)pair_4018e7 >> 64U);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 32U), (uint64_t)rax_4);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 32U) + (uint64_t)8U), (uint64_t)rdx_2);
        mixed_touch((uint64_t)(frame + 32U));
        mixed_touch((uint64_t)(frame + 32U));
        tmp_40190c_8_1 = r2sleigh_load_u8((void*)(uint64_t)(frame + 32U));
        rdx_5 = (uint64_t)(uint8_t)tmp_40190c_8_1;
        tmp_40191d_8_1 = r2sleigh_load_u16((void*)((uint64_t)(frame + 32U) + (uint64_t)2U));
        rdx_6 = (uint64_t)(uint16_t)tmp_40191d_8_1;
        tmp_401932_8_1 = r2sleigh_load_u32((void*)((uint64_t)(frame + 32U) + (uint64_t)4U));
        rcx_2 = (uint64_t)(uint32_t)tmp_401932_8_1;
        tmp_401944_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 32U) + (uint64_t)8U));
        rax_21 = (uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)((uint64_t)rdx_5 + (uint64_t)rdx_5) + (uint64_t)rdx_5) + (uint64_t)((uint64_t)rdx_6 * (uint64_t)4U)) + (uint64_t)rdx_6) + (uint64_t)((uint64_t)rcx_2 * (uint64_t)8U)) + (uint64_t)tmp_401944_8_1) - (uint64_t)rcx_2);
        {
            return (uint64_t)rax_21;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401961
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401961
EXPECT=<<EOF
uint64_t shape_struct_value(uint64_t arg0, uint64_t arg1)
{
    uint64_t mixed_fold(uint64_t, uint64_t);
    __uint128_t mixed_from(uint64_t, uint64_t);

    uint64_t rax_2;
    uint64_t rdx_2;
    uint64_t tmp_401991_8_1;
    uint64_t rax_4;
    uint64_t rax_6;
    uint64_t tmp_4019d0_8_1;
    uint64_t rax_13;
    __uint128_t pair_401984;
    _Alignas(16) uint8_t frame[88];

    /* r2dec proof: no individual construct is marked; 59 source obligations: 37 rendered, 22 elided, 0 refused; 11 statements rendered */
    {
        pair_401984 = mixed_from(arg0, arg1);
        rax_2 = (uint64_t)((__uint128_t)pair_401984 >> 0U);
        rdx_2 = (uint64_t)((__uint128_t)pair_401984 >> 64U);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 48U), (uint64_t)rax_2);
        tmp_401991_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 48U));
        rax_4 = mixed_fold(tmp_401991_8_1, rdx_2);
        rax_6 = (uint64_t)((uint64_t)rdx_2 ^ (uint64_t)rax_4);
        r2sleigh_store_u32((void*)((uint64_t)(frame + 48U) + (uint64_t)4U), (uint32_t)((uint64_t)((uint64_t)(uint32_t)32U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)rax_4 >> (uint64_t)(uint32_t)32U)) >> 0U));
        tmp_4019d0_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 48U));
        rax_13 = mixed_fold(tmp_4019d0_8_1, rax_6);
        return (uint64_t)((uint64_t)((uint64_t)((uint64_t)rax_4 * (uint64_t)32U) + (uint64_t)rax_13) - (uint64_t)rax_4);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004019ec
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004019ec
EXPECT=<<EOF
uint64_t shape_struct_array(uint32_t arg0, uint32_t arg1)
{
    uint64_t rdi_1;
    uint64_t rsi_1;
    uint32_t stack_m104_1;
    uint32_t stack_m100_1;
    uint64_t stack_m96_1;
    uint64_t rax_23;
    uint32_t tmp_401a78_18_1;
    uint32_t tmp_401a90_18_1;
    _Alignas(16) uint8_t frame[88];

    /* r2dec proof: no individual construct is marked; 85 source obligations: 73 rendered, 7 elided, 0 refused, 5 compiler-inserted (assuming ub-free); 16 statements rendered; the result's second register is open: no call read decides it */
    {
        rdi_1 = (uint64_t)(uint32_t)arg0;
        rsi_1 = (uint64_t)(uint32_t)arg1;
        stack_m104_1 = 0;
        while ((uint8_t)((uint32_t)stack_m104_1 <= (uint32_t)7U)) {
            r2sleigh_store_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)((uint64_t)(uint32_t)stack_m104_1 * (uint64_t)2U) * 4U), (uint32_t)((uint32_t)((uint64_t)rdi_1 >> 0U) + (uint32_t)((uint64_t)((uint64_t)(int32_t)stack_m104_1 * (uint64_t)0xffffffff9e3779b1U) >> 0U)));
            r2sleigh_store_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)((uint64_t)((uint64_t)(uint32_t)stack_m104_1 * (uint64_t)2U) + (uint64_t)1U) * 4U), (uint32_t)((uint32_t)((uint64_t)rsi_1 >> 0U) ^ (uint32_t)((uint64_t)((uint64_t)(int32_t)stack_m104_1 * (uint64_t)0xffffffff9e3779b9U) >> 0U)));
            stack_m104_1 = (uint32_t)((uint32_t)stack_m104_1 + (uint32_t)1U);
        }
        {
            stack_m100_1 = 0;
            stack_m96_1 = 0;
            while ((uint8_t)((uint32_t)stack_m100_1 <= (uint32_t)7U)) {
                tmp_401a78_18_1 = r2sleigh_load_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)((uint64_t)(uint32_t)stack_m100_1 * (uint64_t)2U) * 4U));
                tmp_401a90_18_1 = r2sleigh_load_u32((void*)((uint64_t)(frame + 0U) + (uint64_t)((uint64_t)((uint64_t)(uint32_t)((uint32_t)((uint32_t)stack_m100_1 + (uint32_t)3U) & (uint32_t)7U) * (uint64_t)2U) + (uint64_t)1U) * 4U));
                stack_m100_1 = (uint32_t)((uint32_t)stack_m100_1 + (uint32_t)1U);
                stack_m96_1 = (uint64_t)((uint64_t)((uint64_t)(uint32_t)16U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint32_t)tmp_401a90_18_1 << (uint64_t)(uint32_t)16U)) ^ (uint64_t)((uint64_t)(uint32_t)tmp_401a78_18_1 + (uint64_t)((uint64_t)stack_m96_1 * (uint64_t)0x100000001b3U)));
            }
            {
                rax_23 = stack_m96_1;
                {
                    return (uint64_t)rax_23;
                }
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401ac2
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401ac2
EXPECT=<<EOF
uint64_t shape_stack_buffer(uint64_t arg0, uint8_t arg1)
{
    uint64_t rsi_1;
    uint32_t stack_m104_1;
    uint32_t stack_m100_1;
    uint64_t stack_m96_1;
    uint64_t rax_21;
    uint8_t tmp_401b4c_18_1;
    _Alignas(16) uint8_t frame[88];

    /* r2dec proof: no individual construct is marked; 74 source obligations: 62 rendered, 7 elided, 0 refused, 5 compiler-inserted (assuming ub-free); 13 statements rendered; the result's second register is open: no call read decides it */
    {
        rsi_1 = (uint64_t)(uint8_t)arg1;
        stack_m104_1 = 0;
        while ((uint8_t)((uint32_t)stack_m104_1 <= (uint32_t)63U)) {
            r2sleigh_store_u8((void*)((uint64_t)(frame + 0U) + (uint64_t)(uint32_t)stack_m104_1 * 1U), (uint8_t)((uint64_t)((uint64_t)(uint32_t)((uint64_t)((uint64_t)(uint8_t)((uint32_t)(uint8_t)((uint32_t)((uint32_t)stack_m104_1 & (uint32_t)7U) >> 0U) & (uint32_t)(uint8_t)63U) >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)arg0 >> (uint64_t)(uint8_t)((uint32_t)(uint8_t)((uint32_t)((uint32_t)stack_m104_1 & (uint32_t)7U) >> 0U) & (uint32_t)(uint8_t)63U))) >> 0U) + (uint64_t)(uint32_t)((uint64_t)((uint64_t)(int32_t)((uint64_t)rsi_1 >> 0U) * (uint64_t)(int32_t)stack_m104_1) >> 0U)) >> 0U));
            stack_m104_1 = (uint32_t)((uint32_t)stack_m104_1 + (uint32_t)1U);
        }
        {
            stack_m100_1 = 0;
            stack_m96_1 = (uint64_t)0xcbf29ce484222325U;
            while ((uint8_t)((uint32_t)stack_m100_1 <= (uint32_t)63U)) {
                tmp_401b4c_18_1 = r2sleigh_load_u8((void*)((uint64_t)(frame + 0U) + (uint64_t)(uint32_t)((uint32_t)((uint32_t)stack_m100_1 + (uint32_t)((uint32_t)stack_m100_1 * (uint32_t)4U)) & (uint32_t)63U) * 1U));
                stack_m100_1 = (uint32_t)((uint32_t)stack_m100_1 + (uint32_t)1U);
                stack_m96_1 = (uint64_t)((uint64_t)((uint64_t)stack_m96_1 ^ (uint64_t)(uint8_t)tmp_401b4c_18_1) * (uint64_t)0x100000001b3U);
            }
            {
                rax_21 = stack_m96_1;
                {
                    return (uint64_t)rax_21;
                }
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401b92
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401b92
EXPECT=<<EOF
uint64_t shape_recurse_direct(uint8_t arg0, uint64_t arg1)
{
    uint64_t rax_2;
    uint64_t rdx_3;
    uint64_t rax_9;
    uint64_t rax_10;
    uint64_t rax_12;

    /* r2dec proof: no individual construct is marked; 36 source obligations: 26 rendered, 10 elided, 0 refused; 9 statements rendered */
    {
        rax_2 = (uint64_t)(uint32_t)((uint32_t)((uint64_t)(uint8_t)arg0 >> 0U) & (uint32_t)15U);
        if ((uint8_t)((uint64_t)rax_2 != (uint64_t)0U)) {
            rdx_3 = (uint64_t)((uint64_t)rax_2 + (uint64_t)((uint64_t)((uint64_t)arg1 + (uint64_t)arg1) + (uint64_t)arg1));
            rax_9 = (uint64_t)((uint64_t)rax_2 - (uint64_t)1U);
            rax_10 = shape_recurse_direct((uint8_t)rax_9, rdx_3);
            rax_12 = (uint64_t)((uint64_t)rax_10 ^ (uint64_t)((uint64_t)(uint32_t)3U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)rax_2 << (uint64_t)(uint32_t)3U)));
            return (uint64_t)rax_12;
        } else {
            rax_12 = (uint64_t)((uint64_t)arg1 | (uint64_t)1U);
            return (uint64_t)rax_12;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401bf6
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401bf6
EXPECT=<<EOF
uint64_t shape_mutual_even(uint64_t arg0, uint64_t arg1)
{
    uint64_t shape_mutual_odd(uint64_t, uint64_t);

    uint64_t rax_5;
    uint64_t tmp_401c31_8_1;
    uint64_t rax_8;
    uint64_t rax_9;
    uint64_t rax_10;

    /* r2dec proof: no individual construct is marked; 31 source obligations: 21 rendered, 10 elided, 0 refused; 9 statements rendered */
    {
        if ((uint8_t)((uint64_t)arg0 != (uint64_t)0U)) {
            rax_5 = (uint64_t)((uint64_t)((uint64_t)arg1 * (uint64_t)32U) - (uint64_t)arg1);
            tmp_401c31_8_1 = (uint64_t)((uint64_t)rax_5 + (uint64_t)arg0);
            rax_8 = (uint64_t)((uint64_t)arg0 - (uint64_t)1U);
            rax_9 = shape_mutual_odd(rax_8, tmp_401c31_8_1);
            rax_10 = rax_9;
            return (uint64_t)rax_10;
        } else {
            rax_10 = (uint64_t)((uint64_t)arg1 ^ (uint64_t)0xa5a5a5a5U);
            return (uint64_t)rax_10;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401c4a
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401c4a
EXPECT=<<EOF
uint64_t shape_mutual_odd(uint64_t arg0, uint64_t arg1)
{
    uint64_t shape_mutual_even(uint64_t, uint64_t);

    uint64_t rdx_3;
    uint64_t rax_8;
    uint64_t rax_9;
    uint64_t rax_10;

    /* r2dec proof: no individual construct is marked; 31 source obligations: 21 rendered, 10 elided, 0 refused; 8 statements rendered */
    {
        if ((uint8_t)((uint64_t)arg0 != (uint64_t)0U)) {
            rdx_3 = (uint64_t)((uint64_t)((uint64_t)((uint64_t)arg1 * (uint64_t)16U) + (uint64_t)arg1) + (uint64_t)((uint64_t)arg0 * (uint64_t)4U));
            rax_8 = (uint64_t)((uint64_t)arg0 - (uint64_t)1U);
            rax_9 = shape_mutual_even(rax_8, rdx_3);
            rax_10 = rax_9;
            return (uint64_t)rax_10;
        } else {
            rax_10 = (uint64_t)((uint64_t)arg1 ^ (uint64_t)0x5a5a5a5aU);
            return (uint64_t)rax_10;
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401c9f
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401c9f
EXPECT=<<EOF
uint64_t shape_recurse_mutual(uint8_t arg0, uint64_t arg1)
{
    uint64_t shape_mutual_even(uint64_t, uint64_t);
    uint64_t shape_mutual_odd(uint64_t, uint64_t);

    uint64_t rdi_1;
    uint64_t rax_2;
    uint64_t rax_4;
    uint64_t rax_6;
    uint64_t rax_8;
    uint64_t rax_9;

    /* r2dec proof: no individual construct is marked; 40 source obligations: 25 rendered, 15 elided, 0 refused; 7 statements rendered */
    {
        rdi_1 = (uint64_t)(uint8_t)arg0;
        rax_2 = (uint64_t)(uint32_t)((uint32_t)((uint64_t)rdi_1 >> 0U) & (uint32_t)15U);
        rax_4 = shape_mutual_even(rax_2, arg1);
        rax_6 = (uint64_t)((uint64_t)arg1 ^ (uint64_t)0xffffU);
        rax_8 = (uint64_t)(uint32_t)((uint32_t)((uint64_t)rdi_1 >> 0U) & (uint32_t)7U);
        rax_9 = shape_mutual_odd(rax_8, rax_6);
        return (uint64_t)((uint64_t)rax_4 + (uint64_t)rax_9);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401cf8
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401cf8
EXPECT=<<EOF
uint64_t shape_signed_divmod(uint64_t arg0, uint64_t arg1)
{
    uint64_t stack_m48_1;
    uint64_t stack_m48_2;
    __uint128_t tmp_401d4a_0_1;
    uint64_t rdx_1;
    __uint128_t tmp_401d4c_10_1;
    __uint128_t tmp_401d4c_20_1;
    __uint128_t tmp_401d4c_30_1;
    __uint128_t tmp_401d4c_40_1;
    __uint128_t tmp_401d4c_50_1;
    __uint128_t tmp_401d4c_60_1;
    uint64_t rax_5;
    __uint128_t tmp_401d58_0_1;
    uint64_t rdx_3;
    __uint128_t tmp_401d5a_10_1;
    __uint128_t tmp_401d5a_20_1;
    __uint128_t tmp_401d5a_30_1;
    __uint128_t tmp_401d5a_40_1;
    __uint128_t tmp_401d5a_50_1;
    __uint128_t tmp_401d5a_70_1;
    uint64_t rdx_4;
    uint32_t stack_m64_1;
    uint32_t stack_m64_2;
    uint64_t tmp_401d97_c_1;
    uint64_t tmp_401d97_2c_1;
    uint64_t tmp_401d97_34_1;
    uint32_t tmp_lane_401d97_8_0_1;
    uint64_t tmp_401da1_c_1;
    uint64_t tmp_401da1_2c_1;
    uint64_t tmp_401da1_3c_1;
    uint32_t tmp_lane_401da1_b_0_1;
    uint64_t tmp_401dcf_8_2;
    uint64_t rax_24;
    uint64_t tmp_401de6_8_2;
    uint64_t rax_28;

    /* r2dec proof: 4 constructs are marked below; 119 source obligations: 106 rendered, 7 elided, 0 refused, 6 residual; 43 statements rendered; the result's second register is open: no call read decides it */
    {
        stack_m48_1 = (uint8_t)((uint64_t)arg1 != (uint64_t)0U) ? arg1 : (uint64_t)-0x7;
        {
            if ((uint8_t)((uint64_t)((uint64_t)stack_m48_1 + (uint64_t)1U) != (uint64_t)0U)) {
                stack_m48_2 = stack_m48_1;
            } else {
                stack_m48_2 = (uint8_t)((uint64_t)arg0 != (uint64_t)0x8000000000000000U) ? stack_m48_1 : 3;
            }
            {
                tmp_401d4a_0_1 = (__uint128_t)(int64_t)arg0;
                rdx_1 = (uint64_t)((__uint128_t)tmp_401d4a_0_1 >> 64U);
                tmp_401d4c_10_1 = (__uint128_t)(int64_t)stack_m48_2;
                tmp_401d4c_20_1 = (__uint128_t)(uint64_t)rdx_1;
                tmp_401d4c_30_1 = (__uint128_t)(uint32_t)64U >= (__uint128_t)128U ? (__uint128_t)0U : (__uint128_t)((__uint128_t)tmp_401d4c_20_1 << (__uint128_t)(uint32_t)64U);
                tmp_401d4c_40_1 = (__uint128_t)(uint64_t)arg0;
                tmp_401d4c_50_1 = (__uint128_t)((__uint128_t)tmp_401d4c_30_1 | (__uint128_t)tmp_401d4c_40_1);
                tmp_401d4c_60_1 = (__uint128_t)tmp_401d4c_50_1 == (__uint128_t)((__uint128_t)0x8000000000000000U << 64U | (__uint128_t)0U) && (__uint128_t)tmp_401d4c_10_1 == (__uint128_t)((__uint128_t)0xffffffffffffffffULL << 64U | (__uint128_t)0xffffffffffffffffULL) ? r2sleigh_residual_u128(1) : (__uint128_t)((__int128_t)tmp_401d4c_50_1 / (__int128_t)tmp_401d4c_10_1);
                rax_5 = (uint64_t)((__uint128_t)tmp_401d4c_60_1 >> 0U);
                (void)((__uint128_t)tmp_401d4c_10_1 == (__uint128_t)((__uint128_t)0xffffffffffffffffULL << 64U | (__uint128_t)0xffffffffffffffffULL) ? (__uint128_t)((__uint128_t)0U << 64U | (__uint128_t)0U) : (__uint128_t)((__int128_t)tmp_401d4c_50_1 % (__int128_t)tmp_401d4c_10_1));
                tmp_401d58_0_1 = (__uint128_t)(int64_t)arg0;
                rdx_3 = (uint64_t)((__uint128_t)tmp_401d58_0_1 >> 64U);
                tmp_401d5a_10_1 = (__uint128_t)(int64_t)stack_m48_2;
                tmp_401d5a_20_1 = (__uint128_t)(uint64_t)rdx_3;
                tmp_401d5a_30_1 = (__uint128_t)(uint32_t)64U >= (__uint128_t)128U ? (__uint128_t)0U : (__uint128_t)((__uint128_t)tmp_401d5a_20_1 << (__uint128_t)(uint32_t)64U);
                tmp_401d5a_40_1 = (__uint128_t)(uint64_t)arg0;
                tmp_401d5a_50_1 = (__uint128_t)((__uint128_t)tmp_401d5a_30_1 | (__uint128_t)tmp_401d5a_40_1);
                (void)((__uint128_t)tmp_401d5a_50_1 == (__uint128_t)((__uint128_t)0x8000000000000000U << 64U | (__uint128_t)0U) && (__uint128_t)tmp_401d5a_10_1 == (__uint128_t)((__uint128_t)0xffffffffffffffffULL << 64U | (__uint128_t)0xffffffffffffffffULL) ? r2sleigh_residual_u128(2) : (__uint128_t)((__int128_t)tmp_401d5a_50_1 / (__int128_t)tmp_401d5a_10_1));
                tmp_401d5a_70_1 = (__uint128_t)tmp_401d5a_10_1 == (__uint128_t)((__uint128_t)0xffffffffffffffffULL << 64U | (__uint128_t)0xffffffffffffffffULL) ? (__uint128_t)((__uint128_t)0U << 64U | (__uint128_t)0U) : (__uint128_t)((__int128_t)tmp_401d5a_50_1 % (__int128_t)tmp_401d5a_10_1);
                rdx_4 = (uint64_t)((__uint128_t)tmp_401d5a_70_1 >> 0U);
                stack_m64_1 = (uint8_t)((uint32_t)((uint64_t)arg1 >> 0U) != (uint32_t)0U) ? (uint32_t)((uint64_t)arg1 >> 0U) : (uint32_t)0xfffffffdU;
                {
                    if ((uint8_t)((uint32_t)((uint32_t)stack_m64_1 + (uint32_t)1U) != (uint32_t)0U)) {
                        stack_m64_2 = stack_m64_1;
                    } else {
                        stack_m64_2 = (uint8_t)((uint32_t)((uint64_t)arg0 >> 0U) != (uint32_t)0x80000000U) ? stack_m64_1 : 5;
                    }
                    {
                        tmp_401d97_c_1 = (uint64_t)(int32_t)stack_m64_2;
                        tmp_401d97_2c_1 = (uint64_t)((uint64_t)(uint32_t)((uint64_t)arg0 >> 0U) | (uint64_t)((uint64_t)(uint32_t)32U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint32_t)((uint64_t)(int32_t)((uint64_t)arg0 >> 0U) >> 32U) << (uint64_t)(uint32_t)32U)));
                        tmp_401d97_34_1 = (uint64_t)tmp_401d97_2c_1 == (uint64_t)0x8000000000000000U && (uint64_t)tmp_401d97_c_1 == (uint64_t)-0x1 ? r2sleigh_residual_u64(3) : (uint64_t)((int64_t)tmp_401d97_2c_1 / (int64_t)tmp_401d97_c_1);
                        tmp_lane_401d97_8_0_1 = (uint32_t)((uint64_t)tmp_401d97_34_1 >> 0U);
                        (void)((uint64_t)tmp_401d97_c_1 == (uint64_t)-0x1 ? (uint64_t)0U : (uint64_t)((int64_t)tmp_401d97_2c_1 % (int64_t)tmp_401d97_c_1));
                        tmp_401da1_c_1 = (uint64_t)(int32_t)stack_m64_2;
                        tmp_401da1_2c_1 = (uint64_t)((uint64_t)(uint32_t)((uint64_t)arg0 >> 0U) | (uint64_t)((uint64_t)(uint32_t)32U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint32_t)((uint64_t)(int32_t)((uint64_t)arg0 >> 0U) >> 32U) << (uint64_t)(uint32_t)32U)));
                        (void)((uint64_t)tmp_401da1_2c_1 == (uint64_t)0x8000000000000000U && (uint64_t)tmp_401da1_c_1 == (uint64_t)-0x1 ? r2sleigh_residual_u64(4) : (uint64_t)((int64_t)tmp_401da1_2c_1 / (int64_t)tmp_401da1_c_1));
                        tmp_401da1_3c_1 = (uint64_t)tmp_401da1_c_1 == (uint64_t)-0x1 ? (uint64_t)0U : (uint64_t)((int64_t)tmp_401da1_2c_1 % (int64_t)tmp_401da1_c_1);
                        tmp_lane_401da1_b_0_1 = (uint32_t)((uint64_t)tmp_401da1_3c_1 >> 0U);
                        tmp_401dcf_8_2 = (uint64_t)((uint64_t)(uint32_t)tmp_lane_401da1_b_0_1 ^ (uint64_t)((uint64_t)((uint64_t)(uint32_t)32U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)(uint32_t)tmp_lane_401d97_8_0_1 << (uint64_t)(uint32_t)32U)) ^ (uint64_t)((uint64_t)((uint64_t)rax_5 * (uint64_t)0xf4243U) + (uint64_t)rdx_4)));
                        rax_24 = (uint8_t)((int64_t)0U <= (int64_t)arg0) ? 34 : 17;
                        {
                            tmp_401de6_8_2 = (uint64_t)((uint64_t)tmp_401dcf_8_2 + (uint64_t)rax_24);
                            rax_28 = (uint8_t)((int32_t)tmp_lane_401da1_b_0_1 <= (int32_t)tmp_lane_401d97_8_0_1) ? 0x4400 : 0x3300;
                            {
                                return (uint64_t)((uint64_t)tmp_401de6_8_2 + (uint64_t)rax_28);
                            }
                        }
                    }
                }
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401e08
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401e08
EXPECT=<<EOF
__uint128_t wide_make(uint64_t arg0, uint64_t arg1)
{
    /* r2dec proof: no individual construct is marked; 18 source obligations: 11 rendered, 7 elided, 0 refused; 1 statements rendered */
    {
        return (__uint128_t)((__uint128_t)(uint64_t)((uint64_t)((uint64_t)arg0 ^ (uint64_t)arg1) * (uint64_t)0xc2b2ae3d27d4eb4fU) << 64U | (__uint128_t)(uint64_t)((uint64_t)arg1 - (uint64_t)((uint64_t)arg0 * (uint64_t)0x61c8864680b583ebU)));
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401e59
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401e59
EXPECT=<<EOF
uint64_t shape_multiword_return(uint64_t arg0, uint64_t arg1)
{
    __uint128_t wide_make(uint64_t, uint64_t);

    uint64_t rax_2;
    uint64_t rdx_2;
    uint64_t rax_4;
    uint64_t rdx_4;
    __uint128_t pair_401e7b;
    __uint128_t pair_401e96;

    /* r2dec proof: no individual construct is marked; 36 source obligations: 23 rendered, 13 elided, 0 refused; 7 statements rendered; the result's second register is open: no call read decides it */
    {
        pair_401e7b = wide_make(arg0, arg1);
        rax_2 = (uint64_t)((__uint128_t)pair_401e7b >> 0U);
        rdx_2 = (uint64_t)((__uint128_t)pair_401e7b >> 64U);
        pair_401e96 = wide_make(rdx_2, rax_2);
        rax_4 = (uint64_t)((__uint128_t)pair_401e96 >> 0U);
        rdx_4 = (uint64_t)((__uint128_t)pair_401e96 >> 64U);
        return (uint64_t)((uint64_t)((uint64_t)rax_4 ^ (uint64_t)rdx_2) + (uint64_t)((uint64_t)rdx_4 ^ (uint64_t)rax_2));
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401ec1
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401ec1
EXPECT=<<EOF
uint64_t indirect_load(uint64_t* arg0, uint32_t arg1)
{
    uint64_t tmp_401ee2_0_1;
    uint64_t tmp_401ee5_0_1;

    /* r2dec proof: no individual construct is marked; 17 source obligations: 10 rendered, 7 elided, 0 refused; 3 statements rendered; the result's second register is open: no call read decides it */
    {
        tmp_401ee2_0_1 = r2sleigh_load_u64((void*)((uint64_t)arg0 + (uint64_t)(uint32_t)arg1 * 8U));
        tmp_401ee5_0_1 = r2sleigh_load_u64((void*)tmp_401ee2_0_1);
        return (uint64_t)tmp_401ee5_0_1;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401eea
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401eea
EXPECT=<<EOF
uint64_t indirect_store(uint64_t* arg0, uint32_t arg1, uint64_t arg2)
{
    uint64_t tmp_401f0f_0_1;

    /* r2dec proof: no individual construct is marked; 17 source obligations: 9 rendered, 8 elided, 0 refused; 3 statements rendered */
    {
        tmp_401f0f_0_1 = r2sleigh_load_u64((void*)((uint64_t)arg0 + (uint64_t)(uint32_t)arg1 * 8U));
        r2sleigh_store_u64((void*)tmp_401f0f_0_1, (uint64_t)arg2);
        return (uint64_t)tmp_401f0f_0_1;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00401f1c
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00401f1c
EXPECT=<<EOF
uint64_t shape_pointer_to_pointer(uint64_t arg0, uint64_t arg1)
{
    uint64_t indirect_load(uint64_t, uint32_t);
    uint64_t indirect_store(uint64_t, uint32_t, uint64_t);

    uint64_t tmp_401f5f_8_1;
    uint64_t tmp_401f66_8_1;
    uint64_t tmp_401f71_8_1;
    uint64_t tmp_401f78_8_1;
    uint32_t tmp_401fe6_8_1;
    uint64_t tmp_401fec_8_1;
    uint64_t tmp_401ff0_8_1;
    uint64_t tmp_402001_8_1;
    uint64_t tmp_402005_8_1;
    uint64_t rax_21;
    uint64_t tmp_40200c_8_1;
    uint32_t tmp_402053_8_1;
    uint64_t tmp_402059_8_1;
    uint64_t rax_30;
    uint32_t tmp_402026_8_1;
    uint64_t tmp_402029_8_1;
    uint64_t rax_25;
    uint32_t tmp_40203a_8_1;
    uint64_t tmp_40204b_8_1;
    uint32_t tmp_40204f_8_1;
    uint64_t tmp_401fbf_8_1;
    uint32_t tmp_401fca_8_1;
    uint64_t tmp_401fcd_8_1;
    uint64_t rax_16;
    uint32_t tmp_401fe2_8_1;
    _Alignas(16) uint8_t frame[168];

    /* r2dec proof: no individual construct is marked; 198 source obligations: 108 rendered, 66 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 19 assumed (frame extent unproven); 52 statements rendered; the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)arg0);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 16U), (uint64_t)arg1);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 48U), (uint64_t)r2sleigh_load_u64((void*)(uint64_t)(frame + 24U)));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)8U), (uint64_t)r2sleigh_load_u64((void*)(uint64_t)(frame + 16U)));
        tmp_401f5f_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
        tmp_401f66_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 16U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)16U), (uint64_t)((uint64_t)tmp_401f5f_8_1 ^ (uint64_t)tmp_401f66_8_1));
        tmp_401f71_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
        tmp_401f78_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 16U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)24U), (uint64_t)((uint64_t)tmp_401f78_8_1 + (uint64_t)tmp_401f71_8_1));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)48U), (uint64_t)(frame + 48U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)56U), (uint64_t)((uint64_t)(frame + 48U) + (uint64_t)8U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)64U), (uint64_t)((uint64_t)(frame + 48U) + (uint64_t)16U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)72U), (uint64_t)((uint64_t)(frame + 48U) + (uint64_t)24U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)40U), (uint64_t)((uint64_t)(frame + 48U) + (uint64_t)48U));
        r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U), (uint64_t)0U);
        r2sleigh_store_u32((void*)(uint64_t)(frame + 40U), (uint32_t)0U);
        for (; ; ) {
            tmp_401fe6_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 40U));
            if ((uint8_t)((uint32_t)tmp_401fe6_8_1 <= (uint32_t)3U)) {
                tmp_401fbf_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U));
                tmp_401fca_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 40U));
                tmp_401fcd_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)40U));
                rax_16 = indirect_load(tmp_401fcd_8_1, (uint32_t)tmp_401fca_8_1);
                r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U), (uint64_t)((uint64_t)((uint64_t)tmp_401fbf_8_1 * (uint64_t)0xf4243U) + (uint64_t)rax_16));
                tmp_401fe2_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 40U));
                r2sleigh_store_u32((void*)(uint64_t)(frame + 40U), (uint32_t)((uint32_t)tmp_401fe2_8_1 + (uint32_t)1U));
            } else {
                break;
            }
        }
        {
            tmp_401fec_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U));
            tmp_401ff0_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)40U));
            indirect_store(tmp_401ff0_8_1, 1, tmp_401fec_8_1);
            tmp_402001_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 48U));
            tmp_402005_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U));
            rax_21 = (uint64_t)((uint64_t)tmp_402001_8_1 ^ (uint64_t)tmp_402005_8_1);
            tmp_40200c_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)40U));
            indirect_store(tmp_40200c_8_1, 3, rax_21);
            r2sleigh_store_u32((void*)(uint64_t)(frame + 44U), (uint32_t)0U);
            for (; ; ) {
                tmp_402053_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                if ((uint8_t)((uint32_t)tmp_402053_8_1 <= (uint32_t)3U)) {
                    tmp_402026_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                    tmp_402029_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)40U));
                    rax_25 = indirect_load(tmp_402029_8_1, (uint32_t)tmp_402026_8_1);
                    tmp_40203a_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                    tmp_40204b_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U));
                    r2sleigh_store_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U), (uint64_t)((uint64_t)((uint64_t)(uint8_t)((uint32_t)(uint8_t)((uint32_t)((uint32_t)((uint32_t)tmp_40203a_8_1 + (uint32_t)tmp_40203a_8_1) + (uint32_t)tmp_40203a_8_1) >> 0U) & (uint32_t)(uint8_t)63U) >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)rax_25 << (uint64_t)(uint8_t)((uint32_t)(uint8_t)((uint32_t)((uint32_t)((uint32_t)tmp_40203a_8_1 + (uint32_t)tmp_40203a_8_1) + (uint32_t)tmp_40203a_8_1) >> 0U) & (uint32_t)(uint8_t)63U))) ^ (uint64_t)tmp_40204b_8_1));
                    tmp_40204f_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                    r2sleigh_store_u32((void*)(uint64_t)(frame + 44U), (uint32_t)((uint32_t)tmp_40204f_8_1 + (uint32_t)1U));
                } else {
                    break;
                }
            }
            {
                tmp_402059_8_1 = r2sleigh_load_u64((void*)((uint64_t)(frame + 48U) + (uint64_t)32U));
                rax_30 = tmp_402059_8_1;
                {
                    return (uint64_t)rax_30;
                }
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00402077
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00402077
EXPECT=<<EOF
uint64_t op_add(uint64_t arg0, uint64_t arg1)
{
    /* r2dec proof: no individual construct is marked; 10 source obligations: 3 rendered, 7 elided, 0 refused; 1 statements rendered; the result's second register is open: no call read decides it */
    {
        return (uint64_t)((uint64_t)arg1 + (uint64_t)arg0);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00402094
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00402094
EXPECT=<<EOF
uint64_t op_xor(uint64_t arg0, uint64_t arg1)
{
    /* r2dec proof: no individual construct is marked; 12 source obligations: 5 rendered, 7 elided, 0 refused; 1 statements rendered; the result's second register is open: no call read decides it */
    {
        return (uint64_t)((uint64_t)((uint64_t)arg0 ^ (uint64_t)arg1) * (uint64_t)3U);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004020ba
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004020ba
EXPECT=<<EOF
uint64_t op_mul(uint64_t arg0, uint64_t arg1)
{
    /* r2dec proof: no individual construct is marked; 11 source obligations: 4 rendered, 7 elided, 0 refused; 1 statements rendered */
    {
        return (uint64_t)((uint64_t)((uint64_t)arg1 | (uint64_t)1U) * (uint64_t)arg0);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004020d9
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004020d9
EXPECT=<<EOF
uint64_t shape_function_pointer(uint64_t arg0, uint64_t arg1)
{
    uint32_t tmp_40217e_8_1;
    uint64_t tmp_402184_8_1;
    uint64_t rax_14;
    uint32_t tmp_402125_8_1;
    uint64_t tmp_402128_8_1;
    uint64_t tmp_40212c_8_1;
    __uint128_t tmp_40213d_0_1;
    __uint128_t tmp_40213d_20_1;
    uint64_t rdx_3;
    uint64_t rdx_4;
    uint32_t tmp_40217a_8_1;
    _Alignas(16) uint8_t frame[104];

    /* r2dec proof: 3 constructs are marked below; 105 source obligations: 45 rendered, 33 elided, 0 refused, 5 compiler-inserted (assuming ub-free), 22 residual; 25 statements rendered; 1 never assigned, read as residuals (RAX_13); the result's second register is open: no call read decides it */
    {
        r2sleigh_store_u64((void*)(uint64_t)(frame + 24U), (uint64_t)arg0);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 16U), (uint64_t)arg1);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 64U), (uint64_t)0x402077U);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)8U), (uint64_t)0x402094U);
        r2sleigh_store_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)16U), (uint64_t)0x4020baU);
        r2sleigh_store_u64((void*)(uint64_t)(frame + 48U), (uint64_t)r2sleigh_load_u64((void*)(uint64_t)(frame + 24U)));
        r2sleigh_store_u32((void*)(uint64_t)(frame + 44U), (uint32_t)0U);
        for (; ; ) {
            tmp_40217e_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
            if ((uint8_t)((uint32_t)tmp_40217e_8_1 <= (uint32_t)5U)) {
                tmp_402125_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                tmp_402128_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 24U));
                tmp_40212c_8_1 = (uint64_t)((uint64_t)(uint32_t)tmp_402125_8_1 + (uint64_t)tmp_402128_8_1);
                tmp_40213d_0_1 = (__uint128_t)(uint64_t)tmp_40212c_8_1;
                tmp_40213d_20_1 = (__uint128_t)((__uint128_t)tmp_40213d_0_1 * (__uint128_t)0xaaaaaaaaaaaaaaabU);
                rdx_3 = (uint64_t)((__uint128_t)tmp_40213d_20_1 >> 64U);
                rdx_4 = (uint64_t)(uint32_t)1U >= (uint64_t)64U ? (uint64_t)0U : (uint64_t)((uint64_t)rdx_3 >> (uint64_t)(uint32_t)1U);
                r2sleigh_store_u64((void*)(uint64_t)(frame + 56U), (uint64_t)r2sleigh_load_u64((void*)((uint64_t)(frame + 64U) + (uint64_t)((uint64_t)((uint64_t)((uint64_t)tmp_40212c_8_1 - (uint64_t)rdx_4) - (uint64_t)rdx_4) - (uint64_t)rdx_4) * 8U)));
                r2sleigh_residual_void(1); /* r2dec gap: CallNotRendered at 0x402125:103 covering 1 op (render::values): call to an indirect target: no arity is stated, only the registers written before it */
                r2sleigh_residual_void(2); /* r2dec gap: ValueNotComputed at 0x402125:110 covering 1 op (render::values) */
                r2sleigh_store_u64((void*)(uint64_t)(frame + 48U), (uint64_t)r2sleigh_residual_u64(3));
                tmp_40217a_8_1 = r2sleigh_load_u32((void*)(uint64_t)(frame + 44U));
                r2sleigh_store_u32((void*)(uint64_t)(frame + 44U), (uint32_t)((uint32_t)tmp_40217a_8_1 + (uint32_t)1U));
            } else {
                break;
            }
        }
        {
            tmp_402184_8_1 = r2sleigh_load_u64((void*)(uint64_t)(frame + 48U));
            rax_14 = tmp_402184_8_1;
            {
                return (uint64_t)rax_14;
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x0040219e
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x0040219e
EXPECT=<<EOF
uint8_t shape_bool_probe(uint64_t arg0)
{
    /* r2dec proof: no individual construct is marked; 11 source obligations: 4 rendered, 7 elided, 0 refused; 1 statements rendered */
    {
        return (uint8_t)((uint64_t)7U < (uint64_t)arg0);
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x004021b4
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x004021b4
EXPECT=<<EOF
uint64_t shape_bool_caller(uint64_t arg0, uint64_t arg1)
{
    uint8_t shape_bool_probe(uint64_t);

    uint64_t rax_2;
    uint64_t stack_m16_1;
    uint64_t rax_5;
    uint64_t stack_m16_2;

    /* r2dec proof: no individual construct is marked; 42 source obligations: 29 rendered, 13 elided, 0 refused; 5 statements rendered */
    {
        rax_2 = (uint64_t)shape_bool_probe(arg0);
        stack_m16_1 = (uint8_t)((uint8_t)((uint64_t)rax_2 >> 0U) == (uint8_t)0U) ? 0 : arg1;
        {
            rax_5 = (uint64_t)shape_bool_probe(arg1);
            stack_m16_2 = (uint8_t)((uint8_t)((uint64_t)rax_5 >> 0U) == (uint8_t)0U) ? stack_m16_1 : (uint64_t)((uint64_t)stack_m16_1 + (uint64_t)arg0);
            {
                return (uint64_t)stack_m16_2;
            }
        }
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x00402206
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x00402206
EXPECT=<<EOF
uint64_t fcn_402206(void)
{
    int32_t printf(const char*, ...);
    uint64_t shape_bool_caller(uint64_t, uint64_t);
    uint64_t shape_call_chain(uint64_t, uint64_t);
    uint64_t shape_function_pointer(uint64_t, uint64_t);
    uint64_t shape_multiword_return(uint64_t, uint64_t);
    uint64_t shape_pointer_to_pointer(uint64_t, uint64_t);
    uint64_t shape_recurse_direct(uint8_t, uint64_t);
    uint64_t shape_recurse_mutual(uint8_t, uint64_t);
    uint64_t shape_signed_divmod(uint64_t, uint64_t);
    uint64_t shape_stack_buffer(uint64_t, uint8_t);
    uint64_t shape_struct_array(uint32_t, uint32_t);
    uint64_t shape_struct_pointer(uint64_t, uint64_t);
    uint64_t shape_struct_value(uint64_t, uint64_t);
    uint64_t shape_variadic(uint64_t, uint64_t);
    uint64_t shape_variadic_local(uint64_t, uint64_t);

    uint64_t rax_4;
    uint64_t rax_8;
    uint64_t rax_12;
    uint64_t rax_16;
    uint64_t rax_20;
    uint64_t rax_24;
    uint64_t rax_28;
    uint64_t rax_32;
    uint64_t rax_36;
    uint64_t rax_40;
    uint64_t rax_44;
    uint64_t rax_48;
    uint64_t rax_52;
    uint64_t rax_56;

    /* r2dec proof: no individual construct is marked; 318 source obligations: 227 rendered, 91 elided, 0 refused; 29 statements rendered; 14 callee prototypes supplied by the source */
    /* symbol `main`; C allows that name no other prototype */
    {
        rax_4 = shape_variadic((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_4);
        rax_8 = shape_variadic_local((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_8);
        rax_12 = shape_call_chain((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_12);
        rax_16 = shape_struct_pointer((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_16);
        rax_20 = shape_struct_value((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_20);
        rax_24 = shape_struct_array((uint32_t)0x123456789abcdefU, (uint32_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_24);
        rax_28 = shape_stack_buffer((uint64_t)0x123456789abcdefU, (uint8_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_28);
        rax_32 = shape_recurse_direct((uint8_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_32);
        rax_36 = shape_recurse_mutual((uint8_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_36);
        rax_40 = shape_signed_divmod((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_40);
        rax_44 = shape_multiword_return((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_44);
        rax_48 = shape_pointer_to_pointer((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_48);
        rax_52 = shape_function_pointer((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_52);
        rax_56 = shape_bool_caller((uint64_t)0x123456789abcdefU, (uint64_t)0xfedcba9876543210U);
        printf("%016llx\n", rax_56);
        return 0;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=0x0040243c
FILE=tests/coverage/pinned/shapes_gcc_x64_O0
CMDS=aa; pdd @ 0x0040243c
EXPECT=<<EOF
void _fini(void)
{
    /* r2dec proof: no individual construct is marked; 7 source obligations: 1 rendered, 6 elided, 0 refused; 1 statements rendered */
    {
        return;
    }
}

EOF
EXPECT_ERR=<<EOF
EOF
RUN
