// File: /workspace/github_c_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x348, %rsp            # imm = 0x348
xorl %eax, %eax
callq 0x66f5
leaq 0x99df(%rip), %rsi      # 0xd200
leaq 0xb0(%rsp), %rbx
movl $0x28f, %edx            # imm = 0x28F
movq %rbx, %rdi
callq 0x31a0
movq %rbx, %rdi
callq 0x39a8
leaq 0x4c(%rsp), %rbx
andq $0x0, (%rbx)
andl $0x0, 0x8(%rbx)
leaq 0x58(%rsp), %r14
movq %r14, %rdi
callq 0x346c
movl 0x10(%r14), %eax
movl %eax, 0x28(%rsp)
movups (%r14), %xmm0
movups %xmm0, 0x18(%rsp)
movl 0x48(%rsp), %eax
movl %eax, 0x10(%rsp)
movups 0x38(%rsp), %xmm0
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %r14
movl $0x5a63, %esi           # imm = 0x5A63
movq %r14, %rdi
movq %rbx, %rdx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x6d9d
cmpq $0x20, (%r14)
jne 0x38cf
movq 0x78(%rsp), %rsi
leaq 0x9dca(%rip), %rdi      # 0xd670
pushq $0x20
popq %rdx
callq 0x31c0
testl %eax, %eax
jne 0x38ee
cmpq $0x0, 0xa0(%rsp)
jne 0x390d
xorl %eax, %eax
callq 0x6a10
addq $0x348, %rsp            # imm = 0x348
popq %rbx
popq %r14
retq
leaq 0x9be4(%rip), %rdi      # 0xd4ba
leaq 0x9c08(%rip), %rsi      # 0xd4e5
leaq 0x9cec(%rip), %rcx      # 0xd5d0
movl $0xc2, %edx
callq 0x30e0
leaq 0x9c17(%rip), %rdi      # 0xd50c
leaq 0x9be9(%rip), %rsi      # 0xd4e5
leaq 0x9ccd(%rip), %rcx      # 0xd5d0
movl $0xc3, %edx
callq 0x30e0
leaq 0x9c41(%rip), %rdi      # 0xd555
leaq 0x9bca(%rip), %rsi      # 0xd4e5
leaq 0x9cae(%rip), %rcx      # 0xd5d0
movl $0xc4, %edx
callq 0x30e0