// File: /workspace/github_c_makefile_star2_O0/wjmelements[P]evm/tst/evm.c
// Function: test_callEmpty
void test_callEmpty() {
    // 70a082310000000000000000000000004a6f6b9ff1fc974096f9063a45fd12bd5b928ad1
    evmInit();
    op_t callData[] = {
        0x70, 0xa0, 0x82, 0x31,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
        0x4a, 0x6f, 0x6b, 0x9f, 0xf1,
        0xfc, 0x97, 0x40, 0x96, 0xf9,
        0x06, 0x3a, 0x45, 0xfd, 0x12,
        0xbd, 0x5b, 0x92, 0x8a, 0xd1,
    };
    address_t from = AddressFromHex42("0x4a6f6B9fF1fc974096f9063a45Fd12bD5B928AD1");
    address_t to = AddressFromHex42("0x4a6f6B9fF1fc974096f9063a45Fd12bD5B928AD1");
    uint64_t gas = 21432;
    val_t value;
    value[0] = 0;
    value[1] = 0;
    value[2] = 0;
    data_t input;
    input.content = callData;
    input.size = sizeof(callData);

    result_t result = txCall(from, gas, to, value, input, NULL);
    evmFinalize();

    assert(UPPER(UPPER(result.status)) == 0);
    assert(LOWER(UPPER(result.status)) == 0);
    assert(UPPER(LOWER(result.status)) == 0);
    assert(LOWER(LOWER(result.status)) == 1);
    assert(result.returnData.size == 0);
    assert(result.gasRemaining == 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movb $0x0, %al
callq 0xcfc0
leaq -0x30(%rbp), %rdi
leaq 0x19c33(%rip), %rsi     # 0x1f370
movl $0x24, %edx
callq 0x30c0
leaq -0x48(%rbp), %rdi
leaq 0x158b2(%rip), %rsi     # 0x1b004
addq $0x2, %rsi
callq 0x3380
leaq -0x60(%rbp), %rdi
leaq 0x1589e(%rip), %rsi     # 0x1b004
addq $0x2, %rsi
callq 0x3380
movq $0x53b8, -0x68(%rbp)    # imm = 0x53B8
movl $0x0, -0x74(%rbp)
movl $0x0, -0x70(%rbp)
movl $0x0, -0x6c(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x80(%rbp)
movq $0x24, -0x88(%rbp)
movq -0x68(%rbp), %rsi
leaq -0x74(%rbp), %rdx
movq -0x88(%rbp), %rcx
movq -0x80(%rbp), %r8
leaq -0xc8(%rbp), %rdi
leaq -0x48(%rbp), %r10
leaq -0x60(%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 0xdaa0
movb $0x0, %al
callq 0xd4d0
cmpq $0x0, -0xb8(%rbp)
jne 0x580d
jmp 0x582c
leaq 0x1581b(%rip), %rdi     # 0x1b02f
leaq 0x15835(%rip), %rsi     # 0x1b050
movl $0x3a2, %edx            # imm = 0x3A2
leaq 0x15f22(%rip), %rcx     # 0x1b749
callq 0x3040
cmpq $0x0, -0xb0(%rbp)
jne 0x5838
jmp 0x5857
leaq 0x15d4f(%rip), %rdi     # 0x1b58e
leaq 0x1580a(%rip), %rsi     # 0x1b050
movl $0x3a3, %edx            # imm = 0x3A3
leaq 0x15ef7(%rip), %rcx     # 0x1b749
callq 0x3040
cmpq $0x0, -0xa8(%rbp)
jne 0x5863
jmp 0x5882
leaq 0x15d03(%rip), %rdi     # 0x1b56d
leaq 0x157df(%rip), %rsi     # 0x1b050
movl $0x3a4, %edx            # imm = 0x3A4
leaq 0x15ecc(%rip), %rcx     # 0x1b749
callq 0x3040
cmpq $0x1, -0xa0(%rbp)
jne 0x588e
jmp 0x58ad
leaq 0x15eca(%rip), %rdi     # 0x1b75f
leaq 0x157b4(%rip), %rsi     # 0x1b050
movl $0x3a5, %edx            # imm = 0x3A5
leaq 0x15ea1(%rip), %rcx     # 0x1b749
callq 0x3040
cmpq $0x0, -0xc8(%rbp)
jne 0x58b9
jmp 0x58d8
leaq 0x15839(%rip), %rdi     # 0x1b0f9
leaq 0x15789(%rip), %rsi     # 0x1b050
movl $0x3a6, %edx            # imm = 0x3A6
leaq 0x15e76(%rip), %rcx     # 0x1b749
callq 0x3040
cmpq $0x0, -0x98(%rbp)
jne 0x58e4
jmp 0x5903
leaq 0x1582a(%rip), %rdi     # 0x1b115
leaq 0x1575e(%rip), %rsi     # 0x1b050
movl $0x3a7, %edx            # imm = 0x3A7
leaq 0x15e4b(%rip), %rcx     # 0x1b749
callq 0x3040
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)