; RUN: llc < %s -mtriple=thumbv6-apple-darwin
%struct.BF_KEY = type { [18 x i32], [1024 x i32] }
define void @BF_encrypt(ptr nocapture %data, ptr nocapture %key, i32 %encrypt) nounwind {
entry:
%0 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 0; <ptr> [#uses=2]
%1 = load i32, ptr %data, align 4 ; <i32> [#uses=2]
%2 = load i32, ptr undef, align 4 ; <i32> [#uses=2]
br i1 undef, label %bb1, label %bb
bb: ; preds = %entry
%3 = load i32, ptr %0, align 4 ; <i32> [#uses=1]
%4 = xor i32 %3, %1 ; <i32> [#uses=4]
%5 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%6 = lshr i32 %4, 24 ; <i32> [#uses=1]
%7 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %6; <ptr> [#uses=1]
%8 = load i32, ptr %7, align 4 ; <i32> [#uses=1]
%9 = lshr i32 %4, 16 ; <i32> [#uses=1]
%10 = or i32 %9, 256 ; <i32> [#uses=1]
%11 = and i32 %10, 511 ; <i32> [#uses=1]
%12 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %11; <ptr> [#uses=1]
%13 = load i32, ptr %12, align 4 ; <i32> [#uses=1]
%14 = add i32 %13, %8 ; <i32> [#uses=1]
%15 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 undef; <ptr> [#uses=1]
%16 = load i32, ptr %15, align 4 ; <i32> [#uses=1]
%17 = xor i32 %14, %16 ; <i32> [#uses=1]
%18 = or i32 %4, 768 ; <i32> [#uses=1]
%19 = and i32 %18, 1023 ; <i32> [#uses=1]
%20 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %19; <ptr> [#uses=1]
%21 = load i32, ptr %20, align 4 ; <i32> [#uses=1]
%22 = add i32 %17, %21 ; <i32> [#uses=1]
%23 = xor i32 %5, %2 ; <i32> [#uses=1]
%24 = xor i32 %23, %22 ; <i32> [#uses=5]
%25 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 2; <ptr> [#uses=1]
%26 = load i32, ptr %25, align 4 ; <i32> [#uses=1]
%27 = lshr i32 %24, 24 ; <i32> [#uses=1]
%28 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %27; <ptr> [#uses=1]
%29 = load i32, ptr %28, align 4 ; <i32> [#uses=1]
%30 = lshr i32 %24, 16 ; <i32> [#uses=1]
%31 = or i32 %30, 256 ; <i32> [#uses=1]
%32 = and i32 %31, 511 ; <i32> [#uses=1]
%33 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %32; <ptr> [#uses=1]
%34 = load i32, ptr %33, align 4 ; <i32> [#uses=1]
%35 = add i32 %34, %29 ; <i32> [#uses=1]
%36 = lshr i32 %24, 8 ; <i32> [#uses=1]
%37 = or i32 %36, 512 ; <i32> [#uses=1]
%38 = and i32 %37, 767 ; <i32> [#uses=1]
%39 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %38; <ptr> [#uses=1]
%40 = load i32, ptr %39, align 4 ; <i32> [#uses=1]
%41 = xor i32 %35, %40 ; <i32> [#uses=1]
%42 = or i32 %24, 768 ; <i32> [#uses=1]
%43 = and i32 %42, 1023 ; <i32> [#uses=1]
%44 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %43; <ptr> [#uses=1]
%45 = load i32, ptr %44, align 4 ; <i32> [#uses=1]
%46 = add i32 %41, %45 ; <i32> [#uses=1]
%47 = xor i32 %26, %4 ; <i32> [#uses=1]
%48 = xor i32 %47, %46 ; <i32> [#uses=5]
%49 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 3; <ptr> [#uses=1]
%50 = load i32, ptr %49, align 4 ; <i32> [#uses=1]
%51 = lshr i32 %48, 24 ; <i32> [#uses=1]
%52 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %51; <ptr> [#uses=1]
%53 = load i32, ptr %52, align 4 ; <i32> [#uses=1]
%54 = lshr i32 %48, 16 ; <i32> [#uses=1]
%55 = or i32 %54, 256 ; <i32> [#uses=1]
%56 = and i32 %55, 511 ; <i32> [#uses=1]
%57 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %56; <ptr> [#uses=1]
%58 = load i32, ptr %57, align 4 ; <i32> [#uses=1]
%59 = add i32 %58, %53 ; <i32> [#uses=1]
%60 = lshr i32 %48, 8 ; <i32> [#uses=1]
%61 = or i32 %60, 512 ; <i32> [#uses=1]
%62 = and i32 %61, 767 ; <i32> [#uses=1]
%63 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %62; <ptr> [#uses=1]
%64 = load i32, ptr %63, align 4 ; <i32> [#uses=1]
%65 = xor i32 %59, %64 ; <i32> [#uses=1]
%66 = or i32 %48, 768 ; <i32> [#uses=1]
%67 = and i32 %66, 1023 ; <i32> [#uses=1]
%68 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %67; <ptr> [#uses=1]
%69 = load i32, ptr %68, align 4 ; <i32> [#uses=1]
%70 = add i32 %65, %69 ; <i32> [#uses=1]
%71 = xor i32 %50, %24 ; <i32> [#uses=1]
%72 = xor i32 %71, %70 ; <i32> [#uses=5]
%73 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%74 = lshr i32 %72, 24 ; <i32> [#uses=1]
%75 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %74; <ptr> [#uses=1]
%76 = load i32, ptr %75, align 4 ; <i32> [#uses=1]
%77 = lshr i32 %72, 16 ; <i32> [#uses=1]
%78 = or i32 %77, 256 ; <i32> [#uses=1]
%79 = and i32 %78, 511 ; <i32> [#uses=1]
%80 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %79; <ptr> [#uses=1]
%81 = load i32, ptr %80, align 4 ; <i32> [#uses=1]
%82 = add i32 %81, %76 ; <i32> [#uses=1]
%83 = lshr i32 %72, 8 ; <i32> [#uses=1]
%84 = or i32 %83, 512 ; <i32> [#uses=1]
%85 = and i32 %84, 767 ; <i32> [#uses=1]
%86 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %85; <ptr> [#uses=1]
%87 = load i32, ptr %86, align 4 ; <i32> [#uses=1]
%88 = xor i32 %82, %87 ; <i32> [#uses=1]
%89 = or i32 %72, 768 ; <i32> [#uses=1]
%90 = and i32 %89, 1023 ; <i32> [#uses=1]
%91 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %90; <ptr> [#uses=1]
%92 = load i32, ptr %91, align 4 ; <i32> [#uses=1]
%93 = add i32 %88, %92 ; <i32> [#uses=1]
%94 = xor i32 %73, %48 ; <i32> [#uses=1]
%95 = xor i32 %94, %93 ; <i32> [#uses=5]
%96 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%97 = lshr i32 %95, 24 ; <i32> [#uses=1]
%98 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %97; <ptr> [#uses=1]
%99 = load i32, ptr %98, align 4 ; <i32> [#uses=1]
%100 = lshr i32 %95, 16 ; <i32> [#uses=1]
%101 = or i32 %100, 256 ; <i32> [#uses=1]
%102 = and i32 %101, 511 ; <i32> [#uses=1]
%103 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %102; <ptr> [#uses=1]
%104 = load i32, ptr %103, align 4 ; <i32> [#uses=1]
%105 = add i32 %104, %99 ; <i32> [#uses=1]
%106 = lshr i32 %95, 8 ; <i32> [#uses=1]
%107 = or i32 %106, 512 ; <i32> [#uses=1]
%108 = and i32 %107, 767 ; <i32> [#uses=1]
%109 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %108; <ptr> [#uses=1]
%110 = load i32, ptr %109, align 4 ; <i32> [#uses=1]
%111 = xor i32 %105, %110 ; <i32> [#uses=1]
%112 = or i32 %95, 768 ; <i32> [#uses=1]
%113 = and i32 %112, 1023 ; <i32> [#uses=1]
%114 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %113; <ptr> [#uses=1]
%115 = load i32, ptr %114, align 4 ; <i32> [#uses=1]
%116 = add i32 %111, %115 ; <i32> [#uses=1]
%117 = xor i32 %96, %72 ; <i32> [#uses=1]
%118 = xor i32 %117, %116 ; <i32> [#uses=5]
%119 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 6; <ptr> [#uses=1]
%120 = load i32, ptr %119, align 4 ; <i32> [#uses=1]
%121 = lshr i32 %118, 24 ; <i32> [#uses=1]
%122 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %121; <ptr> [#uses=1]
%123 = load i32, ptr %122, align 4 ; <i32> [#uses=1]
%124 = lshr i32 %118, 16 ; <i32> [#uses=1]
%125 = or i32 %124, 256 ; <i32> [#uses=1]
%126 = and i32 %125, 511 ; <i32> [#uses=1]
%127 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %126; <ptr> [#uses=1]
%128 = load i32, ptr %127, align 4 ; <i32> [#uses=1]
%129 = add i32 %128, %123 ; <i32> [#uses=1]
%130 = lshr i32 %118, 8 ; <i32> [#uses=1]
%131 = or i32 %130, 512 ; <i32> [#uses=1]
%132 = and i32 %131, 767 ; <i32> [#uses=1]
%133 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %132; <ptr> [#uses=1]
%134 = load i32, ptr %133, align 4 ; <i32> [#uses=1]
%135 = xor i32 %129, %134 ; <i32> [#uses=1]
%136 = or i32 %118, 768 ; <i32> [#uses=1]
%137 = and i32 %136, 1023 ; <i32> [#uses=1]
%138 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %137; <ptr> [#uses=1]
%139 = load i32, ptr %138, align 4 ; <i32> [#uses=1]
%140 = add i32 %135, %139 ; <i32> [#uses=1]
%141 = xor i32 %120, %95 ; <i32> [#uses=1]
%142 = xor i32 %141, %140 ; <i32> [#uses=5]
%143 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 7; <ptr> [#uses=1]
%144 = load i32, ptr %143, align 4 ; <i32> [#uses=1]
%145 = lshr i32 %142, 24 ; <i32> [#uses=1]
%146 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %145; <ptr> [#uses=1]
%147 = load i32, ptr %146, align 4 ; <i32> [#uses=1]
%148 = lshr i32 %142, 16 ; <i32> [#uses=1]
%149 = or i32 %148, 256 ; <i32> [#uses=1]
%150 = and i32 %149, 511 ; <i32> [#uses=1]
%151 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %150; <ptr> [#uses=1]
%152 = load i32, ptr %151, align 4 ; <i32> [#uses=1]
%153 = add i32 %152, %147 ; <i32> [#uses=1]
%154 = lshr i32 %142, 8 ; <i32> [#uses=1]
%155 = or i32 %154, 512 ; <i32> [#uses=1]
%156 = and i32 %155, 767 ; <i32> [#uses=1]
%157 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %156; <ptr> [#uses=1]
%158 = load i32, ptr %157, align 4 ; <i32> [#uses=1]
%159 = xor i32 %153, %158 ; <i32> [#uses=1]
%160 = or i32 %142, 768 ; <i32> [#uses=1]
%161 = and i32 %160, 1023 ; <i32> [#uses=1]
%162 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %161; <ptr> [#uses=1]
%163 = load i32, ptr %162, align 4 ; <i32> [#uses=1]
%164 = add i32 %159, %163 ; <i32> [#uses=1]
%165 = xor i32 %144, %118 ; <i32> [#uses=1]
%166 = xor i32 %165, %164 ; <i32> [#uses=5]
%167 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%168 = lshr i32 %166, 24 ; <i32> [#uses=1]
%169 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %168; <ptr> [#uses=1]
%170 = load i32, ptr %169, align 4 ; <i32> [#uses=1]
%171 = lshr i32 %166, 16 ; <i32> [#uses=1]
%172 = or i32 %171, 256 ; <i32> [#uses=1]
%173 = and i32 %172, 511 ; <i32> [#uses=1]
%174 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %173; <ptr> [#uses=1]
%175 = load i32, ptr %174, align 4 ; <i32> [#uses=1]
%176 = add i32 %175, %170 ; <i32> [#uses=1]
%177 = lshr i32 %166, 8 ; <i32> [#uses=1]
%178 = or i32 %177, 512 ; <i32> [#uses=1]
%179 = and i32 %178, 767 ; <i32> [#uses=1]
%180 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %179; <ptr> [#uses=1]
%181 = load i32, ptr %180, align 4 ; <i32> [#uses=1]
%182 = xor i32 %176, %181 ; <i32> [#uses=1]
%183 = or i32 %166, 768 ; <i32> [#uses=1]
%184 = and i32 %183, 1023 ; <i32> [#uses=1]
%185 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %184; <ptr> [#uses=1]
%186 = load i32, ptr %185, align 4 ; <i32> [#uses=1]
%187 = add i32 %182, %186 ; <i32> [#uses=1]
%188 = xor i32 %167, %142 ; <i32> [#uses=1]
%189 = xor i32 %188, %187 ; <i32> [#uses=5]
%190 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 9; <ptr> [#uses=1]
%191 = load i32, ptr %190, align 4 ; <i32> [#uses=1]
%192 = lshr i32 %189, 24 ; <i32> [#uses=1]
%193 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %192; <ptr> [#uses=1]
%194 = load i32, ptr %193, align 4 ; <i32> [#uses=1]
%195 = lshr i32 %189, 16 ; <i32> [#uses=1]
%196 = or i32 %195, 256 ; <i32> [#uses=1]
%197 = and i32 %196, 511 ; <i32> [#uses=1]
%198 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %197; <ptr> [#uses=1]
%199 = load i32, ptr %198, align 4 ; <i32> [#uses=1]
%200 = add i32 %199, %194 ; <i32> [#uses=1]
%201 = lshr i32 %189, 8 ; <i32> [#uses=1]
%202 = or i32 %201, 512 ; <i32> [#uses=1]
%203 = and i32 %202, 767 ; <i32> [#uses=1]
%204 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %203; <ptr> [#uses=1]
%205 = load i32, ptr %204, align 4 ; <i32> [#uses=1]
%206 = xor i32 %200, %205 ; <i32> [#uses=1]
%207 = or i32 %189, 768 ; <i32> [#uses=1]
%208 = and i32 %207, 1023 ; <i32> [#uses=1]
%209 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %208; <ptr> [#uses=1]
%210 = load i32, ptr %209, align 4 ; <i32> [#uses=1]
%211 = add i32 %206, %210 ; <i32> [#uses=1]
%212 = xor i32 %191, %166 ; <i32> [#uses=1]
%213 = xor i32 %212, %211 ; <i32> [#uses=5]
%214 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 10; <ptr> [#uses=1]
%215 = load i32, ptr %214, align 4 ; <i32> [#uses=1]
%216 = lshr i32 %213, 24 ; <i32> [#uses=1]
%217 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %216; <ptr> [#uses=1]
%218 = load i32, ptr %217, align 4 ; <i32> [#uses=1]
%219 = lshr i32 %213, 16 ; <i32> [#uses=1]
%220 = or i32 %219, 256 ; <i32> [#uses=1]
%221 = and i32 %220, 511 ; <i32> [#uses=1]
%222 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %221; <ptr> [#uses=1]
%223 = load i32, ptr %222, align 4 ; <i32> [#uses=1]
%224 = add i32 %223, %218 ; <i32> [#uses=1]
%225 = lshr i32 %213, 8 ; <i32> [#uses=1]
%226 = or i32 %225, 512 ; <i32> [#uses=1]
%227 = and i32 %226, 767 ; <i32> [#uses=1]
%228 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %227; <ptr> [#uses=1]
%229 = load i32, ptr %228, align 4 ; <i32> [#uses=1]
%230 = xor i32 %224, %229 ; <i32> [#uses=1]
%231 = or i32 %213, 768 ; <i32> [#uses=1]
%232 = and i32 %231, 1023 ; <i32> [#uses=1]
%233 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %232; <ptr> [#uses=1]
%234 = load i32, ptr %233, align 4 ; <i32> [#uses=1]
%235 = add i32 %230, %234 ; <i32> [#uses=1]
%236 = xor i32 %215, %189 ; <i32> [#uses=1]
%237 = xor i32 %236, %235 ; <i32> [#uses=5]
%238 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 11; <ptr> [#uses=1]
%239 = load i32, ptr %238, align 4 ; <i32> [#uses=1]
%240 = lshr i32 %237, 24 ; <i32> [#uses=1]
%241 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %240; <ptr> [#uses=1]
%242 = load i32, ptr %241, align 4 ; <i32> [#uses=1]
%243 = lshr i32 %237, 16 ; <i32> [#uses=1]
%244 = or i32 %243, 256 ; <i32> [#uses=1]
%245 = and i32 %244, 511 ; <i32> [#uses=1]
%246 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %245; <ptr> [#uses=1]
%247 = load i32, ptr %246, align 4 ; <i32> [#uses=1]
%248 = add i32 %247, %242 ; <i32> [#uses=1]
%249 = lshr i32 %237, 8 ; <i32> [#uses=1]
%250 = or i32 %249, 512 ; <i32> [#uses=1]
%251 = and i32 %250, 767 ; <i32> [#uses=1]
%252 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %251; <ptr> [#uses=1]
%253 = load i32, ptr %252, align 4 ; <i32> [#uses=1]
%254 = xor i32 %248, %253 ; <i32> [#uses=1]
%255 = or i32 %237, 768 ; <i32> [#uses=1]
%256 = and i32 %255, 1023 ; <i32> [#uses=1]
%257 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %256; <ptr> [#uses=1]
%258 = load i32, ptr %257, align 4 ; <i32> [#uses=1]
%259 = add i32 %254, %258 ; <i32> [#uses=1]
%260 = xor i32 %239, %213 ; <i32> [#uses=1]
%261 = xor i32 %260, %259 ; <i32> [#uses=5]
%262 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%263 = lshr i32 %261, 24 ; <i32> [#uses=1]
%264 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %263; <ptr> [#uses=1]
%265 = load i32, ptr %264, align 4 ; <i32> [#uses=1]
%266 = lshr i32 %261, 16 ; <i32> [#uses=1]
%267 = or i32 %266, 256 ; <i32> [#uses=1]
%268 = and i32 %267, 511 ; <i32> [#uses=1]
%269 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %268; <ptr> [#uses=1]
%270 = load i32, ptr %269, align 4 ; <i32> [#uses=1]
%271 = add i32 %270, %265 ; <i32> [#uses=1]
%272 = lshr i32 %261, 8 ; <i32> [#uses=1]
%273 = or i32 %272, 512 ; <i32> [#uses=1]
%274 = and i32 %273, 767 ; <i32> [#uses=1]
%275 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %274; <ptr> [#uses=1]
%276 = load i32, ptr %275, align 4 ; <i32> [#uses=1]
%277 = xor i32 %271, %276 ; <i32> [#uses=1]
%278 = or i32 %261, 768 ; <i32> [#uses=1]
%279 = and i32 %278, 1023 ; <i32> [#uses=1]
%280 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %279; <ptr> [#uses=1]
%281 = load i32, ptr %280, align 4 ; <i32> [#uses=1]
%282 = add i32 %277, %281 ; <i32> [#uses=1]
%283 = xor i32 %262, %237 ; <i32> [#uses=1]
%284 = xor i32 %283, %282 ; <i32> [#uses=4]
%285 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%286 = lshr i32 %284, 24 ; <i32> [#uses=1]
%287 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %286; <ptr> [#uses=1]
%288 = load i32, ptr %287, align 4 ; <i32> [#uses=1]
%289 = lshr i32 %284, 16 ; <i32> [#uses=1]
%290 = or i32 %289, 256 ; <i32> [#uses=1]
%291 = and i32 %290, 511 ; <i32> [#uses=1]
%292 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %291; <ptr> [#uses=1]
%293 = load i32, ptr %292, align 4 ; <i32> [#uses=1]
%294 = add i32 %293, %288 ; <i32> [#uses=1]
%295 = lshr i32 %284, 8 ; <i32> [#uses=1]
%296 = or i32 %295, 512 ; <i32> [#uses=1]
%297 = and i32 %296, 767 ; <i32> [#uses=1]
%298 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %297; <ptr> [#uses=1]
%299 = load i32, ptr %298, align 4 ; <i32> [#uses=1]
%300 = xor i32 %294, %299 ; <i32> [#uses=1]
%301 = or i32 %284, 768 ; <i32> [#uses=1]
%302 = and i32 %301, 1023 ; <i32> [#uses=1]
%303 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %302; <ptr> [#uses=1]
%304 = load i32, ptr %303, align 4 ; <i32> [#uses=1]
%305 = add i32 %300, %304 ; <i32> [#uses=1]
%306 = xor i32 %285, %261 ; <i32> [#uses=1]
%307 = xor i32 %306, %305 ; <i32> [#uses=1]
%308 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 15; <ptr> [#uses=1]
%309 = load i32, ptr %308, align 4 ; <i32> [#uses=1]
%310 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 0; <ptr> [#uses=1]
%311 = load i32, ptr %310, align 4 ; <i32> [#uses=1]
%312 = or i32 0, 256 ; <i32> [#uses=1]
%313 = and i32 %312, 511 ; <i32> [#uses=1]
%314 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %313; <ptr> [#uses=1]
%315 = load i32, ptr %314, align 4 ; <i32> [#uses=1]
%316 = add i32 %315, %311 ; <i32> [#uses=1]
%317 = or i32 0, 512 ; <i32> [#uses=1]
%318 = and i32 %317, 767 ; <i32> [#uses=1]
%319 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %318; <ptr> [#uses=1]
%320 = load i32, ptr %319, align 4 ; <i32> [#uses=1]
%321 = xor i32 %316, %320 ; <i32> [#uses=1]
%322 = or i32 0, 768 ; <i32> [#uses=1]
%323 = and i32 %322, 1023 ; <i32> [#uses=1]
%324 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %323; <ptr> [#uses=1]
%325 = load i32, ptr %324, align 4 ; <i32> [#uses=1]
%326 = add i32 %321, %325 ; <i32> [#uses=1]
%327 = xor i32 %309, %307 ; <i32> [#uses=1]
%328 = xor i32 %327, %326 ; <i32> [#uses=5]
%329 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 17; <ptr> [#uses=1]
br label %bb2
bb1: ; preds = %entry
%330 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%331 = xor i32 %330, %1 ; <i32> [#uses=4]
%332 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%333 = lshr i32 %331, 24 ; <i32> [#uses=1]
%334 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %333; <ptr> [#uses=1]
%335 = load i32, ptr %334, align 4 ; <i32> [#uses=1]
%336 = load i32, ptr null, align 4 ; <i32> [#uses=1]
%337 = add i32 %336, %335 ; <i32> [#uses=1]
%338 = lshr i32 %331, 8 ; <i32> [#uses=1]
%339 = or i32 %338, 512 ; <i32> [#uses=1]
%340 = and i32 %339, 767 ; <i32> [#uses=1]
%341 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %340; <ptr> [#uses=1]
%342 = load i32, ptr %341, align 4 ; <i32> [#uses=1]
%343 = xor i32 %337, %342 ; <i32> [#uses=1]
%344 = or i32 %331, 768 ; <i32> [#uses=1]
%345 = and i32 %344, 1023 ; <i32> [#uses=1]
%346 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %345; <ptr> [#uses=1]
%347 = load i32, ptr %346, align 4 ; <i32> [#uses=1]
%348 = add i32 %343, %347 ; <i32> [#uses=1]
%349 = xor i32 %332, %2 ; <i32> [#uses=1]
%350 = xor i32 %349, %348 ; <i32> [#uses=5]
%351 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 15; <ptr> [#uses=1]
%352 = load i32, ptr %351, align 4 ; <i32> [#uses=1]
%353 = lshr i32 %350, 24 ; <i32> [#uses=1]
%354 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %353; <ptr> [#uses=1]
%355 = load i32, ptr %354, align 4 ; <i32> [#uses=1]
%356 = lshr i32 %350, 16 ; <i32> [#uses=1]
%357 = or i32 %356, 256 ; <i32> [#uses=1]
%358 = and i32 %357, 511 ; <i32> [#uses=1]
%359 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %358; <ptr> [#uses=1]
%360 = load i32, ptr %359, align 4 ; <i32> [#uses=1]
%361 = add i32 %360, %355 ; <i32> [#uses=1]
%362 = lshr i32 %350, 8 ; <i32> [#uses=1]
%363 = or i32 %362, 512 ; <i32> [#uses=1]
%364 = and i32 %363, 767 ; <i32> [#uses=1]
%365 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %364; <ptr> [#uses=1]
%366 = load i32, ptr %365, align 4 ; <i32> [#uses=1]
%367 = xor i32 %361, %366 ; <i32> [#uses=1]
%368 = or i32 %350, 768 ; <i32> [#uses=1]
%369 = and i32 %368, 1023 ; <i32> [#uses=1]
%370 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %369; <ptr> [#uses=1]
%371 = load i32, ptr %370, align 4 ; <i32> [#uses=1]
%372 = add i32 %367, %371 ; <i32> [#uses=1]
%373 = xor i32 %352, %331 ; <i32> [#uses=1]
%374 = xor i32 %373, %372 ; <i32> [#uses=5]
%375 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 14; <ptr> [#uses=1]
%376 = load i32, ptr %375, align 4 ; <i32> [#uses=1]
%377 = lshr i32 %374, 24 ; <i32> [#uses=1]
%378 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %377; <ptr> [#uses=1]
%379 = load i32, ptr %378, align 4 ; <i32> [#uses=1]
%380 = lshr i32 %374, 16 ; <i32> [#uses=1]
%381 = or i32 %380, 256 ; <i32> [#uses=1]
%382 = and i32 %381, 511 ; <i32> [#uses=1]
%383 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %382; <ptr> [#uses=1]
%384 = load i32, ptr %383, align 4 ; <i32> [#uses=1]
%385 = add i32 %384, %379 ; <i32> [#uses=1]
%386 = lshr i32 %374, 8 ; <i32> [#uses=1]
%387 = or i32 %386, 512 ; <i32> [#uses=1]
%388 = and i32 %387, 767 ; <i32> [#uses=1]
%389 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %388; <ptr> [#uses=1]
%390 = load i32, ptr %389, align 4 ; <i32> [#uses=1]
%391 = xor i32 %385, %390 ; <i32> [#uses=1]
%392 = or i32 %374, 768 ; <i32> [#uses=1]
%393 = and i32 %392, 1023 ; <i32> [#uses=1]
%394 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %393; <ptr> [#uses=1]
%395 = load i32, ptr %394, align 4 ; <i32> [#uses=1]
%396 = add i32 %391, %395 ; <i32> [#uses=1]
%397 = xor i32 %376, %350 ; <i32> [#uses=1]
%398 = xor i32 %397, %396 ; <i32> [#uses=5]
%399 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 13; <ptr> [#uses=1]
%400 = load i32, ptr %399, align 4 ; <i32> [#uses=1]
%401 = lshr i32 %398, 24 ; <i32> [#uses=1]
%402 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %401; <ptr> [#uses=1]
%403 = load i32, ptr %402, align 4 ; <i32> [#uses=1]
%404 = lshr i32 %398, 16 ; <i32> [#uses=1]
%405 = or i32 %404, 256 ; <i32> [#uses=1]
%406 = and i32 %405, 511 ; <i32> [#uses=1]
%407 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %406; <ptr> [#uses=1]
%408 = load i32, ptr %407, align 4 ; <i32> [#uses=1]
%409 = add i32 %408, %403 ; <i32> [#uses=1]
%410 = lshr i32 %398, 8 ; <i32> [#uses=1]
%411 = or i32 %410, 512 ; <i32> [#uses=1]
%412 = and i32 %411, 767 ; <i32> [#uses=1]
%413 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %412; <ptr> [#uses=1]
%414 = load i32, ptr %413, align 4 ; <i32> [#uses=1]
%415 = xor i32 %409, %414 ; <i32> [#uses=1]
%416 = or i32 %398, 768 ; <i32> [#uses=1]
%417 = and i32 %416, 1023 ; <i32> [#uses=1]
%418 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %417; <ptr> [#uses=1]
%419 = load i32, ptr %418, align 4 ; <i32> [#uses=1]
%420 = add i32 %415, %419 ; <i32> [#uses=1]
%421 = xor i32 %400, %374 ; <i32> [#uses=1]
%422 = xor i32 %421, %420 ; <i32> [#uses=5]
%423 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 12; <ptr> [#uses=1]
%424 = load i32, ptr %423, align 4 ; <i32> [#uses=1]
%425 = lshr i32 %422, 24 ; <i32> [#uses=1]
%426 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %425; <ptr> [#uses=1]
%427 = load i32, ptr %426, align 4 ; <i32> [#uses=1]
%428 = lshr i32 %422, 16 ; <i32> [#uses=1]
%429 = or i32 %428, 256 ; <i32> [#uses=1]
%430 = and i32 %429, 511 ; <i32> [#uses=1]
%431 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %430; <ptr> [#uses=1]
%432 = load i32, ptr %431, align 4 ; <i32> [#uses=1]
%433 = add i32 %432, %427 ; <i32> [#uses=1]
%434 = lshr i32 %422, 8 ; <i32> [#uses=1]
%435 = or i32 %434, 512 ; <i32> [#uses=1]
%436 = and i32 %435, 767 ; <i32> [#uses=1]
%437 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %436; <ptr> [#uses=1]
%438 = load i32, ptr %437, align 4 ; <i32> [#uses=1]
%439 = xor i32 %433, %438 ; <i32> [#uses=1]
%440 = or i32 %422, 768 ; <i32> [#uses=1]
%441 = and i32 %440, 1023 ; <i32> [#uses=1]
%442 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %441; <ptr> [#uses=1]
%443 = load i32, ptr %442, align 4 ; <i32> [#uses=1]
%444 = add i32 %439, %443 ; <i32> [#uses=1]
%445 = xor i32 %424, %398 ; <i32> [#uses=1]
%446 = xor i32 %445, %444 ; <i32> [#uses=5]
%447 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%448 = lshr i32 %446, 24 ; <i32> [#uses=1]
%449 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %448; <ptr> [#uses=1]
%450 = load i32, ptr %449, align 4 ; <i32> [#uses=1]
%451 = lshr i32 %446, 16 ; <i32> [#uses=1]
%452 = or i32 %451, 256 ; <i32> [#uses=1]
%453 = and i32 %452, 511 ; <i32> [#uses=1]
%454 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %453; <ptr> [#uses=1]
%455 = load i32, ptr %454, align 4 ; <i32> [#uses=1]
%456 = add i32 %455, %450 ; <i32> [#uses=1]
%457 = lshr i32 %446, 8 ; <i32> [#uses=1]
%458 = or i32 %457, 512 ; <i32> [#uses=1]
%459 = and i32 %458, 767 ; <i32> [#uses=1]
%460 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %459; <ptr> [#uses=1]
%461 = load i32, ptr %460, align 4 ; <i32> [#uses=1]
%462 = xor i32 %456, %461 ; <i32> [#uses=1]
%463 = or i32 %446, 768 ; <i32> [#uses=1]
%464 = and i32 %463, 1023 ; <i32> [#uses=1]
%465 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %464; <ptr> [#uses=1]
%466 = load i32, ptr %465, align 4 ; <i32> [#uses=1]
%467 = add i32 %462, %466 ; <i32> [#uses=1]
%468 = xor i32 %447, %422 ; <i32> [#uses=1]
%469 = xor i32 %468, %467 ; <i32> [#uses=5]
%470 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 10; <ptr> [#uses=1]
%471 = load i32, ptr %470, align 4 ; <i32> [#uses=1]
%472 = lshr i32 %469, 24 ; <i32> [#uses=1]
%473 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %472; <ptr> [#uses=1]
%474 = load i32, ptr %473, align 4 ; <i32> [#uses=1]
%475 = lshr i32 %469, 16 ; <i32> [#uses=1]
%476 = or i32 %475, 256 ; <i32> [#uses=1]
%477 = and i32 %476, 511 ; <i32> [#uses=1]
%478 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %477; <ptr> [#uses=1]
%479 = load i32, ptr %478, align 4 ; <i32> [#uses=1]
%480 = add i32 %479, %474 ; <i32> [#uses=1]
%481 = lshr i32 %469, 8 ; <i32> [#uses=1]
%482 = or i32 %481, 512 ; <i32> [#uses=1]
%483 = and i32 %482, 767 ; <i32> [#uses=1]
%484 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %483; <ptr> [#uses=1]
%485 = load i32, ptr %484, align 4 ; <i32> [#uses=1]
%486 = xor i32 %480, %485 ; <i32> [#uses=1]
%487 = or i32 %469, 768 ; <i32> [#uses=1]
%488 = and i32 %487, 1023 ; <i32> [#uses=1]
%489 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %488; <ptr> [#uses=1]
%490 = load i32, ptr %489, align 4 ; <i32> [#uses=1]
%491 = add i32 %486, %490 ; <i32> [#uses=1]
%492 = xor i32 %471, %446 ; <i32> [#uses=1]
%493 = xor i32 %492, %491 ; <i32> [#uses=5]
%494 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 9; <ptr> [#uses=1]
%495 = load i32, ptr %494, align 4 ; <i32> [#uses=1]
%496 = lshr i32 %493, 24 ; <i32> [#uses=1]
%497 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %496; <ptr> [#uses=1]
%498 = load i32, ptr %497, align 4 ; <i32> [#uses=1]
%499 = lshr i32 %493, 16 ; <i32> [#uses=1]
%500 = or i32 %499, 256 ; <i32> [#uses=1]
%501 = and i32 %500, 511 ; <i32> [#uses=1]
%502 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %501; <ptr> [#uses=1]
%503 = load i32, ptr %502, align 4 ; <i32> [#uses=1]
%504 = add i32 %503, %498 ; <i32> [#uses=1]
%505 = lshr i32 %493, 8 ; <i32> [#uses=1]
%506 = or i32 %505, 512 ; <i32> [#uses=1]
%507 = and i32 %506, 767 ; <i32> [#uses=1]
%508 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %507; <ptr> [#uses=1]
%509 = load i32, ptr %508, align 4 ; <i32> [#uses=1]
%510 = xor i32 %504, %509 ; <i32> [#uses=1]
%511 = or i32 %493, 768 ; <i32> [#uses=1]
%512 = and i32 %511, 1023 ; <i32> [#uses=1]
%513 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %512; <ptr> [#uses=1]
%514 = load i32, ptr %513, align 4 ; <i32> [#uses=1]
%515 = add i32 %510, %514 ; <i32> [#uses=1]
%516 = xor i32 %495, %469 ; <i32> [#uses=1]
%517 = xor i32 %516, %515 ; <i32> [#uses=5]
%518 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 8; <ptr> [#uses=1]
%519 = load i32, ptr %518, align 4 ; <i32> [#uses=1]
%520 = lshr i32 %517, 24 ; <i32> [#uses=1]
%521 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %520; <ptr> [#uses=1]
%522 = load i32, ptr %521, align 4 ; <i32> [#uses=1]
%523 = lshr i32 %517, 16 ; <i32> [#uses=1]
%524 = or i32 %523, 256 ; <i32> [#uses=1]
%525 = and i32 %524, 511 ; <i32> [#uses=1]
%526 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %525; <ptr> [#uses=1]
%527 = load i32, ptr %526, align 4 ; <i32> [#uses=1]
%528 = add i32 %527, %522 ; <i32> [#uses=1]
%529 = lshr i32 %517, 8 ; <i32> [#uses=1]
%530 = or i32 %529, 512 ; <i32> [#uses=1]
%531 = and i32 %530, 767 ; <i32> [#uses=1]
%532 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %531; <ptr> [#uses=1]
%533 = load i32, ptr %532, align 4 ; <i32> [#uses=1]
%534 = xor i32 %528, %533 ; <i32> [#uses=1]
%535 = or i32 %517, 768 ; <i32> [#uses=1]
%536 = and i32 %535, 1023 ; <i32> [#uses=1]
%537 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %536; <ptr> [#uses=1]
%538 = load i32, ptr %537, align 4 ; <i32> [#uses=1]
%539 = add i32 %534, %538 ; <i32> [#uses=1]
%540 = xor i32 %519, %493 ; <i32> [#uses=1]
%541 = xor i32 %540, %539 ; <i32> [#uses=5]
%542 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%543 = lshr i32 %541, 24 ; <i32> [#uses=1]
%544 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %543; <ptr> [#uses=1]
%545 = load i32, ptr %544, align 4 ; <i32> [#uses=1]
%546 = lshr i32 %541, 16 ; <i32> [#uses=1]
%547 = or i32 %546, 256 ; <i32> [#uses=1]
%548 = and i32 %547, 511 ; <i32> [#uses=1]
%549 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %548; <ptr> [#uses=1]
%550 = load i32, ptr %549, align 4 ; <i32> [#uses=1]
%551 = add i32 %550, %545 ; <i32> [#uses=1]
%552 = lshr i32 %541, 8 ; <i32> [#uses=1]
%553 = or i32 %552, 512 ; <i32> [#uses=1]
%554 = and i32 %553, 767 ; <i32> [#uses=1]
%555 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %554; <ptr> [#uses=1]
%556 = load i32, ptr %555, align 4 ; <i32> [#uses=1]
%557 = xor i32 %551, %556 ; <i32> [#uses=1]
%558 = or i32 %541, 768 ; <i32> [#uses=1]
%559 = and i32 %558, 1023 ; <i32> [#uses=1]
%560 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %559; <ptr> [#uses=1]
%561 = load i32, ptr %560, align 4 ; <i32> [#uses=1]
%562 = add i32 %557, %561 ; <i32> [#uses=1]
%563 = xor i32 %542, %517 ; <i32> [#uses=1]
%564 = xor i32 %563, %562 ; <i32> [#uses=5]
%565 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 6; <ptr> [#uses=1]
%566 = load i32, ptr %565, align 4 ; <i32> [#uses=1]
%567 = lshr i32 %564, 24 ; <i32> [#uses=1]
%568 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %567; <ptr> [#uses=1]
%569 = load i32, ptr %568, align 4 ; <i32> [#uses=1]
%570 = lshr i32 %564, 16 ; <i32> [#uses=1]
%571 = or i32 %570, 256 ; <i32> [#uses=1]
%572 = and i32 %571, 511 ; <i32> [#uses=1]
%573 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %572; <ptr> [#uses=1]
%574 = load i32, ptr %573, align 4 ; <i32> [#uses=1]
%575 = add i32 %574, %569 ; <i32> [#uses=1]
%576 = lshr i32 %564, 8 ; <i32> [#uses=1]
%577 = or i32 %576, 512 ; <i32> [#uses=1]
%578 = and i32 %577, 767 ; <i32> [#uses=1]
%579 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %578; <ptr> [#uses=1]
%580 = load i32, ptr %579, align 4 ; <i32> [#uses=1]
%581 = xor i32 %575, %580 ; <i32> [#uses=1]
%582 = or i32 %564, 768 ; <i32> [#uses=1]
%583 = and i32 %582, 1023 ; <i32> [#uses=1]
%584 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %583; <ptr> [#uses=1]
%585 = load i32, ptr %584, align 4 ; <i32> [#uses=1]
%586 = add i32 %581, %585 ; <i32> [#uses=1]
%587 = xor i32 %566, %541 ; <i32> [#uses=1]
%588 = xor i32 %587, %586 ; <i32> [#uses=5]
%589 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 5; <ptr> [#uses=1]
%590 = load i32, ptr %589, align 4 ; <i32> [#uses=1]
%591 = lshr i32 %588, 24 ; <i32> [#uses=1]
%592 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %591; <ptr> [#uses=1]
%593 = load i32, ptr %592, align 4 ; <i32> [#uses=1]
%594 = lshr i32 %588, 16 ; <i32> [#uses=1]
%595 = or i32 %594, 256 ; <i32> [#uses=1]
%596 = and i32 %595, 511 ; <i32> [#uses=1]
%597 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %596; <ptr> [#uses=1]
%598 = load i32, ptr %597, align 4 ; <i32> [#uses=1]
%599 = add i32 %598, %593 ; <i32> [#uses=1]
%600 = lshr i32 %588, 8 ; <i32> [#uses=1]
%601 = or i32 %600, 512 ; <i32> [#uses=1]
%602 = and i32 %601, 767 ; <i32> [#uses=1]
%603 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %602; <ptr> [#uses=1]
%604 = load i32, ptr %603, align 4 ; <i32> [#uses=1]
%605 = xor i32 %599, %604 ; <i32> [#uses=1]
%606 = or i32 %588, 768 ; <i32> [#uses=1]
%607 = and i32 %606, 1023 ; <i32> [#uses=1]
%608 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %607; <ptr> [#uses=1]
%609 = load i32, ptr %608, align 4 ; <i32> [#uses=1]
%610 = add i32 %605, %609 ; <i32> [#uses=1]
%611 = xor i32 %590, %564 ; <i32> [#uses=1]
%612 = xor i32 %611, %610 ; <i32> [#uses=5]
%613 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 4; <ptr> [#uses=1]
%614 = load i32, ptr %613, align 4 ; <i32> [#uses=1]
%615 = lshr i32 %612, 24 ; <i32> [#uses=1]
%616 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %615; <ptr> [#uses=1]
%617 = load i32, ptr %616, align 4 ; <i32> [#uses=1]
%618 = lshr i32 %612, 16 ; <i32> [#uses=1]
%619 = or i32 %618, 256 ; <i32> [#uses=1]
%620 = and i32 %619, 511 ; <i32> [#uses=1]
%621 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %620; <ptr> [#uses=1]
%622 = load i32, ptr %621, align 4 ; <i32> [#uses=1]
%623 = add i32 %622, %617 ; <i32> [#uses=1]
%624 = lshr i32 %612, 8 ; <i32> [#uses=1]
%625 = or i32 %624, 512 ; <i32> [#uses=1]
%626 = and i32 %625, 767 ; <i32> [#uses=1]
%627 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %626; <ptr> [#uses=1]
%628 = load i32, ptr %627, align 4 ; <i32> [#uses=1]
%629 = xor i32 %623, %628 ; <i32> [#uses=1]
%630 = or i32 %612, 768 ; <i32> [#uses=1]
%631 = and i32 %630, 1023 ; <i32> [#uses=1]
%632 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %631; <ptr> [#uses=1]
%633 = load i32, ptr %632, align 4 ; <i32> [#uses=1]
%634 = add i32 %629, %633 ; <i32> [#uses=1]
%635 = xor i32 %614, %588 ; <i32> [#uses=1]
%636 = xor i32 %635, %634 ; <i32> [#uses=5]
%637 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 3; <ptr> [#uses=1]
%638 = load i32, ptr %637, align 4 ; <i32> [#uses=1]
%639 = lshr i32 %636, 24 ; <i32> [#uses=1]
%640 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %639; <ptr> [#uses=1]
%641 = load i32, ptr %640, align 4 ; <i32> [#uses=1]
%642 = lshr i32 %636, 16 ; <i32> [#uses=1]
%643 = or i32 %642, 256 ; <i32> [#uses=1]
%644 = and i32 %643, 511 ; <i32> [#uses=1]
%645 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %644; <ptr> [#uses=1]
%646 = load i32, ptr %645, align 4 ; <i32> [#uses=1]
%647 = add i32 %646, %641 ; <i32> [#uses=1]
%648 = lshr i32 %636, 8 ; <i32> [#uses=1]
%649 = or i32 %648, 512 ; <i32> [#uses=1]
%650 = and i32 %649, 767 ; <i32> [#uses=1]
%651 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %650; <ptr> [#uses=1]
%652 = load i32, ptr %651, align 4 ; <i32> [#uses=1]
%653 = xor i32 %647, %652 ; <i32> [#uses=1]
%654 = or i32 %636, 768 ; <i32> [#uses=1]
%655 = and i32 %654, 1023 ; <i32> [#uses=1]
%656 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %655; <ptr> [#uses=1]
%657 = load i32, ptr %656, align 4 ; <i32> [#uses=1]
%658 = add i32 %653, %657 ; <i32> [#uses=1]
%659 = xor i32 %638, %612 ; <i32> [#uses=1]
%660 = xor i32 %659, %658 ; <i32> [#uses=5]
%661 = load i32, ptr undef, align 4 ; <i32> [#uses=1]
%662 = lshr i32 %660, 24 ; <i32> [#uses=1]
%663 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %662; <ptr> [#uses=1]
%664 = load i32, ptr %663, align 4 ; <i32> [#uses=1]
%665 = lshr i32 %660, 16 ; <i32> [#uses=1]
%666 = or i32 %665, 256 ; <i32> [#uses=1]
%667 = and i32 %666, 511 ; <i32> [#uses=1]
%668 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %667; <ptr> [#uses=1]
%669 = load i32, ptr %668, align 4 ; <i32> [#uses=1]
%670 = add i32 %669, %664 ; <i32> [#uses=1]
%671 = lshr i32 %660, 8 ; <i32> [#uses=1]
%672 = or i32 %671, 512 ; <i32> [#uses=1]
%673 = and i32 %672, 767 ; <i32> [#uses=1]
%674 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %673; <ptr> [#uses=1]
%675 = load i32, ptr %674, align 4 ; <i32> [#uses=1]
%676 = xor i32 %670, %675 ; <i32> [#uses=1]
%677 = or i32 %660, 768 ; <i32> [#uses=1]
%678 = and i32 %677, 1023 ; <i32> [#uses=1]
%679 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %678; <ptr> [#uses=1]
%680 = load i32, ptr %679, align 4 ; <i32> [#uses=1]
%681 = add i32 %676, %680 ; <i32> [#uses=1]
%682 = xor i32 %661, %636 ; <i32> [#uses=1]
%683 = xor i32 %682, %681 ; <i32> [#uses=5]
%684 = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 0, i32 1; <ptr> [#uses=1]
br label %bb2
bb2: ; preds = %bb1, %bb
%.pn2.in = phi ptr [ %329, %bb ], [ %0, %bb1 ]; <ptr> [#uses=1]
%.pn3 = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
%.pn15.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
%.pn14.in.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
%.pn13.in.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
%.pn10.in.in = phi i32 [ %328, %bb ], [ %683, %bb1 ]; <i32> [#uses=1]
%.pn4.in = phi ptr [ null, %bb ], [ %684, %bb1 ]; <ptr> [#uses=1]
%.pn5 = phi i32 [ 0, %bb ], [ %660, %bb1 ]; <i32> [#uses=1]
%.pn14.in.in = lshr i32 %.pn14.in.in.in, 16; <i32> [#uses=1]
%.pn14.in = or i32 %.pn14.in.in, 256 ; <i32> [#uses=1]
%.pn13.in.in = lshr i32 %.pn13.in.in.in, 8; <i32> [#uses=1]
%.pn15 = lshr i32 %.pn15.in, 24 ; <i32> [#uses=1]
%.pn14 = and i32 %.pn14.in, 511 ; <i32> [#uses=1]
%.pn13.in = or i32 %.pn13.in.in, 512 ; <i32> [#uses=1]
%.pn11.in = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %.pn15; <ptr> [#uses=1]
%.pn12.in = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %.pn14; <ptr> [#uses=1]
%.pn13 = and i32 %.pn13.in, 767 ; <i32> [#uses=1]
%.pn10.in = or i32 %.pn10.in.in, 768 ; <i32> [#uses=1]
%.pn11 = load i32, ptr %.pn11.in ; <i32> [#uses=1]
%.pn12 = load i32, ptr %.pn12.in ; <i32> [#uses=1]
%.pn9.in = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %.pn13; <ptr> [#uses=1]
%.pn10 = and i32 %.pn10.in, 1023 ; <i32> [#uses=1]
%.pn8 = add i32 %.pn12, %.pn11 ; <i32> [#uses=1]
%.pn9 = load i32, ptr %.pn9.in ; <i32> [#uses=1]
%.pn7.in = getelementptr %struct.BF_KEY, ptr %key, i32 0, i32 1, i32 %.pn10; <ptr> [#uses=1]
%.pn6 = xor i32 %.pn8, %.pn9 ; <i32> [#uses=1]
%.pn7 = load i32, ptr %.pn7.in ; <i32> [#uses=1]
%.pn4 = load i32, ptr %.pn4.in ; <i32> [#uses=1]
%.pn2 = load i32, ptr %.pn2.in ; <i32> [#uses=1]
%.pn = add i32 %.pn6, %.pn7 ; <i32> [#uses=1]
%r.0 = xor i32 %.pn2, %.pn3 ; <i32> [#uses=1]
%.pn1 = xor i32 %.pn, %.pn5 ; <i32> [#uses=1]
%l.0 = xor i32 %.pn1, %.pn4 ; <i32> [#uses=1]
store i32 %l.0, ptr undef, align 4
store i32 %r.0, ptr %data, align 4
ret void
}