acuarica / evm

A Symbolic Ethereum Virtual Machine (EVM) bytecode interpreter, parser and decompiler, along with several other utils for programmatically extracting information from EVM bytecode.
https://acuarica.github.io/evm/
MIT License
46 stars 5 forks source link

Incorect decompilation result of 0xBCd3a47e4d0000cf170E25d1bD3d53F7C08be0A6 #75

Open ytrezq opened 5 months ago

ytrezq commented 5 months ago

ꜱᴇᴠᴍ returns :

function 8024c73a() public payable {
    require(msg.value == 0);
    if (~(msg.sender == ((0x1 << 0xa0) - 0x1 & var_1))) {
        undefined local2 = 0x80; // #refs 2
    }
    if (~(var_2 > 0x0)) {
        undefined local2 = 0x80; // #refs 2
    }
    if (~(address(this).balance < var_2) == 0) {
        undefined local2 = 0x80; // #refs 2
    }
    undefined local4 = 0x80; // #refs 2
}

whereas the real 0x8024c function contains code for transferring funds as shown by https://etherscan.io/tx/0x481bdf2b92655f98b8918f3eba1ae0562f8d471f8f71fb9714dc6ec80a335387.