
======= optimizer_inliner_dynamic_reference_constructor/input.sol:C =======
EVM assembly:
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361  contract C {... */
  mstore(0x40, 0x80)
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":77:101  constructor() { x = f; } */
  callvalue
  dup1
  iszero
  tag_1
  jumpi
  0x00
  dup1
  revert
tag_1:
  pop
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:94  x */
  0x00
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98  x = f */
  dup1
  sload
  not(sub(shl(0x40, 0x01), 0x01))
  and
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":97:98  f */
  or(tag_0_12, shl(0x20, tag_4))
  sub(shl(0x40, 0x01), 0x01)
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":93:98  x = f */
  and
  or
  swap1
  sstore
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361  contract C {... */
  jump(tag_5)
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
tag_4:
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356  6 */
  0x06
  swap1
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
  jump	// out
    /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361  contract C {... */
tag_5:
  dataSize(sub_0)
  dup1
  dataOffset(sub_0)
  0x00
  codecopy
  0x00
  return
stop

sub_0: assembly {
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":60:361  contract C {... */
      mstore(0x40, 0x80)
      callvalue
      dup1
      iszero
      tag_1
      jumpi
      0x00
      dup1
      revert
    tag_1:
      pop
      jumpi(tag_2, lt(calldatasize, 0x04))
      shr(0xe0, calldataload(0x00))
      dup1
      0x0dbe671f
      eq
      tag_3
      jumpi
      dup1
      0xb8c9d365
      eq
      tag_4
      jumpi
    tag_2:
      0x00
      dup1
      revert
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209  function a() public pure returns (uint) { return f(); } */
    tag_3:
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356  6 */
      0x06
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209  function a() public pure returns (uint) { return f(); } */
    tag_5:
      mload(0x40)
        /* "#utility.yul":160:185   */
      swap1
      dup2
      mstore
        /* "#utility.yul":148:150   */
      0x20
        /* "#utility.yul":133:151   */
      add
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209  function a() public pure returns (uint) { return f(); } */
      mload(0x40)
      dup1
      swap2
      sub
      swap1
      return
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299  function h() public view returns (uint) { return x() + 1; } */
    tag_4:
      tag_5
      tag_10
      jump	// in
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":203:206  f() */
    tag_14:
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":196:206  return f() */
      swap1
      pop
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":154:209  function a() public pure returns (uint) { return f(); } */
      swap1
      jump	// out
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":240:299  function h() public view returns (uint) { return x() + 1; } */
    tag_10:
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":274:278  uint */
      0x00
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290  x */
      dup1
      sload
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292  x() */
      tag_16
      swap1
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:290  x */
      dup1
      iszero
      tag_17
      mul
      or
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:292  x() */
      0xffffffff
      and
      jump	// in
    tag_16:
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296  x() + 1 */
      tag_14
      swap1
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":295:296  1 */
      0x01
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":289:296  x() + 1 */
      tag_19
      jump	// in
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
    tag_12:
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":355:356  6 */
      0x06
      swap1
        /* "optimizer_inliner_dynamic_reference_constructor/input.sol":304:359  function f() internal pure returns (uint) { return 6; } */
      jump	// out
    tag_17:
      mstore(0x00, shl(0xe0, 0x4e487b71))
      mstore(0x04, 0x51)
      revert(0x00, 0x24)
        /* "#utility.yul":196:421   */
    tag_19:
        /* "#utility.yul":236:239   */
      0x00
        /* "#utility.yul":267:268   */
      dup3
        /* "#utility.yul":263:269   */
      not
        /* "#utility.yul":260:261   */
      dup3
        /* "#utility.yul":257:270   */
      gt
        /* "#utility.yul":254:256   */
      iszero
      tag_24
      jumpi
        /* "#utility.yul":312:322   */
      0x4e487b71
        /* "#utility.yul":307:310   */
      0xe0
        /* "#utility.yul":303:323   */
      shl
        /* "#utility.yul":300:301   */
      0x00
        /* "#utility.yul":293:324   */
      mstore
        /* "#utility.yul":347:351   */
      0x11
        /* "#utility.yul":344:345   */
      0x04
        /* "#utility.yul":337:352   */
      mstore
        /* "#utility.yul":375:379   */
      0x24
        /* "#utility.yul":372:373   */
      0x00
        /* "#utility.yul":365:380   */
      revert
        /* "#utility.yul":254:256   */
    tag_24:
      pop
        /* "#utility.yul":406:415   */
      add
      swap1
        /* "#utility.yul":244:421   */
      jump	// out

    auxdata: <AUXDATA REMOVED>
}
