Fixture 155
long dependency chain
C · 3 functions · 4 lanes · 11 of 12 function-lanes behave identically
One lane has a function that returns a different result after decompilation: clang-O2 (2/3).
Scale stress: dependency-chain length.
chain155_scalar is 320 arithmetic steps in a row, each one consuming the result of the previous one. There is no parallelism to find and no loop to roll up: the value at the end depends on every step in order, so a single dropped, reordered or width-truncated step changes the answer. Expression-tree builders that grow a term per step, and simplifiers that try to normalise the whole chain, are quadratic here.
chain155_signed runs 256 steps through an int32_t carrier with every operation routed through uint32_t, so the widths keep changing while the arithmetic stays defined. chain155_buffered threads 192 steps through a 16-slot snapshot of a caller-owned buffer.
Shift counts are constants in 1..31 and all wrapping goes through unsigned, so nothing here is undefined.
#include <stdint.h>
/* Scale stress: dependency-chain length.
*
* `chain155_scalar` is 320 arithmetic steps in a row, each one consuming
* the result of the previous one. There is no parallelism to find and no
* loop to roll up: the value at the end depends on every step in order, so
* a single dropped, reordered or width-truncated step changes the answer.
* Expression-tree builders that grow a term per step, and simplifiers that
* try to normalise the whole chain, are quadratic here.
*
* `chain155_signed` runs 256 steps through an int32_t carrier with every
* operation routed through uint32_t, so the widths keep changing while the
* arithmetic stays defined. `chain155_buffered` threads 192 steps through a
* 16-slot snapshot of a caller-owned buffer.
*
* Shift counts are constants in 1..31 and all wrapping goes through
* unsigned, so nothing here is undefined. */
#define CHAIN155_SLOTS 16
#define CHAIN155_SCALAR_STEPS 320
#define CHAIN155_SIGNED_STEPS 256
#define CHAIN155_BUFFER_STEPS 192
__attribute__((noinline)) uint32_t chain155_scalar(uint32_t value) {
uint32_t acc = value ^ 0x9E3779B9u;
acc = acc * 1103515245u + 0x9E3779B1u;
acc ^= acc >> 2u;
acc = (acc << 3u) | (acc >> 29u);
acc += 0x78DDE6C4u;
acc ^= 0x17156075u;
acc = (acc >> 6u) + (acc << 26u);
acc = acc * 1103515413u + 0x538453D7u;
acc ^= acc >> 8u;
acc = (acc << 9u) | (acc >> 23u);
acc += 0x2E2AC0EAu;
acc ^= 0xCC623A9Bu;
acc = (acc >> 12u) + (acc << 20u);
acc = acc * 1103515581u + 0x08D12DFDu;
acc ^= acc >> 14u;
acc = (acc << 15u) | (acc >> 17u);
acc += 0xE3779B10u;
acc ^= 0x81AF14C1u;
acc = (acc >> 18u) + (acc << 14u);
acc = acc * 1103515749u + 0xBE1E0823u;
acc ^= acc >> 20u;
acc = (acc << 21u) | (acc >> 11u);
acc += 0x98C47536u;
acc ^= 0x36FBEEE7u;
acc = (acc >> 24u) + (acc << 8u);
acc = acc * 1103515917u + 0x736AE249u;
acc ^= acc >> 26u;
acc = (acc << 27u) | (acc >> 5u);
acc += 0x4E114F5Cu;
acc ^= 0xEC48C90Du;
acc = (acc >> 30u) + (acc << 2u);
acc = acc * 1103516085u + 0x28B7BC6Fu;
acc ^= acc >> 1u;
acc = (acc << 2u) | (acc >> 30u);
acc += 0x035E2982u;
acc ^= 0xA195A333u;
acc = (acc >> 5u) + (acc << 27u);
acc = acc * 1103516253u + 0xDE049695u;
acc ^= acc >> 7u;
acc = (acc << 8u) | (acc >> 24u);
acc += 0xB8AB03A8u;
acc ^= 0x56E27D59u;
acc = (acc >> 11u) + (acc << 21u);
acc = acc * 1103516421u + 0x935170BBu;
acc ^= acc >> 13u;
acc = (acc << 14u) | (acc >> 18u);
acc += 0x6DF7DDCEu;
acc ^= 0x0C2F577Fu;
acc = (acc >> 17u) + (acc << 15u);
acc = acc * 1103516589u + 0x489E4AE1u;
acc ^= acc >> 19u;
acc = (acc << 20u) | (acc >> 12u);
acc += 0x2344B7F4u;
acc ^= 0xC17C31A5u;
acc = (acc >> 23u) + (acc << 9u);
acc = acc * 1103516757u + 0xFDEB2507u;
acc ^= acc >> 25u;
acc = (acc << 26u) | (acc >> 6u);
acc += 0xD891921Au;
acc ^= 0x76C90BCBu;
acc = (acc >> 29u) + (acc << 3u);
acc = acc * 1103516925u + 0xB337FF2Du;
acc ^= acc >> 31u;
acc = (acc << 1u) | (acc >> 31u);
acc += 0x8DDE6C40u;
acc ^= 0x2C15E5F1u;
acc = (acc >> 4u) + (acc << 28u);
acc = acc * 1103517093u + 0x6884D953u;
acc ^= acc >> 6u;
acc = (acc << 7u) | (acc >> 25u);
acc += 0x432B4666u;
acc ^= 0xE162C017u;
acc = (acc >> 10u) + (acc << 22u);
acc = acc * 1103517261u + 0x1DD1B379u;
acc ^= acc >> 12u;
acc = (acc << 13u) | (acc >> 19u);
acc += 0xF878208Cu;
acc ^= 0x96AF9A3Du;
acc = (acc >> 16u) + (acc << 16u);
acc = acc * 1103517429u + 0xD31E8D9Fu;
acc ^= acc >> 18u;
acc = (acc << 19u) | (acc >> 13u);
acc += 0xADC4FAB2u;
acc ^= 0x4BFC7463u;
acc = (acc >> 22u) + (acc << 10u);
acc = acc * 1103517597u + 0x886B67C5u;
acc ^= acc >> 24u;
acc = (acc << 25u) | (acc >> 7u);
acc += 0x6311D4D8u;
acc ^= 0x01494E89u;
acc = (acc >> 28u) + (acc << 4u);
acc = acc * 1103517765u + 0x3DB841EBu;
acc ^= acc >> 30u;
acc = (acc << 31u) | (acc >> 1u);
acc += 0x185EAEFEu;
acc ^= 0xB69628AFu;
acc = (acc >> 3u) + (acc << 29u);
acc = acc * 1103517933u + 0xF3051C11u;
acc ^= acc >> 5u;
acc = (acc << 6u) | (acc >> 26u);
acc += 0xCDAB8924u;
acc ^= 0x6BE302D5u;
acc = (acc >> 9u) + (acc << 23u);
acc = acc * 1103518101u + 0xA851F637u;
acc ^= acc >> 11u;
acc = (acc << 12u) | (acc >> 20u);
acc += 0x82F8634Au;
acc ^= 0x212FDCFBu;
acc = (acc >> 15u) + (acc << 17u);
acc = acc * 1103518269u + 0x5D9ED05Du;
acc ^= acc >> 17u;
acc = (acc << 18u) | (acc >> 14u);
acc += 0x38453D70u;
acc ^= 0xD67CB721u;
acc = (acc >> 21u) + (acc << 11u);
acc = acc * 1103518437u + 0x12EBAA83u;
acc ^= acc >> 23u;
acc = (acc << 24u) | (acc >> 8u);
acc += 0xED921796u;
acc ^= 0x8BC99147u;
acc = (acc >> 27u) + (acc << 5u);
acc = acc * 1103518605u + 0xC83884A9u;
acc ^= acc >> 29u;
acc = (acc << 30u) | (acc >> 2u);
acc += 0xA2DEF1BCu;
acc ^= 0x41166B6Du;
acc = (acc >> 2u) + (acc << 30u);
acc = acc * 1103518773u + 0x7D855ECFu;
acc ^= acc >> 4u;
acc = (acc << 5u) | (acc >> 27u);
acc += 0x582BCBE2u;
acc ^= 0xF6634593u;
acc = (acc >> 8u) + (acc << 24u);
acc = acc * 1103518941u + 0x32D238F5u;
acc ^= acc >> 10u;
acc = (acc << 11u) | (acc >> 21u);
acc += 0x0D78A608u;
acc ^= 0xABB01FB9u;
acc = (acc >> 14u) + (acc << 18u);
acc = acc * 1103519109u + 0xE81F131Bu;
acc ^= acc >> 16u;
acc = (acc << 17u) | (acc >> 15u);
acc += 0xC2C5802Eu;
acc ^= 0x60FCF9DFu;
acc = (acc >> 20u) + (acc << 12u);
acc = acc * 1103519277u + 0x9D6BED41u;
acc ^= acc >> 22u;
acc = (acc << 23u) | (acc >> 9u);
acc += 0x78125A54u;
acc ^= 0x1649D405u;
acc = (acc >> 26u) + (acc << 6u);
acc = acc * 1103519445u + 0x52B8C767u;
acc ^= acc >> 28u;
acc = (acc << 29u) | (acc >> 3u);
acc += 0x2D5F347Au;
acc ^= 0xCB96AE2Bu;
acc = (acc >> 1u) + (acc << 31u);
acc = acc * 1103519613u + 0x0805A18Du;
acc ^= acc >> 3u;
acc = (acc << 4u) | (acc >> 28u);
acc += 0xE2AC0EA0u;
acc ^= 0x80E38851u;
acc = (acc >> 7u) + (acc << 25u);
acc = acc * 1103519781u + 0xBD527BB3u;
acc ^= acc >> 9u;
acc = (acc << 10u) | (acc >> 22u);
acc += 0x97F8E8C6u;
acc ^= 0x36306277u;
acc = (acc >> 13u) + (acc << 19u);
acc = acc * 1103519949u + 0x729F55D9u;
acc ^= acc >> 15u;
acc = (acc << 16u) | (acc >> 16u);
acc += 0x4D45C2ECu;
acc ^= 0xEB7D3C9Du;
acc = (acc >> 19u) + (acc << 13u);
acc = acc * 1103520117u + 0x27EC2FFFu;
acc ^= acc >> 21u;
acc = (acc << 22u) | (acc >> 10u);
acc += 0x02929D12u;
acc ^= 0xA0CA16C3u;
acc = (acc >> 25u) + (acc << 7u);
acc = acc * 1103520285u + 0xDD390A25u;
acc ^= acc >> 27u;
acc = (acc << 28u) | (acc >> 4u);
acc += 0xB7DF7738u;
acc ^= 0x5616F0E9u;
acc = (acc >> 31u) + (acc << 1u);
acc = acc * 1103520453u + 0x9285E44Bu;
acc ^= acc >> 2u;
acc = (acc << 3u) | (acc >> 29u);
acc += 0x6D2C515Eu;
acc ^= 0x0B63CB0Fu;
acc = (acc >> 6u) + (acc << 26u);
acc = acc * 1103520621u + 0x47D2BE71u;
acc ^= acc >> 8u;
acc = (acc << 9u) | (acc >> 23u);
acc += 0x22792B84u;
acc ^= 0xC0B0A535u;
acc = (acc >> 12u) + (acc << 20u);
acc = acc * 1103520789u + 0xFD1F9897u;
acc ^= acc >> 14u;
acc = (acc << 15u) | (acc >> 17u);
acc += 0xD7C605AAu;
acc ^= 0x75FD7F5Bu;
acc = (acc >> 18u) + (acc << 14u);
acc = acc * 1103520957u + 0xB26C72BDu;
acc ^= acc >> 20u;
acc = (acc << 21u) | (acc >> 11u);
acc += 0x8D12DFD0u;
acc ^= 0x2B4A5981u;
acc = (acc >> 24u) + (acc << 8u);
acc = acc * 1103521125u + 0x67B94CE3u;
acc ^= acc >> 26u;
acc = (acc << 27u) | (acc >> 5u);
acc += 0x425FB9F6u;
acc ^= 0xE09733A7u;
acc = (acc >> 30u) + (acc << 2u);
acc = acc * 1103521293u + 0x1D062709u;
acc ^= acc >> 1u;
acc = (acc << 2u) | (acc >> 30u);
acc += 0xF7AC941Cu;
acc ^= 0x95E40DCDu;
acc = (acc >> 5u) + (acc << 27u);
acc = acc * 1103521461u + 0xD253012Fu;
acc ^= acc >> 7u;
acc = (acc << 8u) | (acc >> 24u);
acc += 0xACF96E42u;
acc ^= 0x4B30E7F3u;
acc = (acc >> 11u) + (acc << 21u);
acc = acc * 1103521629u + 0x879FDB55u;
acc ^= acc >> 13u;
acc = (acc << 14u) | (acc >> 18u);
acc += 0x62464868u;
acc ^= 0x007DC219u;
acc = (acc >> 17u) + (acc << 15u);
acc = acc * 1103521797u + 0x3CECB57Bu;
acc ^= acc >> 19u;
acc = (acc << 20u) | (acc >> 12u);
acc += 0x1793228Eu;
acc ^= 0xB5CA9C3Fu;
acc = (acc >> 23u) + (acc << 9u);
acc = acc * 1103521965u + 0xF2398FA1u;
acc ^= acc >> 25u;
acc = (acc << 26u) | (acc >> 6u);
acc += 0xCCDFFCB4u;
acc ^= 0x6B177665u;
acc = (acc >> 29u) + (acc << 3u);
acc = acc * 1103522133u + 0xA78669C7u;
acc ^= acc >> 31u;
acc = (acc << 1u) | (acc >> 31u);
acc += 0x822CD6DAu;
acc ^= 0x2064508Bu;
acc = (acc >> 4u) + (acc << 28u);
acc = acc * 1103522301u + 0x5CD343EDu;
acc ^= acc >> 6u;
acc = (acc << 7u) | (acc >> 25u);
acc += 0x3779B100u;
acc ^= 0xD5B12AB1u;
acc = (acc >> 10u) + (acc << 22u);
acc = acc * 1103522469u + 0x12201E13u;
acc ^= acc >> 12u;
acc = (acc << 13u) | (acc >> 19u);
acc += 0xECC68B26u;
acc ^= 0x8AFE04D7u;
acc = (acc >> 16u) + (acc << 16u);
acc = acc * 1103522637u + 0xC76CF839u;
acc ^= acc >> 18u;
acc = (acc << 19u) | (acc >> 13u);
acc += 0xA213654Cu;
acc ^= 0x404ADEFDu;
acc = (acc >> 22u) + (acc << 10u);
acc = acc * 1103522805u + 0x7CB9D25Fu;
acc ^= acc >> 24u;
acc = (acc << 25u) | (acc >> 7u);
acc += 0x57603F72u;
acc ^= 0xF597B923u;
acc = (acc >> 28u) + (acc << 4u);
acc = acc * 1103522973u + 0x3206AC85u;
acc ^= acc >> 30u;
acc = (acc << 31u) | (acc >> 1u);
acc += 0x0CAD1998u;
acc ^= 0xAAE49349u;
acc = (acc >> 3u) + (acc << 29u);
acc = acc * 1103523141u + 0xE75386ABu;
acc ^= acc >> 5u;
acc = (acc << 6u) | (acc >> 26u);
acc += 0xC1F9F3BEu;
acc ^= 0x60316D6Fu;
acc = (acc >> 9u) + (acc << 23u);
acc = acc * 1103523309u + 0x9CA060D1u;
acc ^= acc >> 11u;
acc = (acc << 12u) | (acc >> 20u);
acc += 0x7746CDE4u;
acc ^= 0x157E4795u;
acc = (acc >> 15u) + (acc << 17u);
acc = acc * 1103523477u + 0x51ED3AF7u;
acc ^= acc >> 17u;
acc = (acc << 18u) | (acc >> 14u);
acc += 0x2C93A80Au;
acc ^= 0xCACB21BBu;
acc = (acc >> 21u) + (acc << 11u);
acc = acc * 1103523645u + 0x073A151Du;
acc ^= acc >> 23u;
acc = (acc << 24u) | (acc >> 8u);
acc += 0xE1E08230u;
acc ^= 0x8017FBE1u;
acc = (acc >> 27u) + (acc << 5u);
acc = acc * 1103523813u + 0xBC86EF43u;
acc ^= acc >> 29u;
acc = (acc << 30u) | (acc >> 2u);
acc += 0x972D5C56u;
acc ^= 0x3564D607u;
acc = (acc >> 2u) + (acc << 30u);
acc = acc * 1103523981u + 0x71D3C969u;
acc ^= acc >> 4u;
acc = (acc << 5u) | (acc >> 27u);
acc += 0x4C7A367Cu;
acc ^= 0xEAB1B02Du;
acc = (acc >> 8u) + (acc << 24u);
acc = acc * 1103524149u + 0x2720A38Fu;
acc ^= acc >> 10u;
return acc + CHAIN155_SCALAR_STEPS;
}
__attribute__((noinline)) int32_t chain155_signed(int32_t value) {
int32_t step = value;
step = (int32_t)((uint32_t)step * 1103515245u + 0x9E3779B1u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 2u));
step = (int32_t)(((uint32_t)step << 3u) | ((uint32_t)step >> 29u));
step = (int32_t)((uint32_t)step + 0x78DDE6C4u);
step = (int32_t)((uint32_t)step ^ 0x17156075u);
step = (int32_t)(((uint32_t)step >> 6u) + ((uint32_t)step << 26u));
step = (int32_t)((uint32_t)step * 1103515413u + 0x538453D7u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 8u));
step = (int32_t)(((uint32_t)step << 9u) | ((uint32_t)step >> 23u));
step = (int32_t)((uint32_t)step + 0x2E2AC0EAu);
step = (int32_t)((uint32_t)step ^ 0xCC623A9Bu);
step = (int32_t)(((uint32_t)step >> 12u) + ((uint32_t)step << 20u));
step = (int32_t)((uint32_t)step * 1103515581u + 0x08D12DFDu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 14u));
step = (int32_t)(((uint32_t)step << 15u) | ((uint32_t)step >> 17u));
step = (int32_t)((uint32_t)step + 0xE3779B10u);
step = (int32_t)((uint32_t)step ^ 0x81AF14C1u);
step = (int32_t)(((uint32_t)step >> 18u) + ((uint32_t)step << 14u));
step = (int32_t)((uint32_t)step * 1103515749u + 0xBE1E0823u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 20u));
step = (int32_t)(((uint32_t)step << 21u) | ((uint32_t)step >> 11u));
step = (int32_t)((uint32_t)step + 0x98C47536u);
step = (int32_t)((uint32_t)step ^ 0x36FBEEE7u);
step = (int32_t)(((uint32_t)step >> 24u) + ((uint32_t)step << 8u));
step = (int32_t)((uint32_t)step * 1103515917u + 0x736AE249u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 26u));
step = (int32_t)(((uint32_t)step << 27u) | ((uint32_t)step >> 5u));
step = (int32_t)((uint32_t)step + 0x4E114F5Cu);
step = (int32_t)((uint32_t)step ^ 0xEC48C90Du);
step = (int32_t)(((uint32_t)step >> 30u) + ((uint32_t)step << 2u));
step = (int32_t)((uint32_t)step * 1103516085u + 0x28B7BC6Fu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 1u));
step = (int32_t)(((uint32_t)step << 2u) | ((uint32_t)step >> 30u));
step = (int32_t)((uint32_t)step + 0x035E2982u);
step = (int32_t)((uint32_t)step ^ 0xA195A333u);
step = (int32_t)(((uint32_t)step >> 5u) + ((uint32_t)step << 27u));
step = (int32_t)((uint32_t)step * 1103516253u + 0xDE049695u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 7u));
step = (int32_t)(((uint32_t)step << 8u) | ((uint32_t)step >> 24u));
step = (int32_t)((uint32_t)step + 0xB8AB03A8u);
step = (int32_t)((uint32_t)step ^ 0x56E27D59u);
step = (int32_t)(((uint32_t)step >> 11u) + ((uint32_t)step << 21u));
step = (int32_t)((uint32_t)step * 1103516421u + 0x935170BBu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 13u));
step = (int32_t)(((uint32_t)step << 14u) | ((uint32_t)step >> 18u));
step = (int32_t)((uint32_t)step + 0x6DF7DDCEu);
step = (int32_t)((uint32_t)step ^ 0x0C2F577Fu);
step = (int32_t)(((uint32_t)step >> 17u) + ((uint32_t)step << 15u));
step = (int32_t)((uint32_t)step * 1103516589u + 0x489E4AE1u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 19u));
step = (int32_t)(((uint32_t)step << 20u) | ((uint32_t)step >> 12u));
step = (int32_t)((uint32_t)step + 0x2344B7F4u);
step = (int32_t)((uint32_t)step ^ 0xC17C31A5u);
step = (int32_t)(((uint32_t)step >> 23u) + ((uint32_t)step << 9u));
step = (int32_t)((uint32_t)step * 1103516757u + 0xFDEB2507u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 25u));
step = (int32_t)(((uint32_t)step << 26u) | ((uint32_t)step >> 6u));
step = (int32_t)((uint32_t)step + 0xD891921Au);
step = (int32_t)((uint32_t)step ^ 0x76C90BCBu);
step = (int32_t)(((uint32_t)step >> 29u) + ((uint32_t)step << 3u));
step = (int32_t)((uint32_t)step * 1103516925u + 0xB337FF2Du);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 31u));
step = (int32_t)(((uint32_t)step << 1u) | ((uint32_t)step >> 31u));
step = (int32_t)((uint32_t)step + 0x8DDE6C40u);
step = (int32_t)((uint32_t)step ^ 0x2C15E5F1u);
step = (int32_t)(((uint32_t)step >> 4u) + ((uint32_t)step << 28u));
step = (int32_t)((uint32_t)step * 1103517093u + 0x6884D953u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 6u));
step = (int32_t)(((uint32_t)step << 7u) | ((uint32_t)step >> 25u));
step = (int32_t)((uint32_t)step + 0x432B4666u);
step = (int32_t)((uint32_t)step ^ 0xE162C017u);
step = (int32_t)(((uint32_t)step >> 10u) + ((uint32_t)step << 22u));
step = (int32_t)((uint32_t)step * 1103517261u + 0x1DD1B379u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 12u));
step = (int32_t)(((uint32_t)step << 13u) | ((uint32_t)step >> 19u));
step = (int32_t)((uint32_t)step + 0xF878208Cu);
step = (int32_t)((uint32_t)step ^ 0x96AF9A3Du);
step = (int32_t)(((uint32_t)step >> 16u) + ((uint32_t)step << 16u));
step = (int32_t)((uint32_t)step * 1103517429u + 0xD31E8D9Fu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 18u));
step = (int32_t)(((uint32_t)step << 19u) | ((uint32_t)step >> 13u));
step = (int32_t)((uint32_t)step + 0xADC4FAB2u);
step = (int32_t)((uint32_t)step ^ 0x4BFC7463u);
step = (int32_t)(((uint32_t)step >> 22u) + ((uint32_t)step << 10u));
step = (int32_t)((uint32_t)step * 1103517597u + 0x886B67C5u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 24u));
step = (int32_t)(((uint32_t)step << 25u) | ((uint32_t)step >> 7u));
step = (int32_t)((uint32_t)step + 0x6311D4D8u);
step = (int32_t)((uint32_t)step ^ 0x01494E89u);
step = (int32_t)(((uint32_t)step >> 28u) + ((uint32_t)step << 4u));
step = (int32_t)((uint32_t)step * 1103517765u + 0x3DB841EBu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 30u));
step = (int32_t)(((uint32_t)step << 31u) | ((uint32_t)step >> 1u));
step = (int32_t)((uint32_t)step + 0x185EAEFEu);
step = (int32_t)((uint32_t)step ^ 0xB69628AFu);
step = (int32_t)(((uint32_t)step >> 3u) + ((uint32_t)step << 29u));
step = (int32_t)((uint32_t)step * 1103517933u + 0xF3051C11u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 5u));
step = (int32_t)(((uint32_t)step << 6u) | ((uint32_t)step >> 26u));
step = (int32_t)((uint32_t)step + 0xCDAB8924u);
step = (int32_t)((uint32_t)step ^ 0x6BE302D5u);
step = (int32_t)(((uint32_t)step >> 9u) + ((uint32_t)step << 23u));
step = (int32_t)((uint32_t)step * 1103518101u + 0xA851F637u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 11u));
step = (int32_t)(((uint32_t)step << 12u) | ((uint32_t)step >> 20u));
step = (int32_t)((uint32_t)step + 0x82F8634Au);
step = (int32_t)((uint32_t)step ^ 0x212FDCFBu);
step = (int32_t)(((uint32_t)step >> 15u) + ((uint32_t)step << 17u));
step = (int32_t)((uint32_t)step * 1103518269u + 0x5D9ED05Du);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 17u));
step = (int32_t)(((uint32_t)step << 18u) | ((uint32_t)step >> 14u));
step = (int32_t)((uint32_t)step + 0x38453D70u);
step = (int32_t)((uint32_t)step ^ 0xD67CB721u);
step = (int32_t)(((uint32_t)step >> 21u) + ((uint32_t)step << 11u));
step = (int32_t)((uint32_t)step * 1103518437u + 0x12EBAA83u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 23u));
step = (int32_t)(((uint32_t)step << 24u) | ((uint32_t)step >> 8u));
step = (int32_t)((uint32_t)step + 0xED921796u);
step = (int32_t)((uint32_t)step ^ 0x8BC99147u);
step = (int32_t)(((uint32_t)step >> 27u) + ((uint32_t)step << 5u));
step = (int32_t)((uint32_t)step * 1103518605u + 0xC83884A9u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 29u));
step = (int32_t)(((uint32_t)step << 30u) | ((uint32_t)step >> 2u));
step = (int32_t)((uint32_t)step + 0xA2DEF1BCu);
step = (int32_t)((uint32_t)step ^ 0x41166B6Du);
step = (int32_t)(((uint32_t)step >> 2u) + ((uint32_t)step << 30u));
step = (int32_t)((uint32_t)step * 1103518773u + 0x7D855ECFu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 4u));
step = (int32_t)(((uint32_t)step << 5u) | ((uint32_t)step >> 27u));
step = (int32_t)((uint32_t)step + 0x582BCBE2u);
step = (int32_t)((uint32_t)step ^ 0xF6634593u);
step = (int32_t)(((uint32_t)step >> 8u) + ((uint32_t)step << 24u));
step = (int32_t)((uint32_t)step * 1103518941u + 0x32D238F5u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 10u));
step = (int32_t)(((uint32_t)step << 11u) | ((uint32_t)step >> 21u));
step = (int32_t)((uint32_t)step + 0x0D78A608u);
step = (int32_t)((uint32_t)step ^ 0xABB01FB9u);
step = (int32_t)(((uint32_t)step >> 14u) + ((uint32_t)step << 18u));
step = (int32_t)((uint32_t)step * 1103519109u + 0xE81F131Bu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 16u));
step = (int32_t)(((uint32_t)step << 17u) | ((uint32_t)step >> 15u));
step = (int32_t)((uint32_t)step + 0xC2C5802Eu);
step = (int32_t)((uint32_t)step ^ 0x60FCF9DFu);
step = (int32_t)(((uint32_t)step >> 20u) + ((uint32_t)step << 12u));
step = (int32_t)((uint32_t)step * 1103519277u + 0x9D6BED41u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 22u));
step = (int32_t)(((uint32_t)step << 23u) | ((uint32_t)step >> 9u));
step = (int32_t)((uint32_t)step + 0x78125A54u);
step = (int32_t)((uint32_t)step ^ 0x1649D405u);
step = (int32_t)(((uint32_t)step >> 26u) + ((uint32_t)step << 6u));
step = (int32_t)((uint32_t)step * 1103519445u + 0x52B8C767u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 28u));
step = (int32_t)(((uint32_t)step << 29u) | ((uint32_t)step >> 3u));
step = (int32_t)((uint32_t)step + 0x2D5F347Au);
step = (int32_t)((uint32_t)step ^ 0xCB96AE2Bu);
step = (int32_t)(((uint32_t)step >> 1u) + ((uint32_t)step << 31u));
step = (int32_t)((uint32_t)step * 1103519613u + 0x0805A18Du);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 3u));
step = (int32_t)(((uint32_t)step << 4u) | ((uint32_t)step >> 28u));
step = (int32_t)((uint32_t)step + 0xE2AC0EA0u);
step = (int32_t)((uint32_t)step ^ 0x80E38851u);
step = (int32_t)(((uint32_t)step >> 7u) + ((uint32_t)step << 25u));
step = (int32_t)((uint32_t)step * 1103519781u + 0xBD527BB3u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 9u));
step = (int32_t)(((uint32_t)step << 10u) | ((uint32_t)step >> 22u));
step = (int32_t)((uint32_t)step + 0x97F8E8C6u);
step = (int32_t)((uint32_t)step ^ 0x36306277u);
step = (int32_t)(((uint32_t)step >> 13u) + ((uint32_t)step << 19u));
step = (int32_t)((uint32_t)step * 1103519949u + 0x729F55D9u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 15u));
step = (int32_t)(((uint32_t)step << 16u) | ((uint32_t)step >> 16u));
step = (int32_t)((uint32_t)step + 0x4D45C2ECu);
step = (int32_t)((uint32_t)step ^ 0xEB7D3C9Du);
step = (int32_t)(((uint32_t)step >> 19u) + ((uint32_t)step << 13u));
step = (int32_t)((uint32_t)step * 1103520117u + 0x27EC2FFFu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 21u));
step = (int32_t)(((uint32_t)step << 22u) | ((uint32_t)step >> 10u));
step = (int32_t)((uint32_t)step + 0x02929D12u);
step = (int32_t)((uint32_t)step ^ 0xA0CA16C3u);
step = (int32_t)(((uint32_t)step >> 25u) + ((uint32_t)step << 7u));
step = (int32_t)((uint32_t)step * 1103520285u + 0xDD390A25u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 27u));
step = (int32_t)(((uint32_t)step << 28u) | ((uint32_t)step >> 4u));
step = (int32_t)((uint32_t)step + 0xB7DF7738u);
step = (int32_t)((uint32_t)step ^ 0x5616F0E9u);
step = (int32_t)(((uint32_t)step >> 31u) + ((uint32_t)step << 1u));
step = (int32_t)((uint32_t)step * 1103520453u + 0x9285E44Bu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 2u));
step = (int32_t)(((uint32_t)step << 3u) | ((uint32_t)step >> 29u));
step = (int32_t)((uint32_t)step + 0x6D2C515Eu);
step = (int32_t)((uint32_t)step ^ 0x0B63CB0Fu);
step = (int32_t)(((uint32_t)step >> 6u) + ((uint32_t)step << 26u));
step = (int32_t)((uint32_t)step * 1103520621u + 0x47D2BE71u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 8u));
step = (int32_t)(((uint32_t)step << 9u) | ((uint32_t)step >> 23u));
step = (int32_t)((uint32_t)step + 0x22792B84u);
step = (int32_t)((uint32_t)step ^ 0xC0B0A535u);
step = (int32_t)(((uint32_t)step >> 12u) + ((uint32_t)step << 20u));
step = (int32_t)((uint32_t)step * 1103520789u + 0xFD1F9897u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 14u));
step = (int32_t)(((uint32_t)step << 15u) | ((uint32_t)step >> 17u));
step = (int32_t)((uint32_t)step + 0xD7C605AAu);
step = (int32_t)((uint32_t)step ^ 0x75FD7F5Bu);
step = (int32_t)(((uint32_t)step >> 18u) + ((uint32_t)step << 14u));
step = (int32_t)((uint32_t)step * 1103520957u + 0xB26C72BDu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 20u));
step = (int32_t)(((uint32_t)step << 21u) | ((uint32_t)step >> 11u));
step = (int32_t)((uint32_t)step + 0x8D12DFD0u);
step = (int32_t)((uint32_t)step ^ 0x2B4A5981u);
step = (int32_t)(((uint32_t)step >> 24u) + ((uint32_t)step << 8u));
step = (int32_t)((uint32_t)step * 1103521125u + 0x67B94CE3u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 26u));
step = (int32_t)(((uint32_t)step << 27u) | ((uint32_t)step >> 5u));
step = (int32_t)((uint32_t)step + 0x425FB9F6u);
step = (int32_t)((uint32_t)step ^ 0xE09733A7u);
step = (int32_t)(((uint32_t)step >> 30u) + ((uint32_t)step << 2u));
step = (int32_t)((uint32_t)step * 1103521293u + 0x1D062709u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 1u));
step = (int32_t)(((uint32_t)step << 2u) | ((uint32_t)step >> 30u));
step = (int32_t)((uint32_t)step + 0xF7AC941Cu);
step = (int32_t)((uint32_t)step ^ 0x95E40DCDu);
step = (int32_t)(((uint32_t)step >> 5u) + ((uint32_t)step << 27u));
step = (int32_t)((uint32_t)step * 1103521461u + 0xD253012Fu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 7u));
step = (int32_t)(((uint32_t)step << 8u) | ((uint32_t)step >> 24u));
step = (int32_t)((uint32_t)step + 0xACF96E42u);
step = (int32_t)((uint32_t)step ^ 0x4B30E7F3u);
step = (int32_t)(((uint32_t)step >> 11u) + ((uint32_t)step << 21u));
step = (int32_t)((uint32_t)step * 1103521629u + 0x879FDB55u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 13u));
step = (int32_t)(((uint32_t)step << 14u) | ((uint32_t)step >> 18u));
step = (int32_t)((uint32_t)step + 0x62464868u);
step = (int32_t)((uint32_t)step ^ 0x007DC219u);
step = (int32_t)(((uint32_t)step >> 17u) + ((uint32_t)step << 15u));
step = (int32_t)((uint32_t)step * 1103521797u + 0x3CECB57Bu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 19u));
step = (int32_t)(((uint32_t)step << 20u) | ((uint32_t)step >> 12u));
step = (int32_t)((uint32_t)step + 0x1793228Eu);
step = (int32_t)((uint32_t)step ^ 0xB5CA9C3Fu);
step = (int32_t)(((uint32_t)step >> 23u) + ((uint32_t)step << 9u));
step = (int32_t)((uint32_t)step * 1103521965u + 0xF2398FA1u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 25u));
step = (int32_t)(((uint32_t)step << 26u) | ((uint32_t)step >> 6u));
step = (int32_t)((uint32_t)step + 0xCCDFFCB4u);
step = (int32_t)((uint32_t)step ^ 0x6B177665u);
step = (int32_t)(((uint32_t)step >> 29u) + ((uint32_t)step << 3u));
step = (int32_t)((uint32_t)step * 1103522133u + 0xA78669C7u);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 31u));
step = (int32_t)(((uint32_t)step << 1u) | ((uint32_t)step >> 31u));
step = (int32_t)((uint32_t)step + 0x822CD6DAu);
step = (int32_t)((uint32_t)step ^ 0x2064508Bu);
step = (int32_t)(((uint32_t)step >> 4u) + ((uint32_t)step << 28u));
step = (int32_t)((uint32_t)step * 1103522301u + 0x5CD343EDu);
step = (int32_t)((uint32_t)step ^ ((uint32_t)step >> 6u));
step = (int32_t)(((uint32_t)step << 7u) | ((uint32_t)step >> 25u));
step = (int32_t)((uint32_t)step + 0x3779B100u);
return (int32_t)((uint32_t)step + CHAIN155_SIGNED_STEPS);
}
/* The buffer is snapshotted into a fixed 16-slot local first, so every
* subscript in the chain below is a compile-time constant and no input can
* steer an access. */
__attribute__((noinline)) int32_t
chain155_buffered(int32_t *cells, int32_t slots) {
uint32_t work[CHAIN155_SLOTS];
uint32_t carry = 0x2545F491u;
int32_t index;
if (cells == 0 || slots < 1 || slots > CHAIN155_SLOTS) {
return -1;
}
for (index = 0; index < CHAIN155_SLOTS; ++index) {
work[index] = (index < slots) ? (uint32_t)cells[index] : 0u;
}
carry = carry * 1103515245u + work[0];
carry ^= (work[1] + carry) >> 2u;
carry = (carry << 3u) | (carry >> 29u);
carry = carry * 1103515341u + work[3];
carry ^= (work[4] + carry) >> 5u;
carry = (carry << 6u) | (carry >> 26u);
carry = carry * 1103515437u + work[6];
carry ^= (work[7] + carry) >> 8u;
carry = (carry << 9u) | (carry >> 23u);
carry = carry * 1103515533u + work[9];
carry ^= (work[10] + carry) >> 11u;
carry = (carry << 12u) | (carry >> 20u);
carry = carry * 1103515629u + work[12];
carry ^= (work[13] + carry) >> 14u;
carry = (carry << 15u) | (carry >> 17u);
carry = carry * 1103515725u + work[15];
carry ^= (work[0] + carry) >> 17u;
carry = (carry << 18u) | (carry >> 14u);
carry = carry * 1103515821u + work[2];
carry ^= (work[3] + carry) >> 20u;
carry = (carry << 21u) | (carry >> 11u);
carry = carry * 1103515917u + work[5];
carry ^= (work[6] + carry) >> 23u;
carry = (carry << 24u) | (carry >> 8u);
carry = carry * 1103516013u + work[8];
carry ^= (work[9] + carry) >> 26u;
carry = (carry << 27u) | (carry >> 5u);
carry = carry * 1103516109u + work[11];
carry ^= (work[12] + carry) >> 29u;
carry = (carry << 30u) | (carry >> 2u);
carry = carry * 1103516205u + work[14];
carry ^= (work[15] + carry) >> 1u;
carry = (carry << 2u) | (carry >> 30u);
carry = carry * 1103516301u + work[1];
carry ^= (work[2] + carry) >> 4u;
carry = (carry << 5u) | (carry >> 27u);
carry = carry * 1103516397u + work[4];
carry ^= (work[5] + carry) >> 7u;
carry = (carry << 8u) | (carry >> 24u);
carry = carry * 1103516493u + work[7];
carry ^= (work[8] + carry) >> 10u;
carry = (carry << 11u) | (carry >> 21u);
carry = carry * 1103516589u + work[10];
carry ^= (work[11] + carry) >> 13u;
carry = (carry << 14u) | (carry >> 18u);
carry = carry * 1103516685u + work[13];
carry ^= (work[14] + carry) >> 16u;
carry = (carry << 17u) | (carry >> 15u);
carry = carry * 1103516781u + work[0];
carry ^= (work[1] + carry) >> 19u;
carry = (carry << 20u) | (carry >> 12u);
carry = carry * 1103516877u + work[3];
carry ^= (work[4] + carry) >> 22u;
carry = (carry << 23u) | (carry >> 9u);
carry = carry * 1103516973u + work[6];
carry ^= (work[7] + carry) >> 25u;
carry = (carry << 26u) | (carry >> 6u);
carry = carry * 1103517069u + work[9];
carry ^= (work[10] + carry) >> 28u;
carry = (carry << 29u) | (carry >> 3u);
carry = carry * 1103517165u + work[12];
carry ^= (work[13] + carry) >> 31u;
carry = (carry << 1u) | (carry >> 31u);
carry = carry * 1103517261u + work[15];
carry ^= (work[0] + carry) >> 3u;
carry = (carry << 4u) | (carry >> 28u);
carry = carry * 1103517357u + work[2];
carry ^= (work[3] + carry) >> 6u;
carry = (carry << 7u) | (carry >> 25u);
carry = carry * 1103517453u + work[5];
carry ^= (work[6] + carry) >> 9u;
carry = (carry << 10u) | (carry >> 22u);
carry = carry * 1103517549u + work[8];
carry ^= (work[9] + carry) >> 12u;
carry = (carry << 13u) | (carry >> 19u);
carry = carry * 1103517645u + work[11];
carry ^= (work[12] + carry) >> 15u;
carry = (carry << 16u) | (carry >> 16u);
carry = carry * 1103517741u + work[14];
carry ^= (work[15] + carry) >> 18u;
carry = (carry << 19u) | (carry >> 13u);
carry = carry * 1103517837u + work[1];
carry ^= (work[2] + carry) >> 21u;
carry = (carry << 22u) | (carry >> 10u);
carry = carry * 1103517933u + work[4];
carry ^= (work[5] + carry) >> 24u;
carry = (carry << 25u) | (carry >> 7u);
carry = carry * 1103518029u + work[7];
carry ^= (work[8] + carry) >> 27u;
carry = (carry << 28u) | (carry >> 4u);
carry = carry * 1103518125u + work[10];
carry ^= (work[11] + carry) >> 30u;
carry = (carry << 31u) | (carry >> 1u);
carry = carry * 1103518221u + work[13];
carry ^= (work[14] + carry) >> 2u;
carry = (carry << 3u) | (carry >> 29u);
carry = carry * 1103518317u + work[0];
carry ^= (work[1] + carry) >> 5u;
carry = (carry << 6u) | (carry >> 26u);
carry = carry * 1103518413u + work[3];
carry ^= (work[4] + carry) >> 8u;
carry = (carry << 9u) | (carry >> 23u);
carry = carry * 1103518509u + work[6];
carry ^= (work[7] + carry) >> 11u;
carry = (carry << 12u) | (carry >> 20u);
carry = carry * 1103518605u + work[9];
carry ^= (work[10] + carry) >> 14u;
carry = (carry << 15u) | (carry >> 17u);
carry = carry * 1103518701u + work[12];
carry ^= (work[13] + carry) >> 17u;
carry = (carry << 18u) | (carry >> 14u);
carry = carry * 1103518797u + work[15];
carry ^= (work[0] + carry) >> 20u;
carry = (carry << 21u) | (carry >> 11u);
carry = carry * 1103518893u + work[2];
carry ^= (work[3] + carry) >> 23u;
carry = (carry << 24u) | (carry >> 8u);
carry = carry * 1103518989u + work[5];
carry ^= (work[6] + carry) >> 26u;
carry = (carry << 27u) | (carry >> 5u);
carry = carry * 1103519085u + work[8];
carry ^= (work[9] + carry) >> 29u;
carry = (carry << 30u) | (carry >> 2u);
carry = carry * 1103519181u + work[11];
carry ^= (work[12] + carry) >> 1u;
carry = (carry << 2u) | (carry >> 30u);
carry = carry * 1103519277u + work[14];
carry ^= (work[15] + carry) >> 4u;
carry = (carry << 5u) | (carry >> 27u);
carry = carry * 1103519373u + work[1];
carry ^= (work[2] + carry) >> 7u;
carry = (carry << 8u) | (carry >> 24u);
carry = carry * 1103519469u + work[4];
carry ^= (work[5] + carry) >> 10u;
carry = (carry << 11u) | (carry >> 21u);
carry = carry * 1103519565u + work[7];
carry ^= (work[8] + carry) >> 13u;
carry = (carry << 14u) | (carry >> 18u);
carry = carry * 1103519661u + work[10];
carry ^= (work[11] + carry) >> 16u;
carry = (carry << 17u) | (carry >> 15u);
carry = carry * 1103519757u + work[13];
carry ^= (work[14] + carry) >> 19u;
carry = (carry << 20u) | (carry >> 12u);
carry = carry * 1103519853u + work[0];
carry ^= (work[1] + carry) >> 22u;
carry = (carry << 23u) | (carry >> 9u);
carry = carry * 1103519949u + work[3];
carry ^= (work[4] + carry) >> 25u;
carry = (carry << 26u) | (carry >> 6u);
carry = carry * 1103520045u + work[6];
carry ^= (work[7] + carry) >> 28u;
carry = (carry << 29u) | (carry >> 3u);
carry = carry * 1103520141u + work[9];
carry ^= (work[10] + carry) >> 31u;
carry = (carry << 1u) | (carry >> 31u);
carry = carry * 1103520237u + work[12];
carry ^= (work[13] + carry) >> 3u;
carry = (carry << 4u) | (carry >> 28u);
carry = carry * 1103520333u + work[15];
carry ^= (work[0] + carry) >> 6u;
carry = (carry << 7u) | (carry >> 25u);
carry = carry * 1103520429u + work[2];
carry ^= (work[3] + carry) >> 9u;
carry = (carry << 10u) | (carry >> 22u);
carry = carry * 1103520525u + work[5];
carry ^= (work[6] + carry) >> 12u;
carry = (carry << 13u) | (carry >> 19u);
carry = carry * 1103520621u + work[8];
carry ^= (work[9] + carry) >> 15u;
carry = (carry << 16u) | (carry >> 16u);
carry = carry * 1103520717u + work[11];
carry ^= (work[12] + carry) >> 18u;
carry = (carry << 19u) | (carry >> 13u);
carry = carry * 1103520813u + work[14];
carry ^= (work[15] + carry) >> 21u;
carry = (carry << 22u) | (carry >> 10u);
carry = carry * 1103520909u + work[1];
carry ^= (work[2] + carry) >> 24u;
carry = (carry << 25u) | (carry >> 7u);
carry = carry * 1103521005u + work[4];
carry ^= (work[5] + carry) >> 27u;
carry = (carry << 28u) | (carry >> 4u);
carry = carry * 1103521101u + work[7];
carry ^= (work[8] + carry) >> 30u;
carry = (carry << 31u) | (carry >> 1u);
carry = carry * 1103521197u + work[10];
carry ^= (work[11] + carry) >> 2u;
carry = (carry << 3u) | (carry >> 29u);
carry = carry * 1103521293u + work[13];
carry ^= (work[14] + carry) >> 5u;
carry = (carry << 6u) | (carry >> 26u);
for (index = 0; index < slots; ++index) {
cells[index] = (int32_t)((carry ^ work[index]) & 0x7FFFFFFFu);
carry = carry * 1664525u + 1013904223u;
}
return (int32_t)(carry & 0x00FFFFFFu) + CHAIN155_BUFFER_STEPS;
} Recovered C
Generated by glaurung decompile --style decbench at b47f6b43.
baseline.json records the result after recompiling the C and calling it beside the
original with seeded inputs.
clang -O2
2/3chain155_buffered fail 527 lines
// glaurung: chain155_buffered @ 0x1ea0
__attribute__((no_stack_protector)) int32_t chain155_buffered(int32_t * arg0, int32_t arg1) {
int index;
unsigned int carry;
unsigned char local_c8[200];
long local_d0;
long local_e0;
long local_e8;
long local_f0;
long local_f8;
long rbp;
long ret;
long var1;
long var10;
int var101;
long var109;
int var114;
long var12;
long var122;
int var126;
long var133;
long var136;
int var137;
long var14;
long var144;
long var147;
int var148;
long var155;
int var158;
long var16;
long var165;
long var168;
int var169;
long var176;
long var18;
int var180;
long var188;
int var191;
long var199;
long var2;
long var20;
int var203;
long var210;
int var213;
long var22;
long var220;
int var223;
long var230;
long var233;
int var234;
long var24;
long var241;
int var245;
long var252;
long var255;
int var256;
long var26;
long var263;
int var267;
long var269;
int var279;
long var286;
long var29;
int var290;
long var297;
long var3;
int var300;
long var307;
long var31;
int var310;
long var317;
int var320;
long var327;
long var33;
int var330;
long var337;
long var340;
int var341;
long var348;
long var35;
int var352;
long var359;
long var36;
int var362;
long var370;
int var374;
long var381;
int var385;
long var392;
long var395;
int var396;
long var4;
long var404;
long var407;
int var408;
long var416;
int var420;
long var427;
long var430;
int var431;
long var438;
long var441;
int var442;
long var450;
int var453;
long var460;
int var464;
long var471;
int var475;
long var482;
int var485;
long var492;
int var495;
long var5;
long var50;
long var502;
int var505;
long var512;
int var516;
long var523;
int var526;
int var53;
long var534;
long var537;
int var538;
long var545;
int var549;
long var556;
int var560;
long var567;
long var570;
int var571;
long var578;
long var581;
int var582;
long var589;
int var593;
long var6;
long var600;
int var603;
long var615;
int var616;
long var62;
long var623;
int var626;
long var634;
int var638;
long var646;
int var649;
long var657;
int var66;
int var660;
long var669;
int var672;
long var681;
int var684;
long var692;
int var695;
long var704;
int var707;
long var715;
int var718;
long var726;
int var729;
long var737;
long var74;
int var740;
long var748;
long var749;
long var751;
long var754;
long var757;
long var758;
int var765;
int var77;
int var772;
long var774;
long var775;
long var778;
int var789;
long var8;
long var87;
int var90;
long var97;
ret = 0xffffffff;
if ((arg0 == 0)) {
return ret;
}
if (((unsigned long)((unsigned long)((unsigned int)((arg1 - 17)))) < (unsigned long)(0xfffffff0))) {
return ret;
}
*(long *)((&local_c8[0] + 192)) = rbp;
*(long *)((&local_c8[0] + 184)) = var1;
*(long *)((&local_c8[0] + 176)) = var2;
*(long *)((&local_c8[0] + 168)) = var3;
*(long *)((&local_c8[0] + 160)) = var4;
*(long *)((&local_c8[0] + 152)) = var5;
var6 = (unsigned long)((unsigned int)(*(int *)(((long)arg0))));
*(int *)(&local_c8[0]) = var6;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(1))) {
*(int *)((&local_c8[0] + 4)) = 0;
var8 = 0;
L_2010: ;
*(int *)((&local_c8[0] + 8)) = 0;
var10 = 0;
L_201a: ;
*(int *)((&local_c8[0] + 12)) = 0;
var12 = 0;
L_2025: ;
*(int *)((&local_c8[0] + 16)) = 0;
var14 = 0;
L_202f: ;
local_e0 = var14;
local_f0 = var10;
*(int *)((&local_c8[0] + 20)) = 0;
var10 = 0;
local_d0 = 0;
var16 = rbp;
L_2048: ;
*(int *)((&local_c8[0] + 24)) = 0;
var18 = 0;
L_2052: ;
local_f8 = var18;
*(int *)((&local_c8[0] + 28)) = 0;
var20 = 0;
L_2062: ;
*(int *)((&local_c8[0] + 32)) = 0;
var22 = 0;
L_206c: ;
*(int *)((&local_c8[0] + 36)) = 0;
var24 = 0;
L_2076: ;
*(int *)((&local_c8[0] + 40)) = 0;
var26 = 0;
L_2080: ;
*(long *)((&local_c8[0] + 80)) = var22;
local_e8 = var26;
*(int *)((&local_c8[0] + 44)) = 0;
var26 = 0;
*(long *)((&local_c8[0] + 88)) = 0;
L_2098: ;
*(int *)((&local_c8[0] + 48)) = 0;
var29 = 0;
L_20a3: ;
*(int *)((&local_c8[0] + 52)) = 0;
var31 = 0;
L_20ad: ;
*(int *)((&local_c8[0] + 56)) = 0;
var33 = 0;
L_20b7: ;
var35 = 0;
} else {
var8 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x4))));
*(int *)((&local_c8[0] + 4)) = var8;
if (((unsigned long)((unsigned int)(arg1)) == 2)) {
goto L_2010;
} else {
var10 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x8))));
*(int *)((&local_c8[0] + 8)) = var10;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(3))) {
goto L_201a;
} else {
var12 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0xc))));
*(int *)((&local_c8[0] + 12)) = var12;
if (((unsigned long)((unsigned int)(arg1)) == 4)) {
goto L_2025;
} else {
var14 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x10))));
*(int *)((&local_c8[0] + 16)) = var14;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(5))) {
goto L_202f;
} else {
var16 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x14))));
*(int *)((&local_c8[0] + 20)) = var16;
local_f0 = var10;
local_e0 = var14;
local_d0 = var16;
if (((unsigned long)((unsigned int)(arg1)) == 6)) {
goto L_2048;
} else {
var18 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x18))));
*(int *)((&local_c8[0] + 24)) = var18;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(7))) {
goto L_2052;
} else {
var20 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x1c))));
*(int *)((&local_c8[0] + 28)) = var20;
local_f8 = var18;
if (((unsigned long)((unsigned int)(arg1)) == 8)) {
goto L_2062;
} else {
var22 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x20))));
*(int *)((&local_c8[0] + 32)) = var22;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(9))) {
goto L_206c;
} else {
var24 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x24))));
*(int *)((&local_c8[0] + 36)) = var24;
if (((unsigned long)((unsigned int)(arg1)) == 10)) {
goto L_2076;
} else {
var26 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x28))));
*(int *)((&local_c8[0] + 40)) = var26;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(11))) {
goto L_2080;
} else {
var36 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x2c))));
*(int *)((&local_c8[0] + 44)) = var36;
local_e8 = var26;
*(long *)((&local_c8[0] + 88)) = var36;
*(long *)((&local_c8[0] + 80)) = var22;
if (((unsigned long)((unsigned int)(arg1)) == 12)) {
goto L_2098;
} else {
var26 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x30))));
var29 = var26;
*(int *)((&local_c8[0] + 48)) = var26;
if (((unsigned long)((unsigned long)((unsigned int)(arg1))) <= (unsigned long)(13))) {
goto L_20a3;
} else {
var26 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x34))));
var31 = var26;
*(int *)((&local_c8[0] + 52)) = var26;
if (((unsigned long)((unsigned int)(arg1)) == 14)) {
goto L_20ad;
} else {
var33 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x38))));
*(int *)((&local_c8[0] + 56)) = var33;
if (((unsigned long)((unsigned long)((unsigned int)(*(int *)((&local_c8[0] + 96))))) < (unsigned long)(16))) {
goto L_20b7;
} else {
var35 = (unsigned long)((unsigned int)(*(int *)(((long)arg0 + 0x3c))));
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
*(long *)((&local_c8[0] + 120)) = var8;
var50 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var6 + var8))) + 0x28734fbd))) >> 2))) ^ (unsigned long)((unsigned int)((var6 + 0x28734fbd))))));
var53 = ((((var50 << 3) | ((unsigned long)(var50) >> 29)) * 0x41c64ecd) + var12);
*(long *)((&local_c8[0] + 72)) = var12;
var62 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((local_e0 + (unsigned long)((unsigned int)(var53))))) >> 5))) ^ (unsigned long)((unsigned int)(var53)))));
var66 = ((((var62 << 6) | ((unsigned long)(var62) >> 26)) * 0x41c64f2d) + local_f8);
var74 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var66)) + var20))) >> 8))) ^ (unsigned long)((unsigned int)(var66)))));
var77 = ((((var74 << 9) | ((unsigned long)(var74) >> 23)) * 0x41c64f8d) + var24);
*(long *)((&local_c8[0] + 136)) = var24;
var87 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((local_e8 + (unsigned long)((unsigned int)(var77))))) >> 11))) ^ (unsigned long)((unsigned int)(var77)))));
var90 = ((((var87 << 12) | ((unsigned long)(var87) >> 20)) * 0x41c64fed) + var29);
var97 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var90)) + var31))) >> 14))) ^ (unsigned long)((unsigned int)(var90)))));
var101 = ((((var97 << 15) | ((unsigned long)(var97) >> 17)) * 0x41c6504d) + var35);
var109 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var101)) + var6))) >> 17))) ^ (unsigned long)((unsigned int)(var101)))));
*(long *)((&local_c8[0] + 144)) = var31;
var114 = ((((var109 << 18) | ((unsigned long)(var109) >> 14)) * 0x41c650ad) + local_f0);
var122 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var114)) + var12))) >> 20))) ^ (unsigned long)((unsigned int)(var114)))));
var126 = ((((var122 << 21) | ((unsigned long)(var122) >> 11)) * 0x41c6510d) + local_d0);
var133 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var126)) + local_f8))) >> 23))) ^ (unsigned long)((unsigned int)(var126)))));
var136 = *(long *)((&local_c8[0] + 80));
var137 = ((((var133 << 24) | ((unsigned long)(var133) >> 8)) * 0x41c6516d) + var136);
var144 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var137)) + var24))) >> 26))) ^ (unsigned long)((unsigned int)(var137)))));
var147 = *(long *)((&local_c8[0] + 88));
var148 = ((((var144 << 27) | ((unsigned long)(var144) >> 5)) * 0x41c651cd) + var147);
var155 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var148)) + var29))) >> 29))) ^ (unsigned long)((unsigned int)(var148)))));
var158 = ((((var155 << 30) | ((unsigned long)(var155) >> 2)) * 0x41c6522d) + var33);
var165 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var158)) + var35))) >> 1))) ^ (unsigned long)((unsigned int)(var158)))));
var168 = *(long *)((&local_c8[0] + 120));
var169 = ((((var165 << 2) | ((unsigned long)(var165) >> 30)) * 0x41c6528d) + var168);
var176 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var169)) + local_f0))) >> 4))) ^ (unsigned long)((unsigned int)(var169)))));
var180 = ((((var176 << 5) | ((unsigned long)(var176) >> 27)) * 0x41c652ed) + local_e0);
var188 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var180)) + local_d0))) >> 7))) ^ (unsigned long)((unsigned int)(var180)))));
var191 = ((((var188 << 8) | ((unsigned long)(var188) >> 24)) * 0x41c6534d) + var20);
var199 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var191)) + var136))) >> 10))) ^ (unsigned long)((unsigned int)(var191)))));
var203 = ((((var199 << 11) | ((unsigned long)(var199) >> 21)) * 0x41c653ad) + local_e8);
var210 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var203)) + var147))) >> 13))) ^ (unsigned long)((unsigned int)(var203)))));
var213 = ((((var210 << 14) | ((unsigned long)(var210) >> 18)) * 0x41c6540d) + var31);
var220 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var213)) + var33))) >> 16))) ^ (unsigned long)((unsigned int)(var213)))));
var223 = ((((var220 << 17) | ((unsigned long)(var220) >> 15)) * 0x41c6546d) + var6);
*(long *)((&local_c8[0] + 104)) = var6;
var230 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var223)) + var168))) >> 19))) ^ (unsigned long)((unsigned int)(var223)))));
var233 = *(long *)((&local_c8[0] + 72));
var234 = ((((var230 << 20) | ((unsigned long)(var230) >> 12)) * 0x41c654cd) + var233);
var241 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var234)) + local_e0))) >> 22))) ^ (unsigned long)((unsigned int)(var234)))));
var245 = ((((var241 << 23) | ((unsigned long)(var241) >> 9)) * 0x41c6552d) + local_f8);
var252 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var245)) + var20))) >> 25))) ^ (unsigned long)((unsigned int)(var245)))));
var255 = *(long *)((&local_c8[0] + 136));
var256 = ((((var252 << 26) | ((unsigned long)(var252) >> 6)) * 0x41c6558d) + var255);
var263 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var256)) + local_e8))) >> 28))) ^ (unsigned long)((unsigned int)(var256)))));
*(long *)((&local_c8[0] + 128)) = var29;
var267 = ((((var263 << 29) | ((unsigned long)(var263) >> 3)) * 0x41c655ed) + var29);
var269 = *(long *)((&local_c8[0] + 144));
var279 = ((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var267)) + var269))) >> 31))) ^ (unsigned long)((unsigned int)(var267))))) << 1) | ((unsigned long)((unsigned int)(var267)) >> 31)) & 0xffffffff) * 0x41c6564d) + var35);
var286 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var279)) + var6))) >> 3))) ^ (unsigned long)((unsigned int)(var279)))));
var290 = ((((var286 << 4) | ((unsigned long)(var286) >> 28)) * 0x41c656ad) + local_f0);
var297 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var290)) + var233))) >> 6))) ^ (unsigned long)((unsigned int)(var290)))));
var300 = ((((var297 << 7) | ((unsigned long)(var297) >> 25)) * 0x41c6570d) + local_d0);
var307 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var300)) + local_f8))) >> 9))) ^ (unsigned long)((unsigned int)(var300)))));
var310 = ((((var307 << 10) | ((unsigned long)(var307) >> 22)) * 0x41c6576d) + var136);
var317 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var310)) + var255))) >> 12))) ^ (unsigned long)((unsigned int)(var310)))));
var320 = ((((var317 << 13) | ((unsigned long)(var317) >> 19)) * 0x41c657cd) + var147);
var327 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var320)) + var29))) >> 15))) ^ (unsigned long)((unsigned int)(var320)))));
var330 = ((((var327 << 16) | ((unsigned long)(var327) >> 16)) * 0x41c6582d) + var33);
var337 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var330)) + var35))) >> 18))) ^ (unsigned long)((unsigned int)(var330)))));
var340 = *(long *)((&local_c8[0] + 120));
var341 = ((((var337 << 19) | ((unsigned long)(var337) >> 13)) * 0x41c6588d) + var340);
var348 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var341)) + local_f0))) >> 21))) ^ (unsigned long)((unsigned int)(var341)))));
var352 = ((((var348 << 22) | ((unsigned long)(var348) >> 10)) * 0x41c658ed) + local_e0);
var359 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var352)) + local_d0))) >> 24))) ^ (unsigned long)((unsigned int)(var352)))));
var362 = ((((var359 << 25) | ((unsigned long)(var359) >> 7)) * 0x41c6594d) + var20);
*(long *)((&local_c8[0] + 112)) = var20;
var370 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var362)) + var136))) >> 27))) ^ (unsigned long)((unsigned int)(var362)))));
var374 = ((((var370 << 28) | ((unsigned long)(var370) >> 4)) * 0x41c659ad) + local_e8);
var381 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var374)) + var147))) >> 30))) ^ (unsigned long)((unsigned int)(var374)))));
var385 = (((((unsigned long)(var381) >> 1) | (var381 << 31)) * 0x41c65a0d) + var269);
var392 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var385)) + var33))) >> 2))) ^ (unsigned long)((unsigned int)(var385)))));
var395 = *(long *)((&local_c8[0] + 104));
var396 = ((((var392 << 3) | ((unsigned long)(var392) >> 29)) * 0x41c65a6d) + var395);
var404 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var396)) + var340))) >> 5))) ^ (unsigned long)((unsigned int)(var396)))));
var407 = *(long *)((&local_c8[0] + 72));
var408 = ((((var404 << 6) | ((unsigned long)(var404) >> 26)) * 0x41c65acd) + var407);
var416 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var408)) + local_e0))) >> 8))) ^ (unsigned long)((unsigned int)(var408)))));
var420 = ((((var416 << 9) | ((unsigned long)(var416) >> 23)) * 0x41c65b2d) + local_f8);
var427 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var420)) + var20))) >> 11))) ^ (unsigned long)((unsigned int)(var420)))));
var430 = *(long *)((&local_c8[0] + 136));
var431 = ((((var427 << 12) | ((unsigned long)(var427) >> 20)) * 0x41c65b8d) + var430);
var438 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var431)) + local_e8))) >> 14))) ^ (unsigned long)((unsigned int)(var431)))));
var441 = *(long *)((&local_c8[0] + 128));
var442 = ((((var438 << 15) | ((unsigned long)(var438) >> 17)) * 0x41c65bed) + var441);
var450 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var442)) + var269))) >> 17))) ^ (unsigned long)((unsigned int)(var442)))));
var453 = ((((var450 << 18) | ((unsigned long)(var450) >> 14)) * 0x41c65c4d) + var35);
var460 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var453)) + var395))) >> 20))) ^ (unsigned long)((unsigned int)(var453)))));
var464 = ((((var460 << 21) | ((unsigned long)(var460) >> 11)) * 0x41c65cad) + local_f0);
var471 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var464)) + var407))) >> 23))) ^ (unsigned long)((unsigned int)(var464)))));
var475 = ((((var471 << 24) | ((unsigned long)(var471) >> 8)) * 0x41c65d0d) + local_d0);
var482 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var475)) + local_f8))) >> 26))) ^ (unsigned long)((unsigned int)(var475)))));
var485 = ((((var482 << 27) | ((unsigned long)(var482) >> 5)) * 0x41c65d6d) + var136);
var492 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var485)) + var430))) >> 29))) ^ (unsigned long)((unsigned int)(var485)))));
var495 = ((((var492 << 30) | ((unsigned long)(var492) >> 2)) * 0x41c65dcd) + var147);
var502 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var495)) + var441))) >> 1))) ^ (unsigned long)((unsigned int)(var495)))));
var505 = ((((var502 << 2) | ((unsigned long)(var502) >> 30)) * 0x41c65e2d) + var33);
var512 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var505)) + var35))) >> 4))) ^ (unsigned long)((unsigned int)(var505)))));
var516 = ((((var512 << 5) | ((unsigned long)(var512) >> 27)) * 0x41c65e8d) + var340);
var523 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var516)) + local_f0))) >> 7))) ^ (unsigned long)((unsigned int)(var516)))));
var526 = ((((var523 << 8) | ((unsigned long)(var523) >> 24)) * 0x41c65eed) + local_e0);
var534 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var526)) + local_d0))) >> 10))) ^ (unsigned long)((unsigned int)(var526)))));
var537 = *(long *)((&local_c8[0] + 112));
var538 = ((((var534 << 11) | ((unsigned long)(var534) >> 21)) * 0x41c65f4d) + var537);
var545 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var538)) + var136))) >> 13))) ^ (unsigned long)((unsigned int)(var538)))));
var549 = ((((var545 << 14) | ((unsigned long)(var545) >> 18)) * 0x41c65fad) + local_e8);
var556 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var549)) + var147))) >> 16))) ^ (unsigned long)((unsigned int)(var549)))));
var560 = ((((var556 << 17) | ((unsigned long)(var556) >> 15)) * 0x41c6600d) + var269);
var567 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var560)) + var33))) >> 19))) ^ (unsigned long)((unsigned int)(var560)))));
var570 = *(long *)((&local_c8[0] + 104));
var571 = ((((var567 << 20) | ((unsigned long)(var567) >> 12)) * 0x41c6606d) + var570);
var578 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var571)) + var340))) >> 22))) ^ (unsigned long)((unsigned int)(var571)))));
var581 = *(long *)((&local_c8[0] + 72));
var582 = ((((var578 << 23) | ((unsigned long)(var578) >> 9)) * 0x41c660cd) + var581);
var589 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var582)) + local_e0))) >> 25))) ^ (unsigned long)((unsigned int)(var582)))));
var593 = ((((var589 << 26) | ((unsigned long)(var589) >> 6)) * 0x41c6612d) + local_f8);
var600 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var593)) + var537))) >> 28))) ^ (unsigned long)((unsigned int)(var593)))));
var603 = ((((var600 << 29) | ((unsigned long)(var600) >> 3)) * 0x41c6618d) + var430);
var615 = *(long *)((&local_c8[0] + 128));
var616 = ((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var603)) + local_e8))) >> 31))) ^ (unsigned long)((unsigned int)(var603))))) << 1) | ((unsigned long)((unsigned int)(var603)) >> 31)) & 0xffffffff) * 0x41c661ed) + var615);
var623 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var616)) + var269))) >> 3))) ^ (unsigned long)((unsigned int)(var616)))));
var626 = ((((var623 << 4) | ((unsigned long)(var623) >> 28)) * 0x41c6624d) + var35);
var634 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var570 + (unsigned long)((unsigned int)(var626))))) >> 6))) ^ (unsigned long)((unsigned int)(var626)))));
var638 = ((((var634 << 7) | ((unsigned long)(var634) >> 25)) * 0x41c662ad) + local_f0);
var646 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var581 + (unsigned long)((unsigned int)(var638))))) >> 9))) ^ (unsigned long)((unsigned int)(var638)))));
var649 = ((((var646 << 10) | ((unsigned long)(var646) >> 22)) * 0x41c6630d) + local_d0);
var657 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((local_f8 + (unsigned long)((unsigned int)(var649))))) >> 12))) ^ (unsigned long)((unsigned int)(var649)))));
var660 = ((((var657 << 13) | ((unsigned long)(var657) >> 19)) * 0x41c6636d) + var136);
var669 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var430 + (unsigned long)((unsigned int)(var660))))) >> 15))) ^ (unsigned long)((unsigned int)(var660)))));
var672 = ((((var669 << 16) | ((unsigned long)(var669) >> 16)) * 0x41c663cd) + var147);
var681 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var615 + (unsigned long)((unsigned int)(var672))))) >> 18))) ^ (unsigned long)((unsigned int)(var672)))));
*(int *)((&local_c8[0] + 60)) = var35;
var684 = ((((var681 << 19) | ((unsigned long)(var681) >> 13)) * 0x41c6642d) + var33);
var692 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var35 + (unsigned long)((unsigned int)(var684))))) >> 21))) ^ (unsigned long)((unsigned int)(var684)))));
var695 = ((((var692 << 22) | ((unsigned long)(var692) >> 10)) * 0x41c6648d) + var340);
var704 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((local_f0 + (unsigned long)((unsigned int)(var695))))) >> 24))) ^ (unsigned long)((unsigned int)(var695)))));
var707 = ((((var704 << 25) | ((unsigned long)(var704) >> 7)) * 0x41c664ed) + (unsigned int)(local_e0));
var715 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((local_d0 + (unsigned long)((unsigned int)(var707))))) >> 27))) ^ (unsigned long)((unsigned int)(var707)))));
var718 = ((((var715 << 28) | ((unsigned long)(var715) >> 4)) * 0x41c6654d) + *(int *)((&local_c8[0] + 112)));
var726 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var136 + (unsigned long)((unsigned int)(var718))))) >> 30))) ^ (unsigned long)((unsigned int)(var718)))));
var729 = (((((unsigned long)(var726) >> 1) | (var726 << 31)) * 0x41c665ad) + (unsigned int)(local_e8));
var737 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var147 + (unsigned long)((unsigned int)(var729))))) >> 2))) ^ (unsigned long)((unsigned int)(var729)))));
var740 = ((((var737 << 3) | ((unsigned long)(var737) >> 29)) * 0x41c6660d) + var269);
var748 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var33 + (unsigned long)((unsigned int)(var740))))) >> 5))) ^ (unsigned long)((unsigned int)(var740)))));
var749 = ((var748 << 6) | ((unsigned long)(var748) >> 26));
var751 = (unsigned long)((unsigned int)(arg1));
if (((unsigned long)((unsigned int)(arg1)) != 1)) {
var754 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var751)) & -2)));
var757 = (long)arg0;
var758 = var749;
index = 0;
do {
*(int *)((var757 + index * 4)) = ((unsigned long)((unsigned int)((var758 ^ *(int *)((&local_c8[0] + (index * 4)))))) & 0x7fffffff);
var765 = ((var758 * 0x19660d) + 0x3c6ef35f);
*(int *)((var757 + index * 4 + 0x4)) = ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var765)) ^ *(int *)((&local_c8[0] + ((index * 4) + 4)))))) & 0x7fffffff);
var772 = (((unsigned int)(var765) * 0x19660d) + 0x3c6ef35f);
index = (index + 2);
var758 = (unsigned long)((unsigned int)(var772));
var774 = (unsigned long)((unsigned int)(var772));
var775 = (unsigned long)((unsigned int)(index));
} while ((var754 != index));
} else {
var757 = (long)arg0;
var774 = var749;
var775 = 0;
}
var778 = var774;
if (((unsigned long)((unsigned char)((var751 & 1))) != 0)) {
*(int *)((var757 + var775 * 4)) = ((unsigned long)((unsigned int)((var774 ^ *(int *)((&local_c8[0] + (var775 * 4)))))) & 0x7fffffff);
var778 = (unsigned long)((unsigned int)(((var774 * 0x19660d) + 0x3c6ef35f)));
}
var789 = ((unsigned int)((var778 & 0xffffff)) + 192);
ret = (unsigned long)((unsigned int)(var789));
// x86-64 epilogue: tear down frame
return (unsigned int)(var789);
} chain155_scalar pass 321 lines
// glaurung: chain155_scalar @ 0x1100
uint32_t chain155_scalar(uint32_t arg0) {
unsigned int acc;
long var10;
long var100;
long var105;
int var108;
long var115;
long var120;
int var123;
long var130;
long var135;
int var138;
long var145;
long var15;
long var150;
int var153;
long var166;
int var169;
long var176;
int var18;
long var181;
int var184;
long var191;
long var196;
int var199;
long var206;
long var211;
int var214;
long var221;
int var223;
int var229;
long var236;
long var241;
int var244;
long var25;
long var251;
long var256;
int var259;
long var266;
long var271;
int var274;
long var281;
long var286;
int var289;
long var296;
int var3;
long var30;
long var301;
int var304;
long var311;
long var316;
int var319;
long var326;
int var33;
long var331;
int var334;
long var341;
long var346;
int var349;
long var356;
long var361;
int var364;
long var371;
long var376;
int var379;
long var386;
long var391;
int var394;
long var40;
long var401;
long var406;
int var409;
long var416;
long var421;
int var424;
long var431;
long var436;
int var439;
long var446;
long var45;
long var451;
int var454;
long var461;
int var463;
int var469;
long var476;
int var48;
long var481;
int var484;
long var491;
long var496;
int var499;
long var506;
long var511;
int var514;
long var521;
long var526;
int var529;
long var536;
long var541;
int var544;
long var55;
long var551;
long var556;
int var559;
long var566;
long var571;
int var574;
long var581;
long var586;
int var589;
long var596;
long var60;
long var601;
int var604;
long var611;
long var616;
int var619;
int var63;
long var632;
int var635;
long var642;
long var647;
int var650;
long var657;
long var662;
int var665;
long var672;
long var677;
int var680;
long var687;
long var692;
int var695;
long var70;
long var702;
long var707;
int var710;
long var717;
long var722;
int var725;
long var732;
long var737;
int var740;
long var747;
long var75;
long var752;
int var755;
long var762;
long var767;
int var770;
long var777;
int var78;
long var782;
int var785;
long var792;
long var797;
int var800;
long var85;
long var90;
int var93;
var3 = (((unsigned int)((arg0 ^ -0x61c88647LL)) * 0x41c64e6d) - 0x61c8864f);
var10 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var3)) >> 2))) ^ (unsigned long)((unsigned int)(var3)))));
var15 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var10 << 3) | ((unsigned long)(var10) >> 29)) + 0x78dde6c4))) ^ 0x17156075)));
var18 = ((((var15 << 26) | ((unsigned long)(var15) >> 6)) * 0x41c64f15) + 0x538453d7);
var25 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var18)) >> 8))) ^ (unsigned long)((unsigned int)(var18)))));
var30 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var25 << 9) | ((unsigned long)(var25) >> 23)) + 0x2e2ac0ea))) ^ -0x339dc565LL)));
var33 = ((((var30 << 20) | ((unsigned long)(var30) >> 12)) * 0x41c64fbd) + 0x8d12dfd);
var40 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var33)) >> 14))) ^ (unsigned long)((unsigned int)(var33)))));
var45 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var40 << 15) | ((unsigned long)(var40) >> 17)) - 0x1c8864f0))) ^ -0x7e50eb3fLL)));
var48 = ((((var45 << 14) | ((unsigned long)(var45) >> 18)) * 0x41c65065) - 0x41e1f7dd);
var55 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var48)) >> 20))) ^ (unsigned long)((unsigned int)(var48)))));
var60 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var55 << 21) | ((unsigned long)(var55) >> 11)) - 0x673b8aca))) ^ 0x36fbeee7)));
var63 = ((((var60 << 8) | ((unsigned long)(var60) >> 24)) * 0x41c6510d) + 0x736ae249);
var70 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var63)) >> 26))) ^ (unsigned long)((unsigned int)(var63)))));
var75 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var70 << 27) | ((unsigned long)(var70) >> 5)) + 0x4e114f5c))) ^ -0x13b736f3LL)));
var78 = ((((var75 << 2) | ((unsigned long)(var75) >> 30)) * 0x41c651b5) + 0x28b7bc6f);
var85 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var78)) >> 1))) ^ (unsigned long)((unsigned int)(var78)))));
var90 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var85 << 2) | ((unsigned long)(var85) >> 30)) + 0x35e2982))) ^ -0x5e6a5ccdLL)));
var93 = ((((var90 << 27) | ((unsigned long)(var90) >> 5)) * 0x41c6525d) - 0x21fb696b);
var100 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var93)) >> 7))) ^ (unsigned long)((unsigned int)(var93)))));
var105 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var100 << 8) | ((unsigned long)(var100) >> 24)) - 0x4754fc58))) ^ 0x56e27d59)));
var108 = ((((var105 << 21) | ((unsigned long)(var105) >> 11)) * 0x41c65305) - 0x6cae8f45);
var115 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var108)) >> 13))) ^ (unsigned long)((unsigned int)(var108)))));
var120 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var115 << 14) | ((unsigned long)(var115) >> 18)) + 0x6df7ddce))) ^ 0xc2f577f)));
var123 = ((((var120 << 15) | ((unsigned long)(var120) >> 17)) * 0x41c653ad) + 0x489e4ae1);
var130 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var123)) >> 19))) ^ (unsigned long)((unsigned int)(var123)))));
var135 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var130 << 20) | ((unsigned long)(var130) >> 12)) + 0x2344b7f4))) ^ -0x3e83ce5bLL)));
var138 = ((((var135 << 9) | ((unsigned long)(var135) >> 23)) * 0x41c65455) - 0x214daf9);
var145 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var138)) >> 25))) ^ (unsigned long)((unsigned int)(var138)))));
var150 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var145 << 26) | ((unsigned long)(var145) >> 6)) - 0x276e6de6))) ^ 0x76c90bcb)));
var153 = ((((var150 << 3) | ((unsigned long)(var150) >> 29)) * 0x41c654fd) - 0x4cc800d3);
var166 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var153)) >> 31))) ^ (unsigned long)((unsigned int)(var153))))) << 1) | ((unsigned long)((unsigned int)(var153)) >> 31)) & 0xffffffff) - 0x722193c0))) ^ 0x2c15e5f1)));
var169 = ((((var166 << 28) | ((unsigned long)(var166) >> 4)) * 0x41c655a5) + 0x6884d953);
var176 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var169)) >> 6))) ^ (unsigned long)((unsigned int)(var169)))));
var181 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var176 << 7) | ((unsigned long)(var176) >> 25)) + 0x432b4666))) ^ -0x1e9d3fe9LL)));
var184 = ((((var181 << 22) | ((unsigned long)(var181) >> 10)) * 0x41c6564d) + 0x1dd1b379);
var191 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var184)) >> 12))) ^ (unsigned long)((unsigned int)(var184)))));
var196 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var191 << 13) | ((unsigned long)(var191) >> 19)) - 0x787df74))) ^ -0x695065c3LL)));
var199 = ((((var196 << 16) | ((unsigned long)(var196) >> 16)) * 0x41c656f5) - 0x2ce17261);
var206 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var199)) >> 18))) ^ (unsigned long)((unsigned int)(var199)))));
var211 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var206 << 19) | ((unsigned long)(var206) >> 13)) - 0x523b054e))) ^ 0x4bfc7463)));
var214 = ((((var211 << 10) | ((unsigned long)(var211) >> 22)) * 0x41c6579d) - 0x7794983b);
var221 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var214)) >> 24))) ^ (unsigned long)((unsigned int)(var214)))));
var223 = (((var221 << 25) | ((unsigned long)(var221) >> 7)) + 0x6311d4d8);
var229 = (((unsigned int)(((((unsigned long)((unsigned int)(var223)) << 4) | ((unsigned long)((unsigned int)(var223)) >> 28)) ^ 0x1494e890)) * 0x41c65845) + 0x3db841eb);
var236 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var229)) >> 30))) ^ (unsigned long)((unsigned int)(var229)))));
var241 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var236) >> 1) | (var236 << 31)) + 0x185eaefe))) ^ -0x4969d751LL)));
var244 = ((((var241 << 29) | ((unsigned long)(var241) >> 3)) * 0x41c658ed) - 0xcfae3ef);
var251 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var244)) >> 5))) ^ (unsigned long)((unsigned int)(var244)))));
var256 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var251 << 6) | ((unsigned long)(var251) >> 26)) - 0x325476dc))) ^ 0x6be302d5)));
var259 = ((((var256 << 23) | ((unsigned long)(var256) >> 9)) * 0x41c65995) - 0x57ae09c9);
var266 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var259)) >> 11))) ^ (unsigned long)((unsigned int)(var259)))));
var271 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var266 << 12) | ((unsigned long)(var266) >> 20)) - 0x7d079cb6))) ^ 0x212fdcfb)));
var274 = ((((var271 << 17) | ((unsigned long)(var271) >> 15)) * 0x41c65a3d) + 0x5d9ed05d);
var281 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var274)) >> 17))) ^ (unsigned long)((unsigned int)(var274)))));
var286 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var281 << 18) | ((unsigned long)(var281) >> 14)) + 0x38453d70))) ^ -0x298348dfLL)));
var289 = ((((var286 << 11) | ((unsigned long)(var286) >> 21)) * 0x41c65ae5) + 0x12ebaa83);
var296 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var289)) >> 23))) ^ (unsigned long)((unsigned int)(var289)))));
var301 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var296 << 24) | ((unsigned long)(var296) >> 8)) - 0x126de86a))) ^ -0x74366eb9LL)));
var304 = ((((var301 << 5) | ((unsigned long)(var301) >> 27)) * 0x41c65b8d) - 0x37c77b57);
var311 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var304)) >> 29))) ^ (unsigned long)((unsigned int)(var304)))));
var316 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var311 << 30) | ((unsigned long)(var311) >> 2)) - 0x5d210e44))) ^ 0x41166b6d)));
var319 = ((((var316 << 30) | ((unsigned long)(var316) >> 2)) * 0x41c65c35) + 0x7d855ecf);
var326 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var319)) >> 4))) ^ (unsigned long)((unsigned int)(var319)))));
var331 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var326 << 5) | ((unsigned long)(var326) >> 27)) + 0x582bcbe2))) ^ -0x99cba6dLL)));
var334 = ((((var331 << 24) | ((unsigned long)(var331) >> 8)) * 0x41c65cdd) + 0x32d238f5);
var341 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var334)) >> 10))) ^ (unsigned long)((unsigned int)(var334)))));
var346 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var341 << 11) | ((unsigned long)(var341) >> 21)) + 0xd78a608))) ^ -0x544fe047LL)));
var349 = ((((var346 << 18) | ((unsigned long)(var346) >> 14)) * 0x41c65d85) - 0x17e0ece5);
var356 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var349)) >> 16))) ^ (unsigned long)((unsigned int)(var349)))));
var361 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var356 << 17) | ((unsigned long)(var356) >> 15)) - 0x3d3a7fd2))) ^ 0x60fcf9df)));
var364 = ((((var361 << 12) | ((unsigned long)(var361) >> 20)) * 0x41c65e2d) - 0x629412bf);
var371 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var364)) >> 22))) ^ (unsigned long)((unsigned int)(var364)))));
var376 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var371 << 23) | ((unsigned long)(var371) >> 9)) + 0x78125a54))) ^ 0x1649d405)));
var379 = ((((var376 << 6) | ((unsigned long)(var376) >> 26)) * 0x41c65ed5) + 0x52b8c767);
var386 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var379)) >> 28))) ^ (unsigned long)((unsigned int)(var379)))));
var391 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var386 << 29) | ((unsigned long)(var386) >> 3)) + 0x2d5f347a))) ^ -0x346951d5LL)));
var394 = (((((unsigned long)(var391) >> 1) | (var391 << 31)) * 0x41c65f7d) + 0x805a18d);
var401 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var394)) >> 3))) ^ (unsigned long)((unsigned int)(var394)))));
var406 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var401 << 4) | ((unsigned long)(var401) >> 28)) - 0x1d53f160))) ^ -0x7f1c77afLL)));
var409 = ((((var406 << 25) | ((unsigned long)(var406) >> 7)) * 0x41c66025) - 0x42ad844d);
var416 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var409)) >> 9))) ^ (unsigned long)((unsigned int)(var409)))));
var421 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var416 << 10) | ((unsigned long)(var416) >> 22)) - 0x6807173a))) ^ 0x36306277)));
var424 = ((((var421 << 19) | ((unsigned long)(var421) >> 13)) * 0x41c660cd) + 0x729f55d9);
var431 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var424)) >> 15))) ^ (unsigned long)((unsigned int)(var424)))));
var436 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var431 << 16) | ((unsigned long)(var431) >> 16)) + 0x4d45c2ec))) ^ -0x1482c363LL)));
var439 = ((((var436 << 13) | ((unsigned long)(var436) >> 19)) * 0x41c66175) + 0x27ec2fff);
var446 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var439)) >> 21))) ^ (unsigned long)((unsigned int)(var439)))));
var451 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var446 << 22) | ((unsigned long)(var446) >> 10)) + 0x2929d12))) ^ -0x5f35e93dLL)));
var454 = ((((var451 << 7) | ((unsigned long)(var451) >> 25)) * 0x41c6621d) - 0x22c6f5db);
var461 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var454)) >> 27))) ^ (unsigned long)((unsigned int)(var454)))));
var463 = (((var461 << 28) | ((unsigned long)(var461) >> 4)) - 0x482088c8);
var469 = (((unsigned int)(((((unsigned long)((unsigned int)(var463)) << 1) | ((unsigned long)((unsigned int)(var463)) >> 31)) ^ -0x53d21e2eLL)) * 0x41c662c5) - 0x6d7a1bb5);
var476 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var469)) >> 2))) ^ (unsigned long)((unsigned int)(var469)))));
var481 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var476 << 3) | ((unsigned long)(var476) >> 29)) + 0x6d2c515e))) ^ 0xb63cb0f)));
var484 = ((((var481 << 26) | ((unsigned long)(var481) >> 6)) * 0x41c6636d) + 0x47d2be71);
var491 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var484)) >> 8))) ^ (unsigned long)((unsigned int)(var484)))));
var496 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var491 << 9) | ((unsigned long)(var491) >> 23)) + 0x22792b84))) ^ -0x3f4f5acbLL)));
var499 = ((((var496 << 20) | ((unsigned long)(var496) >> 12)) * 0x41c66415) - 0x2e06769);
var506 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var499)) >> 14))) ^ (unsigned long)((unsigned int)(var499)))));
var511 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var506 << 15) | ((unsigned long)(var506) >> 17)) - 0x2839fa56))) ^ 0x75fd7f5b)));
var514 = ((((var511 << 14) | ((unsigned long)(var511) >> 18)) * 0x41c664bd) - 0x4d938d43);
var521 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var514)) >> 20))) ^ (unsigned long)((unsigned int)(var514)))));
var526 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var521 << 21) | ((unsigned long)(var521) >> 11)) - 0x72ed2030))) ^ 0x2b4a5981)));
var529 = ((((var526 << 8) | ((unsigned long)(var526) >> 24)) * 0x41c66565) + 0x67b94ce3);
var536 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var529)) >> 26))) ^ (unsigned long)((unsigned int)(var529)))));
var541 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var536 << 27) | ((unsigned long)(var536) >> 5)) + 0x425fb9f6))) ^ -0x1f68cc59LL)));
var544 = ((((var541 << 2) | ((unsigned long)(var541) >> 30)) * 0x41c6660d) + 0x1d062709);
var551 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var544)) >> 1))) ^ (unsigned long)((unsigned int)(var544)))));
var556 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var551 << 2) | ((unsigned long)(var551) >> 30)) - 0x8536be4))) ^ -0x6a1bf233LL)));
var559 = ((((var556 << 27) | ((unsigned long)(var556) >> 5)) * 0x41c666b5) - 0x2dacfed1);
var566 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var559)) >> 7))) ^ (unsigned long)((unsigned int)(var559)))));
var571 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var566 << 8) | ((unsigned long)(var566) >> 24)) - 0x530691be))) ^ 0x4b30e7f3)));
var574 = ((((var571 << 21) | ((unsigned long)(var571) >> 11)) * 0x41c6675d) - 0x786024ab);
var581 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var574)) >> 13))) ^ (unsigned long)((unsigned int)(var574)))));
var586 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var581 << 14) | ((unsigned long)(var581) >> 18)) + 0x62464868))) ^ 0x7dc219)));
var589 = ((((var586 << 15) | ((unsigned long)(var586) >> 17)) * 0x41c66805) + 0x3cecb57b);
var596 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var589)) >> 19))) ^ (unsigned long)((unsigned int)(var589)))));
var601 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var596 << 20) | ((unsigned long)(var596) >> 12)) + 0x1793228e))) ^ -0x4a3563c1LL)));
var604 = ((((var601 << 9) | ((unsigned long)(var601) >> 23)) * 0x41c668ad) - 0xdc6705f);
var611 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var604)) >> 25))) ^ (unsigned long)((unsigned int)(var604)))));
var616 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var611 << 26) | ((unsigned long)(var611) >> 6)) - 0x3320034c))) ^ 0x6b177665)));
var619 = ((((var616 << 3) | ((unsigned long)(var616) >> 29)) * 0x41c66955) - 0x58799639);
var632 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var619)) >> 31))) ^ (unsigned long)((unsigned int)(var619))))) << 1) | ((unsigned long)((unsigned int)(var619)) >> 31)) & 0xffffffff) - 0x7dd32926))) ^ 0x2064508b)));
var635 = ((((var632 << 28) | ((unsigned long)(var632) >> 4)) * 0x41c669fd) + 0x5cd343ed);
var642 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var635)) >> 6))) ^ (unsigned long)((unsigned int)(var635)))));
var647 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var642 << 7) | ((unsigned long)(var642) >> 25)) + 0x3779b100))) ^ -0x2a4ed54fLL)));
var650 = ((((var647 << 22) | ((unsigned long)(var647) >> 10)) * 0x41c66aa5) + 0x12201e13);
var657 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var650)) >> 12))) ^ (unsigned long)((unsigned int)(var650)))));
var662 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var657 << 13) | ((unsigned long)(var657) >> 19)) - 0x133974da))) ^ -0x7501fb29LL)));
var665 = ((((var662 << 16) | ((unsigned long)(var662) >> 16)) * 0x41c66b4d) - 0x389307c7);
var672 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var665)) >> 18))) ^ (unsigned long)((unsigned int)(var665)))));
var677 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var672 << 19) | ((unsigned long)(var672) >> 13)) - 0x5dec9ab4))) ^ 0x404adefd)));
var680 = ((((var677 << 10) | ((unsigned long)(var677) >> 22)) * 0x41c66bf5) + 0x7cb9d25f);
var687 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var680)) >> 24))) ^ (unsigned long)((unsigned int)(var680)))));
var692 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var687 << 25) | ((unsigned long)(var687) >> 7)) + 0x57603f72))) ^ -0xa6846ddLL)));
var695 = ((((var692 << 4) | ((unsigned long)(var692) >> 28)) * 0x41c66c9d) + 0x3206ac85);
var702 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var695)) >> 30))) ^ (unsigned long)((unsigned int)(var695)))));
var707 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var702) >> 1) | (var702 << 31)) + 0xcad1998))) ^ -0x551b6cb7LL)));
var710 = ((((var707 << 29) | ((unsigned long)(var707) >> 3)) * 0x41c66d45) - 0x18ac7955);
var717 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var710)) >> 5))) ^ (unsigned long)((unsigned int)(var710)))));
var722 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var717 << 6) | ((unsigned long)(var717) >> 26)) - 0x3e060c42))) ^ 0x60316d6f)));
var725 = ((((var722 << 23) | ((unsigned long)(var722) >> 9)) * 0x41c66ded) - 0x635f9f2f);
var732 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var725)) >> 11))) ^ (unsigned long)((unsigned int)(var725)))));
var737 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var732 << 12) | ((unsigned long)(var732) >> 20)) + 0x7746cde4))) ^ 0x157e4795)));
var740 = ((((var737 << 17) | ((unsigned long)(var737) >> 15)) * 0x41c66e95) + 0x51ed3af7);
var747 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var740)) >> 17))) ^ (unsigned long)((unsigned int)(var740)))));
var752 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var747 << 18) | ((unsigned long)(var747) >> 14)) + 0x2c93a80a))) ^ -0x3534de45LL)));
var755 = ((((var752 << 11) | ((unsigned long)(var752) >> 21)) * 0x41c66f3d) + 0x73a151d);
var762 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var755)) >> 23))) ^ (unsigned long)((unsigned int)(var755)))));
var767 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var762 << 24) | ((unsigned long)(var762) >> 8)) - 0x1e1f7dd0))) ^ -0x7fe8041fLL)));
var770 = ((((var767 << 5) | ((unsigned long)(var767) >> 27)) * 0x41c66fe5) - 0x437910bd);
var777 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var770)) >> 29))) ^ (unsigned long)((unsigned int)(var770)))));
var782 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var777 << 30) | ((unsigned long)(var777) >> 2)) - 0x68d2a3aa))) ^ 0x3564d607)));
var785 = ((((var782 << 30) | ((unsigned long)(var782) >> 2)) * 0x41c6708d) + 0x71d3c969);
var792 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var785)) >> 4))) ^ (unsigned long)((unsigned int)(var785)))));
var797 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var792 << 5) | ((unsigned long)(var792) >> 27)) + 0x4c7a367c))) ^ -0x154e4fd3LL)));
var800 = ((((var797 << 24) | ((unsigned long)(var797) >> 8)) * 0x41c67135) + 0x2720a38f);
return (unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var800)) >> 10))) ^ (unsigned long)((unsigned int)(var800))))) + 320));
} chain155_signed pass 257 lines
// glaurung: chain155_signed @ 0x1890
int32_t chain155_signed(int32_t arg0) {
int step;
int var1;
long var103;
int var106;
long var113;
long var118;
int var121;
long var128;
long var13;
long var133;
int var136;
long var143;
long var148;
int var151;
int var16;
long var164;
int var167;
long var174;
long var179;
int var182;
long var189;
long var194;
int var197;
long var204;
long var209;
int var212;
long var219;
int var221;
int var227;
long var23;
long var234;
long var239;
int var242;
long var249;
long var254;
int var257;
long var264;
long var269;
int var272;
long var279;
long var28;
long var284;
int var287;
long var294;
long var299;
int var302;
long var309;
int var31;
long var314;
int var317;
long var324;
long var329;
int var332;
long var339;
long var344;
int var347;
long var354;
long var359;
int var362;
long var369;
long var374;
int var377;
long var38;
long var384;
long var389;
int var392;
long var399;
long var404;
int var407;
long var414;
long var419;
int var422;
long var429;
long var43;
long var434;
int var437;
long var444;
long var449;
int var452;
long var459;
int var46;
int var461;
int var467;
long var474;
long var479;
int var482;
long var489;
long var494;
int var497;
long var504;
long var509;
int var512;
long var519;
long var524;
int var527;
long var53;
long var534;
long var539;
int var542;
long var549;
long var554;
int var557;
long var564;
long var569;
int var572;
long var579;
long var58;
long var584;
int var587;
long var594;
long var599;
int var602;
long var609;
int var61;
long var614;
int var617;
long var630;
int var633;
long var640;
long var68;
long var73;
int var76;
long var8;
long var83;
long var88;
int var91;
long var98;
var1 = ((arg0 * 0x41c64e6d) - 0x61c8864f);
var8 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var1)) >> 2))) ^ (unsigned long)((unsigned int)(var1)))));
var13 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var8 << 3) | ((unsigned long)(var8) >> 29)) + 0x78dde6c4))) ^ 0x17156075)));
var16 = ((((var13 << 26) | ((unsigned long)(var13) >> 6)) * 0x41c64f15) + 0x538453d7);
var23 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var16)) >> 8))) ^ (unsigned long)((unsigned int)(var16)))));
var28 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var23 << 9) | ((unsigned long)(var23) >> 23)) + 0x2e2ac0ea))) ^ -0x339dc565LL)));
var31 = ((((var28 << 20) | ((unsigned long)(var28) >> 12)) * 0x41c64fbd) + 0x8d12dfd);
var38 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var31)) >> 14))) ^ (unsigned long)((unsigned int)(var31)))));
var43 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var38 << 15) | ((unsigned long)(var38) >> 17)) - 0x1c8864f0))) ^ -0x7e50eb3fLL)));
var46 = ((((var43 << 14) | ((unsigned long)(var43) >> 18)) * 0x41c65065) - 0x41e1f7dd);
var53 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var46)) >> 20))) ^ (unsigned long)((unsigned int)(var46)))));
var58 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var53 << 21) | ((unsigned long)(var53) >> 11)) - 0x673b8aca))) ^ 0x36fbeee7)));
var61 = ((((var58 << 8) | ((unsigned long)(var58) >> 24)) * 0x41c6510d) + 0x736ae249);
var68 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var61)) >> 26))) ^ (unsigned long)((unsigned int)(var61)))));
var73 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var68 << 27) | ((unsigned long)(var68) >> 5)) + 0x4e114f5c))) ^ -0x13b736f3LL)));
var76 = ((((var73 << 2) | ((unsigned long)(var73) >> 30)) * 0x41c651b5) + 0x28b7bc6f);
var83 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var76)) >> 1))) ^ (unsigned long)((unsigned int)(var76)))));
var88 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var83 << 2) | ((unsigned long)(var83) >> 30)) + 0x35e2982))) ^ -0x5e6a5ccdLL)));
var91 = ((((var88 << 27) | ((unsigned long)(var88) >> 5)) * 0x41c6525d) - 0x21fb696b);
var98 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var91)) >> 7))) ^ (unsigned long)((unsigned int)(var91)))));
var103 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var98 << 8) | ((unsigned long)(var98) >> 24)) - 0x4754fc58))) ^ 0x56e27d59)));
var106 = ((((var103 << 21) | ((unsigned long)(var103) >> 11)) * 0x41c65305) - 0x6cae8f45);
var113 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var106)) >> 13))) ^ (unsigned long)((unsigned int)(var106)))));
var118 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var113 << 14) | ((unsigned long)(var113) >> 18)) + 0x6df7ddce))) ^ 0xc2f577f)));
var121 = ((((var118 << 15) | ((unsigned long)(var118) >> 17)) * 0x41c653ad) + 0x489e4ae1);
var128 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var121)) >> 19))) ^ (unsigned long)((unsigned int)(var121)))));
var133 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var128 << 20) | ((unsigned long)(var128) >> 12)) + 0x2344b7f4))) ^ -0x3e83ce5bLL)));
var136 = ((((var133 << 9) | ((unsigned long)(var133) >> 23)) * 0x41c65455) - 0x214daf9);
var143 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var136)) >> 25))) ^ (unsigned long)((unsigned int)(var136)))));
var148 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var143 << 26) | ((unsigned long)(var143) >> 6)) - 0x276e6de6))) ^ 0x76c90bcb)));
var151 = ((((var148 << 3) | ((unsigned long)(var148) >> 29)) * 0x41c654fd) - 0x4cc800d3);
var164 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var151)) >> 31))) ^ (unsigned long)((unsigned int)(var151))))) << 1) | ((unsigned long)((unsigned int)(var151)) >> 31)) & 0xffffffff) - 0x722193c0))) ^ 0x2c15e5f1)));
var167 = ((((var164 << 28) | ((unsigned long)(var164) >> 4)) * 0x41c655a5) + 0x6884d953);
var174 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var167)) >> 6))) ^ (unsigned long)((unsigned int)(var167)))));
var179 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var174 << 7) | ((unsigned long)(var174) >> 25)) + 0x432b4666))) ^ -0x1e9d3fe9LL)));
var182 = ((((var179 << 22) | ((unsigned long)(var179) >> 10)) * 0x41c6564d) + 0x1dd1b379);
var189 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var182)) >> 12))) ^ (unsigned long)((unsigned int)(var182)))));
var194 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var189 << 13) | ((unsigned long)(var189) >> 19)) - 0x787df74))) ^ -0x695065c3LL)));
var197 = ((((var194 << 16) | ((unsigned long)(var194) >> 16)) * 0x41c656f5) - 0x2ce17261);
var204 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var197)) >> 18))) ^ (unsigned long)((unsigned int)(var197)))));
var209 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var204 << 19) | ((unsigned long)(var204) >> 13)) - 0x523b054e))) ^ 0x4bfc7463)));
var212 = ((((var209 << 10) | ((unsigned long)(var209) >> 22)) * 0x41c6579d) - 0x7794983b);
var219 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var212)) >> 24))) ^ (unsigned long)((unsigned int)(var212)))));
var221 = (((var219 << 25) | ((unsigned long)(var219) >> 7)) + 0x6311d4d8);
var227 = (((unsigned int)(((((unsigned long)((unsigned int)(var221)) << 4) | ((unsigned long)((unsigned int)(var221)) >> 28)) ^ 0x1494e890)) * 0x41c65845) + 0x3db841eb);
var234 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var227)) >> 30))) ^ (unsigned long)((unsigned int)(var227)))));
var239 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var234) >> 1) | (var234 << 31)) + 0x185eaefe))) ^ -0x4969d751LL)));
var242 = ((((var239 << 29) | ((unsigned long)(var239) >> 3)) * 0x41c658ed) - 0xcfae3ef);
var249 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var242)) >> 5))) ^ (unsigned long)((unsigned int)(var242)))));
var254 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var249 << 6) | ((unsigned long)(var249) >> 26)) - 0x325476dc))) ^ 0x6be302d5)));
var257 = ((((var254 << 23) | ((unsigned long)(var254) >> 9)) * 0x41c65995) - 0x57ae09c9);
var264 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var257)) >> 11))) ^ (unsigned long)((unsigned int)(var257)))));
var269 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var264 << 12) | ((unsigned long)(var264) >> 20)) - 0x7d079cb6))) ^ 0x212fdcfb)));
var272 = ((((var269 << 17) | ((unsigned long)(var269) >> 15)) * 0x41c65a3d) + 0x5d9ed05d);
var279 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var272)) >> 17))) ^ (unsigned long)((unsigned int)(var272)))));
var284 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var279 << 18) | ((unsigned long)(var279) >> 14)) + 0x38453d70))) ^ -0x298348dfLL)));
var287 = ((((var284 << 11) | ((unsigned long)(var284) >> 21)) * 0x41c65ae5) + 0x12ebaa83);
var294 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var287)) >> 23))) ^ (unsigned long)((unsigned int)(var287)))));
var299 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var294 << 24) | ((unsigned long)(var294) >> 8)) - 0x126de86a))) ^ -0x74366eb9LL)));
var302 = ((((var299 << 5) | ((unsigned long)(var299) >> 27)) * 0x41c65b8d) - 0x37c77b57);
var309 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var302)) >> 29))) ^ (unsigned long)((unsigned int)(var302)))));
var314 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var309 << 30) | ((unsigned long)(var309) >> 2)) - 0x5d210e44))) ^ 0x41166b6d)));
var317 = ((((var314 << 30) | ((unsigned long)(var314) >> 2)) * 0x41c65c35) + 0x7d855ecf);
var324 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var317)) >> 4))) ^ (unsigned long)((unsigned int)(var317)))));
var329 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var324 << 5) | ((unsigned long)(var324) >> 27)) + 0x582bcbe2))) ^ -0x99cba6dLL)));
var332 = ((((var329 << 24) | ((unsigned long)(var329) >> 8)) * 0x41c65cdd) + 0x32d238f5);
var339 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var332)) >> 10))) ^ (unsigned long)((unsigned int)(var332)))));
var344 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var339 << 11) | ((unsigned long)(var339) >> 21)) + 0xd78a608))) ^ -0x544fe047LL)));
var347 = ((((var344 << 18) | ((unsigned long)(var344) >> 14)) * 0x41c65d85) - 0x17e0ece5);
var354 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var347)) >> 16))) ^ (unsigned long)((unsigned int)(var347)))));
var359 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var354 << 17) | ((unsigned long)(var354) >> 15)) - 0x3d3a7fd2))) ^ 0x60fcf9df)));
var362 = ((((var359 << 12) | ((unsigned long)(var359) >> 20)) * 0x41c65e2d) - 0x629412bf);
var369 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var362)) >> 22))) ^ (unsigned long)((unsigned int)(var362)))));
var374 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var369 << 23) | ((unsigned long)(var369) >> 9)) + 0x78125a54))) ^ 0x1649d405)));
var377 = ((((var374 << 6) | ((unsigned long)(var374) >> 26)) * 0x41c65ed5) + 0x52b8c767);
var384 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var377)) >> 28))) ^ (unsigned long)((unsigned int)(var377)))));
var389 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var384 << 29) | ((unsigned long)(var384) >> 3)) + 0x2d5f347a))) ^ -0x346951d5LL)));
var392 = (((((unsigned long)(var389) >> 1) | (var389 << 31)) * 0x41c65f7d) + 0x805a18d);
var399 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var392)) >> 3))) ^ (unsigned long)((unsigned int)(var392)))));
var404 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var399 << 4) | ((unsigned long)(var399) >> 28)) - 0x1d53f160))) ^ -0x7f1c77afLL)));
var407 = ((((var404 << 25) | ((unsigned long)(var404) >> 7)) * 0x41c66025) - 0x42ad844d);
var414 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var407)) >> 9))) ^ (unsigned long)((unsigned int)(var407)))));
var419 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var414 << 10) | ((unsigned long)(var414) >> 22)) - 0x6807173a))) ^ 0x36306277)));
var422 = ((((var419 << 19) | ((unsigned long)(var419) >> 13)) * 0x41c660cd) + 0x729f55d9);
var429 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var422)) >> 15))) ^ (unsigned long)((unsigned int)(var422)))));
var434 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var429 << 16) | ((unsigned long)(var429) >> 16)) + 0x4d45c2ec))) ^ -0x1482c363LL)));
var437 = ((((var434 << 13) | ((unsigned long)(var434) >> 19)) * 0x41c66175) + 0x27ec2fff);
var444 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var437)) >> 21))) ^ (unsigned long)((unsigned int)(var437)))));
var449 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var444 << 22) | ((unsigned long)(var444) >> 10)) + 0x2929d12))) ^ -0x5f35e93dLL)));
var452 = ((((var449 << 7) | ((unsigned long)(var449) >> 25)) * 0x41c6621d) - 0x22c6f5db);
var459 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var452)) >> 27))) ^ (unsigned long)((unsigned int)(var452)))));
var461 = (((var459 << 28) | ((unsigned long)(var459) >> 4)) - 0x482088c8);
var467 = (((unsigned int)(((((unsigned long)((unsigned int)(var461)) << 1) | ((unsigned long)((unsigned int)(var461)) >> 31)) ^ -0x53d21e2eLL)) * 0x41c662c5) - 0x6d7a1bb5);
var474 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var467)) >> 2))) ^ (unsigned long)((unsigned int)(var467)))));
var479 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var474 << 3) | ((unsigned long)(var474) >> 29)) + 0x6d2c515e))) ^ 0xb63cb0f)));
var482 = ((((var479 << 26) | ((unsigned long)(var479) >> 6)) * 0x41c6636d) + 0x47d2be71);
var489 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var482)) >> 8))) ^ (unsigned long)((unsigned int)(var482)))));
var494 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var489 << 9) | ((unsigned long)(var489) >> 23)) + 0x22792b84))) ^ -0x3f4f5acbLL)));
var497 = ((((var494 << 20) | ((unsigned long)(var494) >> 12)) * 0x41c66415) - 0x2e06769);
var504 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var497)) >> 14))) ^ (unsigned long)((unsigned int)(var497)))));
var509 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var504 << 15) | ((unsigned long)(var504) >> 17)) - 0x2839fa56))) ^ 0x75fd7f5b)));
var512 = ((((var509 << 14) | ((unsigned long)(var509) >> 18)) * 0x41c664bd) - 0x4d938d43);
var519 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var512)) >> 20))) ^ (unsigned long)((unsigned int)(var512)))));
var524 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var519 << 21) | ((unsigned long)(var519) >> 11)) - 0x72ed2030))) ^ 0x2b4a5981)));
var527 = ((((var524 << 8) | ((unsigned long)(var524) >> 24)) * 0x41c66565) + 0x67b94ce3);
var534 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var527)) >> 26))) ^ (unsigned long)((unsigned int)(var527)))));
var539 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var534 << 27) | ((unsigned long)(var534) >> 5)) + 0x425fb9f6))) ^ -0x1f68cc59LL)));
var542 = ((((var539 << 2) | ((unsigned long)(var539) >> 30)) * 0x41c6660d) + 0x1d062709);
var549 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var542)) >> 1))) ^ (unsigned long)((unsigned int)(var542)))));
var554 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var549 << 2) | ((unsigned long)(var549) >> 30)) - 0x8536be4))) ^ -0x6a1bf233LL)));
var557 = ((((var554 << 27) | ((unsigned long)(var554) >> 5)) * 0x41c666b5) - 0x2dacfed1);
var564 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var557)) >> 7))) ^ (unsigned long)((unsigned int)(var557)))));
var569 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var564 << 8) | ((unsigned long)(var564) >> 24)) - 0x530691be))) ^ 0x4b30e7f3)));
var572 = ((((var569 << 21) | ((unsigned long)(var569) >> 11)) * 0x41c6675d) - 0x786024ab);
var579 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var572)) >> 13))) ^ (unsigned long)((unsigned int)(var572)))));
var584 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var579 << 14) | ((unsigned long)(var579) >> 18)) + 0x62464868))) ^ 0x7dc219)));
var587 = ((((var584 << 15) | ((unsigned long)(var584) >> 17)) * 0x41c66805) + 0x3cecb57b);
var594 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var587)) >> 19))) ^ (unsigned long)((unsigned int)(var587)))));
var599 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var594 << 20) | ((unsigned long)(var594) >> 12)) + 0x1793228e))) ^ -0x4a3563c1LL)));
var602 = ((((var599 << 9) | ((unsigned long)(var599) >> 23)) * 0x41c668ad) - 0xdc6705f);
var609 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var602)) >> 25))) ^ (unsigned long)((unsigned int)(var602)))));
var614 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var609 << 26) | ((unsigned long)(var609) >> 6)) - 0x3320034c))) ^ 0x6b177665)));
var617 = ((((var614 << 3) | ((unsigned long)(var614) >> 29)) * 0x41c66955) - 0x58799639);
var630 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var617)) >> 31))) ^ (unsigned long)((unsigned int)(var617))))) << 1) | ((unsigned long)((unsigned int)(var617)) >> 31)) & 0xffffffff) - 0x7dd32926))) ^ 0x2064508b)));
var633 = ((((var630 << 28) | ((unsigned long)(var630) >> 4)) * 0x41c669fd) + 0x5cd343ed);
var640 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var633)) >> 6))) ^ (unsigned long)((unsigned int)(var633)))));
return (unsigned int)((((var640 << 7) | ((unsigned long)(var640) >> 25)) + 0x3779b200));
} clang -O0
3/3chain155_buffered pass 228 lines
// glaurung: chain155_buffered @ 0x30c0
__attribute__((no_stack_protector)) int32_t chain155_buffered(int32_t * arg0, int32_t arg1) {
unsigned int carry;
int index;
int local_4;
unsigned char local_60[64];
int local_6c;
// x86-64 prologue: save rbp
carry = 0x2545f491;
if ((arg0 == 0)) {
local_4 = -1;
// x86-64 epilogue: restore rbp
return (unsigned int)(local_4);
}
if (((long)(arg1) < 1)) {
local_4 = -1;
// x86-64 epilogue: restore rbp
return (unsigned int)(local_4);
}
if (((((unsigned long)((unsigned int)(arg1)) == 16) | ((long)(arg1) < 16)) == 0)) {
local_4 = -1;
// x86-64 epilogue: restore rbp
return (unsigned int)(local_4);
}
for (index = 0; ((long)(index) < 16); index++) {
local_6c = ((arg1 <= index) ? 0 : arg0[(long)(index)]);
*(int *)((&local_60[0] + ((long)(index) * 4))) = local_6c;
}
carry = ((carry * 0x41c64e6d) + *(int *)(&local_60[0]));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 4)))) + carry))) >> 2)) ^ carry);
carry = ((unsigned int)((carry << 3)) | (unsigned int)(((unsigned int)(carry) >> 29)));
carry = ((carry * 0x41c64ecd) + *(int *)((&local_60[0] + 12)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 16)))) + carry))) >> 5)) ^ carry);
carry = ((unsigned int)((carry << 6)) | (unsigned int)(((unsigned int)(carry) >> 26)));
carry = ((carry * 0x41c64f2d) + *(int *)((&local_60[0] + 24)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 28)))) + carry))) >> 8)) ^ carry);
carry = ((unsigned int)((carry << 9)) | (unsigned int)(((unsigned int)(carry) >> 23)));
carry = ((carry * 0x41c64f8d) + *(int *)((&local_60[0] + 36)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 40)))) + carry))) >> 11)) ^ carry);
carry = ((unsigned int)((carry << 12)) | (unsigned int)(((unsigned int)(carry) >> 20)));
carry = ((carry * 0x41c64fed) + *(int *)((&local_60[0] + 48)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 52)))) + carry))) >> 14)) ^ carry);
carry = ((unsigned int)((carry << 15)) | (unsigned int)(((unsigned int)(carry) >> 17)));
carry = ((carry * 0x41c6504d) + *(int *)((&local_60[0] + 60)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(&local_60[0]))) + carry))) >> 17)) ^ carry);
carry = ((unsigned int)((carry << 18)) | (unsigned int)(((unsigned int)(carry) >> 14)));
carry = ((carry * 0x41c650ad) + *(int *)((&local_60[0] + 8)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 12)))) + carry))) >> 20)) ^ carry);
carry = ((unsigned int)((carry << 21)) | (unsigned int)(((unsigned int)(carry) >> 11)));
carry = ((carry * 0x41c6510d) + *(int *)((&local_60[0] + 20)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 24)))) + carry))) >> 23)) ^ carry);
carry = ((unsigned int)((carry << 24)) | (unsigned int)(((unsigned int)(carry) >> 8)));
carry = ((carry * 0x41c6516d) + *(int *)((&local_60[0] + 32)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 36)))) + carry))) >> 26)) ^ carry);
carry = ((unsigned int)((carry << 27)) | (unsigned int)(((unsigned int)(carry) >> 5)));
carry = ((carry * 0x41c651cd) + *(int *)((&local_60[0] + 44)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 48)))) + carry))) >> 29)) ^ carry);
carry = ((unsigned int)((carry << 30)) | (unsigned int)(((unsigned int)(carry) >> 2)));
carry = ((carry * 0x41c6522d) + *(int *)((&local_60[0] + 56)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 60)))) + carry))) >> 1)) ^ carry);
carry = ((unsigned int)((carry << 2)) | (unsigned int)(((unsigned int)(carry) >> 30)));
carry = ((carry * 0x41c6528d) + *(int *)((&local_60[0] + 4)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 8)))) + carry))) >> 4)) ^ carry);
carry = ((unsigned int)((carry << 5)) | (unsigned int)(((unsigned int)(carry) >> 27)));
carry = ((carry * 0x41c652ed) + *(int *)((&local_60[0] + 16)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 20)))) + carry))) >> 7)) ^ carry);
carry = ((unsigned int)((carry << 8)) | (unsigned int)(((unsigned int)(carry) >> 24)));
carry = ((carry * 0x41c6534d) + *(int *)((&local_60[0] + 28)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 32)))) + carry))) >> 10)) ^ carry);
carry = ((unsigned int)((carry << 11)) | (unsigned int)(((unsigned int)(carry) >> 21)));
carry = ((carry * 0x41c653ad) + *(int *)((&local_60[0] + 40)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 44)))) + carry))) >> 13)) ^ carry);
carry = ((unsigned int)((carry << 14)) | (unsigned int)(((unsigned int)(carry) >> 18)));
carry = ((carry * 0x41c6540d) + *(int *)((&local_60[0] + 52)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 56)))) + carry))) >> 16)) ^ carry);
carry = ((unsigned int)((carry << 17)) | (unsigned int)(((unsigned int)(carry) >> 15)));
carry = ((carry * 0x41c6546d) + *(int *)(&local_60[0]));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 4)))) + carry))) >> 19)) ^ carry);
carry = ((unsigned int)((carry << 20)) | (unsigned int)(((unsigned int)(carry) >> 12)));
carry = ((carry * 0x41c654cd) + *(int *)((&local_60[0] + 12)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 16)))) + carry))) >> 22)) ^ carry);
carry = ((unsigned int)((carry << 23)) | (unsigned int)(((unsigned int)(carry) >> 9)));
carry = ((carry * 0x41c6552d) + *(int *)((&local_60[0] + 24)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 28)))) + carry))) >> 25)) ^ carry);
carry = ((unsigned int)((carry << 26)) | (unsigned int)(((unsigned int)(carry) >> 6)));
carry = ((carry * 0x41c6558d) + *(int *)((&local_60[0] + 36)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 40)))) + carry))) >> 28)) ^ carry);
carry = ((unsigned int)((carry << 29)) | (unsigned int)(((unsigned int)(carry) >> 3)));
carry = ((carry * 0x41c655ed) + *(int *)((&local_60[0] + 48)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 52)))) + carry))) >> 31)) ^ carry);
carry = ((unsigned int)((carry << 1)) | (unsigned int)(((unsigned int)(carry) >> 31)));
carry = ((carry * 0x41c6564d) + *(int *)((&local_60[0] + 60)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(&local_60[0]))) + carry))) >> 3)) ^ carry);
carry = ((unsigned int)((carry << 4)) | (unsigned int)(((unsigned int)(carry) >> 28)));
carry = ((carry * 0x41c656ad) + *(int *)((&local_60[0] + 8)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 12)))) + carry))) >> 6)) ^ carry);
carry = ((unsigned int)((carry << 7)) | (unsigned int)(((unsigned int)(carry) >> 25)));
carry = ((carry * 0x41c6570d) + *(int *)((&local_60[0] + 20)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 24)))) + carry))) >> 9)) ^ carry);
carry = ((unsigned int)((carry << 10)) | (unsigned int)(((unsigned int)(carry) >> 22)));
carry = ((carry * 0x41c6576d) + *(int *)((&local_60[0] + 32)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 36)))) + carry))) >> 12)) ^ carry);
carry = ((unsigned int)((carry << 13)) | (unsigned int)(((unsigned int)(carry) >> 19)));
carry = ((carry * 0x41c657cd) + *(int *)((&local_60[0] + 44)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 48)))) + carry))) >> 15)) ^ carry);
carry = ((unsigned int)((carry << 16)) | (unsigned int)(((unsigned int)(carry) >> 16)));
carry = ((carry * 0x41c6582d) + *(int *)((&local_60[0] + 56)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 60)))) + carry))) >> 18)) ^ carry);
carry = ((unsigned int)((carry << 19)) | (unsigned int)(((unsigned int)(carry) >> 13)));
carry = ((carry * 0x41c6588d) + *(int *)((&local_60[0] + 4)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 8)))) + carry))) >> 21)) ^ carry);
carry = ((unsigned int)((carry << 22)) | (unsigned int)(((unsigned int)(carry) >> 10)));
carry = ((carry * 0x41c658ed) + *(int *)((&local_60[0] + 16)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 20)))) + carry))) >> 24)) ^ carry);
carry = ((unsigned int)((carry << 25)) | (unsigned int)(((unsigned int)(carry) >> 7)));
carry = ((carry * 0x41c6594d) + *(int *)((&local_60[0] + 28)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 32)))) + carry))) >> 27)) ^ carry);
carry = ((unsigned int)((carry << 28)) | (unsigned int)(((unsigned int)(carry) >> 4)));
carry = ((carry * 0x41c659ad) + *(int *)((&local_60[0] + 40)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 44)))) + carry))) >> 30)) ^ carry);
carry = ((unsigned int)((carry << 31)) | (unsigned int)(((unsigned int)(carry) >> 1)));
carry = ((carry * 0x41c65a0d) + *(int *)((&local_60[0] + 52)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 56)))) + carry))) >> 2)) ^ carry);
carry = ((unsigned int)((carry << 3)) | (unsigned int)(((unsigned int)(carry) >> 29)));
carry = ((carry * 0x41c65a6d) + *(int *)(&local_60[0]));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 4)))) + carry))) >> 5)) ^ carry);
carry = ((unsigned int)((carry << 6)) | (unsigned int)(((unsigned int)(carry) >> 26)));
carry = ((carry * 0x41c65acd) + *(int *)((&local_60[0] + 12)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 16)))) + carry))) >> 8)) ^ carry);
carry = ((unsigned int)((carry << 9)) | (unsigned int)(((unsigned int)(carry) >> 23)));
carry = ((carry * 0x41c65b2d) + *(int *)((&local_60[0] + 24)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 28)))) + carry))) >> 11)) ^ carry);
carry = ((unsigned int)((carry << 12)) | (unsigned int)(((unsigned int)(carry) >> 20)));
carry = ((carry * 0x41c65b8d) + *(int *)((&local_60[0] + 36)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 40)))) + carry))) >> 14)) ^ carry);
carry = ((unsigned int)((carry << 15)) | (unsigned int)(((unsigned int)(carry) >> 17)));
carry = ((carry * 0x41c65bed) + *(int *)((&local_60[0] + 48)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 52)))) + carry))) >> 17)) ^ carry);
carry = ((unsigned int)((carry << 18)) | (unsigned int)(((unsigned int)(carry) >> 14)));
carry = ((carry * 0x41c65c4d) + *(int *)((&local_60[0] + 60)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(&local_60[0]))) + carry))) >> 20)) ^ carry);
carry = ((unsigned int)((carry << 21)) | (unsigned int)(((unsigned int)(carry) >> 11)));
carry = ((carry * 0x41c65cad) + *(int *)((&local_60[0] + 8)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 12)))) + carry))) >> 23)) ^ carry);
carry = ((unsigned int)((carry << 24)) | (unsigned int)(((unsigned int)(carry) >> 8)));
carry = ((carry * 0x41c65d0d) + *(int *)((&local_60[0] + 20)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 24)))) + carry))) >> 26)) ^ carry);
carry = ((unsigned int)((carry << 27)) | (unsigned int)(((unsigned int)(carry) >> 5)));
carry = ((carry * 0x41c65d6d) + *(int *)((&local_60[0] + 32)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 36)))) + carry))) >> 29)) ^ carry);
carry = ((unsigned int)((carry << 30)) | (unsigned int)(((unsigned int)(carry) >> 2)));
carry = ((carry * 0x41c65dcd) + *(int *)((&local_60[0] + 44)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 48)))) + carry))) >> 1)) ^ carry);
carry = ((unsigned int)((carry << 2)) | (unsigned int)(((unsigned int)(carry) >> 30)));
carry = ((carry * 0x41c65e2d) + *(int *)((&local_60[0] + 56)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 60)))) + carry))) >> 4)) ^ carry);
carry = ((unsigned int)((carry << 5)) | (unsigned int)(((unsigned int)(carry) >> 27)));
carry = ((carry * 0x41c65e8d) + *(int *)((&local_60[0] + 4)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 8)))) + carry))) >> 7)) ^ carry);
carry = ((unsigned int)((carry << 8)) | (unsigned int)(((unsigned int)(carry) >> 24)));
carry = ((carry * 0x41c65eed) + *(int *)((&local_60[0] + 16)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 20)))) + carry))) >> 10)) ^ carry);
carry = ((unsigned int)((carry << 11)) | (unsigned int)(((unsigned int)(carry) >> 21)));
carry = ((carry * 0x41c65f4d) + *(int *)((&local_60[0] + 28)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 32)))) + carry))) >> 13)) ^ carry);
carry = ((unsigned int)((carry << 14)) | (unsigned int)(((unsigned int)(carry) >> 18)));
carry = ((carry * 0x41c65fad) + *(int *)((&local_60[0] + 40)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 44)))) + carry))) >> 16)) ^ carry);
carry = ((unsigned int)((carry << 17)) | (unsigned int)(((unsigned int)(carry) >> 15)));
carry = ((carry * 0x41c6600d) + *(int *)((&local_60[0] + 52)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 56)))) + carry))) >> 19)) ^ carry);
carry = ((unsigned int)((carry << 20)) | (unsigned int)(((unsigned int)(carry) >> 12)));
carry = ((carry * 0x41c6606d) + *(int *)(&local_60[0]));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 4)))) + carry))) >> 22)) ^ carry);
carry = ((unsigned int)((carry << 23)) | (unsigned int)(((unsigned int)(carry) >> 9)));
carry = ((carry * 0x41c660cd) + *(int *)((&local_60[0] + 12)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 16)))) + carry))) >> 25)) ^ carry);
carry = ((unsigned int)((carry << 26)) | (unsigned int)(((unsigned int)(carry) >> 6)));
carry = ((carry * 0x41c6612d) + *(int *)((&local_60[0] + 24)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 28)))) + carry))) >> 28)) ^ carry);
carry = ((unsigned int)((carry << 29)) | (unsigned int)(((unsigned int)(carry) >> 3)));
carry = ((carry * 0x41c6618d) + *(int *)((&local_60[0] + 36)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 40)))) + carry))) >> 31)) ^ carry);
carry = ((unsigned int)((carry << 1)) | (unsigned int)(((unsigned int)(carry) >> 31)));
carry = ((carry * 0x41c661ed) + *(int *)((&local_60[0] + 48)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 52)))) + carry))) >> 3)) ^ carry);
carry = ((unsigned int)((carry << 4)) | (unsigned int)(((unsigned int)(carry) >> 28)));
carry = ((carry * 0x41c6624d) + *(int *)((&local_60[0] + 60)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)(&local_60[0]))) + carry))) >> 6)) ^ carry);
carry = ((unsigned int)((carry << 7)) | (unsigned int)(((unsigned int)(carry) >> 25)));
carry = ((carry * 0x41c662ad) + *(int *)((&local_60[0] + 8)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 12)))) + carry))) >> 9)) ^ carry);
carry = ((unsigned int)((carry << 10)) | (unsigned int)(((unsigned int)(carry) >> 22)));
carry = ((carry * 0x41c6630d) + *(int *)((&local_60[0] + 20)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 24)))) + carry))) >> 12)) ^ carry);
carry = ((unsigned int)((carry << 13)) | (unsigned int)(((unsigned int)(carry) >> 19)));
carry = ((carry * 0x41c6636d) + *(int *)((&local_60[0] + 32)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 36)))) + carry))) >> 15)) ^ carry);
carry = ((unsigned int)((carry << 16)) | (unsigned int)(((unsigned int)(carry) >> 16)));
carry = ((carry * 0x41c663cd) + *(int *)((&local_60[0] + 44)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 48)))) + carry))) >> 18)) ^ carry);
carry = ((unsigned int)((carry << 19)) | (unsigned int)(((unsigned int)(carry) >> 13)));
carry = ((carry * 0x41c6642d) + *(int *)((&local_60[0] + 56)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 60)))) + carry))) >> 21)) ^ carry);
carry = ((unsigned int)((carry << 22)) | (unsigned int)(((unsigned int)(carry) >> 10)));
carry = ((carry * 0x41c6648d) + *(int *)((&local_60[0] + 4)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 8)))) + carry))) >> 24)) ^ carry);
carry = ((unsigned int)((carry << 25)) | (unsigned int)(((unsigned int)(carry) >> 7)));
carry = ((carry * 0x41c664ed) + *(int *)((&local_60[0] + 16)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 20)))) + carry))) >> 27)) ^ carry);
carry = ((unsigned int)((carry << 28)) | (unsigned int)(((unsigned int)(carry) >> 4)));
carry = ((carry * 0x41c6654d) + *(int *)((&local_60[0] + 28)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 32)))) + carry))) >> 30)) ^ carry);
carry = ((unsigned int)((carry << 31)) | (unsigned int)(((unsigned int)(carry) >> 1)));
carry = ((carry * 0x41c665ad) + *(int *)((&local_60[0] + 40)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 44)))) + carry))) >> 2)) ^ carry);
carry = ((unsigned int)((carry << 3)) | (unsigned int)(((unsigned int)(carry) >> 29)));
carry = ((carry * 0x41c6660d) + *(int *)((&local_60[0] + 52)));
carry = ((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_60[0] + 56)))) + carry))) >> 5)) ^ carry);
carry = ((unsigned int)((carry << 6)) | (unsigned int)(((unsigned int)(carry) >> 26)));
for (index = 0; (index < arg1); index++) {
arg0[(long)(index)] = ((unsigned long)((unsigned int)((carry ^ *(int *)((&local_60[0] + ((long)(index) * 4)))))) & 0x7fffffff);
carry = ((carry * 0x19660d) + 0x3c6ef35f);
}
local_4 = ((unsigned int)((carry & 0xffffff)) + 192);
// x86-64 epilogue: restore rbp
return (unsigned int)(local_4);
} chain155_scalar pass 328 lines
// glaurung: chain155_scalar @ 0x1100
uint32_t chain155_scalar(uint32_t arg0) {
unsigned int acc;
// x86-64 prologue: save rbp
acc = (arg0 ^ -0x61c88647LL);
acc = ((acc * 0x41c64e6d) - 0x61c8864f);
acc = ((unsigned int)(((unsigned int)(acc) >> 2)) ^ acc);
acc = ((unsigned int)((acc << 3)) | (unsigned int)(((unsigned int)(acc) >> 29)));
acc = (acc + 0x78dde6c4);
acc = (acc ^ 0x17156075);
acc = ((unsigned int)(((unsigned int)(acc) >> 6)) + (unsigned int)((acc << 26)));
acc = ((acc * 0x41c64f15) + 0x538453d7);
acc = ((unsigned int)(((unsigned int)(acc) >> 8)) ^ acc);
acc = ((unsigned int)((acc << 9)) | (unsigned int)(((unsigned int)(acc) >> 23)));
acc = (acc + 0x2e2ac0ea);
acc = (acc ^ -0x339dc565LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 12)) + (unsigned int)((acc << 20)));
acc = ((acc * 0x41c64fbd) + 0x8d12dfd);
acc = ((unsigned int)(((unsigned int)(acc) >> 14)) ^ acc);
acc = ((unsigned int)((acc << 15)) | (unsigned int)(((unsigned int)(acc) >> 17)));
acc = (acc - 0x1c8864f0);
acc = (acc ^ -0x7e50eb3fLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 18)) + (unsigned int)((acc << 14)));
acc = ((acc * 0x41c65065) - 0x41e1f7dd);
acc = ((unsigned int)(((unsigned int)(acc) >> 20)) ^ acc);
acc = ((unsigned int)((acc << 21)) | (unsigned int)(((unsigned int)(acc) >> 11)));
acc = (acc - 0x673b8aca);
acc = (acc ^ 0x36fbeee7);
acc = ((unsigned int)(((unsigned int)(acc) >> 24)) + (unsigned int)((acc << 8)));
acc = ((acc * 0x41c6510d) + 0x736ae249);
acc = ((unsigned int)(((unsigned int)(acc) >> 26)) ^ acc);
acc = ((unsigned int)((acc << 27)) | (unsigned int)(((unsigned int)(acc) >> 5)));
acc = (acc + 0x4e114f5c);
acc = (acc ^ -0x13b736f3LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 30)) + (unsigned int)((acc << 2)));
acc = ((acc * 0x41c651b5) + 0x28b7bc6f);
acc = ((unsigned int)(((unsigned int)(acc) >> 1)) ^ acc);
acc = ((unsigned int)((acc << 2)) | (unsigned int)(((unsigned int)(acc) >> 30)));
acc = (acc + 0x35e2982);
acc = (acc ^ -0x5e6a5ccdLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 5)) + (unsigned int)((acc << 27)));
acc = ((acc * 0x41c6525d) - 0x21fb696b);
acc = ((unsigned int)(((unsigned int)(acc) >> 7)) ^ acc);
acc = ((unsigned int)((acc << 8)) | (unsigned int)(((unsigned int)(acc) >> 24)));
acc = (acc - 0x4754fc58);
acc = (acc ^ 0x56e27d59);
acc = ((unsigned int)(((unsigned int)(acc) >> 11)) + (unsigned int)((acc << 21)));
acc = ((acc * 0x41c65305) - 0x6cae8f45);
acc = ((unsigned int)(((unsigned int)(acc) >> 13)) ^ acc);
acc = ((unsigned int)((acc << 14)) | (unsigned int)(((unsigned int)(acc) >> 18)));
acc = (acc + 0x6df7ddce);
acc = (acc ^ 0xc2f577f);
acc = ((unsigned int)(((unsigned int)(acc) >> 17)) + (unsigned int)((acc << 15)));
acc = ((acc * 0x41c653ad) + 0x489e4ae1);
acc = ((unsigned int)(((unsigned int)(acc) >> 19)) ^ acc);
acc = ((unsigned int)((acc << 20)) | (unsigned int)(((unsigned int)(acc) >> 12)));
acc = (acc + 0x2344b7f4);
acc = (acc ^ -0x3e83ce5bLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 23)) + (unsigned int)((acc << 9)));
acc = ((acc * 0x41c65455) - 0x214daf9);
acc = ((unsigned int)(((unsigned int)(acc) >> 25)) ^ acc);
acc = ((unsigned int)((acc << 26)) | (unsigned int)(((unsigned int)(acc) >> 6)));
acc = (acc - 0x276e6de6);
acc = (acc ^ 0x76c90bcb);
acc = ((unsigned int)(((unsigned int)(acc) >> 29)) + (unsigned int)((acc << 3)));
acc = ((acc * 0x41c654fd) - 0x4cc800d3);
acc = ((unsigned int)(((unsigned int)(acc) >> 31)) ^ acc);
acc = ((unsigned int)((acc << 1)) | (unsigned int)(((unsigned int)(acc) >> 31)));
acc = (acc - 0x722193c0);
acc = (acc ^ 0x2c15e5f1);
acc = ((unsigned int)(((unsigned int)(acc) >> 4)) + (unsigned int)((acc << 28)));
acc = ((acc * 0x41c655a5) + 0x6884d953);
acc = ((unsigned int)(((unsigned int)(acc) >> 6)) ^ acc);
acc = ((unsigned int)((acc << 7)) | (unsigned int)(((unsigned int)(acc) >> 25)));
acc = (acc + 0x432b4666);
acc = (acc ^ -0x1e9d3fe9LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 10)) + (unsigned int)((acc << 22)));
acc = ((acc * 0x41c6564d) + 0x1dd1b379);
acc = ((unsigned int)(((unsigned int)(acc) >> 12)) ^ acc);
acc = ((unsigned int)((acc << 13)) | (unsigned int)(((unsigned int)(acc) >> 19)));
acc = (acc - 0x787df74);
acc = (acc ^ -0x695065c3LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 16)) + (unsigned int)((acc << 16)));
acc = ((acc * 0x41c656f5) - 0x2ce17261);
acc = ((unsigned int)(((unsigned int)(acc) >> 18)) ^ acc);
acc = ((unsigned int)((acc << 19)) | (unsigned int)(((unsigned int)(acc) >> 13)));
acc = (acc - 0x523b054e);
acc = (acc ^ 0x4bfc7463);
acc = ((unsigned int)(((unsigned int)(acc) >> 22)) + (unsigned int)((acc << 10)));
acc = ((acc * 0x41c6579d) - 0x7794983b);
acc = ((unsigned int)(((unsigned int)(acc) >> 24)) ^ acc);
acc = ((unsigned int)((acc << 25)) | (unsigned int)(((unsigned int)(acc) >> 7)));
acc = (acc + 0x6311d4d8);
acc = (acc ^ 0x1494e89);
acc = ((unsigned int)(((unsigned int)(acc) >> 28)) + (unsigned int)((acc << 4)));
acc = ((acc * 0x41c65845) + 0x3db841eb);
acc = ((unsigned int)(((unsigned int)(acc) >> 30)) ^ acc);
acc = ((unsigned int)((acc << 31)) | (unsigned int)(((unsigned int)(acc) >> 1)));
acc = (acc + 0x185eaefe);
acc = (acc ^ -0x4969d751LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 3)) + (unsigned int)((acc << 29)));
acc = ((acc * 0x41c658ed) - 0xcfae3ef);
acc = ((unsigned int)(((unsigned int)(acc) >> 5)) ^ acc);
acc = ((unsigned int)((acc << 6)) | (unsigned int)(((unsigned int)(acc) >> 26)));
acc = (acc - 0x325476dc);
acc = (acc ^ 0x6be302d5);
acc = ((unsigned int)(((unsigned int)(acc) >> 9)) + (unsigned int)((acc << 23)));
acc = ((acc * 0x41c65995) - 0x57ae09c9);
acc = ((unsigned int)(((unsigned int)(acc) >> 11)) ^ acc);
acc = ((unsigned int)((acc << 12)) | (unsigned int)(((unsigned int)(acc) >> 20)));
acc = (acc - 0x7d079cb6);
acc = (acc ^ 0x212fdcfb);
acc = ((unsigned int)(((unsigned int)(acc) >> 15)) + (unsigned int)((acc << 17)));
acc = ((acc * 0x41c65a3d) + 0x5d9ed05d);
acc = ((unsigned int)(((unsigned int)(acc) >> 17)) ^ acc);
acc = ((unsigned int)((acc << 18)) | (unsigned int)(((unsigned int)(acc) >> 14)));
acc = (acc + 0x38453d70);
acc = (acc ^ -0x298348dfLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 21)) + (unsigned int)((acc << 11)));
acc = ((acc * 0x41c65ae5) + 0x12ebaa83);
acc = ((unsigned int)(((unsigned int)(acc) >> 23)) ^ acc);
acc = ((unsigned int)((acc << 24)) | (unsigned int)(((unsigned int)(acc) >> 8)));
acc = (acc - 0x126de86a);
acc = (acc ^ -0x74366eb9LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 27)) + (unsigned int)((acc << 5)));
acc = ((acc * 0x41c65b8d) - 0x37c77b57);
acc = ((unsigned int)(((unsigned int)(acc) >> 29)) ^ acc);
acc = ((unsigned int)((acc << 30)) | (unsigned int)(((unsigned int)(acc) >> 2)));
acc = (acc - 0x5d210e44);
acc = (acc ^ 0x41166b6d);
acc = ((unsigned int)(((unsigned int)(acc) >> 2)) + (unsigned int)((acc << 30)));
acc = ((acc * 0x41c65c35) + 0x7d855ecf);
acc = ((unsigned int)(((unsigned int)(acc) >> 4)) ^ acc);
acc = ((unsigned int)((acc << 5)) | (unsigned int)(((unsigned int)(acc) >> 27)));
acc = (acc + 0x582bcbe2);
acc = (acc ^ -0x99cba6dLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 8)) + (unsigned int)((acc << 24)));
acc = ((acc * 0x41c65cdd) + 0x32d238f5);
acc = ((unsigned int)(((unsigned int)(acc) >> 10)) ^ acc);
acc = ((unsigned int)((acc << 11)) | (unsigned int)(((unsigned int)(acc) >> 21)));
acc = (acc + 0xd78a608);
acc = (acc ^ -0x544fe047LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 14)) + (unsigned int)((acc << 18)));
acc = ((acc * 0x41c65d85) - 0x17e0ece5);
acc = ((unsigned int)(((unsigned int)(acc) >> 16)) ^ acc);
acc = ((unsigned int)((acc << 17)) | (unsigned int)(((unsigned int)(acc) >> 15)));
acc = (acc - 0x3d3a7fd2);
acc = (acc ^ 0x60fcf9df);
acc = ((unsigned int)(((unsigned int)(acc) >> 20)) + (unsigned int)((acc << 12)));
acc = ((acc * 0x41c65e2d) - 0x629412bf);
acc = ((unsigned int)(((unsigned int)(acc) >> 22)) ^ acc);
acc = ((unsigned int)((acc << 23)) | (unsigned int)(((unsigned int)(acc) >> 9)));
acc = (acc + 0x78125a54);
acc = (acc ^ 0x1649d405);
acc = ((unsigned int)(((unsigned int)(acc) >> 26)) + (unsigned int)((acc << 6)));
acc = ((acc * 0x41c65ed5) + 0x52b8c767);
acc = ((unsigned int)(((unsigned int)(acc) >> 28)) ^ acc);
acc = ((unsigned int)((acc << 29)) | (unsigned int)(((unsigned int)(acc) >> 3)));
acc = (acc + 0x2d5f347a);
acc = (acc ^ -0x346951d5LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 1)) + (unsigned int)((acc << 31)));
acc = ((acc * 0x41c65f7d) + 0x805a18d);
acc = ((unsigned int)(((unsigned int)(acc) >> 3)) ^ acc);
acc = ((unsigned int)((acc << 4)) | (unsigned int)(((unsigned int)(acc) >> 28)));
acc = (acc - 0x1d53f160);
acc = (acc ^ -0x7f1c77afLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 7)) + (unsigned int)((acc << 25)));
acc = ((acc * 0x41c66025) - 0x42ad844d);
acc = ((unsigned int)(((unsigned int)(acc) >> 9)) ^ acc);
acc = ((unsigned int)((acc << 10)) | (unsigned int)(((unsigned int)(acc) >> 22)));
acc = (acc - 0x6807173a);
acc = (acc ^ 0x36306277);
acc = ((unsigned int)(((unsigned int)(acc) >> 13)) + (unsigned int)((acc << 19)));
acc = ((acc * 0x41c660cd) + 0x729f55d9);
acc = ((unsigned int)(((unsigned int)(acc) >> 15)) ^ acc);
acc = ((unsigned int)((acc << 16)) | (unsigned int)(((unsigned int)(acc) >> 16)));
acc = (acc + 0x4d45c2ec);
acc = (acc ^ -0x1482c363LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 19)) + (unsigned int)((acc << 13)));
acc = ((acc * 0x41c66175) + 0x27ec2fff);
acc = ((unsigned int)(((unsigned int)(acc) >> 21)) ^ acc);
acc = ((unsigned int)((acc << 22)) | (unsigned int)(((unsigned int)(acc) >> 10)));
acc = (acc + 0x2929d12);
acc = (acc ^ -0x5f35e93dLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 25)) + (unsigned int)((acc << 7)));
acc = ((acc * 0x41c6621d) - 0x22c6f5db);
acc = ((unsigned int)(((unsigned int)(acc) >> 27)) ^ acc);
acc = ((unsigned int)((acc << 28)) | (unsigned int)(((unsigned int)(acc) >> 4)));
acc = (acc - 0x482088c8);
acc = (acc ^ 0x5616f0e9);
acc = ((unsigned int)(((unsigned int)(acc) >> 31)) + (unsigned int)((acc << 1)));
acc = ((acc * 0x41c662c5) - 0x6d7a1bb5);
acc = ((unsigned int)(((unsigned int)(acc) >> 2)) ^ acc);
acc = ((unsigned int)((acc << 3)) | (unsigned int)(((unsigned int)(acc) >> 29)));
acc = (acc + 0x6d2c515e);
acc = (acc ^ 0xb63cb0f);
acc = ((unsigned int)(((unsigned int)(acc) >> 6)) + (unsigned int)((acc << 26)));
acc = ((acc * 0x41c6636d) + 0x47d2be71);
acc = ((unsigned int)(((unsigned int)(acc) >> 8)) ^ acc);
acc = ((unsigned int)((acc << 9)) | (unsigned int)(((unsigned int)(acc) >> 23)));
acc = (acc + 0x22792b84);
acc = (acc ^ -0x3f4f5acbLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 12)) + (unsigned int)((acc << 20)));
acc = ((acc * 0x41c66415) - 0x2e06769);
acc = ((unsigned int)(((unsigned int)(acc) >> 14)) ^ acc);
acc = ((unsigned int)((acc << 15)) | (unsigned int)(((unsigned int)(acc) >> 17)));
acc = (acc - 0x2839fa56);
acc = (acc ^ 0x75fd7f5b);
acc = ((unsigned int)(((unsigned int)(acc) >> 18)) + (unsigned int)((acc << 14)));
acc = ((acc * 0x41c664bd) - 0x4d938d43);
acc = ((unsigned int)(((unsigned int)(acc) >> 20)) ^ acc);
acc = ((unsigned int)((acc << 21)) | (unsigned int)(((unsigned int)(acc) >> 11)));
acc = (acc - 0x72ed2030);
acc = (acc ^ 0x2b4a5981);
acc = ((unsigned int)(((unsigned int)(acc) >> 24)) + (unsigned int)((acc << 8)));
acc = ((acc * 0x41c66565) + 0x67b94ce3);
acc = ((unsigned int)(((unsigned int)(acc) >> 26)) ^ acc);
acc = ((unsigned int)((acc << 27)) | (unsigned int)(((unsigned int)(acc) >> 5)));
acc = (acc + 0x425fb9f6);
acc = (acc ^ -0x1f68cc59LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 30)) + (unsigned int)((acc << 2)));
acc = ((acc * 0x41c6660d) + 0x1d062709);
acc = ((unsigned int)(((unsigned int)(acc) >> 1)) ^ acc);
acc = ((unsigned int)((acc << 2)) | (unsigned int)(((unsigned int)(acc) >> 30)));
acc = (acc - 0x8536be4);
acc = (acc ^ -0x6a1bf233LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 5)) + (unsigned int)((acc << 27)));
acc = ((acc * 0x41c666b5) - 0x2dacfed1);
acc = ((unsigned int)(((unsigned int)(acc) >> 7)) ^ acc);
acc = ((unsigned int)((acc << 8)) | (unsigned int)(((unsigned int)(acc) >> 24)));
acc = (acc - 0x530691be);
acc = (acc ^ 0x4b30e7f3);
acc = ((unsigned int)(((unsigned int)(acc) >> 11)) + (unsigned int)((acc << 21)));
acc = ((acc * 0x41c6675d) - 0x786024ab);
acc = ((unsigned int)(((unsigned int)(acc) >> 13)) ^ acc);
acc = ((unsigned int)((acc << 14)) | (unsigned int)(((unsigned int)(acc) >> 18)));
acc = (acc + 0x62464868);
acc = (acc ^ 0x7dc219);
acc = ((unsigned int)(((unsigned int)(acc) >> 17)) + (unsigned int)((acc << 15)));
acc = ((acc * 0x41c66805) + 0x3cecb57b);
acc = ((unsigned int)(((unsigned int)(acc) >> 19)) ^ acc);
acc = ((unsigned int)((acc << 20)) | (unsigned int)(((unsigned int)(acc) >> 12)));
acc = (acc + 0x1793228e);
acc = (acc ^ -0x4a3563c1LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 23)) + (unsigned int)((acc << 9)));
acc = ((acc * 0x41c668ad) - 0xdc6705f);
acc = ((unsigned int)(((unsigned int)(acc) >> 25)) ^ acc);
acc = ((unsigned int)((acc << 26)) | (unsigned int)(((unsigned int)(acc) >> 6)));
acc = (acc - 0x3320034c);
acc = (acc ^ 0x6b177665);
acc = ((unsigned int)(((unsigned int)(acc) >> 29)) + (unsigned int)((acc << 3)));
acc = ((acc * 0x41c66955) - 0x58799639);
acc = ((unsigned int)(((unsigned int)(acc) >> 31)) ^ acc);
acc = ((unsigned int)((acc << 1)) | (unsigned int)(((unsigned int)(acc) >> 31)));
acc = (acc - 0x7dd32926);
acc = (acc ^ 0x2064508b);
acc = ((unsigned int)(((unsigned int)(acc) >> 4)) + (unsigned int)((acc << 28)));
acc = ((acc * 0x41c669fd) + 0x5cd343ed);
acc = ((unsigned int)(((unsigned int)(acc) >> 6)) ^ acc);
acc = ((unsigned int)((acc << 7)) | (unsigned int)(((unsigned int)(acc) >> 25)));
acc = (acc + 0x3779b100);
acc = (acc ^ -0x2a4ed54fLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 10)) + (unsigned int)((acc << 22)));
acc = ((acc * 0x41c66aa5) + 0x12201e13);
acc = ((unsigned int)(((unsigned int)(acc) >> 12)) ^ acc);
acc = ((unsigned int)((acc << 13)) | (unsigned int)(((unsigned int)(acc) >> 19)));
acc = (acc - 0x133974da);
acc = (acc ^ -0x7501fb29LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 16)) + (unsigned int)((acc << 16)));
acc = ((acc * 0x41c66b4d) - 0x389307c7);
acc = ((unsigned int)(((unsigned int)(acc) >> 18)) ^ acc);
acc = ((unsigned int)((acc << 19)) | (unsigned int)(((unsigned int)(acc) >> 13)));
acc = (acc - 0x5dec9ab4);
acc = (acc ^ 0x404adefd);
acc = ((unsigned int)(((unsigned int)(acc) >> 22)) + (unsigned int)((acc << 10)));
acc = ((acc * 0x41c66bf5) + 0x7cb9d25f);
acc = ((unsigned int)(((unsigned int)(acc) >> 24)) ^ acc);
acc = ((unsigned int)((acc << 25)) | (unsigned int)(((unsigned int)(acc) >> 7)));
acc = (acc + 0x57603f72);
acc = (acc ^ -0xa6846ddLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 28)) + (unsigned int)((acc << 4)));
acc = ((acc * 0x41c66c9d) + 0x3206ac85);
acc = ((unsigned int)(((unsigned int)(acc) >> 30)) ^ acc);
acc = ((unsigned int)((acc << 31)) | (unsigned int)(((unsigned int)(acc) >> 1)));
acc = (acc + 0xcad1998);
acc = (acc ^ -0x551b6cb7LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 3)) + (unsigned int)((acc << 29)));
acc = ((acc * 0x41c66d45) - 0x18ac7955);
acc = ((unsigned int)(((unsigned int)(acc) >> 5)) ^ acc);
acc = ((unsigned int)((acc << 6)) | (unsigned int)(((unsigned int)(acc) >> 26)));
acc = (acc - 0x3e060c42);
acc = (acc ^ 0x60316d6f);
acc = ((unsigned int)(((unsigned int)(acc) >> 9)) + (unsigned int)((acc << 23)));
acc = ((acc * 0x41c66ded) - 0x635f9f2f);
acc = ((unsigned int)(((unsigned int)(acc) >> 11)) ^ acc);
acc = ((unsigned int)((acc << 12)) | (unsigned int)(((unsigned int)(acc) >> 20)));
acc = (acc + 0x7746cde4);
acc = (acc ^ 0x157e4795);
acc = ((unsigned int)(((unsigned int)(acc) >> 15)) + (unsigned int)((acc << 17)));
acc = ((acc * 0x41c66e95) + 0x51ed3af7);
acc = ((unsigned int)(((unsigned int)(acc) >> 17)) ^ acc);
acc = ((unsigned int)((acc << 18)) | (unsigned int)(((unsigned int)(acc) >> 14)));
acc = (acc + 0x2c93a80a);
acc = (acc ^ -0x3534de45LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 21)) + (unsigned int)((acc << 11)));
acc = ((acc * 0x41c66f3d) + 0x73a151d);
acc = ((unsigned int)(((unsigned int)(acc) >> 23)) ^ acc);
acc = ((unsigned int)((acc << 24)) | (unsigned int)(((unsigned int)(acc) >> 8)));
acc = (acc - 0x1e1f7dd0);
acc = (acc ^ -0x7fe8041fLL);
acc = ((unsigned int)(((unsigned int)(acc) >> 27)) + (unsigned int)((acc << 5)));
acc = ((acc * 0x41c66fe5) - 0x437910bd);
acc = ((unsigned int)(((unsigned int)(acc) >> 29)) ^ acc);
acc = ((unsigned int)((acc << 30)) | (unsigned int)(((unsigned int)(acc) >> 2)));
acc = (acc - 0x68d2a3aa);
acc = (acc ^ 0x3564d607);
acc = ((unsigned int)(((unsigned int)(acc) >> 2)) + (unsigned int)((acc << 30)));
acc = ((acc * 0x41c6708d) + 0x71d3c969);
acc = ((unsigned int)(((unsigned int)(acc) >> 4)) ^ acc);
acc = ((unsigned int)((acc << 5)) | (unsigned int)(((unsigned int)(acc) >> 27)));
acc = (acc + 0x4c7a367c);
acc = (acc ^ -0x154e4fd3LL);
acc = ((unsigned int)(((unsigned int)(acc) >> 8)) + (unsigned int)((acc << 24)));
acc = ((acc * 0x41c67135) + 0x2720a38f);
acc = ((unsigned int)(((unsigned int)(acc) >> 10)) ^ acc);
// x86-64 epilogue: restore rbp
return (unsigned int)(((unsigned long)(acc) + 320));
} chain155_signed pass 264 lines
// glaurung: chain155_signed @ 0x2270
int32_t chain155_signed(int32_t arg0) {
int step;
// x86-64 prologue: save rbp
step = arg0;
step = ((step * 0x41c64e6d) - 0x61c8864f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 3)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)));
step = ((unsigned int)(step) + 0x78dde6c4);
step = ((unsigned int)(step) ^ 0x17156075);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 26)));
step = ((step * 0x41c64f15) + 0x538453d7);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 9)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)));
step = ((unsigned int)(step) + 0x2e2ac0ea);
step = ((unsigned int)(step) ^ -0x339dc565LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 20)));
step = ((step * 0x41c64fbd) + 0x8d12dfd);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 15)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)));
step = ((unsigned int)(step) - 0x1c8864f0);
step = ((unsigned int)(step) ^ -0x7e50eb3fLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 14)));
step = ((step * 0x41c65065) - 0x41e1f7dd);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 21)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)));
step = ((unsigned int)(step) - 0x673b8aca);
step = ((unsigned int)(step) ^ 0x36fbeee7);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 8)));
step = ((step * 0x41c6510d) + 0x736ae249);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 27)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)));
step = ((unsigned int)(step) + 0x4e114f5c);
step = ((unsigned int)(step) ^ -0x13b736f3LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 2)));
step = ((step * 0x41c651b5) + 0x28b7bc6f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 2)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)));
step = ((unsigned int)(step) + 0x35e2982);
step = ((unsigned int)(step) ^ -0x5e6a5ccdLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 27)));
step = ((step * 0x41c6525d) - 0x21fb696b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 8)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)));
step = ((unsigned int)(step) - 0x4754fc58);
step = ((unsigned int)(step) ^ 0x56e27d59);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 21)));
step = ((step * 0x41c65305) - 0x6cae8f45);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 14)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)));
step = ((unsigned int)(step) + 0x6df7ddce);
step = ((unsigned int)(step) ^ 0xc2f577f);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 15)));
step = ((step * 0x41c653ad) + 0x489e4ae1);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 20)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)));
step = ((unsigned int)(step) + 0x2344b7f4);
step = ((unsigned int)(step) ^ -0x3e83ce5bLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 9)));
step = ((step * 0x41c65455) - 0x214daf9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 26)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = ((unsigned int)(step) - 0x276e6de6);
step = ((unsigned int)(step) ^ 0x76c90bcb);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 3)));
step = ((step * 0x41c654fd) - 0x4cc800d3);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 1)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = ((unsigned int)(step) - 0x722193c0);
step = ((unsigned int)(step) ^ 0x2c15e5f1);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 4)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 28)));
step = ((step * 0x41c655a5) + 0x6884d953);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 7)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = ((unsigned int)(step) + 0x432b4666);
step = ((unsigned int)(step) ^ -0x1e9d3fe9LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 10)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 22)));
step = ((step * 0x41c6564d) + 0x1dd1b379);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 13)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)));
step = ((unsigned int)(step) - 0x787df74);
step = ((unsigned int)(step) ^ -0x695065c3LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 16)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 16)));
step = ((step * 0x41c656f5) - 0x2ce17261);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 19)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)));
step = ((unsigned int)(step) - 0x523b054e);
step = ((unsigned int)(step) ^ 0x4bfc7463);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 22)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 10)));
step = ((step * 0x41c6579d) - 0x7794983b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 25)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)));
step = ((unsigned int)(step) + 0x6311d4d8);
step = ((unsigned int)(step) ^ 0x1494e89);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 28)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 4)));
step = ((step * 0x41c65845) + 0x3db841eb);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 31)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)));
step = ((unsigned int)(step) + 0x185eaefe);
step = ((unsigned int)(step) ^ -0x4969d751LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 3)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 29)));
step = ((step * 0x41c658ed) - 0xcfae3ef);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 6)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)));
step = ((unsigned int)(step) - 0x325476dc);
step = ((unsigned int)(step) ^ 0x6be302d5);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 9)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 23)));
step = ((step * 0x41c65995) - 0x57ae09c9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 12)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)));
step = ((unsigned int)(step) - 0x7d079cb6);
step = ((unsigned int)(step) ^ 0x212fdcfb);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 15)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 17)));
step = ((step * 0x41c65a3d) + 0x5d9ed05d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 18)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)));
step = ((unsigned int)(step) + 0x38453d70);
step = ((unsigned int)(step) ^ -0x298348dfLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 21)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 11)));
step = ((step * 0x41c65ae5) + 0x12ebaa83);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 24)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)));
step = ((unsigned int)(step) - 0x126de86a);
step = ((unsigned int)(step) ^ -0x74366eb9LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 27)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 5)));
step = ((step * 0x41c65b8d) - 0x37c77b57);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 30)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)));
step = ((unsigned int)(step) - 0x5d210e44);
step = ((unsigned int)(step) ^ 0x41166b6d);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 30)));
step = ((step * 0x41c65c35) + 0x7d855ecf);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 4)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 5)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 27)));
step = ((unsigned int)(step) + 0x582bcbe2);
step = ((unsigned int)(step) ^ -0x99cba6dLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 24)));
step = ((step * 0x41c65cdd) + 0x32d238f5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 10)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 11)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 21)));
step = ((unsigned int)(step) + 0xd78a608);
step = ((unsigned int)(step) ^ -0x544fe047LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 18)));
step = ((step * 0x41c65d85) - 0x17e0ece5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 16)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 17)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 15)));
step = ((unsigned int)(step) - 0x3d3a7fd2);
step = ((unsigned int)(step) ^ 0x60fcf9df);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 12)));
step = ((step * 0x41c65e2d) - 0x629412bf);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 22)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 23)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 9)));
step = ((unsigned int)(step) + 0x78125a54);
step = ((unsigned int)(step) ^ 0x1649d405);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 6)));
step = ((step * 0x41c65ed5) + 0x52b8c767);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 28)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 29)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 3)));
step = ((unsigned int)(step) + 0x2d5f347a);
step = ((unsigned int)(step) ^ -0x346951d5LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 31)));
step = ((step * 0x41c65f7d) + 0x805a18d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 3)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 4)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 28)));
step = ((unsigned int)(step) - 0x1d53f160);
step = ((unsigned int)(step) ^ -0x7f1c77afLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 25)));
step = ((step * 0x41c66025) - 0x42ad844d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 9)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 10)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 22)));
step = ((unsigned int)(step) - 0x6807173a);
step = ((unsigned int)(step) ^ 0x36306277);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 19)));
step = ((step * 0x41c660cd) + 0x729f55d9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 15)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 16)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 16)));
step = ((unsigned int)(step) + 0x4d45c2ec);
step = ((unsigned int)(step) ^ -0x1482c363LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 13)));
step = ((step * 0x41c66175) + 0x27ec2fff);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 21)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 22)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 10)));
step = ((unsigned int)(step) + 0x2929d12);
step = ((unsigned int)(step) ^ -0x5f35e93dLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 7)));
step = ((step * 0x41c6621d) - 0x22c6f5db);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 27)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 28)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 4)));
step = ((unsigned int)(step) - 0x482088c8);
step = ((unsigned int)(step) ^ 0x5616f0e9);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 1)));
step = ((step * 0x41c662c5) - 0x6d7a1bb5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 3)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)));
step = ((unsigned int)(step) + 0x6d2c515e);
step = ((unsigned int)(step) ^ 0xb63cb0f);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 26)));
step = ((step * 0x41c6636d) + 0x47d2be71);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 9)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)));
step = ((unsigned int)(step) + 0x22792b84);
step = ((unsigned int)(step) ^ -0x3f4f5acbLL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 20)));
step = ((step * 0x41c66415) - 0x2e06769);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 15)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)));
step = ((unsigned int)(step) - 0x2839fa56);
step = ((unsigned int)(step) ^ 0x75fd7f5b);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 14)));
step = ((step * 0x41c664bd) - 0x4d938d43);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 21)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)));
step = ((unsigned int)(step) - 0x72ed2030);
step = ((unsigned int)(step) ^ 0x2b4a5981);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 8)));
step = ((step * 0x41c66565) + 0x67b94ce3);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 27)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)));
step = ((unsigned int)(step) + 0x425fb9f6);
step = ((unsigned int)(step) ^ -0x1f68cc59LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 2)));
step = ((step * 0x41c6660d) + 0x1d062709);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 2)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)));
step = ((unsigned int)(step) - 0x8536be4);
step = ((unsigned int)(step) ^ -0x6a1bf233LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 27)));
step = ((step * 0x41c666b5) - 0x2dacfed1);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 8)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)));
step = ((unsigned int)(step) - 0x530691be);
step = ((unsigned int)(step) ^ 0x4b30e7f3);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 21)));
step = ((step * 0x41c6675d) - 0x786024ab);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 14)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)));
step = ((unsigned int)(step) + 0x62464868);
step = ((unsigned int)(step) ^ 0x7dc219);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 15)));
step = ((step * 0x41c66805) + 0x3cecb57b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 20)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)));
step = ((unsigned int)(step) + 0x1793228e);
step = ((unsigned int)(step) ^ -0x4a3563c1LL);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 9)));
step = ((step * 0x41c668ad) - 0xdc6705f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 26)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = ((unsigned int)(step) - 0x3320034c);
step = ((unsigned int)(step) ^ 0x6b177665);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 3)));
step = ((step * 0x41c66955) - 0x58799639);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 1)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = ((unsigned int)(step) - 0x7dd32926);
step = ((unsigned int)(step) ^ 0x2064508b);
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) >> 4)) + (unsigned int)(((unsigned long)((unsigned int)(step)) << 28)));
step = ((step * 0x41c669fd) + 0x5cd343ed);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = ((unsigned int)(((unsigned long)((unsigned int)(step)) << 7)) | (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = ((unsigned int)(step) + 0x3779b100);
// x86-64 epilogue: restore rbp
return (unsigned int)(((unsigned long)((unsigned int)(step)) + 256));
} gcc -O0
3/3chain155_buffered pass 221 lines
// glaurung: chain155_buffered @ 0x277e
int32_t chain155_buffered(int32_t * arg0, int32_t arg1) {
extern __attribute__((noreturn)) void __stack_chk_fail(void);
unsigned int carry;
int index;
unsigned char local_50[64];
long local_8;
long ret;
// x86-64 prologue: save rbp, frame 112 bytes
local_8 = (long)(0x28);
carry = 0x2545f491;
if ((((arg0 == 0) || (((unsigned long)((unsigned int)(arg1)) == 0) | ((long)(arg1) < 0))) || (((unsigned long)((unsigned int)(arg1)) != 16) && (16 <= (long)(arg1))))) {
ret = 0xffffffff;
} else {
for (index = 0; ((((unsigned long)((unsigned int)(index)) == 15) | ((long)(index) < 15)) != 0); index++) {
*(int *)((&local_50[0] + ((long)(index) * 4))) = ((arg1 <= index) ? 0 : (unsigned long)((unsigned int)(arg0[(long)(index)])));
}
carry = ((unsigned int)(*(int *)(&local_50[0])) + (carry * 0x41c64e6d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 4))))))) >> 2)));
carry = ((carry << 3) | ((unsigned int)(carry) >> 29));
carry = ((unsigned int)(*(int *)((&local_50[0] + 12))) + (carry * 0x41c64ecd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 16))))))) >> 5)));
carry = ((carry << 6) | ((unsigned int)(carry) >> 26));
carry = ((unsigned int)(*(int *)((&local_50[0] + 24))) + (carry * 0x41c64f2d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 28))))))) >> 8)));
carry = ((carry << 9) | ((unsigned int)(carry) >> 23));
carry = ((unsigned int)(*(int *)((&local_50[0] + 36))) + (carry * 0x41c64f8d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 40))))))) >> 11)));
carry = ((carry << 12) | ((unsigned int)(carry) >> 20));
carry = ((unsigned int)(*(int *)((&local_50[0] + 48))) + (carry * 0x41c64fed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 52))))))) >> 14)));
carry = ((carry << 15) | ((unsigned int)(carry) >> 17));
carry = ((unsigned int)(*(int *)((&local_50[0] + 60))) + (carry * 0x41c6504d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)(&local_50[0])))))) >> 17)));
carry = (((unsigned int)(carry) >> 14) | (carry << 18));
carry = ((unsigned int)(*(int *)((&local_50[0] + 8))) + (carry * 0x41c650ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 12))))))) >> 20)));
carry = (((unsigned int)(carry) >> 11) | (carry << 21));
carry = ((unsigned int)(*(int *)((&local_50[0] + 20))) + (carry * 0x41c6510d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 24))))))) >> 23)));
carry = (((unsigned int)(carry) >> 8) | (carry << 24));
carry = ((unsigned int)(*(int *)((&local_50[0] + 32))) + (carry * 0x41c6516d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 36))))))) >> 26)));
carry = (((unsigned int)(carry) >> 5) | (carry << 27));
carry = ((unsigned int)(*(int *)((&local_50[0] + 44))) + (carry * 0x41c651cd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 48))))))) >> 29)));
carry = (((unsigned int)(carry) >> 2) | (carry << 30));
carry = ((unsigned int)(*(int *)((&local_50[0] + 56))) + (carry * 0x41c6522d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 60))))))) >> 1)));
carry = ((carry << 2) | ((unsigned int)(carry) >> 30));
carry = ((unsigned int)(*(int *)((&local_50[0] + 4))) + (carry * 0x41c6528d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 8))))))) >> 4)));
carry = ((carry << 5) | ((unsigned int)(carry) >> 27));
carry = ((unsigned int)(*(int *)((&local_50[0] + 16))) + (carry * 0x41c652ed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 20))))))) >> 7)));
carry = ((carry << 8) | ((unsigned int)(carry) >> 24));
carry = ((unsigned int)(*(int *)((&local_50[0] + 28))) + (carry * 0x41c6534d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 32))))))) >> 10)));
carry = ((carry << 11) | ((unsigned int)(carry) >> 21));
carry = ((unsigned int)(*(int *)((&local_50[0] + 40))) + (carry * 0x41c653ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 44))))))) >> 13)));
carry = ((carry << 14) | ((unsigned int)(carry) >> 18));
carry = ((unsigned int)(*(int *)((&local_50[0] + 52))) + (carry * 0x41c6540d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 56))))))) >> 16)));
carry = (((unsigned int)(carry) >> 15) | (carry << 17));
carry = ((unsigned int)(*(int *)(&local_50[0])) + (carry * 0x41c6546d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 4))))))) >> 19)));
carry = (((unsigned int)(carry) >> 12) | (carry << 20));
carry = ((unsigned int)(*(int *)((&local_50[0] + 12))) + (carry * 0x41c654cd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 16))))))) >> 22)));
carry = (((unsigned int)(carry) >> 9) | (carry << 23));
carry = ((unsigned int)(*(int *)((&local_50[0] + 24))) + (carry * 0x41c6552d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 28))))))) >> 25)));
carry = (((unsigned int)(carry) >> 6) | (carry << 26));
carry = ((unsigned int)(*(int *)((&local_50[0] + 36))) + (carry * 0x41c6558d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 40))))))) >> 28)));
carry = (((unsigned int)(carry) >> 3) | (carry << 29));
carry = ((unsigned int)(*(int *)((&local_50[0] + 48))) + (carry * 0x41c655ed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 52))))))) >> 31)));
carry = ((carry << 1) | ((unsigned int)(carry) >> 31));
carry = ((unsigned int)(*(int *)((&local_50[0] + 60))) + (carry * 0x41c6564d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)(&local_50[0])))))) >> 3)));
carry = ((carry << 4) | ((unsigned int)(carry) >> 28));
carry = ((unsigned int)(*(int *)((&local_50[0] + 8))) + (carry * 0x41c656ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 12))))))) >> 6)));
carry = ((carry << 7) | ((unsigned int)(carry) >> 25));
carry = ((unsigned int)(*(int *)((&local_50[0] + 20))) + (carry * 0x41c6570d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 24))))))) >> 9)));
carry = ((carry << 10) | ((unsigned int)(carry) >> 22));
carry = ((unsigned int)(*(int *)((&local_50[0] + 32))) + (carry * 0x41c6576d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 36))))))) >> 12)));
carry = ((carry << 13) | ((unsigned int)(carry) >> 19));
carry = ((unsigned int)(*(int *)((&local_50[0] + 44))) + (carry * 0x41c657cd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 48))))))) >> 15)));
carry = ((carry << 16) | ((unsigned int)(carry) >> 16));
carry = ((unsigned int)(*(int *)((&local_50[0] + 56))) + (carry * 0x41c6582d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 60))))))) >> 18)));
carry = (((unsigned int)(carry) >> 13) | (carry << 19));
carry = ((unsigned int)(*(int *)((&local_50[0] + 4))) + (carry * 0x41c6588d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 8))))))) >> 21)));
carry = (((unsigned int)(carry) >> 10) | (carry << 22));
carry = ((unsigned int)(*(int *)((&local_50[0] + 16))) + (carry * 0x41c658ed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 20))))))) >> 24)));
carry = (((unsigned int)(carry) >> 7) | (carry << 25));
carry = ((unsigned int)(*(int *)((&local_50[0] + 28))) + (carry * 0x41c6594d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 32))))))) >> 27)));
carry = (((unsigned int)(carry) >> 4) | (carry << 28));
carry = ((unsigned int)(*(int *)((&local_50[0] + 40))) + (carry * 0x41c659ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 44))))))) >> 30)));
carry = (((unsigned int)(carry) >> 1) | (carry << 31));
carry = ((unsigned int)(*(int *)((&local_50[0] + 52))) + (carry * 0x41c65a0d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 56))))))) >> 2)));
carry = ((carry << 3) | ((unsigned int)(carry) >> 29));
carry = ((unsigned int)(*(int *)(&local_50[0])) + (carry * 0x41c65a6d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 4))))))) >> 5)));
carry = ((carry << 6) | ((unsigned int)(carry) >> 26));
carry = ((unsigned int)(*(int *)((&local_50[0] + 12))) + (carry * 0x41c65acd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 16))))))) >> 8)));
carry = ((carry << 9) | ((unsigned int)(carry) >> 23));
carry = ((unsigned int)(*(int *)((&local_50[0] + 24))) + (carry * 0x41c65b2d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 28))))))) >> 11)));
carry = ((carry << 12) | ((unsigned int)(carry) >> 20));
carry = ((unsigned int)(*(int *)((&local_50[0] + 36))) + (carry * 0x41c65b8d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 40))))))) >> 14)));
carry = ((carry << 15) | ((unsigned int)(carry) >> 17));
carry = ((unsigned int)(*(int *)((&local_50[0] + 48))) + (carry * 0x41c65bed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 52))))))) >> 17)));
carry = (((unsigned int)(carry) >> 14) | (carry << 18));
carry = ((unsigned int)(*(int *)((&local_50[0] + 60))) + (carry * 0x41c65c4d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)(&local_50[0])))))) >> 20)));
carry = (((unsigned int)(carry) >> 11) | (carry << 21));
carry = ((unsigned int)(*(int *)((&local_50[0] + 8))) + (carry * 0x41c65cad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 12))))))) >> 23)));
carry = (((unsigned int)(carry) >> 8) | (carry << 24));
carry = ((unsigned int)(*(int *)((&local_50[0] + 20))) + (carry * 0x41c65d0d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 24))))))) >> 26)));
carry = (((unsigned int)(carry) >> 5) | (carry << 27));
carry = ((unsigned int)(*(int *)((&local_50[0] + 32))) + (carry * 0x41c65d6d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 36))))))) >> 29)));
carry = (((unsigned int)(carry) >> 2) | (carry << 30));
carry = ((unsigned int)(*(int *)((&local_50[0] + 44))) + (carry * 0x41c65dcd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 48))))))) >> 1)));
carry = ((carry << 2) | ((unsigned int)(carry) >> 30));
carry = ((unsigned int)(*(int *)((&local_50[0] + 56))) + (carry * 0x41c65e2d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 60))))))) >> 4)));
carry = ((carry << 5) | ((unsigned int)(carry) >> 27));
carry = ((unsigned int)(*(int *)((&local_50[0] + 4))) + (carry * 0x41c65e8d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 8))))))) >> 7)));
carry = ((carry << 8) | ((unsigned int)(carry) >> 24));
carry = ((unsigned int)(*(int *)((&local_50[0] + 16))) + (carry * 0x41c65eed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 20))))))) >> 10)));
carry = ((carry << 11) | ((unsigned int)(carry) >> 21));
carry = ((unsigned int)(*(int *)((&local_50[0] + 28))) + (carry * 0x41c65f4d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 32))))))) >> 13)));
carry = ((carry << 14) | ((unsigned int)(carry) >> 18));
carry = ((unsigned int)(*(int *)((&local_50[0] + 40))) + (carry * 0x41c65fad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 44))))))) >> 16)));
carry = (((unsigned int)(carry) >> 15) | (carry << 17));
carry = ((unsigned int)(*(int *)((&local_50[0] + 52))) + (carry * 0x41c6600d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 56))))))) >> 19)));
carry = (((unsigned int)(carry) >> 12) | (carry << 20));
carry = ((unsigned int)(*(int *)(&local_50[0])) + (carry * 0x41c6606d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 4))))))) >> 22)));
carry = (((unsigned int)(carry) >> 9) | (carry << 23));
carry = ((unsigned int)(*(int *)((&local_50[0] + 12))) + (carry * 0x41c660cd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 16))))))) >> 25)));
carry = (((unsigned int)(carry) >> 6) | (carry << 26));
carry = ((unsigned int)(*(int *)((&local_50[0] + 24))) + (carry * 0x41c6612d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 28))))))) >> 28)));
carry = (((unsigned int)(carry) >> 3) | (carry << 29));
carry = ((unsigned int)(*(int *)((&local_50[0] + 36))) + (carry * 0x41c6618d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 40))))))) >> 31)));
carry = ((carry << 1) | ((unsigned int)(carry) >> 31));
carry = ((unsigned int)(*(int *)((&local_50[0] + 48))) + (carry * 0x41c661ed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 52))))))) >> 3)));
carry = ((carry << 4) | ((unsigned int)(carry) >> 28));
carry = ((unsigned int)(*(int *)((&local_50[0] + 60))) + (carry * 0x41c6624d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)(&local_50[0])))))) >> 6)));
carry = ((carry << 7) | ((unsigned int)(carry) >> 25));
carry = ((unsigned int)(*(int *)((&local_50[0] + 8))) + (carry * 0x41c662ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 12))))))) >> 9)));
carry = ((carry << 10) | ((unsigned int)(carry) >> 22));
carry = ((unsigned int)(*(int *)((&local_50[0] + 20))) + (carry * 0x41c6630d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 24))))))) >> 12)));
carry = ((carry << 13) | ((unsigned int)(carry) >> 19));
carry = ((unsigned int)(*(int *)((&local_50[0] + 32))) + (carry * 0x41c6636d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 36))))))) >> 15)));
carry = ((carry << 16) | ((unsigned int)(carry) >> 16));
carry = ((unsigned int)(*(int *)((&local_50[0] + 44))) + (carry * 0x41c663cd));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 48))))))) >> 18)));
carry = (((unsigned int)(carry) >> 13) | (carry << 19));
carry = ((unsigned int)(*(int *)((&local_50[0] + 56))) + (carry * 0x41c6642d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 60))))))) >> 21)));
carry = (((unsigned int)(carry) >> 10) | (carry << 22));
carry = ((unsigned int)(*(int *)((&local_50[0] + 4))) + (carry * 0x41c6648d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 8))))))) >> 24)));
carry = (((unsigned int)(carry) >> 7) | (carry << 25));
carry = ((unsigned int)(*(int *)((&local_50[0] + 16))) + (carry * 0x41c664ed));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 20))))))) >> 27)));
carry = (((unsigned int)(carry) >> 4) | (carry << 28));
carry = ((unsigned int)(*(int *)((&local_50[0] + 28))) + (carry * 0x41c6654d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 32))))))) >> 30)));
carry = (((unsigned int)(carry) >> 1) | (carry << 31));
carry = ((unsigned int)(*(int *)((&local_50[0] + 40))) + (carry * 0x41c665ad));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 44))))))) >> 2)));
carry = ((carry << 3) | ((unsigned int)(carry) >> 29));
carry = ((unsigned int)(*(int *)((&local_50[0] + 52))) + (carry * 0x41c6660d));
carry = (carry ^ (unsigned int)(((unsigned long)((unsigned int)((carry + (unsigned long)((unsigned int)(*(int *)((&local_50[0] + 56))))))) >> 5)));
carry = ((carry << 6) | ((unsigned int)(carry) >> 26));
for (index = 0; (index < arg1); index++) {
arg0[(long)(index)] = ((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_50[0] + ((long)(index) * 4))))) ^ carry))) & 0x7fffffff);
carry = ((carry * 0x19660d) + 0x3c6ef35f);
}
ret = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((carry & 0xffffff))) + 192)));
}
if ((local_8 != 0x28)) {
__stack_chk_fail();
}
// x86-64 epilogue: restore rbp
return ret;
} chain155_scalar pass 328 lines
// glaurung: chain155_scalar @ 0x1119
uint32_t chain155_scalar(uint32_t arg0) {
unsigned int acc;
// x86-64 prologue: save rbp
acc = (arg0 ^ -0x61c88647LL);
acc = ((acc * 0x41c64e6d) - 0x61c8864f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 2)));
acc = ((acc << 3) | ((unsigned int)(acc) >> 29));
acc = (acc + 0x78dde6c4);
acc = (acc ^ 0x17156075);
acc = (((unsigned int)(acc) >> 6) | (acc << 26));
acc = ((acc * 0x41c64f15) + 0x538453d7);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 8)));
acc = ((acc << 9) | ((unsigned int)(acc) >> 23));
acc = (acc + 0x2e2ac0ea);
acc = (acc ^ -0x339dc565LL);
acc = (((unsigned int)(acc) >> 12) | (acc << 20));
acc = ((acc * 0x41c64fbd) + 0x8d12dfd);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 14)));
acc = ((acc << 15) | ((unsigned int)(acc) >> 17));
acc = (acc - 0x1c8864f0);
acc = (acc ^ -0x7e50eb3fLL);
acc = ((acc << 14) | ((unsigned int)(acc) >> 18));
acc = ((acc * 0x41c65065) - 0x41e1f7dd);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 20)));
acc = (((unsigned int)(acc) >> 11) | (acc << 21));
acc = (acc - 0x673b8aca);
acc = (acc ^ 0x36fbeee7);
acc = ((acc << 8) | ((unsigned int)(acc) >> 24));
acc = ((acc * 0x41c6510d) + 0x736ae249);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 26)));
acc = (((unsigned int)(acc) >> 5) | (acc << 27));
acc = (acc + 0x4e114f5c);
acc = (acc ^ -0x13b736f3LL);
acc = ((acc << 2) | ((unsigned int)(acc) >> 30));
acc = ((acc * 0x41c651b5) + 0x28b7bc6f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 1)));
acc = ((acc << 2) | ((unsigned int)(acc) >> 30));
acc = (acc + 0x35e2982);
acc = (acc ^ -0x5e6a5ccdLL);
acc = (((unsigned int)(acc) >> 5) | (acc << 27));
acc = ((acc * 0x41c6525d) - 0x21fb696b);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 7)));
acc = ((acc << 8) | ((unsigned int)(acc) >> 24));
acc = (acc - 0x4754fc58);
acc = (acc ^ 0x56e27d59);
acc = (((unsigned int)(acc) >> 11) | (acc << 21));
acc = ((acc * 0x41c65305) - 0x6cae8f45);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 13)));
acc = ((acc << 14) | ((unsigned int)(acc) >> 18));
acc = (acc + 0x6df7ddce);
acc = (acc ^ 0xc2f577f);
acc = ((acc << 15) | ((unsigned int)(acc) >> 17));
acc = ((acc * 0x41c653ad) + 0x489e4ae1);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 19)));
acc = (((unsigned int)(acc) >> 12) | (acc << 20));
acc = (acc + 0x2344b7f4);
acc = (acc ^ -0x3e83ce5bLL);
acc = ((acc << 9) | ((unsigned int)(acc) >> 23));
acc = ((acc * 0x41c65455) - 0x214daf9);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 25)));
acc = (((unsigned int)(acc) >> 6) | (acc << 26));
acc = (acc - 0x276e6de6);
acc = (acc ^ 0x76c90bcb);
acc = ((acc << 3) | ((unsigned int)(acc) >> 29));
acc = ((acc * 0x41c654fd) - 0x4cc800d3);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 31)));
acc = ((acc << 1) | ((unsigned int)(acc) >> 31));
acc = (acc - 0x722193c0);
acc = (acc ^ 0x2c15e5f1);
acc = (((unsigned int)(acc) >> 4) | (acc << 28));
acc = ((acc * 0x41c655a5) + 0x6884d953);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 6)));
acc = ((acc << 7) | ((unsigned int)(acc) >> 25));
acc = (acc + 0x432b4666);
acc = (acc ^ -0x1e9d3fe9LL);
acc = (((unsigned int)(acc) >> 10) | (acc << 22));
acc = ((acc * 0x41c6564d) + 0x1dd1b379);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 12)));
acc = ((acc << 13) | ((unsigned int)(acc) >> 19));
acc = (acc - 0x787df74);
acc = (acc ^ -0x695065c3LL);
acc = ((acc << 16) | ((unsigned int)(acc) >> 16));
acc = ((acc * 0x41c656f5) - 0x2ce17261);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 18)));
acc = (((unsigned int)(acc) >> 13) | (acc << 19));
acc = (acc - 0x523b054e);
acc = (acc ^ 0x4bfc7463);
acc = ((acc << 10) | ((unsigned int)(acc) >> 22));
acc = ((acc * 0x41c6579d) - 0x7794983b);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 24)));
acc = (((unsigned int)(acc) >> 7) | (acc << 25));
acc = (acc + 0x6311d4d8);
acc = (acc ^ 0x1494e89);
acc = ((acc << 4) | ((unsigned int)(acc) >> 28));
acc = ((acc * 0x41c65845) + 0x3db841eb);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 30)));
acc = (((unsigned int)(acc) >> 1) | (acc << 31));
acc = (acc + 0x185eaefe);
acc = (acc ^ -0x4969d751LL);
acc = (((unsigned int)(acc) >> 3) | (acc << 29));
acc = ((acc * 0x41c658ed) - 0xcfae3ef);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 5)));
acc = ((acc << 6) | ((unsigned int)(acc) >> 26));
acc = (acc - 0x325476dc);
acc = (acc ^ 0x6be302d5);
acc = (((unsigned int)(acc) >> 9) | (acc << 23));
acc = ((acc * 0x41c65995) - 0x57ae09c9);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 11)));
acc = ((acc << 12) | ((unsigned int)(acc) >> 20));
acc = (acc - 0x7d079cb6);
acc = (acc ^ 0x212fdcfb);
acc = (((unsigned int)(acc) >> 15) | (acc << 17));
acc = ((acc * 0x41c65a3d) + 0x5d9ed05d);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 17)));
acc = (((unsigned int)(acc) >> 14) | (acc << 18));
acc = (acc + 0x38453d70);
acc = (acc ^ -0x298348dfLL);
acc = ((acc << 11) | ((unsigned int)(acc) >> 21));
acc = ((acc * 0x41c65ae5) + 0x12ebaa83);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 23)));
acc = (((unsigned int)(acc) >> 8) | (acc << 24));
acc = (acc - 0x126de86a);
acc = (acc ^ -0x74366eb9LL);
acc = ((acc << 5) | ((unsigned int)(acc) >> 27));
acc = ((acc * 0x41c65b8d) - 0x37c77b57);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 29)));
acc = (((unsigned int)(acc) >> 2) | (acc << 30));
acc = (acc - 0x5d210e44);
acc = (acc ^ 0x41166b6d);
acc = (((unsigned int)(acc) >> 2) | (acc << 30));
acc = ((acc * 0x41c65c35) + 0x7d855ecf);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 4)));
acc = ((acc << 5) | ((unsigned int)(acc) >> 27));
acc = (acc + 0x582bcbe2);
acc = (acc ^ -0x99cba6dLL);
acc = (((unsigned int)(acc) >> 8) | (acc << 24));
acc = ((acc * 0x41c65cdd) + 0x32d238f5);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 10)));
acc = ((acc << 11) | ((unsigned int)(acc) >> 21));
acc = (acc + 0xd78a608);
acc = (acc ^ -0x544fe047LL);
acc = (((unsigned int)(acc) >> 14) | (acc << 18));
acc = ((acc * 0x41c65d85) - 0x17e0ece5);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 16)));
acc = (((unsigned int)(acc) >> 15) | (acc << 17));
acc = (acc - 0x3d3a7fd2);
acc = (acc ^ 0x60fcf9df);
acc = ((acc << 12) | ((unsigned int)(acc) >> 20));
acc = ((acc * 0x41c65e2d) - 0x629412bf);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 22)));
acc = (((unsigned int)(acc) >> 9) | (acc << 23));
acc = (acc + 0x78125a54);
acc = (acc ^ 0x1649d405);
acc = ((acc << 6) | ((unsigned int)(acc) >> 26));
acc = ((acc * 0x41c65ed5) + 0x52b8c767);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 28)));
acc = (((unsigned int)(acc) >> 3) | (acc << 29));
acc = (acc + 0x2d5f347a);
acc = (acc ^ -0x346951d5LL);
acc = (((unsigned int)(acc) >> 1) | (acc << 31));
acc = ((acc * 0x41c65f7d) + 0x805a18d);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 3)));
acc = ((acc << 4) | ((unsigned int)(acc) >> 28));
acc = (acc - 0x1d53f160);
acc = (acc ^ -0x7f1c77afLL);
acc = (((unsigned int)(acc) >> 7) | (acc << 25));
acc = ((acc * 0x41c66025) - 0x42ad844d);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 9)));
acc = ((acc << 10) | ((unsigned int)(acc) >> 22));
acc = (acc - 0x6807173a);
acc = (acc ^ 0x36306277);
acc = (((unsigned int)(acc) >> 13) | (acc << 19));
acc = ((acc * 0x41c660cd) + 0x729f55d9);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 15)));
acc = ((acc << 16) | ((unsigned int)(acc) >> 16));
acc = (acc + 0x4d45c2ec);
acc = (acc ^ -0x1482c363LL);
acc = ((acc << 13) | ((unsigned int)(acc) >> 19));
acc = ((acc * 0x41c66175) + 0x27ec2fff);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 21)));
acc = (((unsigned int)(acc) >> 10) | (acc << 22));
acc = (acc + 0x2929d12);
acc = (acc ^ -0x5f35e93dLL);
acc = ((acc << 7) | ((unsigned int)(acc) >> 25));
acc = ((acc * 0x41c6621d) - 0x22c6f5db);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 27)));
acc = (((unsigned int)(acc) >> 4) | (acc << 28));
acc = (acc - 0x482088c8);
acc = (acc ^ 0x5616f0e9);
acc = ((acc << 1) | ((unsigned int)(acc) >> 31));
acc = ((acc * 0x41c662c5) - 0x6d7a1bb5);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 2)));
acc = ((acc << 3) | ((unsigned int)(acc) >> 29));
acc = (acc + 0x6d2c515e);
acc = (acc ^ 0xb63cb0f);
acc = (((unsigned int)(acc) >> 6) | (acc << 26));
acc = ((acc * 0x41c6636d) + 0x47d2be71);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 8)));
acc = ((acc << 9) | ((unsigned int)(acc) >> 23));
acc = (acc + 0x22792b84);
acc = (acc ^ -0x3f4f5acbLL);
acc = (((unsigned int)(acc) >> 12) | (acc << 20));
acc = ((acc * 0x41c66415) - 0x2e06769);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 14)));
acc = ((acc << 15) | ((unsigned int)(acc) >> 17));
acc = (acc - 0x2839fa56);
acc = (acc ^ 0x75fd7f5b);
acc = ((acc << 14) | ((unsigned int)(acc) >> 18));
acc = ((acc * 0x41c664bd) - 0x4d938d43);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 20)));
acc = (((unsigned int)(acc) >> 11) | (acc << 21));
acc = (acc - 0x72ed2030);
acc = (acc ^ 0x2b4a5981);
acc = ((acc << 8) | ((unsigned int)(acc) >> 24));
acc = ((acc * 0x41c66565) + 0x67b94ce3);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 26)));
acc = (((unsigned int)(acc) >> 5) | (acc << 27));
acc = (acc + 0x425fb9f6);
acc = (acc ^ -0x1f68cc59LL);
acc = ((acc << 2) | ((unsigned int)(acc) >> 30));
acc = ((acc * 0x41c6660d) + 0x1d062709);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 1)));
acc = ((acc << 2) | ((unsigned int)(acc) >> 30));
acc = (acc - 0x8536be4);
acc = (acc ^ -0x6a1bf233LL);
acc = (((unsigned int)(acc) >> 5) | (acc << 27));
acc = ((acc * 0x41c666b5) - 0x2dacfed1);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 7)));
acc = ((acc << 8) | ((unsigned int)(acc) >> 24));
acc = (acc - 0x530691be);
acc = (acc ^ 0x4b30e7f3);
acc = (((unsigned int)(acc) >> 11) | (acc << 21));
acc = ((acc * 0x41c6675d) - 0x786024ab);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 13)));
acc = ((acc << 14) | ((unsigned int)(acc) >> 18));
acc = (acc + 0x62464868);
acc = (acc ^ 0x7dc219);
acc = ((acc << 15) | ((unsigned int)(acc) >> 17));
acc = ((acc * 0x41c66805) + 0x3cecb57b);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 19)));
acc = (((unsigned int)(acc) >> 12) | (acc << 20));
acc = (acc + 0x1793228e);
acc = (acc ^ -0x4a3563c1LL);
acc = ((acc << 9) | ((unsigned int)(acc) >> 23));
acc = ((acc * 0x41c668ad) - 0xdc6705f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 25)));
acc = (((unsigned int)(acc) >> 6) | (acc << 26));
acc = (acc - 0x3320034c);
acc = (acc ^ 0x6b177665);
acc = ((acc << 3) | ((unsigned int)(acc) >> 29));
acc = ((acc * 0x41c66955) - 0x58799639);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 31)));
acc = ((acc << 1) | ((unsigned int)(acc) >> 31));
acc = (acc - 0x7dd32926);
acc = (acc ^ 0x2064508b);
acc = (((unsigned int)(acc) >> 4) | (acc << 28));
acc = ((acc * 0x41c669fd) + 0x5cd343ed);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 6)));
acc = ((acc << 7) | ((unsigned int)(acc) >> 25));
acc = (acc + 0x3779b100);
acc = (acc ^ -0x2a4ed54fLL);
acc = (((unsigned int)(acc) >> 10) | (acc << 22));
acc = ((acc * 0x41c66aa5) + 0x12201e13);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 12)));
acc = ((acc << 13) | ((unsigned int)(acc) >> 19));
acc = (acc - 0x133974da);
acc = (acc ^ -0x7501fb29LL);
acc = ((acc << 16) | ((unsigned int)(acc) >> 16));
acc = ((acc * 0x41c66b4d) - 0x389307c7);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 18)));
acc = (((unsigned int)(acc) >> 13) | (acc << 19));
acc = (acc - 0x5dec9ab4);
acc = (acc ^ 0x404adefd);
acc = ((acc << 10) | ((unsigned int)(acc) >> 22));
acc = ((acc * 0x41c66bf5) + 0x7cb9d25f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 24)));
acc = (((unsigned int)(acc) >> 7) | (acc << 25));
acc = (acc + 0x57603f72);
acc = (acc ^ -0xa6846ddLL);
acc = ((acc << 4) | ((unsigned int)(acc) >> 28));
acc = ((acc * 0x41c66c9d) + 0x3206ac85);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 30)));
acc = (((unsigned int)(acc) >> 1) | (acc << 31));
acc = (acc + 0xcad1998);
acc = (acc ^ -0x551b6cb7LL);
acc = (((unsigned int)(acc) >> 3) | (acc << 29));
acc = ((acc * 0x41c66d45) - 0x18ac7955);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 5)));
acc = ((acc << 6) | ((unsigned int)(acc) >> 26));
acc = (acc - 0x3e060c42);
acc = (acc ^ 0x60316d6f);
acc = (((unsigned int)(acc) >> 9) | (acc << 23));
acc = ((acc * 0x41c66ded) - 0x635f9f2f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 11)));
acc = ((acc << 12) | ((unsigned int)(acc) >> 20));
acc = (acc + 0x7746cde4);
acc = (acc ^ 0x157e4795);
acc = (((unsigned int)(acc) >> 15) | (acc << 17));
acc = ((acc * 0x41c66e95) + 0x51ed3af7);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 17)));
acc = (((unsigned int)(acc) >> 14) | (acc << 18));
acc = (acc + 0x2c93a80a);
acc = (acc ^ -0x3534de45LL);
acc = ((acc << 11) | ((unsigned int)(acc) >> 21));
acc = ((acc * 0x41c66f3d) + 0x73a151d);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 23)));
acc = (((unsigned int)(acc) >> 8) | (acc << 24));
acc = (acc - 0x1e1f7dd0);
acc = (acc ^ -0x7fe8041fLL);
acc = ((acc << 5) | ((unsigned int)(acc) >> 27));
acc = ((acc * 0x41c66fe5) - 0x437910bd);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 29)));
acc = (((unsigned int)(acc) >> 2) | (acc << 30));
acc = (acc - 0x68d2a3aa);
acc = (acc ^ 0x3564d607);
acc = (((unsigned int)(acc) >> 2) | (acc << 30));
acc = ((acc * 0x41c6708d) + 0x71d3c969);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 4)));
acc = ((acc << 5) | ((unsigned int)(acc) >> 27));
acc = (acc + 0x4c7a367c);
acc = (acc ^ -0x154e4fd3LL);
acc = (((unsigned int)(acc) >> 8) | (acc << 24));
acc = ((acc * 0x41c67135) + 0x2720a38f);
acc = (acc ^ (unsigned int)(((unsigned int)(acc) >> 10)));
// x86-64 epilogue: restore rbp
return (unsigned int)(((unsigned long)(acc) + 320));
} chain155_signed pass 264 lines
// glaurung: chain155_signed @ 0x1b3b
int32_t chain155_signed(int32_t arg0) {
int step;
// x86-64 prologue: save rbp
step = arg0;
step = (((unsigned int)(step) * 0x41c64e6d) - 0x61c8864f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)));
step = (((unsigned long)((unsigned int)(step)) << 3) | ((unsigned long)((unsigned int)(step)) >> 29));
step = ((unsigned int)(step) + 0x78dde6c4);
step = ((unsigned int)(step) ^ 0x17156075);
step = (((unsigned long)((unsigned int)(step)) >> 6) | ((unsigned long)((unsigned int)(step)) << 26));
step = (((unsigned int)(step) * 0x41c64f15) + 0x538453d7);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)));
step = (((unsigned long)((unsigned int)(step)) << 9) | ((unsigned long)((unsigned int)(step)) >> 23));
step = ((unsigned int)(step) + 0x2e2ac0ea);
step = ((unsigned int)(step) ^ -0x339dc565LL);
step = (((unsigned long)((unsigned int)(step)) >> 12) | ((unsigned long)((unsigned int)(step)) << 20));
step = (((unsigned int)(step) * 0x41c64fbd) + 0x8d12dfd);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)));
step = (((unsigned long)((unsigned int)(step)) << 15) | ((unsigned long)((unsigned int)(step)) >> 17));
step = ((unsigned int)(step) - 0x1c8864f0);
step = ((unsigned int)(step) ^ -0x7e50eb3fLL);
step = (((unsigned long)((unsigned int)(step)) << 14) | ((unsigned long)((unsigned int)(step)) >> 18));
step = (((unsigned int)(step) * 0x41c65065) - 0x41e1f7dd);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)));
step = (((unsigned long)((unsigned int)(step)) >> 11) | ((unsigned long)((unsigned int)(step)) << 21));
step = ((unsigned int)(step) - 0x673b8aca);
step = ((unsigned int)(step) ^ 0x36fbeee7);
step = (((unsigned long)((unsigned int)(step)) << 8) | ((unsigned long)((unsigned int)(step)) >> 24));
step = (((unsigned int)(step) * 0x41c6510d) + 0x736ae249);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)));
step = (((unsigned long)((unsigned int)(step)) >> 5) | ((unsigned long)((unsigned int)(step)) << 27));
step = ((unsigned int)(step) + 0x4e114f5c);
step = ((unsigned int)(step) ^ -0x13b736f3LL);
step = (((unsigned long)((unsigned int)(step)) << 2) | ((unsigned long)((unsigned int)(step)) >> 30));
step = (((unsigned int)(step) * 0x41c651b5) + 0x28b7bc6f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)));
step = (((unsigned long)((unsigned int)(step)) << 2) | ((unsigned long)((unsigned int)(step)) >> 30));
step = ((unsigned int)(step) + 0x35e2982);
step = ((unsigned int)(step) ^ -0x5e6a5ccdLL);
step = (((unsigned long)((unsigned int)(step)) >> 5) | ((unsigned long)((unsigned int)(step)) << 27));
step = (((unsigned int)(step) * 0x41c6525d) - 0x21fb696b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)));
step = (((unsigned long)((unsigned int)(step)) << 8) | ((unsigned long)((unsigned int)(step)) >> 24));
step = ((unsigned int)(step) - 0x4754fc58);
step = ((unsigned int)(step) ^ 0x56e27d59);
step = (((unsigned long)((unsigned int)(step)) >> 11) | ((unsigned long)((unsigned int)(step)) << 21));
step = (((unsigned int)(step) * 0x41c65305) - 0x6cae8f45);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)));
step = (((unsigned long)((unsigned int)(step)) << 14) | ((unsigned long)((unsigned int)(step)) >> 18));
step = ((unsigned int)(step) + 0x6df7ddce);
step = ((unsigned int)(step) ^ 0xc2f577f);
step = (((unsigned long)((unsigned int)(step)) << 15) | ((unsigned long)((unsigned int)(step)) >> 17));
step = (((unsigned int)(step) * 0x41c653ad) + 0x489e4ae1);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)));
step = (((unsigned long)((unsigned int)(step)) >> 12) | ((unsigned long)((unsigned int)(step)) << 20));
step = ((unsigned int)(step) + 0x2344b7f4);
step = ((unsigned int)(step) ^ -0x3e83ce5bLL);
step = (((unsigned long)((unsigned int)(step)) << 9) | ((unsigned long)((unsigned int)(step)) >> 23));
step = (((unsigned int)(step) * 0x41c65455) - 0x214daf9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = (((unsigned long)((unsigned int)(step)) >> 6) | ((unsigned long)((unsigned int)(step)) << 26));
step = ((unsigned int)(step) - 0x276e6de6);
step = ((unsigned int)(step) ^ 0x76c90bcb);
step = (((unsigned long)((unsigned int)(step)) << 3) | ((unsigned long)((unsigned int)(step)) >> 29));
step = (((unsigned int)(step) * 0x41c654fd) - 0x4cc800d3);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = (((unsigned long)((unsigned int)(step)) << 1) | ((unsigned long)((unsigned int)(step)) >> 31));
step = ((unsigned int)(step) - 0x722193c0);
step = ((unsigned int)(step) ^ 0x2c15e5f1);
step = (((unsigned long)((unsigned int)(step)) >> 4) | ((unsigned long)((unsigned int)(step)) << 28));
step = (((unsigned int)(step) * 0x41c655a5) + 0x6884d953);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = (((unsigned long)((unsigned int)(step)) << 7) | ((unsigned long)((unsigned int)(step)) >> 25));
step = ((unsigned int)(step) + 0x432b4666);
step = ((unsigned int)(step) ^ -0x1e9d3fe9LL);
step = (((unsigned long)((unsigned int)(step)) >> 10) | ((unsigned long)((unsigned int)(step)) << 22));
step = (((unsigned int)(step) * 0x41c6564d) + 0x1dd1b379);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 12)));
step = (((unsigned long)((unsigned int)(step)) << 13) | ((unsigned long)((unsigned int)(step)) >> 19));
step = ((unsigned int)(step) - 0x787df74);
step = ((unsigned int)(step) ^ -0x695065c3LL);
step = (((unsigned long)((unsigned int)(step)) << 16) | ((unsigned long)((unsigned int)(step)) >> 16));
step = (((unsigned int)(step) * 0x41c656f5) - 0x2ce17261);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 18)));
step = (((unsigned long)((unsigned int)(step)) >> 13) | ((unsigned long)((unsigned int)(step)) << 19));
step = ((unsigned int)(step) - 0x523b054e);
step = ((unsigned int)(step) ^ 0x4bfc7463);
step = (((unsigned long)((unsigned int)(step)) << 10) | ((unsigned long)((unsigned int)(step)) >> 22));
step = (((unsigned int)(step) * 0x41c6579d) - 0x7794983b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 24)));
step = (((unsigned long)((unsigned int)(step)) >> 7) | ((unsigned long)((unsigned int)(step)) << 25));
step = ((unsigned int)(step) + 0x6311d4d8);
step = ((unsigned int)(step) ^ 0x1494e89);
step = (((unsigned long)((unsigned int)(step)) << 4) | ((unsigned long)((unsigned int)(step)) >> 28));
step = (((unsigned int)(step) * 0x41c65845) + 0x3db841eb);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 30)));
step = (((unsigned long)((unsigned int)(step)) >> 1) | ((unsigned long)((unsigned int)(step)) << 31));
step = ((unsigned int)(step) + 0x185eaefe);
step = ((unsigned int)(step) ^ -0x4969d751LL);
step = (((unsigned long)((unsigned int)(step)) >> 3) | ((unsigned long)((unsigned int)(step)) << 29));
step = (((unsigned int)(step) * 0x41c658ed) - 0xcfae3ef);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 5)));
step = (((unsigned long)((unsigned int)(step)) << 6) | ((unsigned long)((unsigned int)(step)) >> 26));
step = ((unsigned int)(step) - 0x325476dc);
step = ((unsigned int)(step) ^ 0x6be302d5);
step = (((unsigned long)((unsigned int)(step)) >> 9) | ((unsigned long)((unsigned int)(step)) << 23));
step = (((unsigned int)(step) * 0x41c65995) - 0x57ae09c9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 11)));
step = (((unsigned long)((unsigned int)(step)) << 12) | ((unsigned long)((unsigned int)(step)) >> 20));
step = ((unsigned int)(step) - 0x7d079cb6);
step = ((unsigned int)(step) ^ 0x212fdcfb);
step = (((unsigned long)((unsigned int)(step)) >> 15) | ((unsigned long)((unsigned int)(step)) << 17));
step = (((unsigned int)(step) * 0x41c65a3d) + 0x5d9ed05d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 17)));
step = (((unsigned long)((unsigned int)(step)) >> 14) | ((unsigned long)((unsigned int)(step)) << 18));
step = ((unsigned int)(step) + 0x38453d70);
step = ((unsigned int)(step) ^ -0x298348dfLL);
step = (((unsigned long)((unsigned int)(step)) << 11) | ((unsigned long)((unsigned int)(step)) >> 21));
step = (((unsigned int)(step) * 0x41c65ae5) + 0x12ebaa83);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 23)));
step = (((unsigned long)((unsigned int)(step)) >> 8) | ((unsigned long)((unsigned int)(step)) << 24));
step = ((unsigned int)(step) - 0x126de86a);
step = ((unsigned int)(step) ^ -0x74366eb9LL);
step = (((unsigned long)((unsigned int)(step)) << 5) | ((unsigned long)((unsigned int)(step)) >> 27));
step = (((unsigned int)(step) * 0x41c65b8d) - 0x37c77b57);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 29)));
step = (((unsigned long)((unsigned int)(step)) >> 2) | ((unsigned long)((unsigned int)(step)) << 30));
step = ((unsigned int)(step) - 0x5d210e44);
step = ((unsigned int)(step) ^ 0x41166b6d);
step = (((unsigned long)((unsigned int)(step)) >> 2) | ((unsigned long)((unsigned int)(step)) << 30));
step = (((unsigned int)(step) * 0x41c65c35) + 0x7d855ecf);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 4)));
step = (((unsigned long)((unsigned int)(step)) << 5) | ((unsigned long)((unsigned int)(step)) >> 27));
step = ((unsigned int)(step) + 0x582bcbe2);
step = ((unsigned int)(step) ^ -0x99cba6dLL);
step = (((unsigned long)((unsigned int)(step)) >> 8) | ((unsigned long)((unsigned int)(step)) << 24));
step = (((unsigned int)(step) * 0x41c65cdd) + 0x32d238f5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 10)));
step = (((unsigned long)((unsigned int)(step)) << 11) | ((unsigned long)((unsigned int)(step)) >> 21));
step = ((unsigned int)(step) + 0xd78a608);
step = ((unsigned int)(step) ^ -0x544fe047LL);
step = (((unsigned long)((unsigned int)(step)) >> 14) | ((unsigned long)((unsigned int)(step)) << 18));
step = (((unsigned int)(step) * 0x41c65d85) - 0x17e0ece5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 16)));
step = (((unsigned long)((unsigned int)(step)) >> 15) | ((unsigned long)((unsigned int)(step)) << 17));
step = ((unsigned int)(step) - 0x3d3a7fd2);
step = ((unsigned int)(step) ^ 0x60fcf9df);
step = (((unsigned long)((unsigned int)(step)) << 12) | ((unsigned long)((unsigned int)(step)) >> 20));
step = (((unsigned int)(step) * 0x41c65e2d) - 0x629412bf);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 22)));
step = (((unsigned long)((unsigned int)(step)) >> 9) | ((unsigned long)((unsigned int)(step)) << 23));
step = ((unsigned int)(step) + 0x78125a54);
step = ((unsigned int)(step) ^ 0x1649d405);
step = (((unsigned long)((unsigned int)(step)) << 6) | ((unsigned long)((unsigned int)(step)) >> 26));
step = (((unsigned int)(step) * 0x41c65ed5) + 0x52b8c767);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 28)));
step = (((unsigned long)((unsigned int)(step)) >> 3) | ((unsigned long)((unsigned int)(step)) << 29));
step = ((unsigned int)(step) + 0x2d5f347a);
step = ((unsigned int)(step) ^ -0x346951d5LL);
step = (((unsigned long)((unsigned int)(step)) >> 1) | ((unsigned long)((unsigned int)(step)) << 31));
step = (((unsigned int)(step) * 0x41c65f7d) + 0x805a18d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 3)));
step = (((unsigned long)((unsigned int)(step)) << 4) | ((unsigned long)((unsigned int)(step)) >> 28));
step = ((unsigned int)(step) - 0x1d53f160);
step = ((unsigned int)(step) ^ -0x7f1c77afLL);
step = (((unsigned long)((unsigned int)(step)) >> 7) | ((unsigned long)((unsigned int)(step)) << 25));
step = (((unsigned int)(step) * 0x41c66025) - 0x42ad844d);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 9)));
step = (((unsigned long)((unsigned int)(step)) << 10) | ((unsigned long)((unsigned int)(step)) >> 22));
step = ((unsigned int)(step) - 0x6807173a);
step = ((unsigned int)(step) ^ 0x36306277);
step = (((unsigned long)((unsigned int)(step)) >> 13) | ((unsigned long)((unsigned int)(step)) << 19));
step = (((unsigned int)(step) * 0x41c660cd) + 0x729f55d9);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 15)));
step = (((unsigned long)((unsigned int)(step)) << 16) | ((unsigned long)((unsigned int)(step)) >> 16));
step = ((unsigned int)(step) + 0x4d45c2ec);
step = ((unsigned int)(step) ^ -0x1482c363LL);
step = (((unsigned long)((unsigned int)(step)) << 13) | ((unsigned long)((unsigned int)(step)) >> 19));
step = (((unsigned int)(step) * 0x41c66175) + 0x27ec2fff);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 21)));
step = (((unsigned long)((unsigned int)(step)) >> 10) | ((unsigned long)((unsigned int)(step)) << 22));
step = ((unsigned int)(step) + 0x2929d12);
step = ((unsigned int)(step) ^ -0x5f35e93dLL);
step = (((unsigned long)((unsigned int)(step)) << 7) | ((unsigned long)((unsigned int)(step)) >> 25));
step = (((unsigned int)(step) * 0x41c6621d) - 0x22c6f5db);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 27)));
step = (((unsigned long)((unsigned int)(step)) >> 4) | ((unsigned long)((unsigned int)(step)) << 28));
step = ((unsigned int)(step) - 0x482088c8);
step = ((unsigned int)(step) ^ 0x5616f0e9);
step = (((unsigned long)((unsigned int)(step)) << 1) | ((unsigned long)((unsigned int)(step)) >> 31));
step = (((unsigned int)(step) * 0x41c662c5) - 0x6d7a1bb5);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 2)));
step = (((unsigned long)((unsigned int)(step)) << 3) | ((unsigned long)((unsigned int)(step)) >> 29));
step = ((unsigned int)(step) + 0x6d2c515e);
step = ((unsigned int)(step) ^ 0xb63cb0f);
step = (((unsigned long)((unsigned int)(step)) >> 6) | ((unsigned long)((unsigned int)(step)) << 26));
step = (((unsigned int)(step) * 0x41c6636d) + 0x47d2be71);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 8)));
step = (((unsigned long)((unsigned int)(step)) << 9) | ((unsigned long)((unsigned int)(step)) >> 23));
step = ((unsigned int)(step) + 0x22792b84);
step = ((unsigned int)(step) ^ -0x3f4f5acbLL);
step = (((unsigned long)((unsigned int)(step)) >> 12) | ((unsigned long)((unsigned int)(step)) << 20));
step = (((unsigned int)(step) * 0x41c66415) - 0x2e06769);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 14)));
step = (((unsigned long)((unsigned int)(step)) << 15) | ((unsigned long)((unsigned int)(step)) >> 17));
step = ((unsigned int)(step) - 0x2839fa56);
step = ((unsigned int)(step) ^ 0x75fd7f5b);
step = (((unsigned long)((unsigned int)(step)) << 14) | ((unsigned long)((unsigned int)(step)) >> 18));
step = (((unsigned int)(step) * 0x41c664bd) - 0x4d938d43);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 20)));
step = (((unsigned long)((unsigned int)(step)) >> 11) | ((unsigned long)((unsigned int)(step)) << 21));
step = ((unsigned int)(step) - 0x72ed2030);
step = ((unsigned int)(step) ^ 0x2b4a5981);
step = (((unsigned long)((unsigned int)(step)) << 8) | ((unsigned long)((unsigned int)(step)) >> 24));
step = (((unsigned int)(step) * 0x41c66565) + 0x67b94ce3);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 26)));
step = (((unsigned long)((unsigned int)(step)) >> 5) | ((unsigned long)((unsigned int)(step)) << 27));
step = ((unsigned int)(step) + 0x425fb9f6);
step = ((unsigned int)(step) ^ -0x1f68cc59LL);
step = (((unsigned long)((unsigned int)(step)) << 2) | ((unsigned long)((unsigned int)(step)) >> 30));
step = (((unsigned int)(step) * 0x41c6660d) + 0x1d062709);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 1)));
step = (((unsigned long)((unsigned int)(step)) << 2) | ((unsigned long)((unsigned int)(step)) >> 30));
step = ((unsigned int)(step) - 0x8536be4);
step = ((unsigned int)(step) ^ -0x6a1bf233LL);
step = (((unsigned long)((unsigned int)(step)) >> 5) | ((unsigned long)((unsigned int)(step)) << 27));
step = (((unsigned int)(step) * 0x41c666b5) - 0x2dacfed1);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 7)));
step = (((unsigned long)((unsigned int)(step)) << 8) | ((unsigned long)((unsigned int)(step)) >> 24));
step = ((unsigned int)(step) - 0x530691be);
step = ((unsigned int)(step) ^ 0x4b30e7f3);
step = (((unsigned long)((unsigned int)(step)) >> 11) | ((unsigned long)((unsigned int)(step)) << 21));
step = (((unsigned int)(step) * 0x41c6675d) - 0x786024ab);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 13)));
step = (((unsigned long)((unsigned int)(step)) << 14) | ((unsigned long)((unsigned int)(step)) >> 18));
step = ((unsigned int)(step) + 0x62464868);
step = ((unsigned int)(step) ^ 0x7dc219);
step = (((unsigned long)((unsigned int)(step)) << 15) | ((unsigned long)((unsigned int)(step)) >> 17));
step = (((unsigned int)(step) * 0x41c66805) + 0x3cecb57b);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 19)));
step = (((unsigned long)((unsigned int)(step)) >> 12) | ((unsigned long)((unsigned int)(step)) << 20));
step = ((unsigned int)(step) + 0x1793228e);
step = ((unsigned int)(step) ^ -0x4a3563c1LL);
step = (((unsigned long)((unsigned int)(step)) << 9) | ((unsigned long)((unsigned int)(step)) >> 23));
step = (((unsigned int)(step) * 0x41c668ad) - 0xdc6705f);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 25)));
step = (((unsigned long)((unsigned int)(step)) >> 6) | ((unsigned long)((unsigned int)(step)) << 26));
step = ((unsigned int)(step) - 0x3320034c);
step = ((unsigned int)(step) ^ 0x6b177665);
step = (((unsigned long)((unsigned int)(step)) << 3) | ((unsigned long)((unsigned int)(step)) >> 29));
step = (((unsigned int)(step) * 0x41c66955) - 0x58799639);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 31)));
step = (((unsigned long)((unsigned int)(step)) << 1) | ((unsigned long)((unsigned int)(step)) >> 31));
step = ((unsigned int)(step) - 0x7dd32926);
step = ((unsigned int)(step) ^ 0x2064508b);
step = (((unsigned long)((unsigned int)(step)) >> 4) | ((unsigned long)((unsigned int)(step)) << 28));
step = (((unsigned int)(step) * 0x41c669fd) + 0x5cd343ed);
step = ((unsigned int)(step) ^ (unsigned int)(((unsigned long)((unsigned int)(step)) >> 6)));
step = (((unsigned long)((unsigned int)(step)) << 7) | ((unsigned long)((unsigned int)(step)) >> 25));
step = ((unsigned int)(step) + 0x3779b100);
// x86-64 epilogue: restore rbp
return (unsigned int)(((unsigned long)((unsigned int)(step)) + 256));
} gcc -O2
3/3chain155_buffered pass 334 lines
// glaurung: chain155_buffered @ 0x1e90
int32_t chain155_buffered(int32_t * arg0, int32_t arg1) {
extern __attribute__((noreturn)) void __stack_chk_fail(void);
int index;
unsigned int carry;
long local_40;
unsigned char local_88[64];
long ret;
long var10;
long var104;
int var107;
long var114;
int var117;
long var12;
long var124;
long var125;
int var128;
long var13;
long var135;
int var138;
long var14;
long var145;
int var149;
long var15;
long var157;
long var16;
int var161;
long var169;
long var17;
int var173;
long var18;
long var181;
int var184;
long var19;
long var191;
int var194;
long var201;
int var204;
long var21;
long var211;
int var215;
long var22;
long var223;
int var227;
long var235;
int var239;
long var247;
int var250;
long var257;
int var260;
long var267;
long var27;
int var270;
long var277;
int var280;
long var287;
int var290;
long var297;
int var30;
int var300;
long var307;
int var310;
long var317;
int var321;
long var329;
int var333;
long var341;
int var344;
long var353;
int var356;
long var363;
int var366;
long var37;
long var373;
int var376;
long var383;
int var387;
long var395;
int var399;
long var4;
long var407;
int var41;
int var411;
long var419;
int var422;
long var429;
int var432;
long var439;
int var442;
long var449;
int var452;
long var459;
int var462;
long var469;
int var472;
long var479;
int var482;
long var489;
long var49;
int var493;
long var5;
long var501;
int var505;
long var513;
int var517;
long var525;
int var528;
int var53;
long var535;
int var538;
long var545;
int var548;
long var555;
int var559;
long var567;
int var571;
long var579;
int var583;
long var591;
int var594;
long var601;
int var604;
long var61;
long var612;
int var615;
long var623;
int var626;
long var634;
int var637;
long var645;
int var648;
int var65;
long var656;
int var659;
long var666;
int var669;
long var678;
int var681;
long var690;
int var693;
long var7;
long var702;
int var705;
long var713;
long var717;
long var725;
long var73;
long var74;
int var77;
long var84;
int var87;
long var9;
long var94;
int var97;
local_40 = (long)(0x28);
if (((unsigned long)(15) < (unsigned long)((unsigned long)((unsigned int)((arg1 - 1)))))) {
L_25fa: ;
ret = 0xffffffff;
} else {
var4 = (long)arg0;
if ((arg0 == 0)) {
goto L_25fa;
} else {
var5 = (unsigned long)((unsigned int)(arg1));
var7 = 0;
var9 = var10;
do {
var9 = 0;
if (((((unsigned int)(var5) == (unsigned int)(var7)) | ((long)((int)(var5)) < (long)((int)(var7)))) == 0)) {
var9 = (unsigned long)((unsigned int)(*(int *)((var4 + var7 * 4))));
}
*(int *)((&local_88[0] + (var7 * 4))) = var9;
var12 = (var7 + 1);
var7 = var12;
} while ((var12 != 16));
var13 = (unsigned long)((unsigned int)(*(int *)(&local_88[0])));
var14 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 4))));
var15 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 12))));
var16 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 16))));
var17 = (unsigned long)((unsigned int)((var13 + 0x28734fbd)));
var18 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 24))));
var19 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 36))));
var21 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 48))));
var22 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 8))));
var27 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var14 + var17))) >> 2))) ^ var17)));
var30 = ((((var27 << 3) | ((unsigned long)(var27) >> 29)) * 0x41c64ecd) + var15);
var37 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var16 + (unsigned long)((unsigned int)(var30))))) >> 5))) ^ (unsigned long)((unsigned int)(var30)))));
var41 = ((((var37 << 6) | ((unsigned long)(var37) >> 26)) * 0x41c64f2d) + var18);
var49 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 28)))) + (unsigned long)((unsigned int)(var41))))) >> 8))) ^ (unsigned long)((unsigned int)(var41)))));
var53 = ((((var49 << 9) | ((unsigned long)(var49) >> 23)) * 0x41c64f8d) + var19);
var61 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 40)))) + (unsigned long)((unsigned int)(var53))))) >> 11))) ^ (unsigned long)((unsigned int)(var53)))));
var65 = ((((var61 << 12) | ((unsigned long)(var61) >> 20)) * 0x41c64fed) + var21);
var73 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 52)))) + (unsigned long)((unsigned int)(var65))))) >> 14))) ^ (unsigned long)((unsigned int)(var65)))));
var74 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 60))));
var77 = ((((var73 << 15) | ((unsigned long)(var73) >> 17)) * 0x41c6504d) + var74);
var84 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var13 + (unsigned long)((unsigned int)(var77))))) >> 17))) ^ (unsigned long)((unsigned int)(var77)))));
var87 = (((((unsigned long)(var84) >> 14) | (var84 << 18)) * 0x41c650ad) + var22);
var94 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var15 + (unsigned long)((unsigned int)(var87))))) >> 20))) ^ (unsigned long)((unsigned int)(var87)))));
var97 = (((((unsigned long)(var94) >> 11) | (var94 << 21)) * 0x41c6510d) + *(int *)((&local_88[0] + 20)));
var104 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var18 + (unsigned long)((unsigned int)(var97))))) >> 23))) ^ (unsigned long)((unsigned int)(var97)))));
var107 = (((((unsigned long)(var104) >> 8) | (var104 << 24)) * 0x41c6516d) + *(int *)((&local_88[0] + 32)));
var114 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var19 + (unsigned long)((unsigned int)(var107))))) >> 26))) ^ (unsigned long)((unsigned int)(var107)))));
var117 = (((((unsigned long)(var114) >> 5) | (var114 << 27)) * 0x41c651cd) + *(int *)((&local_88[0] + 44)));
var124 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var21 + (unsigned long)((unsigned int)(var117))))) >> 29))) ^ (unsigned long)((unsigned int)(var117)))));
var125 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + 56))));
var128 = (((((unsigned long)(var124) >> 2) | (var124 << 30)) * 0x41c6522d) + var125);
var135 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var74 + (unsigned long)((unsigned int)(var128))))) >> 1))) ^ (unsigned long)((unsigned int)(var128)))));
var138 = ((((var135 << 2) | ((unsigned long)(var135) >> 30)) * 0x41c6528d) + var14);
var145 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var22 + (unsigned long)((unsigned int)(var138))))) >> 4))) ^ (unsigned long)((unsigned int)(var138)))));
var149 = ((((var145 << 5) | ((unsigned long)(var145) >> 27)) * 0x41c652ed) + var16);
var157 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 20)))) + (unsigned long)((unsigned int)(var149))))) >> 7))) ^ (unsigned long)((unsigned int)(var149)))));
var161 = ((((var157 << 8) | ((unsigned long)(var157) >> 24)) * 0x41c6534d) + *(int *)((&local_88[0] + 28)));
var169 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 32)))) + (unsigned long)((unsigned int)(var161))))) >> 10))) ^ (unsigned long)((unsigned int)(var161)))));
var173 = ((((var169 << 11) | ((unsigned long)(var169) >> 21)) * 0x41c653ad) + *(int *)((&local_88[0] + 40)));
var181 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 44)))) + (unsigned long)((unsigned int)(var173))))) >> 13))) ^ (unsigned long)((unsigned int)(var173)))));
var184 = ((((var181 << 14) | ((unsigned long)(var181) >> 18)) * 0x41c6540d) + *(int *)((&local_88[0] + 52)));
var191 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var125 + (unsigned long)((unsigned int)(var184))))) >> 16))) ^ (unsigned long)((unsigned int)(var184)))));
var194 = (((((unsigned long)(var191) >> 15) | (var191 << 17)) * 0x41c6546d) + var13);
var201 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var14 + (unsigned long)((unsigned int)(var194))))) >> 19))) ^ (unsigned long)((unsigned int)(var194)))));
var204 = (((((unsigned long)(var201) >> 12) | (var201 << 20)) * 0x41c654cd) + var15);
var211 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var16 + (unsigned long)((unsigned int)(var204))))) >> 22))) ^ (unsigned long)((unsigned int)(var204)))));
var215 = (((((unsigned long)(var211) >> 9) | (var211 << 23)) * 0x41c6552d) + var18);
var223 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 28)))) + (unsigned long)((unsigned int)(var215))))) >> 25))) ^ (unsigned long)((unsigned int)(var215)))));
var227 = (((((unsigned long)(var223) >> 6) | (var223 << 26)) * 0x41c6558d) + var19);
var235 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 40)))) + (unsigned long)((unsigned int)(var227))))) >> 28))) ^ (unsigned long)((unsigned int)(var227)))));
var239 = (((((unsigned long)(var235) >> 3) | (var235 << 29)) * 0x41c655ed) + var21);
var247 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 52)))) + (unsigned long)((unsigned int)(var239))))) >> 31))) ^ (unsigned long)((unsigned int)(var239)))));
var250 = ((((var247 << 1) | ((unsigned long)(var247) >> 31)) * 0x41c6564d) + var74);
var257 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var13 + (unsigned long)((unsigned int)(var250))))) >> 3))) ^ (unsigned long)((unsigned int)(var250)))));
var260 = ((((var257 << 4) | ((unsigned long)(var257) >> 28)) * 0x41c656ad) + var22);
var267 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var15 + (unsigned long)((unsigned int)(var260))))) >> 6))) ^ (unsigned long)((unsigned int)(var260)))));
var270 = ((((var267 << 7) | ((unsigned long)(var267) >> 25)) * 0x41c6570d) + *(int *)((&local_88[0] + 20)));
var277 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var18 + (unsigned long)((unsigned int)(var270))))) >> 9))) ^ (unsigned long)((unsigned int)(var270)))));
var280 = ((((var277 << 10) | ((unsigned long)(var277) >> 22)) * 0x41c6576d) + *(int *)((&local_88[0] + 32)));
var287 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var19 + (unsigned long)((unsigned int)(var280))))) >> 12))) ^ (unsigned long)((unsigned int)(var280)))));
var290 = ((((var287 << 13) | ((unsigned long)(var287) >> 19)) * 0x41c657cd) + *(int *)((&local_88[0] + 44)));
var297 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var21 + (unsigned long)((unsigned int)(var290))))) >> 15))) ^ (unsigned long)((unsigned int)(var290)))));
var300 = ((((var297 << 16) | ((unsigned long)(var297) >> 16)) * 0x41c6582d) + var125);
var307 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var74 + (unsigned long)((unsigned int)(var300))))) >> 18))) ^ (unsigned long)((unsigned int)(var300)))));
var310 = (((((unsigned long)(var307) >> 13) | (var307 << 19)) * 0x41c6588d) + var14);
var317 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var22 + (unsigned long)((unsigned int)(var310))))) >> 21))) ^ (unsigned long)((unsigned int)(var310)))));
var321 = (((((unsigned long)(var317) >> 10) | (var317 << 22)) * 0x41c658ed) + var16);
var329 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 20)))) + (unsigned long)((unsigned int)(var321))))) >> 24))) ^ (unsigned long)((unsigned int)(var321)))));
var333 = (((((unsigned long)(var329) >> 7) | (var329 << 25)) * 0x41c6594d) + *(int *)((&local_88[0] + 28)));
var341 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 32)))) + (unsigned long)((unsigned int)(var333))))) >> 27))) ^ (unsigned long)((unsigned int)(var333)))));
var344 = (((((unsigned long)(var341) >> 4) | (var341 << 28)) * 0x41c659ad) + *(int *)((&local_88[0] + 40)));
var353 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 44)))) + (unsigned long)((unsigned int)(var344))))) >> 30))) ^ (unsigned long)((unsigned int)(var344)))));
var356 = (((((unsigned long)(var353) >> 1) | (var353 << 31)) * 0x41c65a0d) + *(int *)((&local_88[0] + 52)));
var363 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var125 + (unsigned long)((unsigned int)(var356))))) >> 2))) ^ (unsigned long)((unsigned int)(var356)))));
var366 = ((((var363 << 3) | ((unsigned long)(var363) >> 29)) * 0x41c65a6d) + var13);
var373 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var14 + (unsigned long)((unsigned int)(var366))))) >> 5))) ^ (unsigned long)((unsigned int)(var366)))));
var376 = ((((var373 << 6) | ((unsigned long)(var373) >> 26)) * 0x41c65acd) + var15);
var383 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var16 + (unsigned long)((unsigned int)(var376))))) >> 8))) ^ (unsigned long)((unsigned int)(var376)))));
var387 = ((((var383 << 9) | ((unsigned long)(var383) >> 23)) * 0x41c65b2d) + var18);
var395 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 28)))) + (unsigned long)((unsigned int)(var387))))) >> 11))) ^ (unsigned long)((unsigned int)(var387)))));
var399 = ((((var395 << 12) | ((unsigned long)(var395) >> 20)) * 0x41c65b8d) + var19);
var407 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 40)))) + (unsigned long)((unsigned int)(var399))))) >> 14))) ^ (unsigned long)((unsigned int)(var399)))));
var411 = ((((var407 << 15) | ((unsigned long)(var407) >> 17)) * 0x41c65bed) + var21);
var419 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 52)))) + (unsigned long)((unsigned int)(var411))))) >> 17))) ^ (unsigned long)((unsigned int)(var411)))));
var422 = (((((unsigned long)(var419) >> 14) | (var419 << 18)) * 0x41c65c4d) + var74);
var429 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var13 + (unsigned long)((unsigned int)(var422))))) >> 20))) ^ (unsigned long)((unsigned int)(var422)))));
var432 = (((((unsigned long)(var429) >> 11) | (var429 << 21)) * 0x41c65cad) + var22);
var439 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var15 + (unsigned long)((unsigned int)(var432))))) >> 23))) ^ (unsigned long)((unsigned int)(var432)))));
var442 = (((((unsigned long)(var439) >> 8) | (var439 << 24)) * 0x41c65d0d) + *(int *)((&local_88[0] + 20)));
var449 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var18 + (unsigned long)((unsigned int)(var442))))) >> 26))) ^ (unsigned long)((unsigned int)(var442)))));
var452 = (((((unsigned long)(var449) >> 5) | (var449 << 27)) * 0x41c65d6d) + *(int *)((&local_88[0] + 32)));
var459 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var19 + (unsigned long)((unsigned int)(var452))))) >> 29))) ^ (unsigned long)((unsigned int)(var452)))));
var462 = (((((unsigned long)(var459) >> 2) | (var459 << 30)) * 0x41c65dcd) + *(int *)((&local_88[0] + 44)));
var469 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var21 + (unsigned long)((unsigned int)(var462))))) >> 1))) ^ (unsigned long)((unsigned int)(var462)))));
var472 = ((((var469 << 2) | ((unsigned long)(var469) >> 30)) * 0x41c65e2d) + var125);
var479 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var74 + (unsigned long)((unsigned int)(var472))))) >> 4))) ^ (unsigned long)((unsigned int)(var472)))));
var482 = ((((var479 << 5) | ((unsigned long)(var479) >> 27)) * 0x41c65e8d) + var14);
var489 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var22 + (unsigned long)((unsigned int)(var482))))) >> 7))) ^ (unsigned long)((unsigned int)(var482)))));
var493 = ((((var489 << 8) | ((unsigned long)(var489) >> 24)) * 0x41c65eed) + var16);
var501 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 20)))) + (unsigned long)((unsigned int)(var493))))) >> 10))) ^ (unsigned long)((unsigned int)(var493)))));
var505 = ((((var501 << 11) | ((unsigned long)(var501) >> 21)) * 0x41c65f4d) + *(int *)((&local_88[0] + 28)));
var513 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 32)))) + (unsigned long)((unsigned int)(var505))))) >> 13))) ^ (unsigned long)((unsigned int)(var505)))));
var517 = ((((var513 << 14) | ((unsigned long)(var513) >> 18)) * 0x41c65fad) + *(int *)((&local_88[0] + 40)));
var525 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 44)))) + (unsigned long)((unsigned int)(var517))))) >> 16))) ^ (unsigned long)((unsigned int)(var517)))));
var528 = (((((unsigned long)(var525) >> 15) | (var525 << 17)) * 0x41c6600d) + *(int *)((&local_88[0] + 52)));
var535 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var125 + (unsigned long)((unsigned int)(var528))))) >> 19))) ^ (unsigned long)((unsigned int)(var528)))));
var538 = (((((unsigned long)(var535) >> 12) | (var535 << 20)) * 0x41c6606d) + var13);
var545 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var14 + (unsigned long)((unsigned int)(var538))))) >> 22))) ^ (unsigned long)((unsigned int)(var538)))));
var548 = (((((unsigned long)(var545) >> 9) | (var545 << 23)) * 0x41c660cd) + var15);
var555 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var16 + (unsigned long)((unsigned int)(var548))))) >> 25))) ^ (unsigned long)((unsigned int)(var548)))));
var559 = (((((unsigned long)(var555) >> 6) | (var555 << 26)) * 0x41c6612d) + var18);
var567 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 28)))) + (unsigned long)((unsigned int)(var559))))) >> 28))) ^ (unsigned long)((unsigned int)(var559)))));
var571 = (((((unsigned long)(var567) >> 3) | (var567 << 29)) * 0x41c6618d) + var19);
var579 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 40)))) + (unsigned long)((unsigned int)(var571))))) >> 31))) ^ (unsigned long)((unsigned int)(var571)))));
var583 = ((((var579 << 1) | ((unsigned long)(var579) >> 31)) * 0x41c661ed) + var21);
var591 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 52)))) + (unsigned long)((unsigned int)(var583))))) >> 3))) ^ (unsigned long)((unsigned int)(var583)))));
var594 = ((((var591 << 4) | ((unsigned long)(var591) >> 28)) * 0x41c6624d) + var74);
var601 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var13 + (unsigned long)((unsigned int)(var594))))) >> 6))) ^ (unsigned long)((unsigned int)(var594)))));
var604 = ((((var601 << 7) | ((unsigned long)(var601) >> 25)) * 0x41c662ad) + var22);
var612 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var15 + (unsigned long)((unsigned int)(var604))))) >> 9))) ^ (unsigned long)((unsigned int)(var604)))));
var615 = ((((var612 << 10) | ((unsigned long)(var612) >> 22)) * 0x41c6630d) + *(int *)((&local_88[0] + 20)));
var623 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var18 + (unsigned long)((unsigned int)(var615))))) >> 12))) ^ (unsigned long)((unsigned int)(var615)))));
var626 = ((((var623 << 13) | ((unsigned long)(var623) >> 19)) * 0x41c6636d) + *(int *)((&local_88[0] + 32)));
var634 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var19 + (unsigned long)((unsigned int)(var626))))) >> 15))) ^ (unsigned long)((unsigned int)(var626)))));
var637 = ((((var634 << 16) | ((unsigned long)(var634) >> 16)) * 0x41c663cd) + *(int *)((&local_88[0] + 44)));
var645 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var21 + (unsigned long)((unsigned int)(var637))))) >> 18))) ^ (unsigned long)((unsigned int)(var637)))));
var648 = (((((unsigned long)(var645) >> 13) | (var645 << 19)) * 0x41c6642d) + var125);
var656 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var74 + (unsigned long)((unsigned int)(var648))))) >> 21))) ^ (unsigned long)((unsigned int)(var648)))));
var659 = (((((unsigned long)(var656) >> 10) | (var656 << 22)) * 0x41c6648d) + var14);
var666 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var22 + (unsigned long)((unsigned int)(var659))))) >> 24))) ^ (unsigned long)((unsigned int)(var659)))));
var669 = (var16 + ((((unsigned long)(var666) >> 7) | (var666 << 25)) * 0x41c664ed));
var678 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(*(int *)((&local_88[0] + 20)))) + (unsigned long)((unsigned int)(var669))))) >> 27))) ^ (unsigned long)((unsigned int)(var669)))));
var681 = (((((unsigned long)(var678) >> 4) | (var678 << 28)) * 0x41c6654d) + *(int *)((&local_88[0] + 28)));
var690 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var681)) + *(int *)((&local_88[0] + 32))))) >> 30))) ^ (unsigned long)((unsigned int)(var681)))));
var693 = (((((unsigned long)(var690) >> 1) | (var690 << 31)) * 0x41c665ad) + *(int *)((&local_88[0] + 40)));
var702 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var693)) + *(int *)((&local_88[0] + 44))))) >> 2))) ^ (unsigned long)((unsigned int)(var693)))));
var705 = ((((var702 << 3) | ((unsigned long)(var702) >> 29)) * 0x41c6660d) + *(int *)((&local_88[0] + 52)));
var713 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var125 + (unsigned long)((unsigned int)(var705))))) >> 5))) ^ (unsigned long)((unsigned int)(var705)))));
var717 = ((var713 << 6) | ((unsigned long)(var713) >> 26));
index = 0;
while (1) {
*(int *)((var4 + index * 4)) = ((unsigned long)((unsigned int)((var13 ^ var717))) & 0x7fffffff);
index = (index + 1);
var725 = (unsigned long)((unsigned int)(((var717 * 0x19660d) + 0x3c6ef35f)));
if (((((unsigned int)(var5) == (unsigned int)(index)) | ((long)((int)(var5)) < (long)(index))) != 0)) {
break;
}
var13 = (unsigned long)((unsigned int)(*(int *)((&local_88[0] + (index * 4)))));
var717 = var725;
}
ret = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((var725 & 0xffffff))) + 192)));
}
}
if ((local_40 != 0x28)) {
__stack_chk_fail();
}
// x86-64 epilogue: tear down frame
return ret;
} chain155_scalar pass 325 lines
// glaurung: chain155_scalar @ 0x1120
uint32_t chain155_scalar(uint32_t arg0) {
unsigned int acc;
long var10;
long var100;
long var105;
long var109;
long var115;
long var120;
int var123;
long var130;
long var135;
long var139;
long var145;
long var15;
long var150;
long var154;
long var160;
long var165;
int var168;
long var175;
int var18;
long var180;
int var183;
long var190;
long var195;
long var199;
long var205;
long var210;
long var214;
long var220;
long var225;
int var228;
long var235;
long var240;
long var244;
long var25;
long var250;
long var255;
long var259;
long var265;
long var270;
int var273;
long var280;
long var285;
int var288;
long var295;
long var30;
long var300;
long var304;
long var310;
long var315;
int var318;
long var325;
int var33;
long var330;
int var333;
long var340;
long var345;
long var349;
long var355;
long var360;
long var364;
long var370;
long var375;
int var378;
long var385;
long var390;
int var393;
long var4;
long var40;
long var400;
long var405;
long var409;
long var415;
long var420;
int var423;
long var430;
long var435;
int var438;
long var445;
long var45;
long var450;
long var454;
long var460;
long var465;
long var469;
long var475;
long var480;
int var483;
long var49;
long var490;
long var495;
long var499;
long var505;
long var510;
long var514;
long var520;
long var525;
int var528;
long var535;
long var540;
int var543;
long var55;
long var550;
long var555;
long var559;
long var565;
long var570;
long var574;
long var580;
long var585;
int var588;
long var595;
long var60;
long var600;
long var604;
long var610;
long var615;
long var619;
long var625;
int var63;
long var630;
int var633;
long var640;
long var645;
int var648;
long var655;
long var660;
long var664;
long var670;
long var675;
int var678;
long var685;
long var690;
int var693;
long var70;
long var700;
long var705;
long var709;
long var715;
long var720;
long var724;
long var730;
long var735;
int var738;
long var745;
long var75;
long var750;
int var753;
long var760;
long var765;
long var769;
long var775;
int var78;
long var780;
int var783;
long var790;
long var795;
int var798;
long var85;
long var90;
long var94;
var4 = (unsigned long)((unsigned int)((((unsigned long)((unsigned int)((arg0 ^ -0x61c88647LL))) * 0x41c64e6d) - 0x61c8864f)));
var10 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var4)) >> 2))) ^ var4)));
var15 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var10 << 3) | ((unsigned long)(var10) >> 29)) + 0x78dde6c4))) ^ 0x17156075)));
var18 = (((((unsigned long)(var15) >> 6) | (var15 << 26)) * 0x41c64f15) + 0x538453d7);
var25 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var18)) >> 8))) ^ (unsigned long)((unsigned int)(var18)))));
var30 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var25 << 9) | ((unsigned long)(var25) >> 23)) + 0x2e2ac0ea))) ^ -0x339dc565LL)));
var33 = (((((unsigned long)(var30) >> 12) | (var30 << 20)) * 0x41c64fbd) + 0x8d12dfd);
var40 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var33)) >> 14))) ^ (unsigned long)((unsigned int)(var33)))));
var45 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var40 << 15) | ((unsigned long)(var40) >> 17)) - 0x1c8864f0))) ^ -0x7e50eb3fLL)));
var49 = (unsigned long)((unsigned int)(((((var45 << 14) | ((unsigned long)(var45) >> 18)) * 0x41c65065) - 0x41e1f7dd)));
var55 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var49)) >> 20))) ^ var49)));
var60 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var55) >> 11) | (var55 << 21)) - 0x673b8aca))) ^ 0x36fbeee7)));
var63 = ((((var60 << 8) | ((unsigned long)(var60) >> 24)) * 0x41c6510d) + 0x736ae249);
var70 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var63)) >> 26))) ^ (unsigned long)((unsigned int)(var63)))));
var75 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var70) >> 5) | (var70 << 27)) + 0x4e114f5c))) ^ -0x13b736f3LL)));
var78 = ((((var75 << 2) | ((unsigned long)(var75) >> 30)) * 0x41c651b5) + 0x28b7bc6f);
var85 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var78)) >> 1))) ^ (unsigned long)((unsigned int)(var78)))));
var90 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var85 << 2) | ((unsigned long)(var85) >> 30)) + 0x35e2982))) ^ -0x5e6a5ccdLL)));
var94 = (unsigned long)((unsigned int)((((((unsigned long)(var90) >> 5) | (var90 << 27)) * 0x41c6525d) - 0x21fb696b)));
var100 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var94)) >> 7))) ^ var94)));
var105 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var100 << 8) | ((unsigned long)(var100) >> 24)) - 0x4754fc58))) ^ 0x56e27d59)));
var109 = (unsigned long)((unsigned int)((((((unsigned long)(var105) >> 11) | (var105 << 21)) * 0x41c65305) - 0x6cae8f45)));
var115 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var109)) >> 13))) ^ var109)));
var120 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var115 << 14) | ((unsigned long)(var115) >> 18)) + 0x6df7ddce))) ^ 0xc2f577f)));
var123 = ((((var120 << 15) | ((unsigned long)(var120) >> 17)) * 0x41c653ad) + 0x489e4ae1);
var130 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var123)) >> 19))) ^ (unsigned long)((unsigned int)(var123)))));
var135 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var130) >> 12) | (var130 << 20)) + 0x2344b7f4))) ^ -0x3e83ce5bLL)));
var139 = (unsigned long)((unsigned int)(((((var135 << 9) | ((unsigned long)(var135) >> 23)) * 0x41c65455) - 0x214daf9)));
var145 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var139)) >> 25))) ^ var139)));
var150 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var145) >> 6) | (var145 << 26)) - 0x276e6de6))) ^ 0x76c90bcb)));
var154 = (unsigned long)((unsigned int)(((((var150 << 3) | ((unsigned long)(var150) >> 29)) * 0x41c654fd) - 0x4cc800d3)));
var160 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var154)) >> 31))) ^ var154)));
var165 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var160 << 1) | ((unsigned long)(var160) >> 31)) - 0x722193c0))) ^ 0x2c15e5f1)));
var168 = (((((unsigned long)(var165) >> 4) | (var165 << 28)) * 0x41c655a5) + 0x6884d953);
var175 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var168)) >> 6))) ^ (unsigned long)((unsigned int)(var168)))));
var180 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var175 << 7) | ((unsigned long)(var175) >> 25)) + 0x432b4666))) ^ -0x1e9d3fe9LL)));
var183 = (((((unsigned long)(var180) >> 10) | (var180 << 22)) * 0x41c6564d) + 0x1dd1b379);
var190 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var183)) >> 12))) ^ (unsigned long)((unsigned int)(var183)))));
var195 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var190 << 13) | ((unsigned long)(var190) >> 19)) - 0x787df74))) ^ -0x695065c3LL)));
var199 = (unsigned long)((unsigned int)(((((var195 << 16) | ((unsigned long)(var195) >> 16)) * 0x41c656f5) - 0x2ce17261)));
var205 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var199)) >> 18))) ^ var199)));
var210 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var205) >> 13) | (var205 << 19)) - 0x523b054e))) ^ 0x4bfc7463)));
var214 = (unsigned long)((unsigned int)(((((var210 << 10) | ((unsigned long)(var210) >> 22)) * 0x41c6579d) - 0x7794983b)));
var220 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var214)) >> 24))) ^ var214)));
var225 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var220) >> 7) | (var220 << 25)) + 0x6311d4d8))) ^ 0x1494e89)));
var228 = ((((var225 << 4) | ((unsigned long)(var225) >> 28)) * 0x41c65845) + 0x3db841eb);
var235 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var228)) >> 30))) ^ (unsigned long)((unsigned int)(var228)))));
var240 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var235) >> 1) | (var235 << 31)) + 0x185eaefe))) ^ -0x4969d751LL)));
var244 = (unsigned long)((unsigned int)((((((unsigned long)(var240) >> 3) | (var240 << 29)) * 0x41c658ed) - 0xcfae3ef)));
var250 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var244)) >> 5))) ^ var244)));
var255 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var250 << 6) | ((unsigned long)(var250) >> 26)) - 0x325476dc))) ^ 0x6be302d5)));
var259 = (unsigned long)((unsigned int)((((((unsigned long)(var255) >> 9) | (var255 << 23)) * 0x41c65995) - 0x57ae09c9)));
var265 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var259)) >> 11))) ^ var259)));
var270 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var265 << 12) | ((unsigned long)(var265) >> 20)) - 0x7d079cb6))) ^ 0x212fdcfb)));
var273 = (((((unsigned long)(var270) >> 15) | (var270 << 17)) * 0x41c65a3d) + 0x5d9ed05d);
var280 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var273)) >> 17))) ^ (unsigned long)((unsigned int)(var273)))));
var285 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var280) >> 14) | (var280 << 18)) + 0x38453d70))) ^ -0x298348dfLL)));
var288 = ((((var285 << 11) | ((unsigned long)(var285) >> 21)) * 0x41c65ae5) + 0x12ebaa83);
var295 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var288)) >> 23))) ^ (unsigned long)((unsigned int)(var288)))));
var300 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var295) >> 8) | (var295 << 24)) - 0x126de86a))) ^ -0x74366eb9LL)));
var304 = (unsigned long)((unsigned int)(((((var300 << 5) | ((unsigned long)(var300) >> 27)) * 0x41c65b8d) - 0x37c77b57)));
var310 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var304)) >> 29))) ^ var304)));
var315 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var310) >> 2) | (var310 << 30)) - 0x5d210e44))) ^ 0x41166b6d)));
var318 = (((((unsigned long)(var315) >> 2) | (var315 << 30)) * 0x41c65c35) + 0x7d855ecf);
var325 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var318)) >> 4))) ^ (unsigned long)((unsigned int)(var318)))));
var330 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var325 << 5) | ((unsigned long)(var325) >> 27)) + 0x582bcbe2))) ^ -0x99cba6dLL)));
var333 = (((((unsigned long)(var330) >> 8) | (var330 << 24)) * 0x41c65cdd) + 0x32d238f5);
var340 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var333)) >> 10))) ^ (unsigned long)((unsigned int)(var333)))));
var345 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var340 << 11) | ((unsigned long)(var340) >> 21)) + 0xd78a608))) ^ -0x544fe047LL)));
var349 = (unsigned long)((unsigned int)((((((unsigned long)(var345) >> 14) | (var345 << 18)) * 0x41c65d85) - 0x17e0ece5)));
var355 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var349)) >> 16))) ^ var349)));
var360 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var355) >> 15) | (var355 << 17)) - 0x3d3a7fd2))) ^ 0x60fcf9df)));
var364 = (unsigned long)((unsigned int)(((((var360 << 12) | ((unsigned long)(var360) >> 20)) * 0x41c65e2d) - 0x629412bf)));
var370 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var364)) >> 22))) ^ var364)));
var375 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var370) >> 9) | (var370 << 23)) + 0x78125a54))) ^ 0x1649d405)));
var378 = ((((var375 << 6) | ((unsigned long)(var375) >> 26)) * 0x41c65ed5) + 0x52b8c767);
var385 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var378)) >> 28))) ^ (unsigned long)((unsigned int)(var378)))));
var390 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var385) >> 3) | (var385 << 29)) + 0x2d5f347a))) ^ -0x346951d5LL)));
var393 = (((((unsigned long)(var390) >> 1) | (var390 << 31)) * 0x41c65f7d) + 0x805a18d);
var400 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var393)) >> 3))) ^ (unsigned long)((unsigned int)(var393)))));
var405 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var400 << 4) | ((unsigned long)(var400) >> 28)) - 0x1d53f160))) ^ -0x7f1c77afLL)));
var409 = (unsigned long)((unsigned int)((((((unsigned long)(var405) >> 7) | (var405 << 25)) * 0x41c66025) - 0x42ad844d)));
var415 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var409)) >> 9))) ^ var409)));
var420 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var415 << 10) | ((unsigned long)(var415) >> 22)) - 0x6807173a))) ^ 0x36306277)));
var423 = (((((unsigned long)(var420) >> 13) | (var420 << 19)) * 0x41c660cd) + 0x729f55d9);
var430 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var423)) >> 15))) ^ (unsigned long)((unsigned int)(var423)))));
var435 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var430 << 16) | ((unsigned long)(var430) >> 16)) + 0x4d45c2ec))) ^ -0x1482c363LL)));
var438 = ((((var435 << 13) | ((unsigned long)(var435) >> 19)) * 0x41c66175) + 0x27ec2fff);
var445 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var438)) >> 21))) ^ (unsigned long)((unsigned int)(var438)))));
var450 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var445) >> 10) | (var445 << 22)) + 0x2929d12))) ^ -0x5f35e93dLL)));
var454 = (unsigned long)((unsigned int)(((((var450 << 7) | ((unsigned long)(var450) >> 25)) * 0x41c6621d) - 0x22c6f5db)));
var460 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var454)) >> 27))) ^ var454)));
var465 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var460) >> 4) | (var460 << 28)) - 0x482088c8))) ^ 0x5616f0e9)));
var469 = (unsigned long)((unsigned int)(((((var465 << 1) | ((unsigned long)(var465) >> 31)) * 0x41c662c5) - 0x6d7a1bb5)));
var475 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var469)) >> 2))) ^ var469)));
var480 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var475 << 3) | ((unsigned long)(var475) >> 29)) + 0x6d2c515e))) ^ 0xb63cb0f)));
var483 = (((((unsigned long)(var480) >> 6) | (var480 << 26)) * 0x41c6636d) + 0x47d2be71);
var490 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var483)) >> 8))) ^ (unsigned long)((unsigned int)(var483)))));
var495 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var490 << 9) | ((unsigned long)(var490) >> 23)) + 0x22792b84))) ^ -0x3f4f5acbLL)));
var499 = (unsigned long)((unsigned int)((((((unsigned long)(var495) >> 12) | (var495 << 20)) * 0x41c66415) - 0x2e06769)));
var505 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var499)) >> 14))) ^ var499)));
var510 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var505 << 15) | ((unsigned long)(var505) >> 17)) - 0x2839fa56))) ^ 0x75fd7f5b)));
var514 = (unsigned long)((unsigned int)(((((var510 << 14) | ((unsigned long)(var510) >> 18)) * 0x41c664bd) - 0x4d938d43)));
var520 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var514)) >> 20))) ^ var514)));
var525 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var520) >> 11) | (var520 << 21)) - 0x72ed2030))) ^ 0x2b4a5981)));
var528 = ((((var525 << 8) | ((unsigned long)(var525) >> 24)) * 0x41c66565) + 0x67b94ce3);
var535 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var528)) >> 26))) ^ (unsigned long)((unsigned int)(var528)))));
var540 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var535) >> 5) | (var535 << 27)) + 0x425fb9f6))) ^ -0x1f68cc59LL)));
var543 = ((((var540 << 2) | ((unsigned long)(var540) >> 30)) * 0x41c6660d) + 0x1d062709);
var550 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var543)) >> 1))) ^ (unsigned long)((unsigned int)(var543)))));
var555 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var550 << 2) | ((unsigned long)(var550) >> 30)) - 0x8536be4))) ^ -0x6a1bf233LL)));
var559 = (unsigned long)((unsigned int)((((((unsigned long)(var555) >> 5) | (var555 << 27)) * 0x41c666b5) - 0x2dacfed1)));
var565 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var559)) >> 7))) ^ var559)));
var570 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var565 << 8) | ((unsigned long)(var565) >> 24)) - 0x530691be))) ^ 0x4b30e7f3)));
var574 = (unsigned long)((unsigned int)((((((unsigned long)(var570) >> 11) | (var570 << 21)) * 0x41c6675d) - 0x786024ab)));
var580 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var574)) >> 13))) ^ var574)));
var585 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var580 << 14) | ((unsigned long)(var580) >> 18)) + 0x62464868))) ^ 0x7dc219)));
var588 = ((((var585 << 15) | ((unsigned long)(var585) >> 17)) * 0x41c66805) + 0x3cecb57b);
var595 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var588)) >> 19))) ^ (unsigned long)((unsigned int)(var588)))));
var600 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var595) >> 12) | (var595 << 20)) + 0x1793228e))) ^ -0x4a3563c1LL)));
var604 = (unsigned long)((unsigned int)(((((var600 << 9) | ((unsigned long)(var600) >> 23)) * 0x41c668ad) - 0xdc6705f)));
var610 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var604)) >> 25))) ^ var604)));
var615 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var610) >> 6) | (var610 << 26)) - 0x3320034c))) ^ 0x6b177665)));
var619 = (unsigned long)((unsigned int)(((((var615 << 3) | ((unsigned long)(var615) >> 29)) * 0x41c66955) - 0x58799639)));
var625 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var619)) >> 31))) ^ var619)));
var630 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var625 << 1) | ((unsigned long)(var625) >> 31)) - 0x7dd32926))) ^ 0x2064508b)));
var633 = (((((unsigned long)(var630) >> 4) | (var630 << 28)) * 0x41c669fd) + 0x5cd343ed);
var640 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var633)) >> 6))) ^ (unsigned long)((unsigned int)(var633)))));
var645 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var640 << 7) | ((unsigned long)(var640) >> 25)) + 0x3779b100))) ^ -0x2a4ed54fLL)));
var648 = (((((unsigned long)(var645) >> 10) | (var645 << 22)) * 0x41c66aa5) + 0x12201e13);
var655 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var648)) >> 12))) ^ (unsigned long)((unsigned int)(var648)))));
var660 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var655 << 13) | ((unsigned long)(var655) >> 19)) - 0x133974da))) ^ -0x7501fb29LL)));
var664 = (unsigned long)((unsigned int)(((((var660 << 16) | ((unsigned long)(var660) >> 16)) * 0x41c66b4d) - 0x389307c7)));
var670 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var664)) >> 18))) ^ var664)));
var675 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var670) >> 13) | (var670 << 19)) - 0x5dec9ab4))) ^ 0x404adefd)));
var678 = ((((var675 << 10) | ((unsigned long)(var675) >> 22)) * 0x41c66bf5) + 0x7cb9d25f);
var685 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var678)) >> 24))) ^ (unsigned long)((unsigned int)(var678)))));
var690 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var685) >> 7) | (var685 << 25)) + 0x57603f72))) ^ -0xa6846ddLL)));
var693 = ((((var690 << 4) | ((unsigned long)(var690) >> 28)) * 0x41c66c9d) + 0x3206ac85);
var700 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var693)) >> 30))) ^ (unsigned long)((unsigned int)(var693)))));
var705 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var700) >> 1) | (var700 << 31)) + 0xcad1998))) ^ -0x551b6cb7LL)));
var709 = (unsigned long)((unsigned int)((((((unsigned long)(var705) >> 3) | (var705 << 29)) * 0x41c66d45) - 0x18ac7955)));
var715 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var709)) >> 5))) ^ var709)));
var720 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var715 << 6) | ((unsigned long)(var715) >> 26)) - 0x3e060c42))) ^ 0x60316d6f)));
var724 = (unsigned long)((unsigned int)((((((unsigned long)(var720) >> 9) | (var720 << 23)) * 0x41c66ded) - 0x635f9f2f)));
var730 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var724)) >> 11))) ^ var724)));
var735 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var730 << 12) | ((unsigned long)(var730) >> 20)) + 0x7746cde4))) ^ 0x157e4795)));
var738 = (((((unsigned long)(var735) >> 15) | (var735 << 17)) * 0x41c66e95) + 0x51ed3af7);
var745 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var738)) >> 17))) ^ (unsigned long)((unsigned int)(var738)))));
var750 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var745) >> 14) | (var745 << 18)) + 0x2c93a80a))) ^ -0x3534de45LL)));
var753 = ((((var750 << 11) | ((unsigned long)(var750) >> 21)) * 0x41c66f3d) + 0x73a151d);
var760 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var753)) >> 23))) ^ (unsigned long)((unsigned int)(var753)))));
var765 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var760) >> 8) | (var760 << 24)) - 0x1e1f7dd0))) ^ -0x7fe8041fLL)));
var769 = (unsigned long)((unsigned int)(((((var765 << 5) | ((unsigned long)(var765) >> 27)) * 0x41c66fe5) - 0x437910bd)));
var775 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var769)) >> 29))) ^ var769)));
var780 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var775) >> 2) | (var775 << 30)) - 0x68d2a3aa))) ^ 0x3564d607)));
var783 = (((((unsigned long)(var780) >> 2) | (var780 << 30)) * 0x41c6708d) + 0x71d3c969);
var790 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var783)) >> 4))) ^ (unsigned long)((unsigned int)(var783)))));
var795 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var790 << 5) | ((unsigned long)(var790) >> 27)) + 0x4c7a367c))) ^ -0x154e4fd3LL)));
var798 = (((((unsigned long)(var795) >> 8) | (var795 << 24)) * 0x41c67135) + 0x2720a38f);
return (unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var798)) >> 10))) ^ (unsigned long)((unsigned int)(var798))))) + 320));
} chain155_signed pass 260 lines
// glaurung: chain155_signed @ 0x18a0
int32_t chain155_signed(int32_t arg0) {
long var103;
long var107;
long var113;
long var118;
int var121;
long var128;
long var13;
long var133;
long var137;
long var143;
long var148;
long var152;
long var158;
int var16;
long var163;
int var166;
long var173;
long var178;
int var181;
long var188;
long var193;
long var197;
long var2;
long var203;
long var208;
long var212;
long var218;
long var223;
int var226;
long var23;
long var233;
long var238;
long var242;
long var248;
long var253;
long var257;
long var263;
long var268;
int var271;
long var278;
long var28;
long var283;
int var286;
long var293;
long var298;
long var302;
long var308;
int var31;
long var313;
int var316;
long var323;
long var328;
int var331;
long var338;
long var343;
long var347;
long var353;
long var358;
long var362;
long var368;
long var373;
int var376;
long var38;
long var383;
long var388;
int var391;
long var398;
long var403;
long var407;
long var413;
long var418;
int var421;
long var428;
long var43;
long var433;
int var436;
long var443;
long var448;
long var452;
long var458;
long var463;
long var467;
long var47;
long var473;
long var478;
int var481;
long var488;
long var493;
long var497;
long var503;
long var508;
long var512;
long var518;
long var523;
int var526;
long var53;
long var533;
long var538;
int var541;
long var548;
long var553;
long var557;
long var563;
long var568;
long var572;
long var578;
long var58;
long var583;
int var586;
long var593;
long var598;
long var602;
long var608;
int var61;
long var613;
long var617;
long var623;
long var628;
int var631;
long var638;
long var68;
long var73;
int var76;
long var8;
long var83;
long var88;
long var92;
long var98;
var2 = (unsigned long)((unsigned int)(((arg0 * 0x41c64e6d) - 0x61c8864f)));
var8 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var2)) >> 2))) ^ var2)));
var13 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var8 << 3) | ((unsigned long)(var8) >> 29)) + 0x78dde6c4))) ^ 0x17156075)));
var16 = (((((unsigned long)(var13) >> 6) | (var13 << 26)) * 0x41c64f15) + 0x538453d7);
var23 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var16)) >> 8))) ^ (unsigned long)((unsigned int)(var16)))));
var28 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var23 << 9) | ((unsigned long)(var23) >> 23)) + 0x2e2ac0ea))) ^ -0x339dc565LL)));
var31 = (((((unsigned long)(var28) >> 12) | (var28 << 20)) * 0x41c64fbd) + 0x8d12dfd);
var38 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var31)) >> 14))) ^ (unsigned long)((unsigned int)(var31)))));
var43 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var38 << 15) | ((unsigned long)(var38) >> 17)) - 0x1c8864f0))) ^ -0x7e50eb3fLL)));
var47 = (unsigned long)((unsigned int)(((((var43 << 14) | ((unsigned long)(var43) >> 18)) * 0x41c65065) - 0x41e1f7dd)));
var53 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var47)) >> 20))) ^ var47)));
var58 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var53) >> 11) | (var53 << 21)) - 0x673b8aca))) ^ 0x36fbeee7)));
var61 = ((((var58 << 8) | ((unsigned long)(var58) >> 24)) * 0x41c6510d) + 0x736ae249);
var68 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var61)) >> 26))) ^ (unsigned long)((unsigned int)(var61)))));
var73 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var68) >> 5) | (var68 << 27)) + 0x4e114f5c))) ^ -0x13b736f3LL)));
var76 = ((((var73 << 2) | ((unsigned long)(var73) >> 30)) * 0x41c651b5) + 0x28b7bc6f);
var83 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var76)) >> 1))) ^ (unsigned long)((unsigned int)(var76)))));
var88 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var83 << 2) | ((unsigned long)(var83) >> 30)) + 0x35e2982))) ^ -0x5e6a5ccdLL)));
var92 = (unsigned long)((unsigned int)((((((unsigned long)(var88) >> 5) | (var88 << 27)) * 0x41c6525d) - 0x21fb696b)));
var98 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var92)) >> 7))) ^ var92)));
var103 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var98 << 8) | ((unsigned long)(var98) >> 24)) - 0x4754fc58))) ^ 0x56e27d59)));
var107 = (unsigned long)((unsigned int)((((((unsigned long)(var103) >> 11) | (var103 << 21)) * 0x41c65305) - 0x6cae8f45)));
var113 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var107)) >> 13))) ^ var107)));
var118 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var113 << 14) | ((unsigned long)(var113) >> 18)) + 0x6df7ddce))) ^ 0xc2f577f)));
var121 = ((((var118 << 15) | ((unsigned long)(var118) >> 17)) * 0x41c653ad) + 0x489e4ae1);
var128 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var121)) >> 19))) ^ (unsigned long)((unsigned int)(var121)))));
var133 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var128) >> 12) | (var128 << 20)) + 0x2344b7f4))) ^ -0x3e83ce5bLL)));
var137 = (unsigned long)((unsigned int)(((((var133 << 9) | ((unsigned long)(var133) >> 23)) * 0x41c65455) - 0x214daf9)));
var143 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var137)) >> 25))) ^ var137)));
var148 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var143) >> 6) | (var143 << 26)) - 0x276e6de6))) ^ 0x76c90bcb)));
var152 = (unsigned long)((unsigned int)(((((var148 << 3) | ((unsigned long)(var148) >> 29)) * 0x41c654fd) - 0x4cc800d3)));
var158 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var152)) >> 31))) ^ var152)));
var163 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var158 << 1) | ((unsigned long)(var158) >> 31)) - 0x722193c0))) ^ 0x2c15e5f1)));
var166 = (((((unsigned long)(var163) >> 4) | (var163 << 28)) * 0x41c655a5) + 0x6884d953);
var173 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var166)) >> 6))) ^ (unsigned long)((unsigned int)(var166)))));
var178 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var173 << 7) | ((unsigned long)(var173) >> 25)) + 0x432b4666))) ^ -0x1e9d3fe9LL)));
var181 = (((((unsigned long)(var178) >> 10) | (var178 << 22)) * 0x41c6564d) + 0x1dd1b379);
var188 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var181)) >> 12))) ^ (unsigned long)((unsigned int)(var181)))));
var193 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var188 << 13) | ((unsigned long)(var188) >> 19)) - 0x787df74))) ^ -0x695065c3LL)));
var197 = (unsigned long)((unsigned int)(((((var193 << 16) | ((unsigned long)(var193) >> 16)) * 0x41c656f5) - 0x2ce17261)));
var203 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var197)) >> 18))) ^ var197)));
var208 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var203) >> 13) | (var203 << 19)) - 0x523b054e))) ^ 0x4bfc7463)));
var212 = (unsigned long)((unsigned int)(((((var208 << 10) | ((unsigned long)(var208) >> 22)) * 0x41c6579d) - 0x7794983b)));
var218 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var212)) >> 24))) ^ var212)));
var223 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var218) >> 7) | (var218 << 25)) + 0x6311d4d8))) ^ 0x1494e89)));
var226 = ((((var223 << 4) | ((unsigned long)(var223) >> 28)) * 0x41c65845) + 0x3db841eb);
var233 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var226)) >> 30))) ^ (unsigned long)((unsigned int)(var226)))));
var238 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var233) >> 1) | (var233 << 31)) + 0x185eaefe))) ^ -0x4969d751LL)));
var242 = (unsigned long)((unsigned int)((((((unsigned long)(var238) >> 3) | (var238 << 29)) * 0x41c658ed) - 0xcfae3ef)));
var248 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var242)) >> 5))) ^ var242)));
var253 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var248 << 6) | ((unsigned long)(var248) >> 26)) - 0x325476dc))) ^ 0x6be302d5)));
var257 = (unsigned long)((unsigned int)((((((unsigned long)(var253) >> 9) | (var253 << 23)) * 0x41c65995) - 0x57ae09c9)));
var263 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var257)) >> 11))) ^ var257)));
var268 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var263 << 12) | ((unsigned long)(var263) >> 20)) - 0x7d079cb6))) ^ 0x212fdcfb)));
var271 = (((((unsigned long)(var268) >> 15) | (var268 << 17)) * 0x41c65a3d) + 0x5d9ed05d);
var278 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var271)) >> 17))) ^ (unsigned long)((unsigned int)(var271)))));
var283 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var278) >> 14) | (var278 << 18)) + 0x38453d70))) ^ -0x298348dfLL)));
var286 = ((((var283 << 11) | ((unsigned long)(var283) >> 21)) * 0x41c65ae5) + 0x12ebaa83);
var293 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var286)) >> 23))) ^ (unsigned long)((unsigned int)(var286)))));
var298 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var293) >> 8) | (var293 << 24)) - 0x126de86a))) ^ -0x74366eb9LL)));
var302 = (unsigned long)((unsigned int)(((((var298 << 5) | ((unsigned long)(var298) >> 27)) * 0x41c65b8d) - 0x37c77b57)));
var308 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var302)) >> 29))) ^ var302)));
var313 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var308) >> 2) | (var308 << 30)) - 0x5d210e44))) ^ 0x41166b6d)));
var316 = (((((unsigned long)(var313) >> 2) | (var313 << 30)) * 0x41c65c35) + 0x7d855ecf);
var323 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var316)) >> 4))) ^ (unsigned long)((unsigned int)(var316)))));
var328 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var323 << 5) | ((unsigned long)(var323) >> 27)) + 0x582bcbe2))) ^ -0x99cba6dLL)));
var331 = (((((unsigned long)(var328) >> 8) | (var328 << 24)) * 0x41c65cdd) + 0x32d238f5);
var338 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var331)) >> 10))) ^ (unsigned long)((unsigned int)(var331)))));
var343 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var338 << 11) | ((unsigned long)(var338) >> 21)) + 0xd78a608))) ^ -0x544fe047LL)));
var347 = (unsigned long)((unsigned int)((((((unsigned long)(var343) >> 14) | (var343 << 18)) * 0x41c65d85) - 0x17e0ece5)));
var353 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var347)) >> 16))) ^ var347)));
var358 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var353) >> 15) | (var353 << 17)) - 0x3d3a7fd2))) ^ 0x60fcf9df)));
var362 = (unsigned long)((unsigned int)(((((var358 << 12) | ((unsigned long)(var358) >> 20)) * 0x41c65e2d) - 0x629412bf)));
var368 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var362)) >> 22))) ^ var362)));
var373 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var368) >> 9) | (var368 << 23)) + 0x78125a54))) ^ 0x1649d405)));
var376 = ((((var373 << 6) | ((unsigned long)(var373) >> 26)) * 0x41c65ed5) + 0x52b8c767);
var383 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var376)) >> 28))) ^ (unsigned long)((unsigned int)(var376)))));
var388 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var383) >> 3) | (var383 << 29)) + 0x2d5f347a))) ^ -0x346951d5LL)));
var391 = (((((unsigned long)(var388) >> 1) | (var388 << 31)) * 0x41c65f7d) + 0x805a18d);
var398 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var391)) >> 3))) ^ (unsigned long)((unsigned int)(var391)))));
var403 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var398 << 4) | ((unsigned long)(var398) >> 28)) - 0x1d53f160))) ^ -0x7f1c77afLL)));
var407 = (unsigned long)((unsigned int)((((((unsigned long)(var403) >> 7) | (var403 << 25)) * 0x41c66025) - 0x42ad844d)));
var413 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var407)) >> 9))) ^ var407)));
var418 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var413 << 10) | ((unsigned long)(var413) >> 22)) - 0x6807173a))) ^ 0x36306277)));
var421 = (((((unsigned long)(var418) >> 13) | (var418 << 19)) * 0x41c660cd) + 0x729f55d9);
var428 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var421)) >> 15))) ^ (unsigned long)((unsigned int)(var421)))));
var433 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var428 << 16) | ((unsigned long)(var428) >> 16)) + 0x4d45c2ec))) ^ -0x1482c363LL)));
var436 = ((((var433 << 13) | ((unsigned long)(var433) >> 19)) * 0x41c66175) + 0x27ec2fff);
var443 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var436)) >> 21))) ^ (unsigned long)((unsigned int)(var436)))));
var448 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var443) >> 10) | (var443 << 22)) + 0x2929d12))) ^ -0x5f35e93dLL)));
var452 = (unsigned long)((unsigned int)(((((var448 << 7) | ((unsigned long)(var448) >> 25)) * 0x41c6621d) - 0x22c6f5db)));
var458 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var452)) >> 27))) ^ var452)));
var463 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var458) >> 4) | (var458 << 28)) - 0x482088c8))) ^ 0x5616f0e9)));
var467 = (unsigned long)((unsigned int)(((((var463 << 1) | ((unsigned long)(var463) >> 31)) * 0x41c662c5) - 0x6d7a1bb5)));
var473 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var467)) >> 2))) ^ var467)));
var478 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var473 << 3) | ((unsigned long)(var473) >> 29)) + 0x6d2c515e))) ^ 0xb63cb0f)));
var481 = (((((unsigned long)(var478) >> 6) | (var478 << 26)) * 0x41c6636d) + 0x47d2be71);
var488 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var481)) >> 8))) ^ (unsigned long)((unsigned int)(var481)))));
var493 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var488 << 9) | ((unsigned long)(var488) >> 23)) + 0x22792b84))) ^ -0x3f4f5acbLL)));
var497 = (unsigned long)((unsigned int)((((((unsigned long)(var493) >> 12) | (var493 << 20)) * 0x41c66415) - 0x2e06769)));
var503 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var497)) >> 14))) ^ var497)));
var508 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var503 << 15) | ((unsigned long)(var503) >> 17)) - 0x2839fa56))) ^ 0x75fd7f5b)));
var512 = (unsigned long)((unsigned int)(((((var508 << 14) | ((unsigned long)(var508) >> 18)) * 0x41c664bd) - 0x4d938d43)));
var518 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var512)) >> 20))) ^ var512)));
var523 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var518) >> 11) | (var518 << 21)) - 0x72ed2030))) ^ 0x2b4a5981)));
var526 = ((((var523 << 8) | ((unsigned long)(var523) >> 24)) * 0x41c66565) + 0x67b94ce3);
var533 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var526)) >> 26))) ^ (unsigned long)((unsigned int)(var526)))));
var538 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var533) >> 5) | (var533 << 27)) + 0x425fb9f6))) ^ -0x1f68cc59LL)));
var541 = ((((var538 << 2) | ((unsigned long)(var538) >> 30)) * 0x41c6660d) + 0x1d062709);
var548 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var541)) >> 1))) ^ (unsigned long)((unsigned int)(var541)))));
var553 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var548 << 2) | ((unsigned long)(var548) >> 30)) - 0x8536be4))) ^ -0x6a1bf233LL)));
var557 = (unsigned long)((unsigned int)((((((unsigned long)(var553) >> 5) | (var553 << 27)) * 0x41c666b5) - 0x2dacfed1)));
var563 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var557)) >> 7))) ^ var557)));
var568 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var563 << 8) | ((unsigned long)(var563) >> 24)) - 0x530691be))) ^ 0x4b30e7f3)));
var572 = (unsigned long)((unsigned int)((((((unsigned long)(var568) >> 11) | (var568 << 21)) * 0x41c6675d) - 0x786024ab)));
var578 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var572)) >> 13))) ^ var572)));
var583 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var578 << 14) | ((unsigned long)(var578) >> 18)) + 0x62464868))) ^ 0x7dc219)));
var586 = ((((var583 << 15) | ((unsigned long)(var583) >> 17)) * 0x41c66805) + 0x3cecb57b);
var593 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var586)) >> 19))) ^ (unsigned long)((unsigned int)(var586)))));
var598 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var593) >> 12) | (var593 << 20)) + 0x1793228e))) ^ -0x4a3563c1LL)));
var602 = (unsigned long)((unsigned int)(((((var598 << 9) | ((unsigned long)(var598) >> 23)) * 0x41c668ad) - 0xdc6705f)));
var608 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var602)) >> 25))) ^ var602)));
var613 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((((unsigned long)(var608) >> 6) | (var608 << 26)) - 0x3320034c))) ^ 0x6b177665)));
var617 = (unsigned long)((unsigned int)(((((var613 << 3) | ((unsigned long)(var613) >> 29)) * 0x41c66955) - 0x58799639)));
var623 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var617)) >> 31))) ^ var617)));
var628 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)((((var623 << 1) | ((unsigned long)(var623) >> 31)) - 0x7dd32926))) ^ 0x2064508b)));
var631 = (((((unsigned long)(var628) >> 4) | (var628 << 28)) * 0x41c669fd) + 0x5cd343ed);
var638 = (unsigned long)((unsigned int)(((unsigned long)((unsigned int)(((unsigned long)((unsigned int)(var631)) >> 6))) ^ (unsigned long)((unsigned int)(var631)))));
return (unsigned int)((((var638 << 7) | ((unsigned long)(var638) >> 25)) + 0x3779b200));
}