#!/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_93590 = ref_278 # MOV operation
ref_104686 = ref_93590 # MOV operation
ref_104694 = (ref_104686 >> (0x3 & 0x3F)) # SHR operation
ref_104701 = ref_104694 # MOV operation
ref_154682 = ref_278 # MOV operation
ref_160206 = ref_154682 # MOV operation
ref_160220 = ((ref_160206 << (0x3D & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_165777 = ref_104701 # MOV operation
ref_165781 = ref_160220 # MOV operation
ref_165783 = (ref_165781 | ref_165777) # OR operation
ref_171332 = ref_165783 # MOV operation
ref_171346 = ((ref_171332 - 0x3FEFFF7F) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_171354 = ref_171346 # MOV operation
ref_176906 = ref_171354 # MOV operation
ref_176908 = ((ref_176906 >> 56) & 0xFF) # Byte reference - MOV operation
ref_176909 = ((ref_176906 >> 48) & 0xFF) # Byte reference - MOV operation
ref_176910 = ((ref_176906 >> 40) & 0xFF) # Byte reference - MOV operation
ref_176911 = ((ref_176906 >> 32) & 0xFF) # Byte reference - MOV operation
ref_176912 = ((ref_176906 >> 24) & 0xFF) # Byte reference - MOV operation
ref_176913 = ((ref_176906 >> 16) & 0xFF) # Byte reference - MOV operation
ref_176914 = ((ref_176906 >> 8) & 0xFF) # Byte reference - MOV operation
ref_176915 = (ref_176906 & 0xFF) # Byte reference - MOV operation
ref_265845 = ref_278 # MOV operation
ref_310327 = ref_176906 # MOV operation
ref_315859 = ref_265845 # MOV operation
ref_315863 = ref_310327 # MOV operation
ref_315865 = (ref_315863 | ref_315859) # OR operation
ref_321414 = ref_315865 # MOV operation
ref_321428 = ((ref_321414 - 0x11E59B96) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_321436 = ref_321428 # MOV operation
ref_326988 = ref_321436 # MOV operation
ref_326990 = ((ref_326988 >> 56) & 0xFF) # Byte reference - MOV operation
ref_326991 = ((ref_326988 >> 48) & 0xFF) # Byte reference - MOV operation
ref_326992 = ((ref_326988 >> 40) & 0xFF) # Byte reference - MOV operation
ref_326993 = ((ref_326988 >> 32) & 0xFF) # Byte reference - MOV operation
ref_326994 = ((ref_326988 >> 24) & 0xFF) # Byte reference - MOV operation
ref_326995 = ((ref_326988 >> 16) & 0xFF) # Byte reference - MOV operation
ref_326996 = ((ref_326988 >> 8) & 0xFF) # Byte reference - MOV operation
ref_326997 = (ref_326988 & 0xFF) # Byte reference - MOV operation
ref_410363 = ref_278 # MOV operation
ref_454845 = ref_176906 # MOV operation
ref_460377 = ref_410363 # MOV operation
ref_460381 = ref_454845 # MOV operation
ref_460383 = (((sx(0x40, ref_460381) * sx(0x40, ref_460377)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_510451 = ref_326988 # MOV operation
ref_515975 = ref_510451 # MOV operation
ref_515989 = ((ref_515975 << (0x7 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_521546 = ref_460383 # MOV operation
ref_521550 = ref_515989 # MOV operation
ref_521552 = (((sx(0x40, ref_521550) * sx(0x40, ref_521546)) & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF) & 0xFFFFFFFFFFFFFFFF) # IMUL operation
ref_527106 = ref_521552 # MOV operation
ref_616045 = ref_278 # MOV operation
ref_621569 = ref_616045 # MOV operation
ref_621583 = ((ref_621569 - 0x2000000007A4C37E) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_621591 = ref_621583 # MOV operation
ref_627143 = ref_621591 # MOV operation
ref_760492 = ((((ref_176908) << 8 | ref_176909) << 8 | ref_176910) << 8 | ref_176911) # MOV operation
ref_771596 = (ref_760492 & 0xFFFFFFFF) # MOV operation
ref_854924 = ((((ref_176912) << 8 | ref_176913) << 8 | ref_176914) << 8 | ref_176915) # MOV operation
ref_938240 = (ref_854924 & 0xFFFFFFFF) # MOV operation
ref_938242 = (((ref_938240 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_938243 = (((ref_938240 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_938244 = (((ref_938240 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_938245 = ((ref_938240 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_949356 = (ref_771596 & 0xFFFFFFFF) # MOV operation
ref_1032672 = (ref_949356 & 0xFFFFFFFF) # MOV operation
ref_1032674 = (((ref_1032672 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_1032675 = (((ref_1032672 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_1032676 = (((ref_1032672 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_1032677 = ((ref_1032672 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_1127200 = ((((((((ref_938242) << 8 | ref_938243) << 8 | ref_938244) << 8 | ref_938245) << 8 | ref_1032674) << 8 | ref_1032675) << 8 | ref_1032676) << 8 | ref_1032677) # MOV operation
ref_1193910 = ref_527106 # MOV operation
ref_1238392 = ref_527106 # MOV operation
ref_1243924 = ref_1193910 # MOV operation
ref_1243928 = ref_1238392 # MOV operation
ref_1243930 = ((ref_1243928 + ref_1243924) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_1255052 = ref_1243930 # MOV operation
ref_1255058 = (0x3F & ref_1255052) # AND operation
ref_1260607 = ref_1255058 # MOV operation
ref_1260621 = ((ref_1260607 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_1266178 = ref_1127200 # MOV operation
ref_1266182 = ref_1260621 # MOV operation
ref_1266184 = (ref_1266182 | ref_1266178) # OR operation
ref_1271741 = ref_1266184 # MOV operation
ref_1421754 = ((((ref_326990) << 8 | ref_326991) << 8 | ref_326992) << 8 | ref_326993) # MOV operation
ref_1432858 = (ref_1421754 & 0xFFFFFFFF) # MOV operation
ref_1516186 = ((((ref_326994) << 8 | ref_326995) << 8 | ref_326996) << 8 | ref_326997) # MOV operation
ref_1599502 = (ref_1516186 & 0xFFFFFFFF) # MOV operation
ref_1599504 = (((ref_1599502 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_1599505 = (((ref_1599502 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_1599506 = (((ref_1599502 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_1599507 = ((ref_1599502 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_1610618 = (ref_1432858 & 0xFFFFFFFF) # MOV operation
ref_1693934 = (ref_1610618 & 0xFFFFFFFF) # MOV operation
ref_1693936 = (((ref_1693934 & 0xFFFFFFFF) >> 24) & 0xFF) # Byte reference - MOV operation
ref_1693937 = (((ref_1693934 & 0xFFFFFFFF) >> 16) & 0xFF) # Byte reference - MOV operation
ref_1693938 = (((ref_1693934 & 0xFFFFFFFF) >> 8) & 0xFF) # Byte reference - MOV operation
ref_1693939 = ((ref_1693934 & 0xFFFFFFFF) & 0xFF) # Byte reference - MOV operation
ref_1788462 = ((((((((ref_1599504) << 8 | ref_1599505) << 8 | ref_1599506) << 8 | ref_1599507) << 8 | ref_1693936) << 8 | ref_1693937) << 8 | ref_1693938) << 8 | ref_1693939) # MOV operation
ref_1855172 = ref_627143 # MOV operation
ref_1899654 = ref_527106 # MOV operation
ref_1905186 = ref_1855172 # MOV operation
ref_1905190 = ref_1899654 # MOV operation
ref_1905192 = ((ref_1905190 + ref_1905186) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_1916314 = ref_1905192 # MOV operation
ref_1916320 = (0x3F & ref_1916314) # AND operation
ref_1921869 = ref_1916320 # MOV operation
ref_1921883 = ((ref_1921869 << (0x4 & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_1927440 = ref_1788462 # MOV operation
ref_1927444 = ref_1921883 # MOV operation
ref_1927446 = (ref_1927444 | ref_1927440) # OR operation
ref_1933003 = ref_1927446 # MOV operation
ref_1933005 = ((ref_1933003 >> 56) & 0xFF) # Byte reference - MOV operation
ref_1933006 = ((ref_1933003 >> 48) & 0xFF) # Byte reference - MOV operation
ref_1933007 = ((ref_1933003 >> 40) & 0xFF) # Byte reference - MOV operation
ref_1933008 = ((ref_1933003 >> 32) & 0xFF) # Byte reference - MOV operation
ref_1933009 = ((ref_1933003 >> 24) & 0xFF) # Byte reference - MOV operation
ref_1933010 = ((ref_1933003 >> 16) & 0xFF) # Byte reference - MOV operation
ref_1933011 = ((ref_1933003 >> 8) & 0xFF) # Byte reference - MOV operation
ref_1933012 = (ref_1933003 & 0xFF) # Byte reference - MOV operation
ref_2088537 = ref_1933007 # MOVZX operation
ref_2099637 = (ref_2088537 & 0xFF) # MOVZX operation
ref_2177425 = ref_1933011 # MOVZX operation
ref_2255201 = (ref_2177425 & 0xFF) # MOVZX operation
ref_2255203 = (ref_2255201 & 0xFF) # Byte reference - MOV operation
ref_2266313 = (ref_2099637 & 0xFF) # MOVZX operation
ref_2344089 = (ref_2266313 & 0xFF) # MOVZX operation
ref_2344091 = (ref_2344089 & 0xFF) # Byte reference - MOV operation
ref_2427465 = ref_527106 # MOV operation
ref_2471947 = ref_627143 # MOV operation
ref_2477479 = ref_2427465 # MOV operation
ref_2477483 = ref_2471947 # MOV operation
ref_2477485 = (ref_2477483 & ref_2477479) # AND operation
ref_2488606 = ref_2477485 # MOV operation
ref_2488612 = (0xF & ref_2488606) # AND operation
ref_2499733 = ref_2488612 # MOV operation
ref_2499739 = (0x1 | ref_2499733) # OR operation
ref_2544246 = ref_1271741 # MOV operation
ref_2588728 = ((((((((ref_1933005) << 8 | ref_1933006) << 8 | ref_2255203) << 8 | ref_1933008) << 8 | ref_1933009) << 8 | ref_1933010) << 8 | ref_2344091) << 8 | ref_1933012) # MOV operation
ref_2594260 = ref_2544246 # MOV operation
ref_2594264 = ref_2588728 # MOV operation
ref_2594266 = ((ref_2594264 + ref_2594260) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_2599816 = ref_2594266 # MOV operation
ref_2599828 = ref_2499739 # MOV operation
ref_2599830 = ((ref_2599816 << ((ref_2599828 & 0xFF) & 0x3F)) & 0xFFFFFFFFFFFFFFFF) # SHL operation
ref_2644337 = ref_1271741 # MOV operation
ref_2688819 = ((((((((ref_1933005) << 8 | ref_1933006) << 8 | ref_2255203) << 8 | ref_1933008) << 8 | ref_1933009) << 8 | ref_1933010) << 8 | ref_2344091) << 8 | ref_1933012) # MOV operation
ref_2694351 = ref_2644337 # MOV operation
ref_2694355 = ref_2688819 # MOV operation
ref_2694357 = ((ref_2694355 + ref_2694351) & 0xFFFFFFFFFFFFFFFF) # ADD operation
ref_2738865 = ref_527106 # MOV operation
ref_2783347 = ref_627143 # MOV operation
ref_2788879 = ref_2738865 # MOV operation
ref_2788883 = ref_2783347 # MOV operation
ref_2788885 = (ref_2788883 & ref_2788879) # AND operation
ref_2800006 = ref_2788885 # MOV operation
ref_2800012 = (0xF & ref_2800006) # AND operation
ref_2811133 = ref_2800012 # MOV operation
ref_2811139 = (0x1 | ref_2811133) # OR operation
ref_2822264 = ref_2811139 # MOV operation
ref_2822266 = ((0x40 - ref_2822264) & 0xFFFFFFFFFFFFFFFF) # SUB operation
ref_2822274 = ref_2822266 # MOV operation
ref_2827826 = ref_2694357 # MOV operation
ref_2827830 = ref_2822274 # MOV operation
ref_2827832 = (ref_2827830 & 0xFFFFFFFF) # MOV operation
ref_2827834 = (ref_2827826 >> ((ref_2827832 & 0xFF) & 0x3F)) # SHR operation
ref_2827841 = ref_2827834 # MOV operation
ref_2833393 = ref_2599830 # MOV operation
ref_2833397 = ref_2827841 # MOV operation
ref_2833399 = (ref_2833397 | ref_2833393) # OR operation
ref_2838956 = ref_2833399 # MOV operation
ref_2850063 = ref_2838956 # MOV operation
ref_2850065 = ref_2850063 # MOV operation

print ref_2850065 & 0xffffffffffffffff
