Skip to content

Instantly share code, notes, and snippets.

@danilaml
Last active August 29, 2015 14:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danilaml/220855362fd97d2aa0e3 to your computer and use it in GitHub Desktop.
Save danilaml/220855362fd97d2aa0e3 to your computer and use it in GitHub Desktop.
Recompiling block :
001d85b8: 00 00 00 00 stdu r1,-128(r1) #ffffff80
001d85bc: 00 00 00 00 mflr r0
001d85c0: 00 00 00 00 std r31,120(r1) #78
001d85c4: 00 00 00 00 std r0,144(r1) #90
001d85c8: 00 00 00 00 mr r31,r3
001d85cc: 00 00 00 00 lwz r0,552(r3) #228
001d85d0: 00 00 00 00 extsw r9,r0
001d85d4: 00 00 00 00 li r0,0 #0
001d85d8: 00 00 00 00 stw r0,552(r3) #228
001d85dc: 00 00 00 00 lwz r0,548(r3) #224
001d85e0: 00 00 00 00 cmpwi cr7,r0,0 #0
001d85e4: 00 00 00 00 beq cr7,0x1d861c
001d85e8: 00 00 00 00 cmpdi cr7,r9,0 #0
001d85ec: 00 00 00 00 bne cr7,0x1d861c
001d85f0: 00 00 00 00 bl 0x2368f4
001d85f4: 00 00 00 00 ld r2,40(r1) #28
001d85f8: 00 00 00 00 lwz r0,556(r31) #22c
001d85fc: 00 00 00 00 subf r3,r0,r3
001d8600: 00 00 00 00 cmpwi cr7,r3,29999 #752f
001d8604: 00 00 00 00 ble cr7,0x1d8610
001d8608: 00 00 00 00 li r0,1 #1
001d860c: 00 00 00 00 stw r0,552(r31) #228
001d8610: 00 00 00 00 bl 0x2368f4
001d8614: 00 00 00 00 ld r2,40(r1) #28
001d8618: 00 00 00 00 stw r3,556(r31) #22c
001d861c: 00 00 00 00 ld r0,144(r1) #90
001d8620: 00 00 00 00 mtlr r0
001d8624: 00 00 00 00 ld r31,120(r1) #78
001d8628: 00 00 00 00 addi r1,128(r1) #80
001d862c: 00 00 00 00 blr
LLVM bytecode:
define x86_64_win64cc i32 @function_0x001D85B8(i8* %ppu_state, i64 %context) {
entry:
br label %instr_0x001D85B8
instr_0x001D85B8: ; preds = %entry
%0 = getelementptr i8* %ppu_state, i32 776
%1 = bitcast i8* %0 to i64*
%2 = load i64* %1, align 8
%3 = add i64 %2, -128
%4 = getelementptr i8* %ppu_state, i32 776
%5 = bitcast i8* %4 to i64*
%6 = load i64* %5, align 8
%7 = call i64 @llvm.bswap.i64(i64 %6)
%8 = and i64 %3, 4294967295
%9 = add i64 %8, 2147418112
%10 = inttoptr i64 %9 to i64*
store i64 %7, i64* %10
%11 = getelementptr i8* %ppu_state, i32 776
%12 = bitcast i8* %11 to i64*
store i64 %3, i64* %12, align 8
br label %instr_0x001D85BC
instr_0x001D85BC: ; preds = %instr_0x001D85B8
%13 = getelementptr i8* %ppu_state, i32 1568
%14 = bitcast i8* %13 to i64*
%15 = load i64* %14, align 8
%16 = getelementptr i8* %ppu_state, i32 768
%17 = bitcast i8* %16 to i64*
store i64 %15, i64* %17, align 8
br label %instr_0x001D85C0
instr_0x001D85C0: ; preds = %instr_0x001D85BC
%18 = getelementptr i8* %ppu_state, i32 776
%19 = bitcast i8* %18 to i64*
%20 = load i64* %19, align 8
%21 = add i64 %20, 120
%22 = getelementptr i8* %ppu_state, i32 1016
%23 = bitcast i8* %22 to i64*
%24 = load i64* %23, align 8
%25 = call i64 @llvm.bswap.i64(i64 %24)
%26 = and i64 %21, 4294967295
%27 = add i64 %26, 2147418112
%28 = inttoptr i64 %27 to i64*
store i64 %25, i64* %28
br label %instr_0x001D85C4
instr_0x001D85C4: ; preds = %instr_0x001D85C0
%29 = getelementptr i8* %ppu_state, i32 776
%30 = bitcast i8* %29 to i64*
%31 = load i64* %30, align 8
%32 = add i64 %31, 144
%33 = getelementptr i8* %ppu_state, i32 768
%34 = bitcast i8* %33 to i64*
%35 = load i64* %34, align 8
%36 = call i64 @llvm.bswap.i64(i64 %35)
%37 = and i64 %32, 4294967295
%38 = add i64 %37, 2147418112
%39 = inttoptr i64 %38 to i64*
store i64 %36, i64* %39
br label %instr_0x001D85C8
instr_0x001D85C8: ; preds = %instr_0x001D85C4
%40 = getelementptr i8* %ppu_state, i32 792
%41 = bitcast i8* %40 to i64*
%42 = load i64* %41, align 8
%43 = getelementptr i8* %ppu_state, i32 792
%44 = bitcast i8* %43 to i64*
%45 = load i64* %44, align 8
%46 = or i64 %42, %45
%47 = getelementptr i8* %ppu_state, i32 1016
%48 = bitcast i8* %47 to i64*
store i64 %46, i64* %48, align 8
br label %instr_0x001D85CC
instr_0x001D85CC: ; preds = %instr_0x001D85C8
%49 = getelementptr i8* %ppu_state, i32 792
%50 = bitcast i8* %49 to i64*
%51 = load i64* %50, align 8
%52 = add i64 %51, 552
%53 = and i64 %52, 4294967295
%54 = add i64 %53, 2147418112
%55 = inttoptr i64 %54 to i32*
%56 = load i32* %55
%57 = call i32 @llvm.bswap.i32(i32 %56)
%58 = zext i32 %57 to i64
%59 = getelementptr i8* %ppu_state, i32 768
%60 = bitcast i8* %59 to i64*
store i64 %58, i64* %60, align 8
br label %instr_0x001D85D0
instr_0x001D85D0: ; preds = %instr_0x001D85CC
%61 = getelementptr i8* %ppu_state, i32 768
%62 = bitcast i8* %61 to i32*
%63 = load i32* %62, align 8
%64 = sext i32 %63 to i64
%65 = getelementptr i8* %ppu_state, i32 840
%66 = bitcast i8* %65 to i64*
store i64 %64, i64* %66, align 8
br label %instr_0x001D85D4
instr_0x001D85D4: ; preds = %instr_0x001D85D0
%67 = getelementptr i8* %ppu_state, i32 768
%68 = bitcast i8* %67 to i64*
store i64 0, i64* %68, align 8
br label %instr_0x001D85D8
instr_0x001D85D8: ; preds = %instr_0x001D85D4
%69 = getelementptr i8* %ppu_state, i32 792
%70 = bitcast i8* %69 to i64*
%71 = load i64* %70, align 8
%72 = add i64 %71, 552
%73 = getelementptr i8* %ppu_state, i32 768
%74 = bitcast i8* %73 to i32*
%75 = load i32* %74, align 8
%76 = call i32 @llvm.bswap.i32(i32 %75)
%77 = and i64 %72, 4294967295
%78 = add i64 %77, 2147418112
%79 = inttoptr i64 %78 to i32*
store i32 %76, i32* %79
br label %instr_0x001D85DC
instr_0x001D85DC: ; preds = %instr_0x001D85D8
%80 = getelementptr i8* %ppu_state, i32 792
%81 = bitcast i8* %80 to i64*
%82 = load i64* %81, align 8
%83 = add i64 %82, 548
%84 = and i64 %83, 4294967295
%85 = add i64 %84, 2147418112
%86 = inttoptr i64 %85 to i32*
%87 = load i32* %86
%88 = call i32 @llvm.bswap.i32(i32 %87)
%89 = zext i32 %88 to i64
%90 = getelementptr i8* %ppu_state, i32 768
%91 = bitcast i8* %90 to i64*
store i64 %89, i64* %91, align 8
br label %instr_0x001D85E0
instr_0x001D85E0: ; preds = %instr_0x001D85DC
%92 = getelementptr i8* %ppu_state, i32 768
%93 = bitcast i8* %92 to i32*
%94 = load i32* %93, align 8
%95 = sext i32 %94 to i64
%96 = icmp slt i64 %95, 0
%97 = icmp sgt i64 %95, 0
%98 = icmp eq i64 %95, 0
%99 = getelementptr i8* %ppu_state, i32 1540
%100 = bitcast i8* %99 to i32*
%101 = load i32* %100, align 4
%102 = getelementptr i8* %ppu_state, i32 1544
%103 = bitcast i8* %102 to i64*
%104 = load i64* %103, align 8
%105 = lshr i64 %104, 31
%106 = and i64 %105, 1
%107 = and i32 %101, -16
%108 = zext i1 %96 to i32
%109 = shl i32 %108, 3
%110 = or i32 %107, %109
%111 = zext i1 %97 to i32
%112 = shl i32 %111, 2
%113 = or i32 %110, %112
%114 = zext i1 %98 to i32
%115 = shl i32 %114, 1
%116 = or i32 %113, %115
%117 = trunc i64 %106 to i32
%118 = or i32 %116, %117
%119 = getelementptr i8* %ppu_state, i32 1540
%120 = bitcast i8* %119 to i32*
store i32 %118, i32* %120, align 4
br label %instr_0x001D85E4
instr_0x001D85E4: ; preds = %instr_0x001D85E0
%121 = getelementptr i8* %ppu_state, i32 1576
%122 = bitcast i8* %121 to i64*
%123 = load i64* %122, align 8
%124 = getelementptr i8* %ppu_state, i32 1540
%125 = bitcast i8* %124 to i32*
%126 = load i32* %125, align 4
%127 = lshr i32 %126, 1
%128 = and i32 %127, 1
%129 = trunc i32 %128 to i1
br i1 %129, label %instr_0x001D861C, label %instr_0x001D85E8
instr_0x001D85E8: ; preds = %instr_0x001D85E4
%130 = getelementptr i8* %ppu_state, i32 840
%131 = bitcast i8* %130 to i64*
%132 = load i64* %131, align 8
%133 = icmp slt i64 %132, 0
%134 = icmp sgt i64 %132, 0
%135 = icmp eq i64 %132, 0
%136 = getelementptr i8* %ppu_state, i32 1540
%137 = bitcast i8* %136 to i32*
%138 = load i32* %137, align 4
%139 = getelementptr i8* %ppu_state, i32 1544
%140 = bitcast i8* %139 to i64*
%141 = load i64* %140, align 8
%142 = lshr i64 %141, 31
%143 = and i64 %142, 1
%144 = and i32 %138, -16
%145 = zext i1 %133 to i32
%146 = shl i32 %145, 3
%147 = or i32 %144, %146
%148 = zext i1 %134 to i32
%149 = shl i32 %148, 2
%150 = or i32 %147, %149
%151 = zext i1 %135 to i32
%152 = shl i32 %151, 1
%153 = or i32 %150, %152
%154 = trunc i64 %143 to i32
%155 = or i32 %153, %154
%156 = getelementptr i8* %ppu_state, i32 1540
%157 = bitcast i8* %156 to i32*
store i32 %155, i32* %157, align 4
br label %instr_0x001D85EC
instr_0x001D85EC: ; preds = %instr_0x001D85E8
%158 = getelementptr i8* %ppu_state, i32 1576
%159 = bitcast i8* %158 to i64*
%160 = load i64* %159, align 8
%161 = getelementptr i8* %ppu_state, i32 1540
%162 = bitcast i8* %161 to i32*
%163 = load i32* %162, align 4
%164 = lshr i32 %163, 1
%165 = and i32 %164, 1
%166 = trunc i32 %165 to i1
%167 = xor i1 %166, true
br i1 %167, label %instr_0x001D861C, label %instr_0x001D85F0
instr_0x001D85F0: ; preds = %instr_0x001D85EC
%168 = getelementptr i8* %ppu_state, i32 1568
%169 = bitcast i8* %168 to i64*
store i64 1934836, i64* %169, align 8
%170 = getelementptr i8* %ppu_state, i32 1664
%171 = bitcast i8* %170 to i32*
store i32 2320628, i32* %171, align 4
%172 = call i32 @execute_unknown_function(i8* %ppu_state, i64 0)
br label %instr_0x001D85F4
instr_0x001D85F4: ; preds = %instr_0x001D85F0
%173 = getelementptr i8* %ppu_state, i32 776
%174 = bitcast i8* %173 to i64*
%175 = load i64* %174, align 8
%176 = add i64 %175, 40
%177 = and i64 %176, 4294967295
%178 = add i64 %177, 2147418112
%179 = inttoptr i64 %178 to i64*
%180 = load i64* %179
%181 = call i64 @llvm.bswap.i64(i64 %180)
%182 = getelementptr i8* %ppu_state, i32 784
%183 = bitcast i8* %182 to i64*
store i64 %181, i64* %183, align 8
br label %instr_0x001D85F8
instr_0x001D85F8: ; preds = %instr_0x001D85F4
%184 = getelementptr i8* %ppu_state, i32 1016
%185 = bitcast i8* %184 to i64*
%186 = load i64* %185, align 8
%187 = add i64 %186, 556
%188 = and i64 %187, 4294967295
%189 = add i64 %188, 2147418112
%190 = inttoptr i64 %189 to i32*
%191 = load i32* %190
%192 = call i32 @llvm.bswap.i32(i32 %191)
%193 = zext i32 %192 to i64
%194 = getelementptr i8* %ppu_state, i32 768
%195 = bitcast i8* %194 to i64*
store i64 %193, i64* %195, align 8
br label %instr_0x001D85FC
instr_0x001D85FC: ; preds = %instr_0x001D85F8
%196 = getelementptr i8* %ppu_state, i32 768
%197 = bitcast i8* %196 to i64*
%198 = load i64* %197, align 8
%199 = getelementptr i8* %ppu_state, i32 792
%200 = bitcast i8* %199 to i64*
%201 = load i64* %200, align 8
%202 = sub i64 %201, %198
%203 = getelementptr i8* %ppu_state, i32 792
%204 = bitcast i8* %203 to i64*
store i64 %202, i64* %204, align 8
br label %instr_0x001D8600
instr_0x001D8600: ; preds = %instr_0x001D85FC
%205 = getelementptr i8* %ppu_state, i32 792
%206 = bitcast i8* %205 to i32*
%207 = load i32* %206, align 8
%208 = sext i32 %207 to i64
%209 = icmp slt i64 %208, 29999
%210 = icmp sgt i64 %208, 29999
%211 = icmp eq i64 %208, 29999
%212 = getelementptr i8* %ppu_state, i32 1540
%213 = bitcast i8* %212 to i32*
%214 = load i32* %213, align 4
%215 = getelementptr i8* %ppu_state, i32 1544
%216 = bitcast i8* %215 to i64*
%217 = load i64* %216, align 8
%218 = lshr i64 %217, 31
%219 = and i64 %218, 1
%220 = and i32 %214, -16
%221 = zext i1 %209 to i32
%222 = shl i32 %221, 3
%223 = or i32 %220, %222
%224 = zext i1 %210 to i32
%225 = shl i32 %224, 2
%226 = or i32 %223, %225
%227 = zext i1 %211 to i32
%228 = shl i32 %227, 1
%229 = or i32 %226, %228
%230 = trunc i64 %219 to i32
%231 = or i32 %229, %230
%232 = getelementptr i8* %ppu_state, i32 1540
%233 = bitcast i8* %232 to i32*
store i32 %231, i32* %233, align 4
br label %instr_0x001D8604
instr_0x001D8604: ; preds = %instr_0x001D8600
%234 = getelementptr i8* %ppu_state, i32 1576
%235 = bitcast i8* %234 to i64*
%236 = load i64* %235, align 8
%237 = getelementptr i8* %ppu_state, i32 1540
%238 = bitcast i8* %237 to i32*
%239 = load i32* %238, align 4
%240 = lshr i32 %239, 2
%241 = and i32 %240, 1
%242 = trunc i32 %241 to i1
%243 = xor i1 %242, true
br i1 %243, label %instr_0x001D8610, label %instr_0x001D8608
instr_0x001D8608: ; preds = %instr_0x001D8604
%244 = getelementptr i8* %ppu_state, i32 768
%245 = bitcast i8* %244 to i64*
store i64 1, i64* %245, align 8
br label %instr_0x001D860C
instr_0x001D860C: ; preds = %instr_0x001D8608
%246 = getelementptr i8* %ppu_state, i32 1016
%247 = bitcast i8* %246 to i64*
%248 = load i64* %247, align 8
%249 = add i64 %248, 552
%250 = getelementptr i8* %ppu_state, i32 768
%251 = bitcast i8* %250 to i32*
%252 = load i32* %251, align 8
%253 = call i32 @llvm.bswap.i32(i32 %252)
%254 = and i64 %249, 4294967295
%255 = add i64 %254, 2147418112
%256 = inttoptr i64 %255 to i32*
store i32 %253, i32* %256
br label %instr_0x001D8610
instr_0x001D8610: ; preds = %instr_0x001D860C, %instr_0x001D8604
%257 = getelementptr i8* %ppu_state, i32 1568
%258 = bitcast i8* %257 to i64*
store i64 1934868, i64* %258, align 8
%259 = getelementptr i8* %ppu_state, i32 1664
%260 = bitcast i8* %259 to i32*
store i32 2320628, i32* %260, align 4
%261 = call i32 @execute_unknown_function(i8* %ppu_state, i64 0)
br label %instr_0x001D8614
instr_0x001D8614: ; preds = %instr_0x001D8610
%262 = getelementptr i8* %ppu_state, i32 776
%263 = bitcast i8* %262 to i64*
%264 = load i64* %263, align 8
%265 = add i64 %264, 40
%266 = and i64 %265, 4294967295
%267 = add i64 %266, 2147418112
%268 = inttoptr i64 %267 to i64*
%269 = load i64* %268
%270 = call i64 @llvm.bswap.i64(i64 %269)
%271 = getelementptr i8* %ppu_state, i32 784
%272 = bitcast i8* %271 to i64*
store i64 %270, i64* %272, align 8
br label %instr_0x001D8618
instr_0x001D8618: ; preds = %instr_0x001D8614
%273 = getelementptr i8* %ppu_state, i32 1016
%274 = bitcast i8* %273 to i64*
%275 = load i64* %274, align 8
%276 = add i64 %275, 556
%277 = getelementptr i8* %ppu_state, i32 792
%278 = bitcast i8* %277 to i32*
%279 = load i32* %278, align 8
%280 = call i32 @llvm.bswap.i32(i32 %279)
%281 = and i64 %276, 4294967295
%282 = add i64 %281, 2147418112
%283 = inttoptr i64 %282 to i32*
store i32 %280, i32* %283
br label %instr_0x001D861C
instr_0x001D861C: ; preds = %instr_0x001D8618, %instr_0x001D85EC, %instr_0x001D85E4
%284 = getelementptr i8* %ppu_state, i32 776
%285 = bitcast i8* %284 to i64*
%286 = load i64* %285, align 8
%287 = add i64 %286, 144
%288 = and i64 %287, 4294967295
%289 = add i64 %288, 2147418112
%290 = inttoptr i64 %289 to i64*
%291 = load i64* %290
%292 = call i64 @llvm.bswap.i64(i64 %291)
%293 = getelementptr i8* %ppu_state, i32 768
%294 = bitcast i8* %293 to i64*
store i64 %292, i64* %294, align 8
br label %instr_0x001D8620
instr_0x001D8620: ; preds = %instr_0x001D861C
%295 = getelementptr i8* %ppu_state, i32 768
%296 = bitcast i8* %295 to i64*
%297 = load i64* %296, align 8
%298 = getelementptr i8* %ppu_state, i32 1568
%299 = bitcast i8* %298 to i64*
store i64 %297, i64* %299, align 8
br label %instr_0x001D8624
instr_0x001D8624: ; preds = %instr_0x001D8620
%300 = getelementptr i8* %ppu_state, i32 776
%301 = bitcast i8* %300 to i64*
%302 = load i64* %301, align 8
%303 = add i64 %302, 120
%304 = and i64 %303, 4294967295
%305 = add i64 %304, 2147418112
%306 = inttoptr i64 %305 to i64*
%307 = load i64* %306
%308 = call i64 @llvm.bswap.i64(i64 %307)
%309 = getelementptr i8* %ppu_state, i32 1016
%310 = bitcast i8* %309 to i64*
store i64 %308, i64* %310, align 8
br label %instr_0x001D8628
instr_0x001D8628: ; preds = %instr_0x001D8624
%311 = getelementptr i8* %ppu_state, i32 776
%312 = bitcast i8* %311 to i64*
%313 = load i64* %312, align 8
%314 = add i64 %313, 128
%315 = getelementptr i8* %ppu_state, i32 776
%316 = bitcast i8* %315 to i64*
store i64 %314, i64* %316, align 8
br label %instr_0x001D862C
instr_0x001D862C: ; preds = %instr_0x001D8628
%317 = getelementptr i8* %ppu_state, i32 1568
%318 = bitcast i8* %317 to i64*
%319 = load i64* %318, align 8
%320 = and i64 %319, -4
%321 = trunc i64 %320 to i32
%322 = getelementptr i8* %ppu_state, i32 1576
%323 = bitcast i8* %322 to i64*
%324 = load i64* %323, align 8
%325 = getelementptr i8* %ppu_state, i32 1664
%326 = bitcast i8* %325 to i32*
store i32 %321, i32* %326, align 4
ret i32 0
}
Recompiling block :
001de5f0: 00 00 00 00 stdu r1,-112(r1) #ffffff90
001de5f4: 00 00 00 00 mflr r0
001de5f8: 00 00 00 00 std r0,128(r1) #80
001de5fc: 00 00 00 00 lwz r9,-9300(r2) #ffffdbac
001de600: 00 00 00 00 lwz r9,0(r9) #0
001de604: 00 00 00 00 lwz r0,552(r9) #228
001de608: 00 00 00 00 cmpwi cr7,r0,0 #0
001de60c: 00 00 00 00 bne cr7,0x1de620
001de610: 00 00 00 00 lwz r9,-9292(r2) #ffffdbb4
001de614: 00 00 00 00 lwz r3,0(r9) #0
001de618: 00 00 00 00 bl 0x207370
001de61c: 00 00 00 00 nop
001de620: 00 00 00 00 lwz r9,-9300(r2) #ffffdbac
001de624: 00 00 00 00 lwz r3,0(r9) #0
001de628: 00 00 00 00 bl 0x1d85b8
001de62c: 00 00 00 00 nop
001de630: 00 00 00 00 ld r0,128(r1) #80
001de634: 00 00 00 00 mtlr r0
001de638: 00 00 00 00 addi r1,112(r1) #70
001de63c: 00 00 00 00 blr
LLVM bytecode:
define x86_64_win64cc i32 @function_0x001DE5F0(i8* %ppu_state, i64 %context) {
entry:
br label %instr_0x001DE5F0
instr_0x001DE5F0: ; preds = %entry
%0 = getelementptr i8* %ppu_state, i32 776
%1 = bitcast i8* %0 to i64*
%2 = load i64* %1, align 8
%3 = add i64 %2, -112
%4 = getelementptr i8* %ppu_state, i32 776
%5 = bitcast i8* %4 to i64*
%6 = load i64* %5, align 8
%7 = call i64 @llvm.bswap.i64(i64 %6)
%8 = and i64 %3, 4294967295
%9 = add i64 %8, 2147418112
%10 = inttoptr i64 %9 to i64*
store i64 %7, i64* %10
%11 = getelementptr i8* %ppu_state, i32 776
%12 = bitcast i8* %11 to i64*
store i64 %3, i64* %12, align 8
br label %instr_0x001DE5F4
instr_0x001DE5F4: ; preds = %instr_0x001DE5F0
%13 = getelementptr i8* %ppu_state, i32 1568
%14 = bitcast i8* %13 to i64*
%15 = load i64* %14, align 8
%16 = getelementptr i8* %ppu_state, i32 768
%17 = bitcast i8* %16 to i64*
store i64 %15, i64* %17, align 8
br label %instr_0x001DE5F8
instr_0x001DE5F8: ; preds = %instr_0x001DE5F4
%18 = getelementptr i8* %ppu_state, i32 776
%19 = bitcast i8* %18 to i64*
%20 = load i64* %19, align 8
%21 = add i64 %20, 128
%22 = getelementptr i8* %ppu_state, i32 768
%23 = bitcast i8* %22 to i64*
%24 = load i64* %23, align 8
%25 = call i64 @llvm.bswap.i64(i64 %24)
%26 = and i64 %21, 4294967295
%27 = add i64 %26, 2147418112
%28 = inttoptr i64 %27 to i64*
store i64 %25, i64* %28
br label %instr_0x001DE5FC
instr_0x001DE5FC: ; preds = %instr_0x001DE5F8
%29 = getelementptr i8* %ppu_state, i32 784
%30 = bitcast i8* %29 to i64*
%31 = load i64* %30, align 8
%32 = add i64 %31, -9300
%33 = and i64 %32, 4294967295
%34 = add i64 %33, 2147418112
%35 = inttoptr i64 %34 to i32*
%36 = load i32* %35
%37 = call i32 @llvm.bswap.i32(i32 %36)
%38 = zext i32 %37 to i64
%39 = getelementptr i8* %ppu_state, i32 840
%40 = bitcast i8* %39 to i64*
store i64 %38, i64* %40, align 8
br label %instr_0x001DE600
instr_0x001DE600: ; preds = %instr_0x001DE5FC
%41 = getelementptr i8* %ppu_state, i32 840
%42 = bitcast i8* %41 to i64*
%43 = load i64* %42, align 8
%44 = add i64 %43, 0
%45 = and i64 %44, 4294967295
%46 = add i64 %45, 2147418112
%47 = inttoptr i64 %46 to i32*
%48 = load i32* %47
%49 = call i32 @llvm.bswap.i32(i32 %48)
%50 = zext i32 %49 to i64
%51 = getelementptr i8* %ppu_state, i32 840
%52 = bitcast i8* %51 to i64*
store i64 %50, i64* %52, align 8
br label %instr_0x001DE604
instr_0x001DE604: ; preds = %instr_0x001DE600
%53 = getelementptr i8* %ppu_state, i32 840
%54 = bitcast i8* %53 to i64*
%55 = load i64* %54, align 8
%56 = add i64 %55, 552
%57 = and i64 %56, 4294967295
%58 = add i64 %57, 2147418112
%59 = inttoptr i64 %58 to i32*
%60 = load i32* %59
%61 = call i32 @llvm.bswap.i32(i32 %60)
%62 = zext i32 %61 to i64
%63 = getelementptr i8* %ppu_state, i32 768
%64 = bitcast i8* %63 to i64*
store i64 %62, i64* %64, align 8
br label %instr_0x001DE608
instr_0x001DE608: ; preds = %instr_0x001DE604
%65 = getelementptr i8* %ppu_state, i32 768
%66 = bitcast i8* %65 to i32*
%67 = load i32* %66, align 8
%68 = sext i32 %67 to i64
%69 = icmp slt i64 %68, 0
%70 = icmp sgt i64 %68, 0
%71 = icmp eq i64 %68, 0
%72 = getelementptr i8* %ppu_state, i32 1540
%73 = bitcast i8* %72 to i32*
%74 = load i32* %73, align 4
%75 = getelementptr i8* %ppu_state, i32 1544
%76 = bitcast i8* %75 to i64*
%77 = load i64* %76, align 8
%78 = lshr i64 %77, 31
%79 = and i64 %78, 1
%80 = and i32 %74, -16
%81 = zext i1 %69 to i32
%82 = shl i32 %81, 3
%83 = or i32 %80, %82
%84 = zext i1 %70 to i32
%85 = shl i32 %84, 2
%86 = or i32 %83, %85
%87 = zext i1 %71 to i32
%88 = shl i32 %87, 1
%89 = or i32 %86, %88
%90 = trunc i64 %79 to i32
%91 = or i32 %89, %90
%92 = getelementptr i8* %ppu_state, i32 1540
%93 = bitcast i8* %92 to i32*
store i32 %91, i32* %93, align 4
br label %instr_0x001DE60C
instr_0x001DE60C: ; preds = %instr_0x001DE608
%94 = getelementptr i8* %ppu_state, i32 1576
%95 = bitcast i8* %94 to i64*
%96 = load i64* %95, align 8
%97 = getelementptr i8* %ppu_state, i32 1540
%98 = bitcast i8* %97 to i32*
%99 = load i32* %98, align 4
%100 = lshr i32 %99, 1
%101 = and i32 %100, 1
%102 = trunc i32 %101 to i1
%103 = xor i1 %102, true
br i1 %103, label %instr_0x001DE620, label %instr_0x001DE610
instr_0x001DE610: ; preds = %instr_0x001DE60C
%104 = getelementptr i8* %ppu_state, i32 784
%105 = bitcast i8* %104 to i64*
%106 = load i64* %105, align 8
%107 = add i64 %106, -9292
%108 = and i64 %107, 4294967295
%109 = add i64 %108, 2147418112
%110 = inttoptr i64 %109 to i32*
%111 = load i32* %110
%112 = call i32 @llvm.bswap.i32(i32 %111)
%113 = zext i32 %112 to i64
%114 = getelementptr i8* %ppu_state, i32 840
%115 = bitcast i8* %114 to i64*
store i64 %113, i64* %115, align 8
br label %instr_0x001DE614
instr_0x001DE614: ; preds = %instr_0x001DE610
%116 = getelementptr i8* %ppu_state, i32 840
%117 = bitcast i8* %116 to i64*
%118 = load i64* %117, align 8
%119 = add i64 %118, 0
%120 = and i64 %119, 4294967295
%121 = add i64 %120, 2147418112
%122 = inttoptr i64 %121 to i32*
%123 = load i32* %122
%124 = call i32 @llvm.bswap.i32(i32 %123)
%125 = zext i32 %124 to i64
%126 = getelementptr i8* %ppu_state, i32 792
%127 = bitcast i8* %126 to i64*
store i64 %125, i64* %127, align 8
br label %instr_0x001DE618
instr_0x001DE618: ; preds = %instr_0x001DE614
%128 = getelementptr i8* %ppu_state, i32 1568
%129 = bitcast i8* %128 to i64*
store i64 1959452, i64* %129, align 8
%130 = getelementptr i8* %ppu_state, i32 1664
%131 = bitcast i8* %130 to i32*
store i32 2126704, i32* %131, align 4
%132 = call i32 @execute_unknown_function(i8* %ppu_state, i64 0)
br label %instr_0x001DE61C
instr_0x001DE61C: ; preds = %instr_0x001DE618
%133 = getelementptr i8* %ppu_state, i32 768
%134 = bitcast i8* %133 to i64*
%135 = load i64* %134, align 8
%136 = getelementptr i8* %ppu_state, i32 768
%137 = bitcast i8* %136 to i64*
store i64 %135, i64* %137, align 8
br label %instr_0x001DE620
instr_0x001DE620: ; preds = %instr_0x001DE61C, %instr_0x001DE60C
%138 = getelementptr i8* %ppu_state, i32 784
%139 = bitcast i8* %138 to i64*
%140 = load i64* %139, align 8
%141 = add i64 %140, -9300
%142 = and i64 %141, 4294967295
%143 = add i64 %142, 2147418112
%144 = inttoptr i64 %143 to i32*
%145 = load i32* %144
%146 = call i32 @llvm.bswap.i32(i32 %145)
%147 = zext i32 %146 to i64
%148 = getelementptr i8* %ppu_state, i32 840
%149 = bitcast i8* %148 to i64*
store i64 %147, i64* %149, align 8
br label %instr_0x001DE624
instr_0x001DE624: ; preds = %instr_0x001DE620
%150 = getelementptr i8* %ppu_state, i32 840
%151 = bitcast i8* %150 to i64*
%152 = load i64* %151, align 8
%153 = add i64 %152, 0
%154 = and i64 %153, 4294967295
%155 = add i64 %154, 2147418112
%156 = inttoptr i64 %155 to i32*
%157 = load i32* %156
%158 = call i32 @llvm.bswap.i32(i32 %157)
%159 = zext i32 %158 to i64
%160 = getelementptr i8* %ppu_state, i32 792
%161 = bitcast i8* %160 to i64*
store i64 %159, i64* %161, align 8
br label %instr_0x001DE628
instr_0x001DE628: ; preds = %instr_0x001DE624
%162 = getelementptr i8* %ppu_state, i32 1568
%163 = bitcast i8* %162 to i64*
store i64 1959468, i64* %163, align 8
%164 = getelementptr i8* %ppu_state, i32 1664
%165 = bitcast i8* %164 to i32*
store i32 1934776, i32* %165, align 4
%166 = call i32 @function_0x001D85B8(i8* %ppu_state, i64 0)
br label %instr_0x001DE62C
instr_0x001DE62C: ; preds = %instr_0x001DE628
%167 = getelementptr i8* %ppu_state, i32 768
%168 = bitcast i8* %167 to i64*
%169 = load i64* %168, align 8
%170 = getelementptr i8* %ppu_state, i32 768
%171 = bitcast i8* %170 to i64*
store i64 %169, i64* %171, align 8
br label %instr_0x001DE630
instr_0x001DE630: ; preds = %instr_0x001DE62C
%172 = getelementptr i8* %ppu_state, i32 776
%173 = bitcast i8* %172 to i64*
%174 = load i64* %173, align 8
%175 = add i64 %174, 128
%176 = and i64 %175, 4294967295
%177 = add i64 %176, 2147418112
%178 = inttoptr i64 %177 to i64*
%179 = load i64* %178
%180 = call i64 @llvm.bswap.i64(i64 %179)
%181 = getelementptr i8* %ppu_state, i32 768
%182 = bitcast i8* %181 to i64*
store i64 %180, i64* %182, align 8
br label %instr_0x001DE634
instr_0x001DE634: ; preds = %instr_0x001DE630
%183 = getelementptr i8* %ppu_state, i32 768
%184 = bitcast i8* %183 to i64*
%185 = load i64* %184, align 8
%186 = getelementptr i8* %ppu_state, i32 1568
%187 = bitcast i8* %186 to i64*
store i64 %185, i64* %187, align 8
br label %instr_0x001DE638
instr_0x001DE638: ; preds = %instr_0x001DE634
%188 = getelementptr i8* %ppu_state, i32 776
%189 = bitcast i8* %188 to i64*
%190 = load i64* %189, align 8
%191 = add i64 %190, 112
%192 = getelementptr i8* %ppu_state, i32 776
%193 = bitcast i8* %192 to i64*
store i64 %191, i64* %193, align 8
br label %instr_0x001DE63C
instr_0x001DE63C: ; preds = %instr_0x001DE638
%194 = getelementptr i8* %ppu_state, i32 1568
%195 = bitcast i8* %194 to i64*
%196 = load i64* %195, align 8
%197 = and i64 %196, -4
%198 = trunc i64 %197 to i32
%199 = getelementptr i8* %ppu_state, i32 1576
%200 = bitcast i8* %199 to i64*
%201 = load i64* %200, align 8
%202 = getelementptr i8* %ppu_state, i32 1664
%203 = bitcast i8* %202 to i32*
store i32 %198, i32* %203, align 4
ret i32 0
}
block_0x00207370 ID IS 262
block_0x001D85B8 ID IS 263
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment