#!/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_180438 = ref_278 # MOV operation
ref_202390 = ref_180438 # MOV operation
ref_202398 = (ref_202390 >> (0x3 & 0x3F)) # SHR operation
ref_202405 = ref_202398 # MOV operation
ref_301238 = ref_278 # MOV operation
ref_312190 = ref_301238 # MOV operation
ref_312204 = ((ref_312190 << (0x3D & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_323189 = ref_202405 # MOV operation
ref_323193 = ref_312204 # MOV operation
ref_323195 = (ref_323193 | ref_323189) # OR operation
ref_334172 = ref_323195 # MOV operation
ref_334186 = ((ref_334172 - 0x3FEFFF7F) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_334194 = ref_334186 # MOV operation
ref_345174 = ref_334194 # MOV operation
ref_345176 = ((ref_345174 >> 56) & 0xFF) # Byte reference - MOV operation
ref_345177 = ((ref_345174 >> 48) & 0xFF) # Byte reference - MOV operation
ref_345178 = ((ref_345174 >> 40) & 0xFF) # Byte reference - MOV operation
ref_345179 = ((ref_345174 >> 32) & 0xFF) # Byte reference - MOV operation
ref_345180 = ((ref_345174 >> 24) & 0xFF) # Byte reference - MOV operation
ref_345181 = ((ref_345174 >> 16) & 0xFF) # Byte reference - MOV operation
ref_345182 = ((ref_345174 >> 8) & 0xFF) # Byte reference - MOV operation
ref_345183 = (ref_345174 & 0xFF) # Byte reference - MOV operation
ref_520961 = ref_278 # MOV operation
ref_608867 = ref_345174 # MOV operation
ref_619827 = ref_520961 # MOV operation
ref_619831 = ref_608867 # MOV operation
ref_619833 = (ref_619831 | ref_619827) # OR operation
ref_630810 = ref_619833 # MOV operation
ref_630824 = ((ref_630810 - 0x11E59B96) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_630832 = ref_630824 # MOV operation
ref_641812 = ref_630832 # MOV operation
ref_641814 = ((ref_641812 >> 56) & 0xFF) # Byte reference - MOV operation
ref_641815 = ((ref_641812 >> 48) & 0xFF) # Byte reference - MOV operation
ref_641816 = ((ref_641812 >> 40) & 0xFF) # Byte reference - MOV operation
ref_641817 = ((ref_641812 >> 32) & 0xFF) # Byte reference - MOV operation
ref_641818 = ((ref_641812 >> 24) & 0xFF) # Byte reference - MOV operation
ref_641819 = ((ref_641812 >> 16) & 0xFF) # Byte reference - MOV operation
ref_641820 = ((ref_641812 >> 8) & 0xFF) # Byte reference - MOV operation
ref_641821 = (ref_641812 & 0xFF) # Byte reference - MOV operation
ref_806607 = ref_278 # MOV operation
ref_894513 = ref_345174 # MOV operation
ref_905473 = ref_806607 # MOV operation
ref_905477 = ref_894513 # MOV operation
ref_905479 = (((sx(0x40, ref_905477) * sx(0x40, ref_905473)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_1004399 = ref_641812 # MOV operation
ref_1015351 = ref_1004399 # MOV operation
ref_1015365 = ((ref_1015351 << (0x7 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_1026350 = ref_905479 # MOV operation
ref_1026354 = ref_1015365 # MOV operation
ref_1026356 = (((sx(0x40, ref_1026354) * sx(0x40, ref_1026350)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_1037338 = ref_1026356 # MOV operation
ref_1213125 = ref_278 # MOV operation
ref_1224077 = ref_1213125 # MOV operation
ref_1224091 = ((ref_1224077 - 0x2000000007A4C37E) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_1224099 = ref_1224091 # MOV operation
ref_1235079 = ref_1224099 # MOV operation
ref_1498700 = ((((ref_345176) << 8 | ref_345177) << 8 | ref_345178) << 8 | ref_345179) # MOV operation
ref_1520660 = (ref_1498700 & 0xFFFFFFFF) # MOV operation
ref_1685408 = ((((ref_345180) << 8 | ref_345181) << 8 | ref_345182) << 8 | ref_345183) # MOV operation
ref_1850144 = (ref_1685408 & 0xFFFFFFFF) # MOV operation
ref_1850146 = (((ref_1850144 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_1850147 = (((ref_1850144 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_1850148 = (((ref_1850144 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_1850149 = ((ref_1850144 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_1872116 = (ref_1520660 & 0xFFFFFFFF) # MOV operation
ref_2036852 = (ref_1872116 & 0xFFFFFFFF) # MOV operation
ref_2036854 = (((ref_2036852 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_2036855 = (((ref_2036852 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_2036856 = (((ref_2036852 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_2036857 = ((ref_2036852 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_2223656 = ((((((((ref_1850146) << 8 | ref_1850147) << 8 | ref_1850148) << 8 | ref_1850149) << 8 | ref_2036854) << 8 | ref_2036855) << 8 | ref_2036856) << 8 | ref_2036857) # MOV operation
ref_2355502 = ref_1037338 # MOV operation
ref_2443408 = ref_1037338 # MOV operation
ref_2454368 = ref_2355502 # MOV operation
ref_2454372 = ref_2443408 # MOV operation
ref_2454374 = ((ref_2454372 + ref_2454368) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_2476352 = ref_2454374 # MOV operation
ref_2476358 = (0x3F & ref_2476352) # AND operation
ref_2487335 = ref_2476358 # MOV operation
ref_2487349 = ((ref_2487335 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_2498334 = ref_2223656 # MOV operation
ref_2498338 = ref_2487349 # MOV operation
ref_2498340 = (ref_2498338 | ref_2498334) # OR operation
ref_2509325 = ref_2498340 # MOV operation
ref_2805894 = ((((ref_641814) << 8 | ref_641815) << 8 | ref_641816) << 8 | ref_641817) # MOV operation
ref_2827854 = (ref_2805894 & 0xFFFFFFFF) # MOV operation
ref_2992602 = ((((ref_641818) << 8 | ref_641819) << 8 | ref_641820) << 8 | ref_641821) # MOV operation
ref_3157338 = (ref_2992602 & 0xFFFFFFFF) # MOV operation
ref_3157340 = (((ref_3157338 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_3157341 = (((ref_3157338 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_3157342 = (((ref_3157338 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_3157343 = ((ref_3157338 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_3179310 = (ref_2827854 & 0xFFFFFFFF) # MOV operation
ref_3344046 = (ref_3179310 & 0xFFFFFFFF) # MOV operation
ref_3344048 = (((ref_3344046 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_3344049 = (((ref_3344046 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_3344050 = (((ref_3344046 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_3344051 = ((ref_3344046 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_3530850 = ((((((((ref_3157340) << 8 | ref_3157341) << 8 | ref_3157342) << 8 | ref_3157343) << 8 | ref_3344048) << 8 | ref_3344049) << 8 | ref_3344050) << 8 | ref_3344051) # MOV operation
ref_3662696 = ref_1235079 # MOV operation
ref_3750602 = ref_1037338 # MOV operation
ref_3761562 = ref_3662696 # MOV operation
ref_3761566 = ref_3750602 # MOV operation
ref_3761568 = ((ref_3761566 + ref_3761562) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_3783546 = ref_3761568 # MOV operation
ref_3783552 = (0x3F & ref_3783546) # AND operation
ref_3794529 = ref_3783552 # MOV operation
ref_3794543 = ((ref_3794529 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_3805528 = ref_3530850 # MOV operation
ref_3805532 = ref_3794543 # MOV operation
ref_3805534 = (ref_3805532 | ref_3805528) # OR operation
ref_3816519 = ref_3805534 # MOV operation
ref_3816521 = ((ref_3816519 >> 56) & 0xFF) # Byte reference - MOV operation
ref_3816522 = ((ref_3816519 >> 48) & 0xFF) # Byte reference - MOV operation
ref_3816523 = ((ref_3816519 >> 40) & 0xFF) # Byte reference - MOV operation
ref_3816524 = ((ref_3816519 >> 32) & 0xFF) # Byte reference - MOV operation
ref_3816525 = ((ref_3816519 >> 24) & 0xFF) # Byte reference - MOV operation
ref_3816526 = ((ref_3816519 >> 16) & 0xFF) # Byte reference - MOV operation
ref_3816527 = ((ref_3816519 >> 8) & 0xFF) # Byte reference - MOV operation
ref_3816528 = (ref_3816519 & 0xFF) # Byte reference - MOV operation
ref_4124037 = ref_3816523 # MOVZX operation
ref_4145993 = (ref_4124037 & 0xFF) # MOVZX operation
ref_4299773 = ref_3816527 # MOVZX operation
ref_4453541 = (ref_4299773 & 0xFF) # MOVZX operation
ref_4453543 = (ref_4453541 & 0xFF) # Byte reference - MOV operation
ref_4475509 = (ref_4145993 & 0xFF) # MOVZX operation
ref_4629277 = (ref_4475509 & 0xFF) # MOVZX operation
ref_4629279 = (ref_4629277 & 0xFF) # Byte reference - MOV operation
ref_4794073 = ref_1037338 # MOV operation
ref_4881979 = ref_1235079 # MOV operation
ref_4892939 = ref_4794073 # MOV operation
ref_4892943 = ref_4881979 # MOV operation
ref_4892945 = (ref_4892943 & ref_4892939) # AND operation
ref_4914922 = ref_4892945 # MOV operation
ref_4914928 = (0xF & ref_4914922) # AND operation
ref_4936905 = ref_4914928 # MOV operation
ref_4936911 = (0x1 | ref_4936905) # OR operation
ref_5024842 = ref_2509325 # MOV operation
ref_5112748 = ((((((((ref_3816521) << 8 | ref_3816522) << 8 | ref_4453543) << 8 | ref_3816524) << 8 | ref_3816525) << 8 | ref_3816526) << 8 | ref_4629279) << 8 | ref_3816528) # MOV operation
ref_5123708 = ref_5024842 # MOV operation
ref_5123712 = ref_5112748 # MOV operation
ref_5123714 = ((ref_5123712 + ref_5123708) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_5134692 = ref_5123714 # MOV operation
ref_5134704 = ref_4936911 # MOV operation
ref_5134706 = ((ref_5134692 << ((ref_5134704 & 0xFF) & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_5222637 = ref_2509325 # MOV operation
ref_5310543 = ((((((((ref_3816521) << 8 | ref_3816522) << 8 | ref_4453543) << 8 | ref_3816524) << 8 | ref_3816525) << 8 | ref_3816526) << 8 | ref_4629279) << 8 | ref_3816528) # MOV operation
ref_5321503 = ref_5222637 # MOV operation
ref_5321507 = ref_5310543 # MOV operation
ref_5321509 = ((ref_5321507 + ref_5321503) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_5409441 = ref_1037338 # MOV operation
ref_5497347 = ref_1235079 # MOV operation
ref_5508307 = ref_5409441 # MOV operation
ref_5508311 = ref_5497347 # MOV operation
ref_5508313 = (ref_5508311 & ref_5508307) # AND operation
ref_5530290 = ref_5508313 # MOV operation
ref_5530296 = (0xF & ref_5530290) # AND operation
ref_5552273 = ref_5530296 # MOV operation
ref_5552279 = (0x1 | ref_5552273) # OR operation
ref_5574260 = ref_5552279 # MOV operation
ref_5574262 = ((0x40 - ref_5574260) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_5574270 = ref_5574262 # MOV operation
ref_5585250 = ref_5321509 # MOV operation
ref_5585254 = ref_5574270 # MOV operation
ref_5585256 = (ref_5585254 & 0xFFFFFFFF) # MOV operation
ref_5585258 = (ref_5585250 >> ((ref_5585256 & 0xFF) & 0x3F)) # SHR operation
ref_5585265 = ref_5585258 # MOV operation
ref_5596245 = ref_5134706 # MOV operation
ref_5596249 = ref_5585265 # MOV operation
ref_5596251 = (ref_5596249 | ref_5596245) # OR operation
ref_5607236 = ref_5596251 # MOV operation
ref_5629199 = ref_5607236 # MOV operation
ref_5629201 = ref_5629199 # MOV operation

print ref_5629201 & 0xffffffffffffffff
