github.com/annchain/OG@v0.0.9/vm/vm_test/contracts/o/TokenERC20.evm (about) 1 /* "../contracts/token.sol":1164:2928 contract TokenERC20 is SafeMath {... */ 2 mstore(0x40, 0x80) 3 /* "../contracts/token.sol":1277:1279 18 */ 4 0x12 5 /* "../contracts/token.sol":1253:1279 uint8 public decimals = 18 */ 6 0x2 7 exp(0x100, 0x0) 8 dup2 9 sload 10 dup2 11 0xff 12 mul 13 not 14 and 15 swap1 16 dup4 17 0xff 18 and 19 mul 20 or 21 swap1 22 sstore 23 pop 24 /* "../contracts/token.sol":1520:1779 function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */ 25 callvalue 26 /* "--CODEGEN--":8:17 */ 27 dup1 28 /* "--CODEGEN--":5:7 */ 29 iszero 30 tag_1 31 jumpi 32 /* "--CODEGEN--":30:31 */ 33 0x0 34 /* "--CODEGEN--":27:28 */ 35 dup1 36 /* "--CODEGEN--":20:32 */ 37 revert 38 /* "--CODEGEN--":5:7 */ 39 tag_1: 40 /* "../contracts/token.sol":1520:1779 function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */ 41 pop 42 mload(0x40) 43 sub(codesize, bytecodeSize) 44 dup1 45 bytecodeSize 46 dup4 47 codecopy 48 dup2 49 add 50 dup1 51 0x40 52 mstore 53 dup2 54 add 55 swap1 56 dup1 57 dup1 58 mload 59 swap1 60 0x20 61 add 62 swap1 63 swap3 64 swap2 65 swap1 66 dup1 67 mload 68 dup3 69 add 70 swap3 71 swap2 72 swap1 73 0x20 74 add 75 dup1 76 mload 77 dup3 78 add 79 swap3 80 swap2 81 swap1 82 pop 83 pop 84 pop 85 /* "../contracts/token.sol":1662:1670 decimals */ 86 0x2 87 0x0 88 swap1 89 sload 90 swap1 91 0x100 92 exp 93 swap1 94 div 95 0xff 96 and 97 /* "../contracts/token.sol":1654:1671 uint256(decimals) */ 98 0xff 99 and 100 /* "../contracts/token.sol":1648:1650 10 */ 101 0xa 102 /* "../contracts/token.sol":1648:1671 10 ** uint256(decimals) */ 103 exp 104 /* "../contracts/token.sol":1632:1645 initialSupply */ 105 dup4 106 /* "../contracts/token.sol":1632:1671 initialSupply * 10 ** uint256(decimals) */ 107 mul 108 /* "../contracts/token.sol":1618:1629 totalSupply */ 109 0x3 110 /* "../contracts/token.sol":1618:1671 totalSupply = initialSupply * 10 ** uint256(decimals) */ 111 dup2 112 swap1 113 sstore 114 pop 115 /* "../contracts/token.sol":1705:1716 totalSupply */ 116 sload(0x3) 117 /* "../contracts/token.sol":1681:1690 balanceOf */ 118 0x4 119 /* "../contracts/token.sol":1681:1702 balanceOf[msg.sender] */ 120 0x0 121 /* "../contracts/token.sol":1691:1701 msg.sender */ 122 caller 123 /* "../contracts/token.sol":1681:1702 balanceOf[msg.sender] */ 124 0xffffffffffffffffffffffffffffffffffffffff 125 and 126 0xffffffffffffffffffffffffffffffffffffffff 127 and 128 dup2 129 mstore 130 0x20 131 add 132 swap1 133 dup2 134 mstore 135 0x20 136 add 137 0x0 138 keccak256 139 /* "../contracts/token.sol":1681:1716 balanceOf[msg.sender] = totalSupply */ 140 dup2 141 swap1 142 sstore 143 pop 144 /* "../contracts/token.sol":1733:1742 tokenName */ 145 dup2 146 /* "../contracts/token.sol":1726:1730 name */ 147 0x0 148 /* "../contracts/token.sol":1726:1742 name = tokenName */ 149 swap1 150 dup1 151 mload 152 swap1 153 0x20 154 add 155 swap1 156 tag_4 157 swap3 158 swap2 159 swap1 160 jump // in(tag_5) 161 tag_4: 162 pop 163 /* "../contracts/token.sol":1761:1772 tokenSymbol */ 164 dup1 165 /* "../contracts/token.sol":1752:1758 symbol */ 166 0x1 167 /* "../contracts/token.sol":1752:1772 symbol = tokenSymbol */ 168 swap1 169 dup1 170 mload 171 swap1 172 0x20 173 add 174 swap1 175 tag_6 176 swap3 177 swap2 178 swap1 179 jump // in(tag_5) 180 tag_6: 181 pop 182 /* "../contracts/token.sol":1520:1779 function TokenERC20(uint256 initialSupply, string tokenName, string tokenSymbol) public {... */ 183 pop 184 pop 185 pop 186 /* "../contracts/token.sol":1164:2928 contract TokenERC20 is SafeMath {... */ 187 jump(tag_7) 188 tag_5: 189 dup3 190 dup1 191 sload 192 0x1 193 dup2 194 0x1 195 and 196 iszero 197 0x100 198 mul 199 sub 200 and 201 0x2 202 swap1 203 div 204 swap1 205 0x0 206 mstore 207 keccak256(0x0, 0x20) 208 swap1 209 0x1f 210 add 211 0x20 212 swap1 213 div 214 dup2 215 add 216 swap3 217 dup3 218 0x1f 219 lt 220 tag_9 221 jumpi 222 dup1 223 mload 224 not(0xff) 225 and 226 dup4 227 dup1 228 add 229 or 230 dup6 231 sstore 232 jump(tag_8) 233 tag_9: 234 dup3 235 dup1 236 add 237 0x1 238 add 239 dup6 240 sstore 241 dup3 242 iszero 243 tag_8 244 jumpi 245 swap2 246 dup3 247 add 248 tag_10: 249 dup3 250 dup2 251 gt 252 iszero 253 tag_11 254 jumpi 255 dup3 256 mload 257 dup3 258 sstore 259 swap2 260 0x20 261 add 262 swap2 263 swap1 264 0x1 265 add 266 swap1 267 jump(tag_10) 268 tag_11: 269 tag_8: 270 pop 271 swap1 272 pop 273 tag_12 274 swap2 275 swap1 276 jump // in(tag_13) 277 tag_12: 278 pop 279 swap1 280 jump // out 281 tag_13: 282 tag_14 283 swap2 284 swap1 285 tag_15: 286 dup1 287 dup3 288 gt 289 iszero 290 tag_16 291 jumpi 292 0x0 293 dup2 294 0x0 295 swap1 296 sstore 297 pop 298 0x1 299 add 300 jump(tag_15) 301 tag_16: 302 pop 303 swap1 304 jump 305 tag_14: 306 swap1 307 jump // out 308 tag_7: 309 dataSize(sub_0) 310 dup1 311 dataOffset(sub_0) 312 0x0 313 codecopy 314 0x0 315 return 316 stop 317 318 sub_0: assembly { 319 /* "../contracts/token.sol":1164:2928 contract TokenERC20 is SafeMath {... */ 320 mstore(0x40, 0x80) 321 jumpi(tag_1, lt(calldatasize, 0x4)) 322 calldataload(0x0) 323 0x100000000000000000000000000000000000000000000000000000000 324 swap1 325 div 326 0xffffffff 327 and 328 dup1 329 0x6fdde03 330 eq 331 tag_2 332 jumpi 333 dup1 334 0x95ea7b3 335 eq 336 tag_3 337 jumpi 338 dup1 339 0x18160ddd 340 eq 341 tag_4 342 jumpi 343 dup1 344 0x23b872dd 345 eq 346 tag_5 347 jumpi 348 dup1 349 0x313ce567 350 eq 351 tag_6 352 jumpi 353 dup1 354 0x70a08231 355 eq 356 tag_7 357 jumpi 358 dup1 359 0x95d89b41 360 eq 361 tag_8 362 jumpi 363 dup1 364 0xa9059cbb 365 eq 366 tag_9 367 jumpi 368 dup1 369 0xdd62ed3e 370 eq 371 tag_10 372 jumpi 373 tag_1: 374 0x0 375 dup1 376 revert 377 /* "../contracts/token.sol":1203:1221 string public name */ 378 tag_2: 379 callvalue 380 /* "--CODEGEN--":8:17 */ 381 dup1 382 /* "--CODEGEN--":5:7 */ 383 iszero 384 tag_11 385 jumpi 386 /* "--CODEGEN--":30:31 */ 387 0x0 388 /* "--CODEGEN--":27:28 */ 389 dup1 390 /* "--CODEGEN--":20:32 */ 391 revert 392 /* "--CODEGEN--":5:7 */ 393 tag_11: 394 /* "../contracts/token.sol":1203:1221 string public name */ 395 pop 396 tag_12 397 jump(tag_13) 398 tag_12: 399 mload(0x40) 400 dup1 401 dup1 402 0x20 403 add 404 dup3 405 dup2 406 sub 407 dup3 408 mstore 409 dup4 410 dup2 411 dup2 412 mload 413 dup2 414 mstore 415 0x20 416 add 417 swap2 418 pop 419 dup1 420 mload 421 swap1 422 0x20 423 add 424 swap1 425 dup1 426 dup4 427 dup4 428 /* "--CODEGEN--":23:24 */ 429 0x0 430 /* "--CODEGEN--":8:108 */ 431 tag_14: 432 /* "--CODEGEN--":33:36 */ 433 dup4 434 /* "--CODEGEN--":30:31 */ 435 dup2 436 /* "--CODEGEN--":27:37 */ 437 lt 438 /* "--CODEGEN--":8:108 */ 439 iszero 440 tag_15 441 jumpi 442 /* "--CODEGEN--":99:100 */ 443 dup1 444 /* "--CODEGEN--":94:97 */ 445 dup3 446 /* "--CODEGEN--":90:101 */ 447 add 448 /* "--CODEGEN--":84:102 */ 449 mload 450 /* "--CODEGEN--":80:81 */ 451 dup2 452 /* "--CODEGEN--":75:78 */ 453 dup5 454 /* "--CODEGEN--":71:82 */ 455 add 456 /* "--CODEGEN--":64:103 */ 457 mstore 458 /* "--CODEGEN--":52:54 */ 459 0x20 460 /* "--CODEGEN--":49:50 */ 461 dup2 462 /* "--CODEGEN--":45:55 */ 463 add 464 /* "--CODEGEN--":40:55 */ 465 swap1 466 pop 467 /* "--CODEGEN--":8:108 */ 468 jump(tag_14) 469 tag_15: 470 /* "--CODEGEN--":12:26 */ 471 pop 472 /* "../contracts/token.sol":1203:1221 string public name */ 473 pop 474 pop 475 pop 476 swap1 477 pop 478 swap1 479 dup2 480 add 481 swap1 482 0x1f 483 and 484 dup1 485 iszero 486 tag_17 487 jumpi 488 dup1 489 dup3 490 sub 491 dup1 492 mload 493 0x1 494 dup4 495 0x20 496 sub 497 0x100 498 exp 499 sub 500 not 501 and 502 dup2 503 mstore 504 0x20 505 add 506 swap2 507 pop 508 tag_17: 509 pop 510 swap3 511 pop 512 pop 513 pop 514 mload(0x40) 515 dup1 516 swap2 517 sub 518 swap1 519 return 520 /* "../contracts/token.sol":2767:2926 function approve(address _spender, uint256 _value) public returns (bool success) {... */ 521 tag_3: 522 callvalue 523 /* "--CODEGEN--":8:17 */ 524 dup1 525 /* "--CODEGEN--":5:7 */ 526 iszero 527 tag_18 528 jumpi 529 /* "--CODEGEN--":30:31 */ 530 0x0 531 /* "--CODEGEN--":27:28 */ 532 dup1 533 /* "--CODEGEN--":20:32 */ 534 revert 535 /* "--CODEGEN--":5:7 */ 536 tag_18: 537 /* "../contracts/token.sol":2767:2926 function approve(address _spender, uint256 _value) public returns (bool success) {... */ 538 pop 539 tag_19 540 0x4 541 dup1 542 calldatasize 543 sub 544 dup2 545 add 546 swap1 547 dup1 548 dup1 549 calldataload 550 0xffffffffffffffffffffffffffffffffffffffff 551 and 552 swap1 553 0x20 554 add 555 swap1 556 swap3 557 swap2 558 swap1 559 dup1 560 calldataload 561 swap1 562 0x20 563 add 564 swap1 565 swap3 566 swap2 567 swap1 568 pop 569 pop 570 pop 571 jump(tag_20) 572 tag_19: 573 mload(0x40) 574 dup1 575 dup3 576 iszero 577 iszero 578 iszero 579 iszero 580 dup2 581 mstore 582 0x20 583 add 584 swap2 585 pop 586 pop 587 mload(0x40) 588 dup1 589 swap2 590 sub 591 swap1 592 return 593 /* "../contracts/token.sol":1285:1311 uint256 public totalSupply */ 594 tag_4: 595 callvalue 596 /* "--CODEGEN--":8:17 */ 597 dup1 598 /* "--CODEGEN--":5:7 */ 599 iszero 600 tag_21 601 jumpi 602 /* "--CODEGEN--":30:31 */ 603 0x0 604 /* "--CODEGEN--":27:28 */ 605 dup1 606 /* "--CODEGEN--":20:32 */ 607 revert 608 /* "--CODEGEN--":5:7 */ 609 tag_21: 610 /* "../contracts/token.sol":1285:1311 uint256 public totalSupply */ 611 pop 612 tag_22 613 jump(tag_23) 614 tag_22: 615 mload(0x40) 616 dup1 617 dup3 618 dup2 619 mstore 620 0x20 621 add 622 swap2 623 pop 624 pop 625 mload(0x40) 626 dup1 627 swap2 628 sub 629 swap1 630 return 631 /* "../contracts/token.sol":2446:2761 function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */ 632 tag_5: 633 callvalue 634 /* "--CODEGEN--":8:17 */ 635 dup1 636 /* "--CODEGEN--":5:7 */ 637 iszero 638 tag_24 639 jumpi 640 /* "--CODEGEN--":30:31 */ 641 0x0 642 /* "--CODEGEN--":27:28 */ 643 dup1 644 /* "--CODEGEN--":20:32 */ 645 revert 646 /* "--CODEGEN--":5:7 */ 647 tag_24: 648 /* "../contracts/token.sol":2446:2761 function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */ 649 pop 650 tag_25 651 0x4 652 dup1 653 calldatasize 654 sub 655 dup2 656 add 657 swap1 658 dup1 659 dup1 660 calldataload 661 0xffffffffffffffffffffffffffffffffffffffff 662 and 663 swap1 664 0x20 665 add 666 swap1 667 swap3 668 swap2 669 swap1 670 dup1 671 calldataload 672 0xffffffffffffffffffffffffffffffffffffffff 673 and 674 swap1 675 0x20 676 add 677 swap1 678 swap3 679 swap2 680 swap1 681 dup1 682 calldataload 683 swap1 684 0x20 685 add 686 swap1 687 swap3 688 swap2 689 swap1 690 pop 691 pop 692 pop 693 jump(tag_26) 694 tag_25: 695 mload(0x40) 696 dup1 697 dup3 698 iszero 699 iszero 700 iszero 701 iszero 702 dup2 703 mstore 704 0x20 705 add 706 swap2 707 pop 708 pop 709 mload(0x40) 710 dup1 711 swap2 712 sub 713 swap1 714 return 715 /* "../contracts/token.sol":1253:1279 uint8 public decimals = 18 */ 716 tag_6: 717 callvalue 718 /* "--CODEGEN--":8:17 */ 719 dup1 720 /* "--CODEGEN--":5:7 */ 721 iszero 722 tag_27 723 jumpi 724 /* "--CODEGEN--":30:31 */ 725 0x0 726 /* "--CODEGEN--":27:28 */ 727 dup1 728 /* "--CODEGEN--":20:32 */ 729 revert 730 /* "--CODEGEN--":5:7 */ 731 tag_27: 732 /* "../contracts/token.sol":1253:1279 uint8 public decimals = 18 */ 733 pop 734 tag_28 735 jump(tag_29) 736 tag_28: 737 mload(0x40) 738 dup1 739 dup3 740 0xff 741 and 742 0xff 743 and 744 dup2 745 mstore 746 0x20 747 add 748 swap2 749 pop 750 pop 751 mload(0x40) 752 dup1 753 swap2 754 sub 755 swap1 756 return 757 /* "../contracts/token.sol":1318:1363 mapping (address => uint256) public balanceOf */ 758 tag_7: 759 callvalue 760 /* "--CODEGEN--":8:17 */ 761 dup1 762 /* "--CODEGEN--":5:7 */ 763 iszero 764 tag_30 765 jumpi 766 /* "--CODEGEN--":30:31 */ 767 0x0 768 /* "--CODEGEN--":27:28 */ 769 dup1 770 /* "--CODEGEN--":20:32 */ 771 revert 772 /* "--CODEGEN--":5:7 */ 773 tag_30: 774 /* "../contracts/token.sol":1318:1363 mapping (address => uint256) public balanceOf */ 775 pop 776 tag_31 777 0x4 778 dup1 779 calldatasize 780 sub 781 dup2 782 add 783 swap1 784 dup1 785 dup1 786 calldataload 787 0xffffffffffffffffffffffffffffffffffffffff 788 and 789 swap1 790 0x20 791 add 792 swap1 793 swap3 794 swap2 795 swap1 796 pop 797 pop 798 pop 799 jump(tag_32) 800 tag_31: 801 mload(0x40) 802 dup1 803 dup3 804 dup2 805 mstore 806 0x20 807 add 808 swap2 809 pop 810 pop 811 mload(0x40) 812 dup1 813 swap2 814 sub 815 swap1 816 return 817 /* "../contracts/token.sol":1227:1247 string public symbol */ 818 tag_8: 819 callvalue 820 /* "--CODEGEN--":8:17 */ 821 dup1 822 /* "--CODEGEN--":5:7 */ 823 iszero 824 tag_33 825 jumpi 826 /* "--CODEGEN--":30:31 */ 827 0x0 828 /* "--CODEGEN--":27:28 */ 829 dup1 830 /* "--CODEGEN--":20:32 */ 831 revert 832 /* "--CODEGEN--":5:7 */ 833 tag_33: 834 /* "../contracts/token.sol":1227:1247 string public symbol */ 835 pop 836 tag_34 837 jump(tag_35) 838 tag_34: 839 mload(0x40) 840 dup1 841 dup1 842 0x20 843 add 844 dup3 845 dup2 846 sub 847 dup3 848 mstore 849 dup4 850 dup2 851 dup2 852 mload 853 dup2 854 mstore 855 0x20 856 add 857 swap2 858 pop 859 dup1 860 mload 861 swap1 862 0x20 863 add 864 swap1 865 dup1 866 dup4 867 dup4 868 /* "--CODEGEN--":23:24 */ 869 0x0 870 /* "--CODEGEN--":8:108 */ 871 tag_36: 872 /* "--CODEGEN--":33:36 */ 873 dup4 874 /* "--CODEGEN--":30:31 */ 875 dup2 876 /* "--CODEGEN--":27:37 */ 877 lt 878 /* "--CODEGEN--":8:108 */ 879 iszero 880 tag_37 881 jumpi 882 /* "--CODEGEN--":99:100 */ 883 dup1 884 /* "--CODEGEN--":94:97 */ 885 dup3 886 /* "--CODEGEN--":90:101 */ 887 add 888 /* "--CODEGEN--":84:102 */ 889 mload 890 /* "--CODEGEN--":80:81 */ 891 dup2 892 /* "--CODEGEN--":75:78 */ 893 dup5 894 /* "--CODEGEN--":71:82 */ 895 add 896 /* "--CODEGEN--":64:103 */ 897 mstore 898 /* "--CODEGEN--":52:54 */ 899 0x20 900 /* "--CODEGEN--":49:50 */ 901 dup2 902 /* "--CODEGEN--":45:55 */ 903 add 904 /* "--CODEGEN--":40:55 */ 905 swap1 906 pop 907 /* "--CODEGEN--":8:108 */ 908 jump(tag_36) 909 tag_37: 910 /* "--CODEGEN--":12:26 */ 911 pop 912 /* "../contracts/token.sol":1227:1247 string public symbol */ 913 pop 914 pop 915 pop 916 swap1 917 pop 918 swap1 919 dup2 920 add 921 swap1 922 0x1f 923 and 924 dup1 925 iszero 926 tag_39 927 jumpi 928 dup1 929 dup3 930 sub 931 dup1 932 mload 933 0x1 934 dup4 935 0x20 936 sub 937 0x100 938 exp 939 sub 940 not 941 and 942 dup2 943 mstore 944 0x20 945 add 946 swap2 947 pop 948 tag_39: 949 pop 950 swap3 951 pop 952 pop 953 pop 954 mload(0x40) 955 dup1 956 swap2 957 sub 958 swap1 959 return 960 /* "../contracts/token.sol":2335:2440 function transfer(address _to, uint256 _value) public {... */ 961 tag_9: 962 callvalue 963 /* "--CODEGEN--":8:17 */ 964 dup1 965 /* "--CODEGEN--":5:7 */ 966 iszero 967 tag_40 968 jumpi 969 /* "--CODEGEN--":30:31 */ 970 0x0 971 /* "--CODEGEN--":27:28 */ 972 dup1 973 /* "--CODEGEN--":20:32 */ 974 revert 975 /* "--CODEGEN--":5:7 */ 976 tag_40: 977 /* "../contracts/token.sol":2335:2440 function transfer(address _to, uint256 _value) public {... */ 978 pop 979 tag_41 980 0x4 981 dup1 982 calldatasize 983 sub 984 dup2 985 add 986 swap1 987 dup1 988 dup1 989 calldataload 990 0xffffffffffffffffffffffffffffffffffffffff 991 and 992 swap1 993 0x20 994 add 995 swap1 996 swap3 997 swap2 998 swap1 999 dup1 1000 calldataload 1001 swap1 1002 0x20 1003 add 1004 swap1 1005 swap3 1006 swap2 1007 swap1 1008 pop 1009 pop 1010 pop 1011 jump(tag_42) 1012 tag_41: 1013 stop 1014 /* "../contracts/token.sol":1369:1435 mapping (address => mapping (address => uint256)) public allowance */ 1015 tag_10: 1016 callvalue 1017 /* "--CODEGEN--":8:17 */ 1018 dup1 1019 /* "--CODEGEN--":5:7 */ 1020 iszero 1021 tag_43 1022 jumpi 1023 /* "--CODEGEN--":30:31 */ 1024 0x0 1025 /* "--CODEGEN--":27:28 */ 1026 dup1 1027 /* "--CODEGEN--":20:32 */ 1028 revert 1029 /* "--CODEGEN--":5:7 */ 1030 tag_43: 1031 /* "../contracts/token.sol":1369:1435 mapping (address => mapping (address => uint256)) public allowance */ 1032 pop 1033 tag_44 1034 0x4 1035 dup1 1036 calldatasize 1037 sub 1038 dup2 1039 add 1040 swap1 1041 dup1 1042 dup1 1043 calldataload 1044 0xffffffffffffffffffffffffffffffffffffffff 1045 and 1046 swap1 1047 0x20 1048 add 1049 swap1 1050 swap3 1051 swap2 1052 swap1 1053 dup1 1054 calldataload 1055 0xffffffffffffffffffffffffffffffffffffffff 1056 and 1057 swap1 1058 0x20 1059 add 1060 swap1 1061 swap3 1062 swap2 1063 swap1 1064 pop 1065 pop 1066 pop 1067 jump(tag_45) 1068 tag_44: 1069 mload(0x40) 1070 dup1 1071 dup3 1072 dup2 1073 mstore 1074 0x20 1075 add 1076 swap2 1077 pop 1078 pop 1079 mload(0x40) 1080 dup1 1081 swap2 1082 sub 1083 swap1 1084 return 1085 /* "../contracts/token.sol":1203:1221 string public name */ 1086 tag_13: 1087 0x0 1088 dup1 1089 sload 1090 0x1 1091 dup2 1092 0x1 1093 and 1094 iszero 1095 0x100 1096 mul 1097 sub 1098 and 1099 0x2 1100 swap1 1101 div 1102 dup1 1103 0x1f 1104 add 1105 0x20 1106 dup1 1107 swap2 1108 div 1109 mul 1110 0x20 1111 add 1112 mload(0x40) 1113 swap1 1114 dup2 1115 add 1116 0x40 1117 mstore 1118 dup1 1119 swap3 1120 swap2 1121 swap1 1122 dup2 1123 dup2 1124 mstore 1125 0x20 1126 add 1127 dup3 1128 dup1 1129 sload 1130 0x1 1131 dup2 1132 0x1 1133 and 1134 iszero 1135 0x100 1136 mul 1137 sub 1138 and 1139 0x2 1140 swap1 1141 div 1142 dup1 1143 iszero 1144 tag_46 1145 jumpi 1146 dup1 1147 0x1f 1148 lt 1149 tag_47 1150 jumpi 1151 0x100 1152 dup1 1153 dup4 1154 sload 1155 div 1156 mul 1157 dup4 1158 mstore 1159 swap2 1160 0x20 1161 add 1162 swap2 1163 jump(tag_46) 1164 tag_47: 1165 dup3 1166 add 1167 swap2 1168 swap1 1169 0x0 1170 mstore 1171 keccak256(0x0, 0x20) 1172 swap1 1173 tag_48: 1174 dup2 1175 sload 1176 dup2 1177 mstore 1178 swap1 1179 0x1 1180 add 1181 swap1 1182 0x20 1183 add 1184 dup1 1185 dup4 1186 gt 1187 tag_48 1188 jumpi 1189 dup3 1190 swap1 1191 sub 1192 0x1f 1193 and 1194 dup3 1195 add 1196 swap2 1197 tag_46: 1198 pop 1199 pop 1200 pop 1201 pop 1202 pop 1203 dup2 1204 jump // out 1205 /* "../contracts/token.sol":2767:2926 function approve(address _spender, uint256 _value) public returns (bool success) {... */ 1206 tag_20: 1207 /* "../contracts/token.sol":2834:2846 bool success */ 1208 0x0 1209 /* "../contracts/token.sol":2892:2898 _value */ 1210 dup2 1211 /* "../contracts/token.sol":2858:2867 allowance */ 1212 0x5 1213 /* "../contracts/token.sol":2858:2879 allowance[msg.sender] */ 1214 0x0 1215 /* "../contracts/token.sol":2868:2878 msg.sender */ 1216 caller 1217 /* "../contracts/token.sol":2858:2879 allowance[msg.sender] */ 1218 0xffffffffffffffffffffffffffffffffffffffff 1219 and 1220 0xffffffffffffffffffffffffffffffffffffffff 1221 and 1222 dup2 1223 mstore 1224 0x20 1225 add 1226 swap1 1227 dup2 1228 mstore 1229 0x20 1230 add 1231 0x0 1232 keccak256 1233 /* "../contracts/token.sol":2858:2889 allowance[msg.sender][_spender] */ 1234 0x0 1235 /* "../contracts/token.sol":2880:2888 _spender */ 1236 dup6 1237 /* "../contracts/token.sol":2858:2889 allowance[msg.sender][_spender] */ 1238 0xffffffffffffffffffffffffffffffffffffffff 1239 and 1240 0xffffffffffffffffffffffffffffffffffffffff 1241 and 1242 dup2 1243 mstore 1244 0x20 1245 add 1246 swap1 1247 dup2 1248 mstore 1249 0x20 1250 add 1251 0x0 1252 keccak256 1253 /* "../contracts/token.sol":2858:2898 allowance[msg.sender][_spender] = _value */ 1254 dup2 1255 swap1 1256 sstore 1257 pop 1258 /* "../contracts/token.sol":2915:2919 true */ 1259 0x1 1260 /* "../contracts/token.sol":2908:2919 return true */ 1261 swap1 1262 pop 1263 /* "../contracts/token.sol":2767:2926 function approve(address _spender, uint256 _value) public returns (bool success) {... */ 1264 swap3 1265 swap2 1266 pop 1267 pop 1268 jump // out 1269 /* "../contracts/token.sol":1285:1311 uint256 public totalSupply */ 1270 tag_23: 1271 sload(0x3) 1272 dup2 1273 jump // out 1274 /* "../contracts/token.sol":2446:2761 function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */ 1275 tag_26: 1276 /* "../contracts/token.sol":2528:2540 bool success */ 1277 0x0 1278 /* "../contracts/token.sol":2570:2579 allowance */ 1279 0x5 1280 /* "../contracts/token.sol":2570:2586 allowance[_from] */ 1281 0x0 1282 /* "../contracts/token.sol":2580:2585 _from */ 1283 dup6 1284 /* "../contracts/token.sol":2570:2586 allowance[_from] */ 1285 0xffffffffffffffffffffffffffffffffffffffff 1286 and 1287 0xffffffffffffffffffffffffffffffffffffffff 1288 and 1289 dup2 1290 mstore 1291 0x20 1292 add 1293 swap1 1294 dup2 1295 mstore 1296 0x20 1297 add 1298 0x0 1299 keccak256 1300 /* "../contracts/token.sol":2570:2598 allowance[_from][msg.sender] */ 1301 0x0 1302 /* "../contracts/token.sol":2587:2597 msg.sender */ 1303 caller 1304 /* "../contracts/token.sol":2570:2598 allowance[_from][msg.sender] */ 1305 0xffffffffffffffffffffffffffffffffffffffff 1306 and 1307 0xffffffffffffffffffffffffffffffffffffffff 1308 and 1309 dup2 1310 mstore 1311 0x20 1312 add 1313 swap1 1314 dup2 1315 mstore 1316 0x20 1317 add 1318 0x0 1319 keccak256 1320 sload 1321 /* "../contracts/token.sol":2560:2566 _value */ 1322 dup3 1323 /* "../contracts/token.sol":2560:2598 _value <= allowance[_from][msg.sender] */ 1324 gt 1325 iszero 1326 /* "../contracts/token.sol":2552:2599 require(_value <= allowance[_from][msg.sender]) */ 1327 iszero 1328 iszero 1329 tag_51 1330 jumpi 1331 0x0 1332 dup1 1333 revert 1334 tag_51: 1335 /* "../contracts/token.sol":2640:2694 SafeMath.safeSub(allowance[_from][msg.sender], _value) */ 1336 tag_52 1337 /* "../contracts/token.sol":2657:2666 allowance */ 1338 0x5 1339 /* "../contracts/token.sol":2657:2673 allowance[_from] */ 1340 0x0 1341 /* "../contracts/token.sol":2667:2672 _from */ 1342 dup7 1343 /* "../contracts/token.sol":2657:2673 allowance[_from] */ 1344 0xffffffffffffffffffffffffffffffffffffffff 1345 and 1346 0xffffffffffffffffffffffffffffffffffffffff 1347 and 1348 dup2 1349 mstore 1350 0x20 1351 add 1352 swap1 1353 dup2 1354 mstore 1355 0x20 1356 add 1357 0x0 1358 keccak256 1359 /* "../contracts/token.sol":2657:2685 allowance[_from][msg.sender] */ 1360 0x0 1361 /* "../contracts/token.sol":2674:2684 msg.sender */ 1362 caller 1363 /* "../contracts/token.sol":2657:2685 allowance[_from][msg.sender] */ 1364 0xffffffffffffffffffffffffffffffffffffffff 1365 and 1366 0xffffffffffffffffffffffffffffffffffffffff 1367 and 1368 dup2 1369 mstore 1370 0x20 1371 add 1372 swap1 1373 dup2 1374 mstore 1375 0x20 1376 add 1377 0x0 1378 keccak256 1379 sload 1380 /* "../contracts/token.sol":2687:2693 _value */ 1381 dup4 1382 /* "../contracts/token.sol":2640:2656 SafeMath.safeSub */ 1383 tag_53 1384 /* "../contracts/token.sol":2640:2694 SafeMath.safeSub(allowance[_from][msg.sender], _value) */ 1385 jump // in 1386 tag_52: 1387 /* "../contracts/token.sol":2609:2618 allowance */ 1388 0x5 1389 /* "../contracts/token.sol":2609:2625 allowance[_from] */ 1390 0x0 1391 /* "../contracts/token.sol":2619:2624 _from */ 1392 dup7 1393 /* "../contracts/token.sol":2609:2625 allowance[_from] */ 1394 0xffffffffffffffffffffffffffffffffffffffff 1395 and 1396 0xffffffffffffffffffffffffffffffffffffffff 1397 and 1398 dup2 1399 mstore 1400 0x20 1401 add 1402 swap1 1403 dup2 1404 mstore 1405 0x20 1406 add 1407 0x0 1408 keccak256 1409 /* "../contracts/token.sol":2609:2637 allowance[_from][msg.sender] */ 1410 0x0 1411 /* "../contracts/token.sol":2626:2636 msg.sender */ 1412 caller 1413 /* "../contracts/token.sol":2609:2637 allowance[_from][msg.sender] */ 1414 0xffffffffffffffffffffffffffffffffffffffff 1415 and 1416 0xffffffffffffffffffffffffffffffffffffffff 1417 and 1418 dup2 1419 mstore 1420 0x20 1421 add 1422 swap1 1423 dup2 1424 mstore 1425 0x20 1426 add 1427 0x0 1428 keccak256 1429 /* "../contracts/token.sol":2609:2694 allowance[_from][msg.sender] = SafeMath.safeSub(allowance[_from][msg.sender], _value) */ 1430 dup2 1431 swap1 1432 sstore 1433 pop 1434 /* "../contracts/token.sol":2704:2733 _transfer(_from, _to, _value) */ 1435 tag_54 1436 /* "../contracts/token.sol":2714:2719 _from */ 1437 dup5 1438 /* "../contracts/token.sol":2721:2724 _to */ 1439 dup5 1440 /* "../contracts/token.sol":2726:2732 _value */ 1441 dup5 1442 /* "../contracts/token.sol":2704:2713 _transfer */ 1443 tag_55 1444 /* "../contracts/token.sol":2704:2733 _transfer(_from, _to, _value) */ 1445 jump // in 1446 tag_54: 1447 /* "../contracts/token.sol":2750:2754 true */ 1448 0x1 1449 /* "../contracts/token.sol":2743:2754 return true */ 1450 swap1 1451 pop 1452 /* "../contracts/token.sol":2446:2761 function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {... */ 1453 swap4 1454 swap3 1455 pop 1456 pop 1457 pop 1458 jump // out 1459 /* "../contracts/token.sol":1253:1279 uint8 public decimals = 18 */ 1460 tag_29: 1461 0x2 1462 0x0 1463 swap1 1464 sload 1465 swap1 1466 0x100 1467 exp 1468 swap1 1469 div 1470 0xff 1471 and 1472 dup2 1473 jump // out 1474 /* "../contracts/token.sol":1318:1363 mapping (address => uint256) public balanceOf */ 1475 tag_32: 1476 mstore(0x20, 0x4) 1477 dup1 1478 0x0 1479 mstore 1480 keccak256(0x0, 0x40) 1481 0x0 1482 swap2 1483 pop 1484 swap1 1485 pop 1486 sload 1487 dup2 1488 jump // out 1489 /* "../contracts/token.sol":1227:1247 string public symbol */ 1490 tag_35: 1491 0x1 1492 dup1 1493 sload 1494 0x1 1495 dup2 1496 0x1 1497 and 1498 iszero 1499 0x100 1500 mul 1501 sub 1502 and 1503 0x2 1504 swap1 1505 div 1506 dup1 1507 0x1f 1508 add 1509 0x20 1510 dup1 1511 swap2 1512 div 1513 mul 1514 0x20 1515 add 1516 mload(0x40) 1517 swap1 1518 dup2 1519 add 1520 0x40 1521 mstore 1522 dup1 1523 swap3 1524 swap2 1525 swap1 1526 dup2 1527 dup2 1528 mstore 1529 0x20 1530 add 1531 dup3 1532 dup1 1533 sload 1534 0x1 1535 dup2 1536 0x1 1537 and 1538 iszero 1539 0x100 1540 mul 1541 sub 1542 and 1543 0x2 1544 swap1 1545 div 1546 dup1 1547 iszero 1548 tag_56 1549 jumpi 1550 dup1 1551 0x1f 1552 lt 1553 tag_57 1554 jumpi 1555 0x100 1556 dup1 1557 dup4 1558 sload 1559 div 1560 mul 1561 dup4 1562 mstore 1563 swap2 1564 0x20 1565 add 1566 swap2 1567 jump(tag_56) 1568 tag_57: 1569 dup3 1570 add 1571 swap2 1572 swap1 1573 0x0 1574 mstore 1575 keccak256(0x0, 0x20) 1576 swap1 1577 tag_58: 1578 dup2 1579 sload 1580 dup2 1581 mstore 1582 swap1 1583 0x1 1584 add 1585 swap1 1586 0x20 1587 add 1588 dup1 1589 dup4 1590 gt 1591 tag_58 1592 jumpi 1593 dup3 1594 swap1 1595 sub 1596 0x1f 1597 and 1598 dup3 1599 add 1600 swap2 1601 tag_56: 1602 pop 1603 pop 1604 pop 1605 pop 1606 pop 1607 dup2 1608 jump // out 1609 /* "../contracts/token.sol":2335:2440 function transfer(address _to, uint256 _value) public {... */ 1610 tag_42: 1611 /* "../contracts/token.sol":2399:2433 _transfer(msg.sender, _to, _value) */ 1612 tag_60 1613 /* "../contracts/token.sol":2409:2419 msg.sender */ 1614 caller 1615 /* "../contracts/token.sol":2421:2424 _to */ 1616 dup4 1617 /* "../contracts/token.sol":2426:2432 _value */ 1618 dup4 1619 /* "../contracts/token.sol":2399:2408 _transfer */ 1620 tag_55 1621 /* "../contracts/token.sol":2399:2433 _transfer(msg.sender, _to, _value) */ 1622 jump // in 1623 tag_60: 1624 /* "../contracts/token.sol":2335:2440 function transfer(address _to, uint256 _value) public {... */ 1625 pop 1626 pop 1627 jump // out 1628 /* "../contracts/token.sol":1369:1435 mapping (address => mapping (address => uint256)) public allowance */ 1629 tag_45: 1630 mstore(0x20, 0x5) 1631 dup2 1632 0x0 1633 mstore 1634 mstore(0x20, keccak256(0x0, 0x40)) 1635 dup1 1636 0x0 1637 mstore 1638 keccak256(0x0, 0x40) 1639 0x0 1640 swap2 1641 pop 1642 swap2 1643 pop 1644 pop 1645 sload 1646 dup2 1647 jump // out 1648 /* "../contracts/token.sol":406:530 function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {... */ 1649 tag_53: 1650 /* "../contracts/token.sol":468:475 uint256 */ 1651 0x0 1652 /* "../contracts/token.sol":499:500 a */ 1653 dup3 1654 /* "../contracts/token.sol":494:495 b */ 1655 dup3 1656 /* "../contracts/token.sol":494:500 b <= a */ 1657 gt 1658 iszero 1659 /* "../contracts/token.sol":487:501 assert(b <= a) */ 1660 iszero 1661 iszero 1662 tag_62 1663 jumpi 1664 invalid 1665 tag_62: 1666 /* "../contracts/token.sol":522:523 b */ 1667 dup2 1668 /* "../contracts/token.sol":518:519 a */ 1669 dup4 1670 /* "../contracts/token.sol":518:523 a - b */ 1671 sub 1672 /* "../contracts/token.sol":511:523 return a - b */ 1673 swap1 1674 pop 1675 /* "../contracts/token.sol":406:530 function safeSub(uint256 a, uint256 b) internal pure returns (uint256) {... */ 1676 swap3 1677 swap2 1678 pop 1679 pop 1680 jump // out 1681 /* "../contracts/token.sol":1785:2329 function _transfer(address _from, address _to, uint256 _value) private {... */ 1682 tag_55: 1683 /* "../contracts/token.sol":1999:2023 uint256 previousBalances */ 1684 0x0 1685 /* "../contracts/token.sol":1881:1884 0x0 */ 1686 dup1 1687 /* "../contracts/token.sol":1874:1877 _to */ 1688 dup4 1689 /* "../contracts/token.sol":1874:1884 _to != 0x0 */ 1690 0xffffffffffffffffffffffffffffffffffffffff 1691 and 1692 eq 1693 iszero 1694 /* "../contracts/token.sol":1866:1885 require(_to != 0x0) */ 1695 iszero 1696 iszero 1697 tag_64 1698 jumpi 1699 0x0 1700 dup1 1701 revert 1702 tag_64: 1703 /* "../contracts/token.sol":1923:1929 _value */ 1704 dup2 1705 /* "../contracts/token.sol":1903:1912 balanceOf */ 1706 0x4 1707 /* "../contracts/token.sol":1903:1919 balanceOf[_from] */ 1708 0x0 1709 /* "../contracts/token.sol":1913:1918 _from */ 1710 dup7 1711 /* "../contracts/token.sol":1903:1919 balanceOf[_from] */ 1712 0xffffffffffffffffffffffffffffffffffffffff 1713 and 1714 0xffffffffffffffffffffffffffffffffffffffff 1715 and 1716 dup2 1717 mstore 1718 0x20 1719 add 1720 swap1 1721 dup2 1722 mstore 1723 0x20 1724 add 1725 0x0 1726 keccak256 1727 sload 1728 /* "../contracts/token.sol":1903:1929 balanceOf[_from] >= _value */ 1729 lt 1730 iszero 1731 /* "../contracts/token.sol":1895:1930 require(balanceOf[_from] >= _value) */ 1732 iszero 1733 iszero 1734 tag_65 1735 jumpi 1736 0x0 1737 dup1 1738 revert 1739 tag_65: 1740 /* "../contracts/token.sol":1974:1983 balanceOf */ 1741 0x4 1742 /* "../contracts/token.sol":1974:1988 balanceOf[_to] */ 1743 0x0 1744 /* "../contracts/token.sol":1984:1987 _to */ 1745 dup5 1746 /* "../contracts/token.sol":1974:1988 balanceOf[_to] */ 1747 0xffffffffffffffffffffffffffffffffffffffff 1748 and 1749 0xffffffffffffffffffffffffffffffffffffffff 1750 and 1751 dup2 1752 mstore 1753 0x20 1754 add 1755 swap1 1756 dup2 1757 mstore 1758 0x20 1759 add 1760 0x0 1761 keccak256 1762 sload 1763 /* "../contracts/token.sol":1965:1971 _value */ 1764 dup3 1765 /* "../contracts/token.sol":1948:1957 balanceOf */ 1766 0x4 1767 /* "../contracts/token.sol":1948:1962 balanceOf[_to] */ 1768 0x0 1769 /* "../contracts/token.sol":1958:1961 _to */ 1770 dup7 1771 /* "../contracts/token.sol":1948:1962 balanceOf[_to] */ 1772 0xffffffffffffffffffffffffffffffffffffffff 1773 and 1774 0xffffffffffffffffffffffffffffffffffffffff 1775 and 1776 dup2 1777 mstore 1778 0x20 1779 add 1780 swap1 1781 dup2 1782 mstore 1783 0x20 1784 add 1785 0x0 1786 keccak256 1787 sload 1788 /* "../contracts/token.sol":1948:1971 balanceOf[_to] + _value */ 1789 add 1790 /* "../contracts/token.sol":1948:1988 balanceOf[_to] + _value > balanceOf[_to] */ 1791 gt 1792 /* "../contracts/token.sol":1940:1989 require(balanceOf[_to] + _value > balanceOf[_to]) */ 1793 iszero 1794 iszero 1795 tag_66 1796 jumpi 1797 0x0 1798 dup1 1799 revert 1800 tag_66: 1801 /* "../contracts/token.sol":2026:2075 SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */ 1802 tag_67 1803 /* "../contracts/token.sol":2043:2052 balanceOf */ 1804 0x4 1805 /* "../contracts/token.sol":2043:2059 balanceOf[_from] */ 1806 0x0 1807 /* "../contracts/token.sol":2053:2058 _from */ 1808 dup7 1809 /* "../contracts/token.sol":2043:2059 balanceOf[_from] */ 1810 0xffffffffffffffffffffffffffffffffffffffff 1811 and 1812 0xffffffffffffffffffffffffffffffffffffffff 1813 and 1814 dup2 1815 mstore 1816 0x20 1817 add 1818 swap1 1819 dup2 1820 mstore 1821 0x20 1822 add 1823 0x0 1824 keccak256 1825 sload 1826 /* "../contracts/token.sol":2060:2069 balanceOf */ 1827 0x4 1828 /* "../contracts/token.sol":2060:2074 balanceOf[_to] */ 1829 0x0 1830 /* "../contracts/token.sol":2070:2073 _to */ 1831 dup7 1832 /* "../contracts/token.sol":2060:2074 balanceOf[_to] */ 1833 0xffffffffffffffffffffffffffffffffffffffff 1834 and 1835 0xffffffffffffffffffffffffffffffffffffffff 1836 and 1837 dup2 1838 mstore 1839 0x20 1840 add 1841 swap1 1842 dup2 1843 mstore 1844 0x20 1845 add 1846 0x0 1847 keccak256 1848 sload 1849 /* "../contracts/token.sol":2026:2042 SafeMath.safeAdd */ 1850 tag_68 1851 /* "../contracts/token.sol":2026:2075 SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */ 1852 jump // in 1853 tag_67: 1854 /* "../contracts/token.sol":1999:2075 uint256 previousBalances = SafeMath.safeAdd(balanceOf[_from],balanceOf[_to]) */ 1855 swap1 1856 pop 1857 /* "../contracts/token.sol":2104:2146 SafeMath.safeSub(balanceOf[_from], _value) */ 1858 tag_69 1859 /* "../contracts/token.sol":2121:2130 balanceOf */ 1860 0x4 1861 /* "../contracts/token.sol":2121:2137 balanceOf[_from] */ 1862 0x0 1863 /* "../contracts/token.sol":2131:2136 _from */ 1864 dup7 1865 /* "../contracts/token.sol":2121:2137 balanceOf[_from] */ 1866 0xffffffffffffffffffffffffffffffffffffffff 1867 and 1868 0xffffffffffffffffffffffffffffffffffffffff 1869 and 1870 dup2 1871 mstore 1872 0x20 1873 add 1874 swap1 1875 dup2 1876 mstore 1877 0x20 1878 add 1879 0x0 1880 keccak256 1881 sload 1882 /* "../contracts/token.sol":2139:2145 _value */ 1883 dup4 1884 /* "../contracts/token.sol":2104:2120 SafeMath.safeSub */ 1885 tag_53 1886 /* "../contracts/token.sol":2104:2146 SafeMath.safeSub(balanceOf[_from], _value) */ 1887 jump // in 1888 tag_69: 1889 /* "../contracts/token.sol":2085:2094 balanceOf */ 1890 0x4 1891 /* "../contracts/token.sol":2085:2101 balanceOf[_from] */ 1892 0x0 1893 /* "../contracts/token.sol":2095:2100 _from */ 1894 dup7 1895 /* "../contracts/token.sol":2085:2101 balanceOf[_from] */ 1896 0xffffffffffffffffffffffffffffffffffffffff 1897 and 1898 0xffffffffffffffffffffffffffffffffffffffff 1899 and 1900 dup2 1901 mstore 1902 0x20 1903 add 1904 swap1 1905 dup2 1906 mstore 1907 0x20 1908 add 1909 0x0 1910 keccak256 1911 /* "../contracts/token.sol":2085:2146 balanceOf[_from] = SafeMath.safeSub(balanceOf[_from], _value) */ 1912 dup2 1913 swap1 1914 sstore 1915 pop 1916 /* "../contracts/token.sol":2173:2213 SafeMath.safeAdd(balanceOf[_to], _value) */ 1917 tag_70 1918 /* "../contracts/token.sol":2190:2199 balanceOf */ 1919 0x4 1920 /* "../contracts/token.sol":2190:2204 balanceOf[_to] */ 1921 0x0 1922 /* "../contracts/token.sol":2200:2203 _to */ 1923 dup6 1924 /* "../contracts/token.sol":2190:2204 balanceOf[_to] */ 1925 0xffffffffffffffffffffffffffffffffffffffff 1926 and 1927 0xffffffffffffffffffffffffffffffffffffffff 1928 and 1929 dup2 1930 mstore 1931 0x20 1932 add 1933 swap1 1934 dup2 1935 mstore 1936 0x20 1937 add 1938 0x0 1939 keccak256 1940 sload 1941 /* "../contracts/token.sol":2206:2212 _value */ 1942 dup4 1943 /* "../contracts/token.sol":2173:2189 SafeMath.safeAdd */ 1944 tag_68 1945 /* "../contracts/token.sol":2173:2213 SafeMath.safeAdd(balanceOf[_to], _value) */ 1946 jump // in 1947 tag_70: 1948 /* "../contracts/token.sol":2156:2165 balanceOf */ 1949 0x4 1950 /* "../contracts/token.sol":2156:2170 balanceOf[_to] */ 1951 0x0 1952 /* "../contracts/token.sol":2166:2169 _to */ 1953 dup6 1954 /* "../contracts/token.sol":2156:2170 balanceOf[_to] */ 1955 0xffffffffffffffffffffffffffffffffffffffff 1956 and 1957 0xffffffffffffffffffffffffffffffffffffffff 1958 and 1959 dup2 1960 mstore 1961 0x20 1962 add 1963 swap1 1964 dup2 1965 mstore 1966 0x20 1967 add 1968 0x0 1969 keccak256 1970 /* "../contracts/token.sol":2156:2213 balanceOf[_to] = SafeMath.safeAdd(balanceOf[_to], _value) */ 1971 dup2 1972 swap1 1973 sstore 1974 pop 1975 /* "../contracts/token.sol":2239:2242 _to */ 1976 dup3 1977 /* "../contracts/token.sol":2223:2251 Transfer(_from, _to, _value) */ 1978 0xffffffffffffffffffffffffffffffffffffffff 1979 and 1980 /* "../contracts/token.sol":2232:2237 _from */ 1981 dup5 1982 /* "../contracts/token.sol":2223:2251 Transfer(_from, _to, _value) */ 1983 0xffffffffffffffffffffffffffffffffffffffff 1984 and 1985 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef 1986 /* "../contracts/token.sol":2244:2250 _value */ 1987 dup5 1988 /* "../contracts/token.sol":2223:2251 Transfer(_from, _to, _value) */ 1989 mload(0x40) 1990 dup1 1991 dup3 1992 dup2 1993 mstore 1994 0x20 1995 add 1996 swap2 1997 pop 1998 pop 1999 mload(0x40) 2000 dup1 2001 swap2 2002 sub 2003 swap1 2004 log3 2005 /* "../contracts/token.sol":2305:2321 previousBalances */ 2006 dup1 2007 /* "../contracts/token.sol":2287:2296 balanceOf */ 2008 0x4 2009 /* "../contracts/token.sol":2287:2301 balanceOf[_to] */ 2010 0x0 2011 /* "../contracts/token.sol":2297:2300 _to */ 2012 dup6 2013 /* "../contracts/token.sol":2287:2301 balanceOf[_to] */ 2014 0xffffffffffffffffffffffffffffffffffffffff 2015 and 2016 0xffffffffffffffffffffffffffffffffffffffff 2017 and 2018 dup2 2019 mstore 2020 0x20 2021 add 2022 swap1 2023 dup2 2024 mstore 2025 0x20 2026 add 2027 0x0 2028 keccak256 2029 sload 2030 /* "../contracts/token.sol":2268:2277 balanceOf */ 2031 0x4 2032 /* "../contracts/token.sol":2268:2284 balanceOf[_from] */ 2033 0x0 2034 /* "../contracts/token.sol":2278:2283 _from */ 2035 dup8 2036 /* "../contracts/token.sol":2268:2284 balanceOf[_from] */ 2037 0xffffffffffffffffffffffffffffffffffffffff 2038 and 2039 0xffffffffffffffffffffffffffffffffffffffff 2040 and 2041 dup2 2042 mstore 2043 0x20 2044 add 2045 swap1 2046 dup2 2047 mstore 2048 0x20 2049 add 2050 0x0 2051 keccak256 2052 sload 2053 /* "../contracts/token.sol":2268:2301 balanceOf[_from] + balanceOf[_to] */ 2054 add 2055 /* "../contracts/token.sol":2268:2321 balanceOf[_from] + balanceOf[_to] == previousBalances */ 2056 eq 2057 /* "../contracts/token.sol":2261:2322 assert(balanceOf[_from] + balanceOf[_to] == previousBalances) */ 2058 iszero 2059 iszero 2060 tag_71 2061 jumpi 2062 invalid 2063 tag_71: 2064 /* "../contracts/token.sol":1785:2329 function _transfer(address _from, address _to, uint256 _value) private {... */ 2065 pop 2066 pop 2067 pop 2068 pop 2069 jump // out 2070 /* "../contracts/token.sol":536:689 function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {... */ 2071 tag_68: 2072 /* "../contracts/token.sol":598:605 uint256 */ 2073 0x0 2074 /* "../contracts/token.sol":617:626 uint256 c */ 2075 dup1 2076 /* "../contracts/token.sol":633:634 b */ 2077 dup3 2078 /* "../contracts/token.sol":629:630 a */ 2079 dup5 2080 /* "../contracts/token.sol":629:634 a + b */ 2081 add 2082 /* "../contracts/token.sol":617:634 uint256 c = a + b */ 2083 swap1 2084 pop 2085 /* "../contracts/token.sol":654:655 a */ 2086 dup4 2087 /* "../contracts/token.sol":651:652 c */ 2088 dup2 2089 /* "../contracts/token.sol":651:655 c>=a */ 2090 lt 2091 iszero 2092 /* "../contracts/token.sol":651:663 c>=a && c>=b */ 2093 dup1 2094 iszero 2095 tag_73 2096 jumpi 2097 pop 2098 /* "../contracts/token.sol":662:663 b */ 2099 dup3 2100 /* "../contracts/token.sol":659:660 c */ 2101 dup2 2102 /* "../contracts/token.sol":659:663 c>=b */ 2103 lt 2104 iszero 2105 /* "../contracts/token.sol":651:663 c>=a && c>=b */ 2106 tag_73: 2107 /* "../contracts/token.sol":644:664 assert(c>=a && c>=b) */ 2108 iszero 2109 iszero 2110 tag_74 2111 jumpi 2112 invalid 2113 tag_74: 2114 /* "../contracts/token.sol":681:682 c */ 2115 dup1 2116 /* "../contracts/token.sol":674:682 return c */ 2117 swap2 2118 pop 2119 /* "../contracts/token.sol":536:689 function safeAdd(uint256 a, uint256 b) internal pure returns (uint256) {... */ 2120 pop 2121 swap3 2122 swap2 2123 pop 2124 pop 2125 jump // out 2126 2127 auxdata: 0xa165627a7a72305820260079fc6deb4f6fdab814ae5ee600f6d2954edb51b1791b9ca7fec275e42a0f0029 2128 }