github.com/annchain/OG@v0.0.9/vm/vm_test/contracts/o/asserts.evm (about)

     1      /* "../vm_test/contracts/asserts.sol":26:442  contract asserts {... */
     2    mstore(0x40, 0x60)
     3    jumpi(tag_1, iszero(callvalue))
     4    0x0
     5    dup1
     6    revert
     7  tag_1:
     8    dataSize(sub_0)
     9    dup1
    10    dataOffset(sub_0)
    11    0x0
    12    codecopy
    13    0x0
    14    return
    15  stop
    16  
    17  sub_0: assembly {
    18          /* "../vm_test/contracts/asserts.sol":26:442  contract asserts {... */
    19        mstore(0x40, 0x60)
    20        jumpi(tag_1, lt(calldatasize, 0x4))
    21        calldataload(0x0)
    22        0x100000000000000000000000000000000000000000000000000000000
    23        swap1
    24        div
    25        0xffffffff
    26        and
    27        dup1
    28        0xd43aaf2
    29        eq
    30        tag_2
    31        jumpi
    32        dup1
    33        0x2911e7b2
    34        eq
    35        tag_3
    36        jumpi
    37        dup1
    38        0xc768d990
    39        eq
    40        tag_4
    41        jumpi
    42      tag_1:
    43        0x0
    44        dup1
    45        revert
    46          /* "../vm_test/contracts/asserts.sol":157:294  function req() payable public {... */
    47      tag_2:
    48        tag_5
    49        jump(tag_6)
    50      tag_5:
    51        stop
    52          /* "../vm_test/contracts/asserts.sol":299:440  function asrt() payable public {... */
    53      tag_3:
    54        tag_7
    55        jump(tag_8)
    56      tag_7:
    57        stop
    58          /* "../vm_test/contracts/asserts.sol":50:94  mapping (address => address) public calledby */
    59      tag_4:
    60        jumpi(tag_9, iszero(callvalue))
    61        0x0
    62        dup1
    63        revert
    64      tag_9:
    65        tag_10
    66        0x4
    67        dup1
    68        dup1
    69        calldataload
    70        0xffffffffffffffffffffffffffffffffffffffff
    71        and
    72        swap1
    73        0x20
    74        add
    75        swap1
    76        swap2
    77        swap1
    78        pop
    79        pop
    80        jump(tag_11)
    81      tag_10:
    82        mload(0x40)
    83        dup1
    84        dup3
    85        0xffffffffffffffffffffffffffffffffffffffff
    86        and
    87        0xffffffffffffffffffffffffffffffffffffffff
    88        and
    89        dup2
    90        mstore
    91        0x20
    92        add
    93        swap2
    94        pop
    95        pop
    96        mload(0x40)
    97        dup1
    98        swap2
    99        sub
   100        swap1
   101        return
   102          /* "../vm_test/contracts/asserts.sol":157:294  function req() payable public {... */
   103      tag_6:
   104          /* "../vm_test/contracts/asserts.sol":220:230  msg.sender */
   105        caller
   106          /* "../vm_test/contracts/asserts.sol":197:205  calledby */
   107        0x0
   108          /* "../vm_test/contracts/asserts.sol":197:217  calledby[msg.sender] */
   109        dup1
   110          /* "../vm_test/contracts/asserts.sol":206:216  msg.sender */
   111        caller
   112          /* "../vm_test/contracts/asserts.sol":197:217  calledby[msg.sender] */
   113        0xffffffffffffffffffffffffffffffffffffffff
   114        and
   115        0xffffffffffffffffffffffffffffffffffffffff
   116        and
   117        dup2
   118        mstore
   119        0x20
   120        add
   121        swap1
   122        dup2
   123        mstore
   124        0x20
   125        add
   126        0x0
   127        keccak256
   128        0x0
   129          /* "../vm_test/contracts/asserts.sol":197:230  calledby[msg.sender] = msg.sender */
   130        0x100
   131        exp
   132        dup2
   133        sload
   134        dup2
   135        0xffffffffffffffffffffffffffffffffffffffff
   136        mul
   137        not
   138        and
   139        swap1
   140        dup4
   141        0xffffffffffffffffffffffffffffffffffffffff
   142        and
   143        mul
   144        or
   145        swap1
   146        sstore
   147        pop
   148          /* "../vm_test/contracts/asserts.sol":285:286  0 */
   149        0x0
   150          /* "../vm_test/contracts/asserts.sol":280:281  2 */
   151        0x2
   152          /* "../vm_test/contracts/asserts.sol":268:277  msg.value */
   153        callvalue
   154          /* "../vm_test/contracts/asserts.sol":268:281  msg.value % 2 */
   155        dup2
   156        iszero
   157        iszero
   158        tag_13
   159        jumpi
   160        invalid
   161      tag_13:
   162        mod
   163          /* "../vm_test/contracts/asserts.sol":268:286  msg.value % 2 == 0 */
   164        eq
   165          /* "../vm_test/contracts/asserts.sol":260:287  require(msg.value % 2 == 0) */
   166        iszero
   167        iszero
   168        tag_14
   169        jumpi
   170        0x0
   171        dup1
   172        revert
   173      tag_14:
   174          /* "../vm_test/contracts/asserts.sol":157:294  function req() payable public {... */
   175        jump	// out
   176          /* "../vm_test/contracts/asserts.sol":299:440  function asrt() payable public {... */
   177      tag_8:
   178          /* "../vm_test/contracts/asserts.sol":363:373  msg.sender */
   179        caller
   180          /* "../vm_test/contracts/asserts.sol":340:348  calledby */
   181        0x0
   182          /* "../vm_test/contracts/asserts.sol":340:360  calledby[msg.sender] */
   183        dup1
   184          /* "../vm_test/contracts/asserts.sol":349:359  msg.sender */
   185        caller
   186          /* "../vm_test/contracts/asserts.sol":340:360  calledby[msg.sender] */
   187        0xffffffffffffffffffffffffffffffffffffffff
   188        and
   189        0xffffffffffffffffffffffffffffffffffffffff
   190        and
   191        dup2
   192        mstore
   193        0x20
   194        add
   195        swap1
   196        dup2
   197        mstore
   198        0x20
   199        add
   200        0x0
   201        keccak256
   202        0x0
   203          /* "../vm_test/contracts/asserts.sol":340:373  calledby[msg.sender] = msg.sender */
   204        0x100
   205        exp
   206        dup2
   207        sload
   208        dup2
   209        0xffffffffffffffffffffffffffffffffffffffff
   210        mul
   211        not
   212        and
   213        swap1
   214        dup4
   215        0xffffffffffffffffffffffffffffffffffffffff
   216        and
   217        mul
   218        or
   219        swap1
   220        sstore
   221        pop
   222          /* "../vm_test/contracts/asserts.sol":431:432  0 */
   223        0x0
   224          /* "../vm_test/contracts/asserts.sol":426:427  2 */
   225        0x2
   226          /* "../vm_test/contracts/asserts.sol":414:423  msg.value */
   227        callvalue
   228          /* "../vm_test/contracts/asserts.sol":414:427  msg.value % 2 */
   229        dup2
   230        iszero
   231        iszero
   232        tag_16
   233        jumpi
   234        invalid
   235      tag_16:
   236        mod
   237          /* "../vm_test/contracts/asserts.sol":414:432  msg.value % 2 == 0 */
   238        eq
   239          /* "../vm_test/contracts/asserts.sol":407:433  assert(msg.value % 2 == 0) */
   240        iszero
   241        iszero
   242        tag_17
   243        jumpi
   244        invalid
   245      tag_17:
   246          /* "../vm_test/contracts/asserts.sol":299:440  function asrt() payable public {... */
   247        jump	// out
   248          /* "../vm_test/contracts/asserts.sol":50:94  mapping (address => address) public calledby */
   249      tag_11:
   250        mstore(0x20, 0x0)
   251        dup1
   252        0x0
   253        mstore
   254        keccak256(0x0, 0x40)
   255        0x0
   256        swap2
   257        pop
   258        sload
   259        swap1
   260        0x100
   261        exp
   262        swap1
   263        div
   264        0xffffffffffffffffffffffffffffffffffffffff
   265        and
   266        dup2
   267        jump	// out
   268  
   269      auxdata: 0xa165627a7a72305820eff31fa670209a59022241e0e62e9fa19d341b8896c33b9461bd29ac62725e390029
   270  }