// File: /workspace/github_c_makefile_star2_O0/wjmelements[P]evm/tst/dio.c
// Function: test_applyConfig_tests
void test_applyConfig_tests() {
    evmInit();

    const char config[] = "["
        "{"
            "\"address\":\"0x80d9b122dc3a16fdc41f96cf010ffe7e38d227c3\","
            "\"code\":\"0x60213610600e576020355f3555005b5f35545f52595ff3\","
            "\"tests\":"
                "["
                    "{"
                        "\"op\": \"STATICCALL\","
                        "\"input\": \"0x0000000000000000000000000000000000000000000000000000000000000000\","
                        "\"output\": \"0x0000000000000000000000000000000000000000000000000000000000000000\""
                    "},"
                    "{"
                        "\"op\": \"CALL\","
                        "\"input\": \"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001\","
                        "\"output\": \"0x\""
                    "},"
                    "{"
                        "\"op\": \"STATICCALL\","
                        "\"input\": \"0x0000000000000000000000000000000000000000000000000000000000000000\","
                        "\"output\": \"0x0000000000000000000000000000000000000000000000000000000000000001\""
                    "}"
                "]"
        "}"
    "]";
    applyConfig(config);

    uint64_t gas = 0x5a63;
    address_t from;
    val_t val;
    val[0] = 0;
    val[1] = 0;
    val[2] = 0;
    address_t to = AddressFromHex42("0x80d9b122dc3a16fdc41f96cf010ffe7e38d227c3");
    data_t input;
    input.size = 0;

    result_t result = txCall(from, gas, to, val, input, NULL);
    op_t expected[] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
    };
    assert(result.returnData.size == sizeof(expected));
    assert(memcmp(expected, result.returnData.content, result.returnData.size) == 0);
    assert(result.gasRemaining == 0);

    evmFinalize();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x370, %rsp            # imm = 0x370
movb $0x0, %al
callq 0x86a0
leaq -0x290(%rbp), %rdi
leaq 0x13720(%rip), %rsi     # 0x17200
movl $0x28f, %edx            # imm = 0x28F
callq 0x31b0
leaq -0x290(%rbp), %rdi
callq 0x3df0
movq $0x5a63, -0x298(%rbp) # imm = 0x5A63
movl $0x0, -0x2bc(%rbp)
movl $0x0, -0x2b8(%rbp)
movl $0x0, -0x2b4(%rbp)
leaq -0x2d0(%rbp), %rdi
leaq 0x13962(%rip), %rsi     # 0x1748f
addq $0x2, %rsi
callq 0x3500
movq $0x0, -0x2e0(%rbp)
movq -0x298(%rbp), %rsi
leaq -0x2bc(%rbp), %rdx
movq -0x2e0(%rbp), %rcx
movq -0x2d8(%rbp), %r8
leaq -0x320(%rbp), %rdi
leaq -0x2b0(%rbp), %r10
leaq -0x2d0(%rbp), %rax
xorl %r9d, %r9d
movq (%r10), %r11
movq %r11, (%rsp)
movq 0x8(%r10), %r11
movq %r11, 0x8(%rsp)
movl 0x10(%r10), %r10d
movl %r10d, 0x10(%rsp)
movq (%rax), %r10
movq %r10, 0x18(%rsp)
movq 0x8(%rax), %r10
movq %r10, 0x20(%rsp)
movl 0x10(%rax), %eax
movl %eax, 0x28(%rsp)
callq 0x9180
movq 0x13ace(%rip), %rax     # 0x17680
movq %rax, -0x340(%rbp)
movq 0x13ac8(%rip), %rax     # 0x17688
movq %rax, -0x338(%rbp)
movq 0x13ac2(%rip), %rax     # 0x17690
movq %rax, -0x330(%rbp)
movq 0x13abc(%rip), %rax     # 0x17698
movq %rax, -0x328(%rbp)
cmpq $0x20, -0x320(%rbp)
jne 0x3bef
jmp 0x3c0e
leaq 0x138c4(%rip), %rdi     # 0x174ba
leaq 0x138e8(%rip), %rsi     # 0x174e5
movl $0xc2, %edx
leaq 0x139c7(%rip), %rcx     # 0x175d0
callq 0x30e0
leaq -0x340(%rbp), %rdi
movq -0x318(%rbp), %rsi
movq -0x320(%rbp), %rdx
callq 0x3160
cmpl $0x0, %eax
jne 0x3c2f
jmp 0x3c4e
leaq 0x138d6(%rip), %rdi     # 0x1750c
leaq 0x138a8(%rip), %rsi     # 0x174e5
movl $0xc3, %edx
leaq 0x13987(%rip), %rcx     # 0x175d0
callq 0x30e0
cmpq $0x0, -0x2f0(%rbp)
jne 0x3c5a
jmp 0x3c79
leaq 0x138f4(%rip), %rdi     # 0x17555
leaq 0x1387d(%rip), %rsi     # 0x174e5
movl $0xc4, %edx
leaq 0x1395c(%rip), %rcx     # 0x175d0
callq 0x30e0
movb $0x0, %al
callq 0x8bb0
addq $0x370, %rsp            # imm = 0x370
popq %rbp
retq
nopl (%rax)