#!/usr/bin/env python2
## -*- coding: utf-8 -*-

import sys

def sx(bits, value):
    sign_bit = 1 << (bits - 1)
    return (value & (sign_bit - 1)) - (value & sign_bit)

SymVar_0 = int(sys.argv[1])
ref_263 = SymVar_0
ref_278 = ref_263 # MOV operation
ref_5424 = ref_278 # MOV operation
ref_5466 = ref_5424 # MOV operation
ref_5474 = (ref_5466 >> (0x3 & 0x3F)) # SHR operation
ref_5481 = ref_5474 # MOV operation
ref_5926 = ref_278 # MOV operation
ref_5958 = ref_5926 # MOV operation
ref_5972 = ((ref_5958 << (0x3D & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_6009 = ref_5481 # MOV operation
ref_6021 = ref_5972 # MOV operation
ref_6023 = (ref_6021 | ref_6009) # OR operation
ref_6060 = ref_6023 # MOV operation
ref_6074 = ((ref_6060 - 0x3FEFFF7F) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_6082 = ref_6074 # MOV operation
ref_6116 = ref_6082 # MOV operation
ref_6118 = ((ref_6116 >> 56) & 0xFF) # Byte reference - MOV operation
ref_6119 = ((ref_6116 >> 48) & 0xFF) # Byte reference - MOV operation
ref_6120 = ((ref_6116 >> 40) & 0xFF) # Byte reference - MOV operation
ref_6121 = ((ref_6116 >> 32) & 0xFF) # Byte reference - MOV operation
ref_6122 = ((ref_6116 >> 24) & 0xFF) # Byte reference - MOV operation
ref_6123 = ((ref_6116 >> 16) & 0xFF) # Byte reference - MOV operation
ref_6124 = ((ref_6116 >> 8) & 0xFF) # Byte reference - MOV operation
ref_6125 = (ref_6116 & 0xFF) # Byte reference - MOV operation
ref_6809 = ref_278 # MOV operation
ref_7039 = ref_6116 # MOV operation
ref_7065 = ref_6809 # MOV operation
ref_7069 = ref_7039 # MOV operation
ref_7071 = (ref_7069 | ref_7065) # OR operation
ref_7108 = ref_7071 # MOV operation
ref_7122 = ((ref_7108 - 0x11E59B96) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_7130 = ref_7122 # MOV operation
ref_7164 = ref_7130 # MOV operation
ref_7166 = ((ref_7164 >> 56) & 0xFF) # Byte reference - MOV operation
ref_7167 = ((ref_7164 >> 48) & 0xFF) # Byte reference - MOV operation
ref_7168 = ((ref_7164 >> 40) & 0xFF) # Byte reference - MOV operation
ref_7169 = ((ref_7164 >> 32) & 0xFF) # Byte reference - MOV operation
ref_7170 = ((ref_7164 >> 24) & 0xFF) # Byte reference - MOV operation
ref_7171 = ((ref_7164 >> 16) & 0xFF) # Byte reference - MOV operation
ref_7172 = ((ref_7164 >> 8) & 0xFF) # Byte reference - MOV operation
ref_7173 = (ref_7164 & 0xFF) # Byte reference - MOV operation
ref_7945 = ref_278 # MOV operation
ref_8175 = ref_6116 # MOV operation
ref_8201 = ref_7945 # MOV operation
ref_8205 = ref_8175 # MOV operation
ref_8207 = (((sx(0x40, ref_8205) * sx(0x40, ref_8201)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_8595 = ref_7164 # MOV operation
ref_8613 = ref_8595 # MOV operation
ref_8627 = ((ref_8613 << (0x7 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_8658 = ref_8207 # MOV operation
ref_8670 = ref_8627 # MOV operation
ref_8672 = (((sx(0x40, ref_8670) * sx(0x40, ref_8658)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_8708 = ref_8672 # MOV operation
ref_9391 = ref_278 # MOV operation
ref_9423 = ref_9391 # MOV operation
ref_9437 = ((ref_9423 - 0x2000000007A4C37E) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_9445 = ref_9437 # MOV operation
ref_9479 = ref_9445 # MOV operation
ref_10523 = ((((ref_6118) << 8 | ref_6119) << 8 | ref_6120) << 8 | ref_6121) # MOV operation
ref_10597 = (ref_10523 & 0xFFFFFFFF) # MOV operation
ref_11187 = ((((ref_6122) << 8 | ref_6123) << 8 | ref_6124) << 8 | ref_6125) # MOV operation
ref_11795 = (ref_11187 & 0xFFFFFFFF) # MOV operation
ref_11797 = (((ref_11795 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_11798 = (((ref_11795 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_11799 = (((ref_11795 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_11800 = ((ref_11795 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_11845 = (ref_10597 & 0xFFFFFFFF) # MOV operation
ref_12433 = (ref_11845 & 0xFFFFFFFF) # MOV operation
ref_12435 = (((ref_12433 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_12436 = (((ref_12433 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_12437 = (((ref_12433 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_12438 = ((ref_12433 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_13073 = ((((((((ref_11797) << 8 | ref_11798) << 8 | ref_11799) << 8 | ref_11800) << 8 | ref_12435) << 8 | ref_12436) << 8 | ref_12437) << 8 | ref_12438) # MOV operation
ref_13551 = ref_8708 # MOV operation
ref_13781 = ref_8708 # MOV operation
ref_13807 = ref_13551 # MOV operation
ref_13811 = ref_13781 # MOV operation
ref_13813 = ((ref_13811 + ref_13807) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_13861 = ref_13813 # MOV operation
ref_13867 = (0x3F & ref_13861) # AND operation
ref_13904 = ref_13867 # MOV operation
ref_13918 = ((ref_13904 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_13955 = ref_13073 # MOV operation
ref_13967 = ref_13918 # MOV operation
ref_13969 = (ref_13967 | ref_13955) # OR operation
ref_14008 = ref_13969 # MOV operation
ref_15262 = ((((ref_7166) << 8 | ref_7167) << 8 | ref_7168) << 8 | ref_7169) # MOV operation
ref_15336 = (ref_15262 & 0xFFFFFFFF) # MOV operation
ref_15926 = ((((ref_7170) << 8 | ref_7171) << 8 | ref_7172) << 8 | ref_7173) # MOV operation
ref_16534 = (ref_15926 & 0xFFFFFFFF) # MOV operation
ref_16536 = (((ref_16534 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_16537 = (((ref_16534 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_16538 = (((ref_16534 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_16539 = ((ref_16534 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_16584 = (ref_15336 & 0xFFFFFFFF) # MOV operation
ref_17172 = (ref_16584 & 0xFFFFFFFF) # MOV operation
ref_17174 = (((ref_17172 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_17175 = (((ref_17172 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_17176 = (((ref_17172 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_17177 = ((ref_17172 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_17812 = ((((((((ref_16536) << 8 | ref_16537) << 8 | ref_16538) << 8 | ref_16539) << 8 | ref_17174) << 8 | ref_17175) << 8 | ref_17176) << 8 | ref_17177) # MOV operation
ref_18290 = ref_9479 # MOV operation
ref_18520 = ref_8708 # MOV operation
ref_18546 = ref_18290 # MOV operation
ref_18550 = ref_18520 # MOV operation
ref_18552 = ((ref_18550 + ref_18546) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_18600 = ref_18552 # MOV operation
ref_18606 = (0x3F & ref_18600) # AND operation
ref_18643 = ref_18606 # MOV operation
ref_18657 = ((ref_18643 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_18694 = ref_17812 # MOV operation
ref_18706 = ref_18657 # MOV operation
ref_18708 = (ref_18706 | ref_18694) # OR operation
ref_18747 = ref_18708 # MOV operation
ref_18749 = ((ref_18747 >> 56) & 0xFF) # Byte reference - MOV operation
ref_18750 = ((ref_18747 >> 48) & 0xFF) # Byte reference - MOV operation
ref_18751 = ((ref_18747 >> 40) & 0xFF) # Byte reference - MOV operation
ref_18752 = ((ref_18747 >> 32) & 0xFF) # Byte reference - MOV operation
ref_18753 = ((ref_18747 >> 24) & 0xFF) # Byte reference - MOV operation
ref_18754 = ((ref_18747 >> 16) & 0xFF) # Byte reference - MOV operation
ref_18755 = ((ref_18747 >> 8) & 0xFF) # Byte reference - MOV operation
ref_18756 = (ref_18747 & 0xFF) # Byte reference - MOV operation
ref_20117 = ref_18751 # MOVZX operation
ref_20187 = (ref_20117 & 0xFF) # MOVZX operation
ref_20719 = ref_18755 # MOVZX operation
ref_21269 = (ref_20719 & 0xFF) # MOVZX operation
ref_21271 = (ref_21269 & 0xFF) # Byte reference - MOV operation
ref_21315 = (ref_20187 & 0xFF) # MOVZX operation
ref_21845 = (ref_21315 & 0xFF) # MOVZX operation
ref_21847 = (ref_21845 & 0xFF) # Byte reference - MOV operation
ref_22435 = ref_8708 # MOV operation
ref_22709 = ref_9479 # MOV operation
ref_22725 = ref_22435 # MOV operation
ref_22737 = ref_22709 # MOV operation
ref_22739 = (ref_22737 & ref_22725) # AND operation
ref_22894 = ref_22739 # MOV operation
ref_22900 = (0xF & ref_22894) # AND operation
ref_22947 = ref_22900 # MOV operation
ref_22953 = (0x1 | ref_22947) # OR operation
ref_23188 = ref_14008 # MOV operation
ref_23462 = ((((((((ref_18749) << 8 | ref_18750) << 8 | ref_21271) << 8 | ref_18752) << 8 | ref_18753) << 8 | ref_18754) << 8 | ref_21847) << 8 | ref_18756) # MOV operation
ref_23478 = ref_23188 # MOV operation
ref_23490 = ref_23462 # MOV operation
ref_23492 = ((ref_23490 + ref_23478) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_23602 = ref_23492 # MOV operation
ref_23614 = ref_22953 # MOV operation
ref_23616 = ((ref_23602 << ((ref_23614 & 0xFF) & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_23851 = ref_14008 # MOV operation
ref_24125 = ((((((((ref_18749) << 8 | ref_18750) << 8 | ref_21271) << 8 | ref_18752) << 8 | ref_18753) << 8 | ref_18754) << 8 | ref_21847) << 8 | ref_18756) # MOV operation
ref_24141 = ref_23851 # MOV operation
ref_24153 = ref_24125 # MOV operation
ref_24155 = ((ref_24153 + ref_24141) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_24521 = ref_8708 # MOV operation
ref_24795 = ref_9479 # MOV operation
ref_24827 = ref_24521 # MOV operation
ref_24839 = ref_24795 # MOV operation
ref_24841 = (ref_24839 & ref_24827) # AND operation
ref_24996 = ref_24841 # MOV operation
ref_25002 = (0xF & ref_24996) # AND operation
ref_25049 = ref_25002 # MOV operation
ref_25055 = (0x1 | ref_25049) # OR operation
ref_25106 = ref_25055 # MOV operation
ref_25108 = ((0x40 - ref_25106) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_25116 = ref_25108 # MOV operation
ref_25148 = ref_24155 # MOV operation
ref_25160 = ref_25116 # MOV operation
ref_25162 = (ref_25148 >> ((ref_25160 & 0xFF) & 0x3F)) # SHR operation
ref_25199 = ref_23616 # MOV operation
ref_25211 = ref_25162 # MOV operation
ref_25213 = (ref_25211 | ref_25199) # OR operation
ref_25252 = ref_25213 # MOV operation
ref_25499 = ref_25252 # MOV operation
ref_25501 = ref_25499 # MOV operation

print ref_25501 & 0xffffffffffffffff
