// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x348, %rsp            # imm = 0x348
xorl %eax, %eax
callq 0x7e9b
leaq 0xb987(%rip), %rsi      # 0x10200
leaq 0xb0(%rsp), %rbx
movl $0x28f, %edx            # imm = 0x28F
movq %rbx, %rdi
callq 0x31a0
movq %rbx, %rdi
callq 0x4a7c
movq $0x0, 0x34(%rsp)
movl $0x0, 0x3c(%rsp)
movq $-0x2, %r14
leaq 0x40(%rsp), %r15
leaq 0xbbd5(%rip), %r12      # 0x1048f
movq 0x11737(%rip), %r13     # 0x15ff8
leaq 0xbd2e(%rip), %rbx      # 0x105f6
movzbl 0x4(%r14,%r12), %ecx
leal -0x30(%rcx), %ebp
cmpb $0xa, %bpl
jb 0x48ef
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x48e3
addb $-0x57, %cl
jmp 0x48ed
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x492d
addb $-0x37, %cl
movl %ecx, %ebp
movzbl 0x5(%r14,%r12), %ecx
leal -0x30(%rcx), %eax
cmpb $0xa, %al
jb 0x4914
leal -0x61(%rcx), %eax
cmpb $0x5, %al
ja 0x4908
addb $-0x57, %cl
jmp 0x4912
leal -0x41(%rcx), %eax
cmpb $0x5, %al
ja 0x4942
addb $-0x37, %cl
movl %ecx, %eax
shlb $0x4, %bpl
addb %al, %bpl
movb %bpl, (%r15)
addq $0x2, %r14
incq %r15
cmpq $0x26, %r14
jb 0x48c8
jmp 0x4956
movq (%r13), %rdi
movq %rbx, %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x3180
movb $-0x1, %bpl
jmp 0x48ef
movq (%r13), %rdi
movq %rbx, %rsi
movl %ecx, %edx
xorl %eax, %eax
callq 0x3180
movb $-0x1, %al
jmp 0x4914
movl 0x50(%rsp), %eax
movl %eax, 0x28(%rsp)
movups 0x40(%rsp), %xmm0
movups %xmm0, 0x18(%rsp)
movl 0x68(%rsp), %eax
movl %eax, 0x10(%rsp)
movups 0x58(%rsp), %xmm0
movups %xmm0, (%rsp)
leaq 0x70(%rsp), %rbx
leaq 0x34(%rsp), %rdx
movl $0x5a63, %esi           # imm = 0x5A63
movq %rbx, %rdi
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x872c
cmpq $0x20, (%rbx)
jne 0x49e2
movq 0x78(%rsp), %rax
movabsq $0x100000000000000, %rcx # imm = 0x100000000000000
xorq 0x18(%rax), %rcx
orq 0x8(%rax), %rcx
movq (%rax), %rdx
orq 0x10(%rax), %rdx
orq %rcx, %rdx
jne 0x4a01
cmpq $0x0, 0xa0(%rsp)
jne 0x4a20
xorl %eax, %eax
callq 0x8349
addq $0x348, %rsp            # imm = 0x348
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xbad1(%rip), %rdi      # 0x104ba
leaq 0xbaf5(%rip), %rsi      # 0x104e5
leaq 0xbbd9(%rip), %rcx      # 0x105d0
movl $0xc2, %edx
callq 0x30e0
leaq 0xbb04(%rip), %rdi      # 0x1050c
leaq 0xbad6(%rip), %rsi      # 0x104e5
leaq 0xbbba(%rip), %rcx      # 0x105d0
movl $0xc3, %edx
callq 0x30e0
leaq 0xbb2e(%rip), %rdi      # 0x10555
leaq 0xbab7(%rip), %rsi      # 0x104e5
leaq 0xbb9b(%rip), %rcx      # 0x105d0
movl $0xc4, %edx
callq 0x30e0