Skip to content

Instantly share code, notes, and snippets.

@vlj
Created August 4, 2015 22:31
Show Gist options
  • Save vlj/dd1ae47070206ce68c26 to your computer and use it in GitHub Desktop.
Save vlj/dd1ae47070206ce68c26 to your computer and use it in GitHub Desktop.
Recompiling block :
00177ab0: 00 00 00 0e mfcr r12
00177ac0: 00 00 00 08 stdu r1,-208(r1) #ffffff30
00177ad0: 00 00 00 08 std r20,112(r1) #70
00177ae0: 00 00 00 0b std r23,136(r1) #88
00177af0: 00 00 00 0e std r25,152(r1) #98
00177b00: 00 00 00 08 std r26,160(r1) #a0
00177b10: 00 00 00 0e std r21,120(r1) #78
00177b20: 00 00 00 0d std r22,128(r1) #80
00177b30: 00 00 00 02 std r24,144(r1) #90
00177b40: 00 00 00 06 std r27,168(r1) #a8
00177b50: 00 00 00 06 std r28,176(r1) #b0
00177b60: 00 00 00 07 std r29,184(r1) #b8
00177b70: 00 00 00 08 std r30,192(r1) #c0
00177b80: 00 00 00 06 std r31,200(r1) #c8
00177b90: 00 00 00 07 mr r26,r3
00177ba0: 00 00 00 07 mr r20,r4
00177bb0: 00 00 00 08 mr r25,r6
00177bc0: 00 00 00 07 mr r23,r7
00177bd0: 00 00 00 09 stw r12,216(r1) #d8
00177be0: 00 00 00 0a mflr r0
00177bf0: 00 00 00 08 std r0,224(r1) #e0
00177c00: 00 00 00 0a lwz r0,8(r3) #8
00177c10: 00 00 00 06 cmpwi cr7,r0,0 #0
00177c20: 00 00 00 07 ble cr7,0x177f08
00177c30: 00 00 00 08 add r0,r5,r8
00177c40: 00 00 00 0a li r21,0 #0
00177c50: 00 00 00 07 divw r22,r0,r6
00177c60: 00 00 00 0a divw r24,r5,r6
00177c70: 00 00 00 09 cmpw cr4,r22,r24
00177c80: 00 00 00 02 ble cr4,0x177f50
00177c90: 00 00 00 07 lwz r4,36(r26) #24
00177ca0: 00 00 00 09 clrldi r27,r23,32
00177cb0: 00 00 00 07 lwz r31,40(r26) #28
00177cc0: 00 00 00 09 extsw r4,r4
00177cd0: 00 00 00 08 mr r3,r27
00177ce0: 00 00 00 0c bl 0x173764
00177cf0: 00 00 00 0a nop
00177d00: 00 00 00 09 cmpwi cr7,r3,0 #0
00177d10: 00 00 00 09 blt cr7,0x177fa0
00177d20: 00 00 00 0a rlwinm r9,r3,2,0,29
00177d30: 00 00 00 0d lwz r0,32(r26) #20
00177d40: 00 00 00 0d add r9,r9,r0
00177d50: 00 00 00 07 clrldi r9,r9,32
00177d60: 00 00 00 09 lwz r11,0(r9) #0
00177d70: 00 00 00 07 cmpwi cr7,r11,0 #0
00177d80: 00 00 00 0b blt cr7,0x177e24
00177d90: 00 00 00 0d lwz r9,28(r26) #1c
00177da0: 00 00 00 0b mr r3,r27
00177db0: 00 00 00 0a addi r30,-1(r11) #ffffffff
00177dc0: 00 00 00 0a add r9,r11,r9
00177dd0: 00 00 00 0e addi r9,-1(r9) #ffffffff
00177de0: 00 00 00 0e clrldi r9,r9,32
00177df0: 00 00 00 0d lbz r4,0(r9) #0
00177e00: 00 00 00 0d extsb r4,r4
00177e10: 00 00 00 08 bl 0x173a48
00177e20: 00 00 00 0e nop
00177e30: 00 00 00 0e cmpwi cr7,r30,-1 #ffffffff
00177e40: 00 00 00 0b beq cr7,0x178034
00177e50: 00 00 00 0d lwz r11,0(r26) #0
00177e60: 00 00 00 0d lwz r0,16(r26) #10
00177e70: 00 00 00 10 cmpwi cr7,r11,0 #0
00177e80: 00 00 00 0a mullw r9,r30,r11
00177e90: 00 00 00 09 rlwinm r9,r9,2,0,29
00177ea0: 00 00 00 09 add r3,r9,r0
00177eb0: 00 00 00 0a ble cr7,0x177e24
00177ec0: 00 00 00 0e clrldi r11,r11,32
00177ed0: 00 00 00 0e mtctr r11
00177ee0: 00 00 00 09 rlwinm r9,r21,2,0,29
00177ef0: 00 00 00 0b rlwinm r11,r24,2,0,29
00177f00: 00 00 00 09 add r9,r9,r20
00177f10: 00 00 00 0d clrldi r10,r3,32
00177f20: 00 00 00 0f clrldi r9,r9,32
00177f30: 00 00 00 0d addi r21,1(r21) #1
00177f40: 00 00 00 09 addi r3,4(r3) #4
00177f50: 00 00 00 08 cmpw cr7,r25,r21
00177f60: 00 00 00 0c lfs f13,0(r10) #0
00177f70: 00 00 00 0d lwz r0,0(r9) #0
00177f80: 00 00 00 0c add r11,r11,r0
00177f90: 00 00 00 0d clrldi r11,r11,32
00177fa0: 00 00 00 09 lfs f0,0(r11) #0
00177fb0: 00 00 00 0e fadds f0,f0,f13
00177fc0: 00 00 00 10 stfs f0,0(r11) #0
00177fd0: 00 00 00 0d beq cr7,0x1781bc
00177fe0: 00 00 00 0e bdnz cr0,0x177fa0
00177ff0: 00 00 00 0d cmpw cr4,r22,r24
00178000: 00 00 00 11 b 0x177f20
00178010: 00 00 00 0f rlwinm r9,r11,0,17,31
00178020: 00 00 00 0c lwz r0,8(r26) #8
00178030: 00 00 00 0d rldicl r30,r11,49,49
00178040: 00 00 00 0d subf r28,r9,r0
00178050: 00 00 00 0f extsw r29,r31
00178060: 00 00 00 00 mr r3,r27
00178070: 00 00 00 07 mr r4,r29
00178080: 00 00 00 09 bl 0x173a1c
00178090: 00 00 00 07 nop
001780a0: 00 00 00 0b cmpwi cr7,r3,0 #0
001780b0: 00 00 00 0e bge cr7,0x1780e8
00178190: 00 00 00 0e rlwinm r0,r3,16,0,31
001781a0: 00 00 00 0f lis r10,255 #ff
001781b0: 00 00 00 0c lis r9,-256 #ffffff00
001781c0: 00 00 00 0c ori r10,255(r10) #ff
001781d0: 00 00 00 0d rlwinm r11,r0,8,0,23
001781e0: 00 00 00 13 ori r9,65280(r9) #ff00
001781f0: 00 00 00 10 rlwinm r0,r0,24,8,31
00178200: 00 00 00 0c and r11,r11,r9
00178210: 00 00 00 0d and r0,r0,r10
00178220: 00 00 00 0b lis r8,3855 #f0f
00178230: 00 00 00 10 or r0,r0,r11
00178240: 00 00 00 00 lis r9,-3856 #fffff0f0
00178250: 00 00 00 0f ori r8,3855(r8) #f0f
00178260: 00 00 00 0a rlwinm r11,r0,4,0,27
00178270: 00 00 00 0a ori r9,61680(r9) #f0f0
00178280: 00 00 00 0f rlwinm r0,r0,28,4,31
00178290: 00 00 00 0f and r11,r11,r9
001782a0: 00 00 00 0f and r0,r0,r8
001782b0: 00 00 00 0e lis r10,13107 #3333
001782c0: 00 00 00 09 or r0,r0,r11
001782d0: 00 00 00 0f lis r9,-13108 #ffffcccc
001782e0: 00 00 00 11 ori r10,13107(r10) #3333
001782f0: 00 00 00 0d rlwinm r11,r0,2,0,29
00178300: 00 00 00 11 ori r9,52428(r9) #cccc
00178310: 00 00 00 0e rlwinm r0,r0,30,2,31
00178320: 00 00 00 14 and r11,r11,r9
00178330: 00 00 00 0f and r0,r0,r10
00178340: 00 00 00 0c lis r8,21845 #5555
00178350: 00 00 00 0d or r0,r0,r11
00178360: 00 00 00 0e lis r10,-21846 #ffffaaaa
00178370: 00 00 00 00 subf r11,r30,r28
00178380: 00 00 00 12 rlwinm r9,r0,1,0,30
00178390: 00 00 00 0e ori r8,21845(r8) #5555
001783a0: 00 00 00 0e ori r10,43690(r10) #aaaa
001783b0: 00 00 00 0d rlwinm r0,r0,31,1,31
001783c0: 00 00 00 00 cmpwi cr7,r11,1 #1
001783d0: 00 00 00 00 and r0,r0,r8
001783e0: 00 00 00 13 and r9,r9,r10
001783f0: 00 00 00 0e or r3,r0,r9
00178400: 00 00 00 0c ble cr7,0x178454
00178410: 00 00 00 11 lwz r8,20(r26) #14
00178420: 00 00 00 12 srawi r11,r11,1
00178430: 00 00 00 11 li r10,1 #1
00178440: 00 00 00 12 add r9,r11,r30
00178450: 00 00 00 07 rlwinm r9,r9,2,0,29
00178460: 00 00 00 0e add r9,r9,r8
00178470: 00 00 00 0f clrldi r9,r9,32
00178480: 00 00 00 0c lwz r0,0(r9) #0
00178490: 00 00 00 0f cmplw cr7,r3,r0
001784a0: 00 00 00 0e blt cr7,0x1784a8
001784b0: 00 00 00 00 li r10,0 #0
001784c0: 00 00 00 0f neg r0,r10
001784d0: 00 00 00 0d addi r9,-1(r10) #ffffffff
001784e0: 00 00 00 0c and r0,r11,r0
001784f0: 00 00 00 0e and r9,r11,r9
00178500: 00 00 00 11 subf r28,r0,r28
00178510: 00 00 00 10 add r30,r30,r9
00178520: 00 00 00 0c subf r11,r30,r28
00178530: 00 00 00 0d cmpwi cr7,r11,1 #1
00178540: 00 00 00 0b bgt cr7,0x1784f8
00178550: 00 00 00 11 lwz r9,28(r26) #1c
00178560: 00 00 00 13 add r9,r30,r9
00178570: 00 00 00 11 clrldi r9,r9,32
00178580: 00 00 00 0d lbz r0,0(r9) #0
00178590: 00 00 00 0e extsb r0,r0
001785a0: 00 00 00 12 cmpw cr7,r0,r31
001785b0: 00 00 00 11 bgt cr7,0x17863c
001785c0: 00 00 00 12 mr r3,r27
001785d0: 00 00 00 10 extsw r4,r0
001785e0: 00 00 00 0c bl 0x174024
001785f0: 00 00 00 00 nop
00178600: 00 00 00 12 b 0x17840c
00178620: 00 00 00 12 ld r0,224(r1) #e0
00178630: 00 00 00 11 extsw r3,r3
00178640: 00 00 00 00 lwz r12,216(r1) #d8
00178650: 00 00 00 00 ld r20,112(r1) #70
00178660: 00 00 00 05 mtlr r0
00178670: 00 00 00 07 ld r21,120(r1) #78
00178680: 00 00 00 05 mtocrf 8,r12
00178690: 00 00 00 09 ld r22,128(r1) #80
001786a0: 00 00 00 0b ld r23,136(r1) #88
001786b0: 00 00 00 09 ld r24,144(r1) #90
001786c0: 00 00 00 07 ld r25,152(r1) #98
001786d0: 00 00 00 07 ld r26,160(r1) #a0
001786e0: 00 00 00 0a ld r27,168(r1) #a8
001786f0: 00 00 00 0a ld r28,176(r1) #b0
00178700: 00 00 00 0a ld r29,184(r1) #b8
00178710: 00 00 00 0a ld r30,192(r1) #c0
00178720: 00 00 00 05 ld r31,200(r1) #c8
00178730: 00 00 00 09 addi r1,208(r1) #d0
00178740: 00 00 00 0a blr
00178780: 00 00 00 0b addi r24,1(r24) #1
00178790: 00 00 00 0c li r21,0 #0
001787a0: 00 00 00 0a bdz cr0,0x1785b4
001787b0: 00 00 00 0a b 0x17857c
001787c0: 00 00 00 0c li r3,0 #0
001787d0: 00 00 00 0e b 0x178764
LLVM bytecode:
; ModuleID = 'Module'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-elf"
declare x86_64_win64cc i32 @execute_unknown_function(i8*, i64)
declare x86_64_win64cc i32 @execute_unknown_block(i8*, i64)
define x86_64_win64cc i32 @fn_0x0005DEAC_0(i8* %ppu_state, i64 %context) {
entry:
br label %instr_0x0005DEAC
instr_0x0005DEAC: ; preds = %entry
%0 = call i32 @MFOCRF(i8* %ppu_state, i32 12)
br label %instr_0x0005DEB0
instr_0x0005DEB0: ; preds = %instr_0x0005DEAC
%1 = call i32 @STDU(i8* %ppu_state, i32 1, i32 1, i32 -208)
br label %instr_0x0005DEB4
instr_0x0005DEB4: ; preds = %instr_0x0005DEB0
%2 = call i32 @STD(i8* %ppu_state, i32 20, i32 1, i32 112)
br label %instr_0x0005DEB8
instr_0x0005DEB8: ; preds = %instr_0x0005DEB4
%3 = call i32 @STD(i8* %ppu_state, i32 23, i32 1, i32 136)
br label %instr_0x0005DEBC
instr_0x0005DEBC: ; preds = %instr_0x0005DEB8
%4 = call i32 @STD(i8* %ppu_state, i32 25, i32 1, i32 152)
br label %instr_0x0005DEC0
instr_0x0005DEC0: ; preds = %instr_0x0005DEBC
%5 = call i32 @STD(i8* %ppu_state, i32 26, i32 1, i32 160)
br label %instr_0x0005DEC4
instr_0x0005DEC4: ; preds = %instr_0x0005DEC0
%6 = call i32 @STD(i8* %ppu_state, i32 21, i32 1, i32 120)
br label %instr_0x0005DEC8
instr_0x0005DEC8: ; preds = %instr_0x0005DEC4
%7 = call i32 @STD(i8* %ppu_state, i32 22, i32 1, i32 128)
br label %instr_0x0005DECC
instr_0x0005DECC: ; preds = %instr_0x0005DEC8
%8 = call i32 @STD(i8* %ppu_state, i32 24, i32 1, i32 144)
br label %instr_0x0005DED0
instr_0x0005DED0: ; preds = %instr_0x0005DECC
%9 = call i32 @STD(i8* %ppu_state, i32 27, i32 1, i32 168)
br label %instr_0x0005DED4
instr_0x0005DED4: ; preds = %instr_0x0005DED0
%10 = call i32 @STD(i8* %ppu_state, i32 28, i32 1, i32 176)
br label %instr_0x0005DED8
instr_0x0005DED8: ; preds = %instr_0x0005DED4
%11 = call i32 @STD(i8* %ppu_state, i32 29, i32 1, i32 184)
br label %instr_0x0005DEDC
instr_0x0005DEDC: ; preds = %instr_0x0005DED8
%12 = call i32 @STD(i8* %ppu_state, i32 30, i32 1, i32 192)
br label %instr_0x0005DEE0
instr_0x0005DEE0: ; preds = %instr_0x0005DEDC
%13 = call i32 @STD(i8* %ppu_state, i32 31, i32 1, i32 200)
br label %instr_0x0005DEE4
instr_0x0005DEE4: ; preds = %instr_0x0005DEE0
%14 = call i32 @OR(i8* %ppu_state, i32 26, i32 3, i32 3, i32 0)
br label %instr_0x0005DEE8
instr_0x0005DEE8: ; preds = %instr_0x0005DEE4
%15 = call i32 @OR(i8* %ppu_state, i32 20, i32 4, i32 4, i32 0)
br label %instr_0x0005DEEC
instr_0x0005DEEC: ; preds = %instr_0x0005DEE8
%16 = call i32 @OR(i8* %ppu_state, i32 25, i32 6, i32 6, i32 0)
br label %instr_0x0005DEF0
instr_0x0005DEF0: ; preds = %instr_0x0005DEEC
%17 = call i32 @OR(i8* %ppu_state, i32 23, i32 7, i32 7, i32 0)
br label %instr_0x0005DEF4
instr_0x0005DEF4: ; preds = %instr_0x0005DEF0
%18 = call i32 @STW(i8* %ppu_state, i32 12, i32 1, i32 216)
br label %instr_0x0005DEF8
instr_0x0005DEF8: ; preds = %instr_0x0005DEF4
%19 = call i32 @MFSPR(i8* %ppu_state, i32 0, i32 256)
br label %instr_0x0005DEFC
instr_0x0005DEFC: ; preds = %instr_0x0005DEF8
%20 = call i32 @STD(i8* %ppu_state, i32 0, i32 1, i32 224)
br label %instr_0x0005DF00
instr_0x0005DF00: ; preds = %instr_0x0005DEFC
%21 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 3, i32 8)
br label %instr_0x0005DF04
instr_0x0005DF04: ; preds = %instr_0x0005DF00
%22 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 0, i32 0)
br label %instr_0x0005DF08
instr_0x0005DF08: ; preds = %instr_0x0005DF04
%23 = getelementptr i8* %ppu_state, i32 1576
%24 = bitcast i8* %23 to i64*
%25 = load i64* %24, align 8
%26 = getelementptr i8* %ppu_state, i32 1540
%27 = bitcast i8* %26 to i32*
%28 = load i32* %27, align 4
%29 = lshr i32 %28, 2
%30 = and i32 %29, 1
%31 = trunc i32 %30 to i1
%32 = xor i1 %31, true
br i1 %32, label %instr_0x0005E1F0, label %instr_0x0005DF0C
instr_0x0005DF0C: ; preds = %instr_0x0005DF08
%33 = call i32 @ADD(i8* %ppu_state, i32 0, i32 5, i32 8, i32 0, i32 0)
br label %instr_0x0005DF10
instr_0x0005DF10: ; preds = %instr_0x0005DF0C
%34 = call i32 @ADDI(i8* %ppu_state, i32 21, i32 0, i32 0)
br label %instr_0x0005DF14
instr_0x0005DF14: ; preds = %instr_0x0005DF10
%35 = call i32 @DIVW(i8* %ppu_state, i32 22, i32 0, i32 6, i32 0, i32 0)
br label %instr_0x0005DF18
instr_0x0005DF18: ; preds = %instr_0x0005DF14
%36 = call i32 @DIVW(i8* %ppu_state, i32 24, i32 5, i32 6, i32 0, i32 0)
br label %instr_0x0005DF1C
instr_0x0005DF1C: ; preds = %instr_0x0005DF18
%37 = call i32 @CMP(i8* %ppu_state, i32 4, i32 0, i32 22, i32 24)
br label %instr_0x0005DF20
instr_0x0005DF20: ; preds = %instr_0x0005E000, %instr_0x0005DFAC, %instr_0x0005DF1C
%38 = getelementptr i8* %ppu_state, i32 1576
%39 = bitcast i8* %38 to i64*
%40 = load i64* %39, align 8
%41 = getelementptr i8* %ppu_state, i32 1540
%42 = bitcast i8* %41 to i32*
%43 = load i32* %42, align 4
%44 = lshr i32 %43, 14
%45 = and i32 %44, 1
%46 = trunc i32 %45 to i1
%47 = xor i1 %46, true
br i1 %47, label %instr_0x0005E1F0, label %instr_0x0005DF24
instr_0x0005DF24: ; preds = %instr_0x0005DF20
%48 = call i32 @LWZ(i8* %ppu_state, i32 4, i32 26, i32 36)
br label %instr_0x0005DF28
instr_0x0005DF28: ; preds = %instr_0x0005DF24
%49 = call i32 @RLDICL(i8* %ppu_state, i32 27, i32 23, i32 0, i32 32, i32 0)
br label %instr_0x0005DF2C
instr_0x0005DF2C: ; preds = %instr_0x0005DF28
%50 = call i32 @LWZ(i8* %ppu_state, i32 31, i32 26, i32 40)
br label %instr_0x0005DF30
instr_0x0005DF30: ; preds = %instr_0x0005DF2C
%51 = call i32 @EXTSW(i8* %ppu_state, i32 4, i32 4, i32 0)
br label %instr_0x0005DF34
instr_0x0005DF34: ; preds = %instr_0x0005DF30
%52 = call i32 @OR(i8* %ppu_state, i32 3, i32 27, i32 27, i32 0)
br label %instr_0x0005DF38
instr_0x0005DF38: ; preds = %instr_0x0005DF34
%53 = getelementptr i8* %ppu_state, i32 1568
%54 = bitcast i8* %53 to i64*
store i64 384828, i64* %54, align 8
%55 = getelementptr i8* %ppu_state, i32 1664
%56 = bitcast i8* %55 to i32*
store i32 367036, i32* %56, align 4
%57 = load i64* inttoptr (i64 8623115688 to i64*)
%58 = inttoptr i64 %57 to i32 (i8*, i64)*
%59 = call i32 %58(i8* %ppu_state, i64 0)
%60 = icmp eq i32 %59, -1
br i1 %60, label %instr_0x0005DF38_then_all_fs, label %instr_0x0005DF38_merge_all_fs
instr_0x0005DF38_then_all_fs: ; preds = %instr_0x0005DF38
ret i32 0
instr_0x0005DF38_merge_all_fs: ; preds = %instr_0x0005DF38
br label %instr_0x0005DF3C
instr_0x0005DF3C: ; preds = %instr_0x0005DF38_merge_all_fs
%61 = call i32 @ORI(i8* %ppu_state, i32 0, i32 0, i32 0)
br label %instr_0x0005DF40
instr_0x0005DF40: ; preds = %instr_0x0005DF3C
%62 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 3, i32 0)
br label %instr_0x0005DF44
instr_0x0005DF44: ; preds = %instr_0x0005DF40
%63 = getelementptr i8* %ppu_state, i32 1576
%64 = bitcast i8* %63 to i64*
%65 = load i64* %64, align 8
%66 = getelementptr i8* %ppu_state, i32 1540
%67 = bitcast i8* %66 to i32*
%68 = load i32* %67, align 4
%69 = lshr i32 %68, 3
%70 = and i32 %69, 1
%71 = trunc i32 %70 to i1
br i1 %71, label %instr_0x0005E1D4, label %instr_0x0005DF48
instr_0x0005DF48: ; preds = %instr_0x0005DF44
%72 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 3, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005DF4C
instr_0x0005DF4C: ; preds = %instr_0x0005DF48
%73 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 26, i32 32)
br label %instr_0x0005DF50
instr_0x0005DF50: ; preds = %instr_0x0005DF4C
%74 = call i32 @ADD(i8* %ppu_state, i32 9, i32 9, i32 0, i32 0, i32 0)
br label %instr_0x0005DF54
instr_0x0005DF54: ; preds = %instr_0x0005DF50
%75 = call i32 @RLDICL(i8* %ppu_state, i32 9, i32 9, i32 0, i32 32, i32 0)
br label %instr_0x0005DF58
instr_0x0005DF58: ; preds = %instr_0x0005DF54
%76 = call i32 @LWZ(i8* %ppu_state, i32 11, i32 9, i32 0)
br label %instr_0x0005DF5C
instr_0x0005DF5C: ; preds = %instr_0x0005DF58
%77 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 11, i32 0)
br label %instr_0x0005DF60
instr_0x0005DF60: ; preds = %instr_0x0005DF5C
%78 = getelementptr i8* %ppu_state, i32 1576
%79 = bitcast i8* %78 to i64*
%80 = load i64* %79, align 8
%81 = getelementptr i8* %ppu_state, i32 1540
%82 = bitcast i8* %81 to i32*
%83 = load i32* %82, align 4
%84 = lshr i32 %83, 3
%85 = and i32 %84, 1
%86 = trunc i32 %85 to i1
br i1 %86, label %instr_0x0005E004, label %instr_0x0005DF64
instr_0x0005DF64: ; preds = %instr_0x0005DF60
%87 = call i32 @LWZ(i8* %ppu_state, i32 9, i32 26, i32 28)
br label %instr_0x0005DF68
instr_0x0005DF68: ; preds = %instr_0x0005DF64
%88 = call i32 @OR(i8* %ppu_state, i32 3, i32 27, i32 27, i32 0)
br label %instr_0x0005DF6C
instr_0x0005DF6C: ; preds = %instr_0x0005DF68
%89 = call i32 @ADDI(i8* %ppu_state, i32 30, i32 11, i32 -1)
br label %instr_0x0005DF70
instr_0x0005DF70: ; preds = %instr_0x0005DF6C
%90 = call i32 @ADD(i8* %ppu_state, i32 9, i32 11, i32 9, i32 0, i32 0)
br label %instr_0x0005DF74
instr_0x0005DF74: ; preds = %instr_0x0005DF70
%91 = call i32 @ADDI(i8* %ppu_state, i32 9, i32 9, i32 -1)
br label %instr_0x0005DF78
instr_0x0005DF78: ; preds = %instr_0x0005DF74
%92 = call i32 @RLDICL(i8* %ppu_state, i32 9, i32 9, i32 0, i32 32, i32 0)
br label %instr_0x0005DF7C
instr_0x0005DF7C: ; preds = %instr_0x0005DF78
%93 = call i32 @LBZ(i8* %ppu_state, i32 4, i32 9, i32 0)
br label %instr_0x0005DF80
instr_0x0005DF80: ; preds = %instr_0x0005DF7C
%94 = call i32 @EXTSB(i8* %ppu_state, i32 4, i32 4, i32 0)
br label %instr_0x0005DF84
instr_0x0005DF84: ; preds = %instr_0x0005DF80
%95 = getelementptr i8* %ppu_state, i32 1568
%96 = bitcast i8* %95 to i64*
store i64 384904, i64* %96, align 8
%97 = getelementptr i8* %ppu_state, i32 1664
%98 = bitcast i8* %97 to i32*
store i32 367548, i32* %98, align 4
%99 = load i64* inttoptr (i64 8623115688 to i64*)
%100 = inttoptr i64 %99 to i32 (i8*, i64)*
%101 = call i32 %100(i8* %ppu_state, i64 0)
%102 = icmp eq i32 %101, -1
br i1 %102, label %instr_0x0005DF84_then_all_fs, label %instr_0x0005DF84_merge_all_fs
instr_0x0005DF84_then_all_fs: ; preds = %instr_0x0005DF84
ret i32 0
instr_0x0005DF84_merge_all_fs: ; preds = %instr_0x0005DF84
br label %instr_0x0005DF88
instr_0x0005DF88: ; preds = %instr_0x0005DF84_merge_all_fs
%103 = call i32 @ORI(i8* %ppu_state, i32 0, i32 0, i32 0)
br label %instr_0x0005DF8C
instr_0x0005DF8C: ; preds = %instr_0x0005E180, %instr_0x0005DF88
%104 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 30, i32 -1)
br label %instr_0x0005DF90
instr_0x0005DF90: ; preds = %instr_0x0005DF8C
%105 = getelementptr i8* %ppu_state, i32 1576
%106 = bitcast i8* %105 to i64*
%107 = load i64* %106, align 8
%108 = getelementptr i8* %ppu_state, i32 1540
%109 = bitcast i8* %108 to i32*
%110 = load i32* %109, align 4
%111 = lshr i32 %110, 1
%112 = and i32 %111, 1
%113 = trunc i32 %112 to i1
br i1 %113, label %instr_0x0005E184, label %instr_0x0005DF94
instr_0x0005DF94: ; preds = %instr_0x0005DF90
%114 = call i32 @LWZ(i8* %ppu_state, i32 11, i32 26, i32 0)
br label %instr_0x0005DF98
instr_0x0005DF98: ; preds = %instr_0x0005DF94
%115 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 26, i32 16)
br label %instr_0x0005DF9C
instr_0x0005DF9C: ; preds = %instr_0x0005DF98
%116 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 11, i32 0)
br label %instr_0x0005DFA0
instr_0x0005DFA0: ; preds = %instr_0x0005DF9C
%117 = call i32 @MULLW(i8* %ppu_state, i32 9, i32 30, i32 11, i32 0, i32 0)
br label %instr_0x0005DFA4
instr_0x0005DFA4: ; preds = %instr_0x0005DFA0
%118 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 9, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005DFA8
instr_0x0005DFA8: ; preds = %instr_0x0005DFA4
%119 = call i32 @ADD(i8* %ppu_state, i32 3, i32 9, i32 0, i32 0, i32 0)
br label %instr_0x0005DFAC
instr_0x0005DFAC: ; preds = %instr_0x0005DFA8
%120 = getelementptr i8* %ppu_state, i32 1576
%121 = bitcast i8* %120 to i64*
%122 = load i64* %121, align 8
%123 = getelementptr i8* %ppu_state, i32 1540
%124 = bitcast i8* %123 to i32*
%125 = load i32* %124, align 4
%126 = lshr i32 %125, 2
%127 = and i32 %126, 1
%128 = trunc i32 %127 to i1
%129 = xor i1 %128, true
br i1 %129, label %instr_0x0005DF20, label %instr_0x0005DFB0
instr_0x0005DFB0: ; preds = %instr_0x0005DFAC
%130 = call i32 @RLDICL(i8* %ppu_state, i32 11, i32 11, i32 0, i32 32, i32 0)
br label %instr_0x0005DFB4
instr_0x0005DFB4: ; preds = %instr_0x0005DFB0
%131 = call i32 @MTSPR(i8* %ppu_state, i32 288, i32 11)
br label %instr_0x0005DFB8
instr_0x0005DFB8: ; preds = %instr_0x0005E1EC, %instr_0x0005DFF8, %instr_0x0005DFB4
%132 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 21, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005DFBC
instr_0x0005DFBC: ; preds = %instr_0x0005DFB8
%133 = call i32 @RLWINM(i8* %ppu_state, i32 11, i32 24, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005DFC0
instr_0x0005DFC0: ; preds = %instr_0x0005DFBC
%134 = call i32 @ADD(i8* %ppu_state, i32 9, i32 9, i32 20, i32 0, i32 0)
br label %instr_0x0005DFC4
instr_0x0005DFC4: ; preds = %instr_0x0005DFC0
%135 = call i32 @RLDICL(i8* %ppu_state, i32 10, i32 3, i32 0, i32 32, i32 0)
br label %instr_0x0005DFC8
instr_0x0005DFC8: ; preds = %instr_0x0005DFC4
%136 = call i32 @RLDICL(i8* %ppu_state, i32 9, i32 9, i32 0, i32 32, i32 0)
br label %instr_0x0005DFCC
instr_0x0005DFCC: ; preds = %instr_0x0005DFC8
%137 = call i32 @ADDI(i8* %ppu_state, i32 21, i32 21, i32 1)
br label %instr_0x0005DFD0
instr_0x0005DFD0: ; preds = %instr_0x0005DFCC
%138 = call i32 @ADDI(i8* %ppu_state, i32 3, i32 3, i32 4)
br label %instr_0x0005DFD4
instr_0x0005DFD4: ; preds = %instr_0x0005DFD0
%139 = call i32 @CMP(i8* %ppu_state, i32 7, i32 0, i32 25, i32 21)
br label %instr_0x0005DFD8
instr_0x0005DFD8: ; preds = %instr_0x0005DFD4
%140 = call i32 @LFS(i8* %ppu_state, i32 13, i32 10, i32 0)
br label %instr_0x0005DFDC
instr_0x0005DFDC: ; preds = %instr_0x0005DFD8
%141 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 9, i32 0)
br label %instr_0x0005DFE0
instr_0x0005DFE0: ; preds = %instr_0x0005DFDC
%142 = call i32 @ADD(i8* %ppu_state, i32 11, i32 11, i32 0, i32 0, i32 0)
br label %instr_0x0005DFE4
instr_0x0005DFE4: ; preds = %instr_0x0005DFE0
%143 = call i32 @RLDICL(i8* %ppu_state, i32 11, i32 11, i32 0, i32 32, i32 0)
br label %instr_0x0005DFE8
instr_0x0005DFE8: ; preds = %instr_0x0005DFE4
%144 = call i32 @LFS(i8* %ppu_state, i32 0, i32 11, i32 0)
br label %instr_0x0005DFEC
instr_0x0005DFEC: ; preds = %instr_0x0005DFE8
%145 = call i32 @FADDS(i8* %ppu_state, i32 0, i32 0, i32 13, i32 0)
br label %instr_0x0005DFF0
instr_0x0005DFF0: ; preds = %instr_0x0005DFEC
%146 = call i32 @STFS(i8* %ppu_state, i32 0, i32 11, i32 0)
br label %instr_0x0005DFF4
instr_0x0005DFF4: ; preds = %instr_0x0005DFF0
%147 = getelementptr i8* %ppu_state, i32 1576
%148 = bitcast i8* %147 to i64*
%149 = load i64* %148, align 8
%150 = getelementptr i8* %ppu_state, i32 1540
%151 = bitcast i8* %150 to i32*
%152 = load i32* %151, align 4
%153 = lshr i32 %152, 1
%154 = and i32 %153, 1
%155 = trunc i32 %154 to i1
br i1 %155, label %instr_0x0005E1E0, label %instr_0x0005DFF8
instr_0x0005DFF8: ; preds = %instr_0x0005DFF4
%156 = getelementptr i8* %ppu_state, i32 1576
%157 = bitcast i8* %156 to i64*
%158 = load i64* %157, align 8
%159 = sub i64 %158, 1
%160 = getelementptr i8* %ppu_state, i32 1576
%161 = bitcast i8* %160 to i64*
store i64 %159, i64* %161, align 8
%162 = icmp ne i64 %159, 0
br i1 %162, label %instr_0x0005DFB8, label %instr_0x0005DFFC
instr_0x0005DFFC: ; preds = %instr_0x0005E1E8, %instr_0x0005DFF8
%163 = call i32 @CMP(i8* %ppu_state, i32 4, i32 0, i32 22, i32 24)
br label %instr_0x0005E000
instr_0x0005E000: ; preds = %instr_0x0005DFFC
br label %instr_0x0005DF20
instr_0x0005E004: ; preds = %instr_0x0005DF60
%164 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 11, i32 0, i32 17, i32 31, i32 0)
br label %instr_0x0005E008
instr_0x0005E008: ; preds = %instr_0x0005E004
%165 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 26, i32 8)
br label %instr_0x0005E00C
instr_0x0005E00C: ; preds = %instr_0x0005E008
%166 = call i32 @RLDICL(i8* %ppu_state, i32 30, i32 11, i32 49, i32 49, i32 0)
br label %instr_0x0005E010
instr_0x0005E010: ; preds = %instr_0x0005E00C
%167 = call i32 @SUBF(i8* %ppu_state, i32 28, i32 9, i32 0, i32 0, i32 0)
br label %instr_0x0005E014
instr_0x0005E014: ; preds = %instr_0x0005E010
%168 = call i32 @EXTSW(i8* %ppu_state, i32 29, i32 31, i32 0)
br label %instr_0x0005E018
instr_0x0005E018: ; preds = %instr_0x0005E014
%169 = call i32 @OR(i8* %ppu_state, i32 3, i32 27, i32 27, i32 0)
br label %instr_0x0005E01C
instr_0x0005E01C: ; preds = %instr_0x0005E018
%170 = call i32 @OR(i8* %ppu_state, i32 4, i32 29, i32 29, i32 0)
br label %instr_0x0005E020
instr_0x0005E020: ; preds = %instr_0x0005E01C
%171 = getelementptr i8* %ppu_state, i32 1568
%172 = bitcast i8* %171 to i64*
store i64 385060, i64* %172, align 8
%173 = getelementptr i8* %ppu_state, i32 1664
%174 = bitcast i8* %173 to i32*
store i32 367036, i32* %174, align 4
%175 = load i64* inttoptr (i64 8623115688 to i64*)
%176 = inttoptr i64 %175 to i32 (i8*, i64)*
%177 = call i32 %176(i8* %ppu_state, i64 0)
%178 = icmp eq i32 %177, -1
br i1 %178, label %instr_0x0005E020_then_all_fs, label %instr_0x0005E020_merge_all_fs
instr_0x0005E020_then_all_fs: ; preds = %instr_0x0005E020
ret i32 0
instr_0x0005E020_merge_all_fs: ; preds = %instr_0x0005E020
br label %instr_0x0005E024
instr_0x0005E024: ; preds = %instr_0x0005E020_merge_all_fs
%179 = call i32 @ORI(i8* %ppu_state, i32 0, i32 0, i32 0)
br label %instr_0x0005E028
instr_0x0005E028: ; preds = %instr_0x0005E024
%180 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 3, i32 0)
br label %instr_0x0005E02C
instr_0x0005E02C: ; preds = %instr_0x0005E028
%181 = getelementptr i8* %ppu_state, i32 1576
%182 = bitcast i8* %181 to i64*
%183 = load i64* %182, align 8
%184 = getelementptr i8* %ppu_state, i32 1540
%185 = bitcast i8* %184 to i32*
%186 = load i32* %185, align 4
%187 = lshr i32 %186, 3
%188 = and i32 %187, 1
%189 = trunc i32 %188 to i1
%190 = xor i1 %189, true
br i1 %190, label %instr_0x0005E064, label %instr_0x0005E030
instr_0x0005E030: ; preds = %instr_0x0005E02C
%191 = phi i32 [ 385068, %instr_0x0005E02C ]
%192 = getelementptr i8* %ppu_state, i32 1664
%193 = bitcast i8* %192 to i32*
store i32 385072, i32* %193, align 4
%194 = zext i32 %191 to i64
%195 = or i64 %194, 1652205199294464
%196 = load i64* inttoptr (i64 8623115696 to i64*)
%197 = inttoptr i64 %196 to i32 (i8*, i64)*
%198 = call i32 %197(i8* %ppu_state, i64 %195)
%199 = icmp eq i32 %198, -1
br i1 %199, label %instr_0x0005E030_then_all_fs, label %instr_0x0005E030_merge_all_fs
instr_0x0005E030_then_all_fs: ; preds = %instr_0x0005E030
ret i32 0
instr_0x0005E030_merge_all_fs: ; preds = %instr_0x0005E030
%200 = icmp ne i32 %198, 0
br i1 %200, label %instr_0x0005E030_then_0, label %instr_0x0005E030_merge_0
instr_0x0005E030_then_0: ; preds = %instr_0x0005E030_merge_all_fs
%201 = zext i32 %198 to i64
%202 = or i64 %201, 1652205199294464
%203 = call i32 @execute_unknown_block(i8* %ppu_state, i64 %202)
br label %instr_0x0005E030_merge_0
instr_0x0005E030_merge_0: ; preds = %instr_0x0005E030_then_0, %instr_0x0005E030_merge_all_fs
ret i32 0
instr_0x0005E064: ; preds = %instr_0x0005E02C
%204 = call i32 @RLWINM(i8* %ppu_state, i32 0, i32 3, i32 16, i32 0, i32 31, i32 0)
br label %instr_0x0005E068
instr_0x0005E068: ; preds = %instr_0x0005E064
%205 = call i32 @ADDIS(i8* %ppu_state, i32 10, i32 0, i32 255)
br label %instr_0x0005E06C
instr_0x0005E06C: ; preds = %instr_0x0005E068
%206 = call i32 @ADDIS(i8* %ppu_state, i32 9, i32 0, i32 -256)
br label %instr_0x0005E070
instr_0x0005E070: ; preds = %instr_0x0005E06C
%207 = call i32 @ORI(i8* %ppu_state, i32 10, i32 10, i32 255)
br label %instr_0x0005E074
instr_0x0005E074: ; preds = %instr_0x0005E070
%208 = call i32 @RLWINM(i8* %ppu_state, i32 11, i32 0, i32 8, i32 0, i32 23, i32 0)
br label %instr_0x0005E078
instr_0x0005E078: ; preds = %instr_0x0005E074
%209 = call i32 @ORI(i8* %ppu_state, i32 9, i32 9, i32 65280)
br label %instr_0x0005E07C
instr_0x0005E07C: ; preds = %instr_0x0005E078
%210 = call i32 @RLWINM(i8* %ppu_state, i32 0, i32 0, i32 24, i32 8, i32 31, i32 0)
br label %instr_0x0005E080
instr_0x0005E080: ; preds = %instr_0x0005E07C
%211 = call i32 @AND(i8* %ppu_state, i32 11, i32 11, i32 9, i32 0)
br label %instr_0x0005E084
instr_0x0005E084: ; preds = %instr_0x0005E080
%212 = call i32 @AND(i8* %ppu_state, i32 0, i32 0, i32 10, i32 0)
br label %instr_0x0005E088
instr_0x0005E088: ; preds = %instr_0x0005E084
%213 = call i32 @ADDIS(i8* %ppu_state, i32 8, i32 0, i32 3855)
br label %instr_0x0005E08C
instr_0x0005E08C: ; preds = %instr_0x0005E088
%214 = call i32 @OR(i8* %ppu_state, i32 0, i32 0, i32 11, i32 0)
br label %instr_0x0005E090
instr_0x0005E090: ; preds = %instr_0x0005E08C
%215 = call i32 @ADDIS(i8* %ppu_state, i32 9, i32 0, i32 -3856)
br label %instr_0x0005E094
instr_0x0005E094: ; preds = %instr_0x0005E090
%216 = call i32 @ORI(i8* %ppu_state, i32 8, i32 8, i32 3855)
br label %instr_0x0005E098
instr_0x0005E098: ; preds = %instr_0x0005E094
%217 = call i32 @RLWINM(i8* %ppu_state, i32 11, i32 0, i32 4, i32 0, i32 27, i32 0)
br label %instr_0x0005E09C
instr_0x0005E09C: ; preds = %instr_0x0005E098
%218 = call i32 @ORI(i8* %ppu_state, i32 9, i32 9, i32 61680)
br label %instr_0x0005E0A0
instr_0x0005E0A0: ; preds = %instr_0x0005E09C
%219 = call i32 @RLWINM(i8* %ppu_state, i32 0, i32 0, i32 28, i32 4, i32 31, i32 0)
br label %instr_0x0005E0A4
instr_0x0005E0A4: ; preds = %instr_0x0005E0A0
%220 = call i32 @AND(i8* %ppu_state, i32 11, i32 11, i32 9, i32 0)
br label %instr_0x0005E0A8
instr_0x0005E0A8: ; preds = %instr_0x0005E0A4
%221 = call i32 @AND(i8* %ppu_state, i32 0, i32 0, i32 8, i32 0)
br label %instr_0x0005E0AC
instr_0x0005E0AC: ; preds = %instr_0x0005E0A8
%222 = call i32 @ADDIS(i8* %ppu_state, i32 10, i32 0, i32 13107)
br label %instr_0x0005E0B0
instr_0x0005E0B0: ; preds = %instr_0x0005E0AC
%223 = call i32 @OR(i8* %ppu_state, i32 0, i32 0, i32 11, i32 0)
br label %instr_0x0005E0B4
instr_0x0005E0B4: ; preds = %instr_0x0005E0B0
%224 = call i32 @ADDIS(i8* %ppu_state, i32 9, i32 0, i32 -13108)
br label %instr_0x0005E0B8
instr_0x0005E0B8: ; preds = %instr_0x0005E0B4
%225 = call i32 @ORI(i8* %ppu_state, i32 10, i32 10, i32 13107)
br label %instr_0x0005E0BC
instr_0x0005E0BC: ; preds = %instr_0x0005E0B8
%226 = call i32 @RLWINM(i8* %ppu_state, i32 11, i32 0, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005E0C0
instr_0x0005E0C0: ; preds = %instr_0x0005E0BC
%227 = call i32 @ORI(i8* %ppu_state, i32 9, i32 9, i32 52428)
br label %instr_0x0005E0C4
instr_0x0005E0C4: ; preds = %instr_0x0005E0C0
%228 = call i32 @RLWINM(i8* %ppu_state, i32 0, i32 0, i32 30, i32 2, i32 31, i32 0)
br label %instr_0x0005E0C8
instr_0x0005E0C8: ; preds = %instr_0x0005E0C4
%229 = call i32 @AND(i8* %ppu_state, i32 11, i32 11, i32 9, i32 0)
br label %instr_0x0005E0CC
instr_0x0005E0CC: ; preds = %instr_0x0005E0C8
%230 = call i32 @AND(i8* %ppu_state, i32 0, i32 0, i32 10, i32 0)
br label %instr_0x0005E0D0
instr_0x0005E0D0: ; preds = %instr_0x0005E0CC
%231 = call i32 @ADDIS(i8* %ppu_state, i32 8, i32 0, i32 21845)
br label %instr_0x0005E0D4
instr_0x0005E0D4: ; preds = %instr_0x0005E0D0
%232 = call i32 @OR(i8* %ppu_state, i32 0, i32 0, i32 11, i32 0)
br label %instr_0x0005E0D8
instr_0x0005E0D8: ; preds = %instr_0x0005E0D4
%233 = call i32 @ADDIS(i8* %ppu_state, i32 10, i32 0, i32 -21846)
br label %instr_0x0005E0DC
instr_0x0005E0DC: ; preds = %instr_0x0005E0D8
%234 = call i32 @SUBF(i8* %ppu_state, i32 11, i32 30, i32 28, i32 0, i32 0)
br label %instr_0x0005E0E0
instr_0x0005E0E0: ; preds = %instr_0x0005E0DC
%235 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 0, i32 1, i32 0, i32 30, i32 0)
br label %instr_0x0005E0E4
instr_0x0005E0E4: ; preds = %instr_0x0005E0E0
%236 = call i32 @ORI(i8* %ppu_state, i32 8, i32 8, i32 21845)
br label %instr_0x0005E0E8
instr_0x0005E0E8: ; preds = %instr_0x0005E0E4
%237 = call i32 @ORI(i8* %ppu_state, i32 10, i32 10, i32 43690)
br label %instr_0x0005E0EC
instr_0x0005E0EC: ; preds = %instr_0x0005E0E8
%238 = call i32 @RLWINM(i8* %ppu_state, i32 0, i32 0, i32 31, i32 1, i32 31, i32 0)
br label %instr_0x0005E0F0
instr_0x0005E0F0: ; preds = %instr_0x0005E0EC
%239 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 11, i32 1)
br label %instr_0x0005E0F4
instr_0x0005E0F4: ; preds = %instr_0x0005E0F0
%240 = call i32 @AND(i8* %ppu_state, i32 0, i32 0, i32 8, i32 0)
br label %instr_0x0005E0F8
instr_0x0005E0F8: ; preds = %instr_0x0005E0F4
%241 = call i32 @AND(i8* %ppu_state, i32 9, i32 9, i32 10, i32 0)
br label %instr_0x0005E0FC
instr_0x0005E0FC: ; preds = %instr_0x0005E0F8
%242 = call i32 @OR(i8* %ppu_state, i32 3, i32 0, i32 9, i32 0)
br label %instr_0x0005E100
instr_0x0005E100: ; preds = %instr_0x0005E0FC
%243 = getelementptr i8* %ppu_state, i32 1576
%244 = bitcast i8* %243 to i64*
%245 = load i64* %244, align 8
%246 = getelementptr i8* %ppu_state, i32 1540
%247 = bitcast i8* %246 to i32*
%248 = load i32* %247, align 4
%249 = lshr i32 %248, 2
%250 = and i32 %249, 1
%251 = trunc i32 %250 to i1
%252 = xor i1 %251, true
br i1 %252, label %instr_0x0005E154, label %instr_0x0005E104
instr_0x0005E104: ; preds = %instr_0x0005E100
%253 = call i32 @LWZ(i8* %ppu_state, i32 8, i32 26, i32 20)
br label %instr_0x0005E108
instr_0x0005E108: ; preds = %instr_0x0005E150, %instr_0x0005E104
%254 = call i32 @SRAWI(i8* %ppu_state, i32 11, i32 11, i32 1, i32 0)
br label %instr_0x0005E10C
instr_0x0005E10C: ; preds = %instr_0x0005E108
%255 = call i32 @ADDI(i8* %ppu_state, i32 10, i32 0, i32 1)
br label %instr_0x0005E110
instr_0x0005E110: ; preds = %instr_0x0005E10C
%256 = call i32 @ADD(i8* %ppu_state, i32 9, i32 11, i32 30, i32 0, i32 0)
br label %instr_0x0005E114
instr_0x0005E114: ; preds = %instr_0x0005E110
%257 = call i32 @RLWINM(i8* %ppu_state, i32 9, i32 9, i32 2, i32 0, i32 29, i32 0)
br label %instr_0x0005E118
instr_0x0005E118: ; preds = %instr_0x0005E114
%258 = call i32 @ADD(i8* %ppu_state, i32 9, i32 9, i32 8, i32 0, i32 0)
br label %instr_0x0005E11C
instr_0x0005E11C: ; preds = %instr_0x0005E118
%259 = call i32 @RLDICL(i8* %ppu_state, i32 9, i32 9, i32 0, i32 32, i32 0)
br label %instr_0x0005E120
instr_0x0005E120: ; preds = %instr_0x0005E11C
%260 = call i32 @LWZ(i8* %ppu_state, i32 0, i32 9, i32 0)
br label %instr_0x0005E124
instr_0x0005E124: ; preds = %instr_0x0005E120
%261 = getelementptr i8* %ppu_state, i32 792
%262 = bitcast i8* %261 to i32*
%263 = load i32* %262, align 8
%264 = zext i32 %263 to i64
%265 = getelementptr i8* %ppu_state, i32 768
%266 = bitcast i8* %265 to i32*
%267 = load i32* %266, align 8
%268 = zext i32 %267 to i64
%269 = icmp ult i64 %264, %268
%270 = icmp ugt i64 %264, %268
%271 = icmp eq i64 %264, %268
%272 = getelementptr i8* %ppu_state, i32 1540
%273 = bitcast i8* %272 to i32*
%274 = load i32* %273, align 4
%275 = getelementptr i8* %ppu_state, i32 1544
%276 = bitcast i8* %275 to i64*
%277 = load i64* %276, align 8
%278 = lshr i64 %277, 31
%279 = and i64 %278, 1
%280 = and i32 %274, -16
%281 = zext i1 %269 to i32
%282 = shl i32 %281, 3
%283 = or i32 %280, %282
%284 = zext i1 %270 to i32
%285 = shl i32 %284, 2
%286 = or i32 %283, %285
%287 = zext i1 %271 to i32
%288 = shl i32 %287, 1
%289 = or i32 %286, %288
%290 = trunc i64 %279 to i32
%291 = or i32 %289, %290
%292 = getelementptr i8* %ppu_state, i32 1540
%293 = bitcast i8* %292 to i32*
store i32 %291, i32* %293, align 4
br label %instr_0x0005E128
instr_0x0005E128: ; preds = %instr_0x0005E124
%294 = getelementptr i8* %ppu_state, i32 1576
%295 = bitcast i8* %294 to i64*
%296 = load i64* %295, align 8
%297 = getelementptr i8* %ppu_state, i32 1540
%298 = bitcast i8* %297 to i32*
%299 = load i32* %298, align 4
%300 = lshr i32 %299, 3
%301 = and i32 %300, 1
%302 = trunc i32 %301 to i1
br i1 %302, label %instr_0x0005E130, label %instr_0x0005E12C
instr_0x0005E12C: ; preds = %instr_0x0005E128
%303 = call i32 @ADDI(i8* %ppu_state, i32 10, i32 0, i32 0)
br label %instr_0x0005E130
instr_0x0005E130: ; preds = %instr_0x0005E12C, %instr_0x0005E128
%304 = call i32 @NEG(i8* %ppu_state, i32 0, i32 10, i32 0, i32 0)
br label %instr_0x0005E134
instr_0x0005E134: ; preds = %instr_0x0005E130
%305 = call i32 @ADDI(i8* %ppu_state, i32 9, i32 10, i32 -1)
br label %instr_0x0005E138
instr_0x0005E138: ; preds = %instr_0x0005E134
%306 = call i32 @AND(i8* %ppu_state, i32 0, i32 11, i32 0, i32 0)
br label %instr_0x0005E13C
instr_0x0005E13C: ; preds = %instr_0x0005E138
%307 = call i32 @AND(i8* %ppu_state, i32 9, i32 11, i32 9, i32 0)
br label %instr_0x0005E140
instr_0x0005E140: ; preds = %instr_0x0005E13C
%308 = call i32 @SUBF(i8* %ppu_state, i32 28, i32 0, i32 28, i32 0, i32 0)
br label %instr_0x0005E144
instr_0x0005E144: ; preds = %instr_0x0005E140
%309 = call i32 @ADD(i8* %ppu_state, i32 30, i32 30, i32 9, i32 0, i32 0)
br label %instr_0x0005E148
instr_0x0005E148: ; preds = %instr_0x0005E144
%310 = call i32 @SUBF(i8* %ppu_state, i32 11, i32 30, i32 28, i32 0, i32 0)
br label %instr_0x0005E14C
instr_0x0005E14C: ; preds = %instr_0x0005E148
%311 = call i32 @CMPI(i8* %ppu_state, i32 7, i32 0, i32 11, i32 1)
br label %instr_0x0005E150
instr_0x0005E150: ; preds = %instr_0x0005E14C
%312 = getelementptr i8* %ppu_state, i32 1576
%313 = bitcast i8* %312 to i64*
%314 = load i64* %313, align 8
%315 = getelementptr i8* %ppu_state, i32 1540
%316 = bitcast i8* %315 to i32*
%317 = load i32* %316, align 4
%318 = lshr i32 %317, 2
%319 = and i32 %318, 1
%320 = trunc i32 %319 to i1
br i1 %320, label %instr_0x0005E108, label %instr_0x0005E154
instr_0x0005E154: ; preds = %instr_0x0005E150, %instr_0x0005E100
%321 = call i32 @LWZ(i8* %ppu_state, i32 9, i32 26, i32 28)
br label %instr_0x0005E158
instr_0x0005E158: ; preds = %instr_0x0005E154
%322 = call i32 @ADD(i8* %ppu_state, i32 9, i32 30, i32 9, i32 0, i32 0)
br label %instr_0x0005E15C
instr_0x0005E15C: ; preds = %instr_0x0005E158
%323 = call i32 @RLDICL(i8* %ppu_state, i32 9, i32 9, i32 0, i32 32, i32 0)
br label %instr_0x0005E160
instr_0x0005E160: ; preds = %instr_0x0005E15C
%324 = call i32 @LBZ(i8* %ppu_state, i32 0, i32 9, i32 0)
br label %instr_0x0005E164
instr_0x0005E164: ; preds = %instr_0x0005E160
%325 = call i32 @EXTSB(i8* %ppu_state, i32 0, i32 0, i32 0)
br label %instr_0x0005E168
instr_0x0005E168: ; preds = %instr_0x0005E164
%326 = call i32 @CMP(i8* %ppu_state, i32 7, i32 0, i32 0, i32 31)
br label %instr_0x0005E16C
instr_0x0005E16C: ; preds = %instr_0x0005E168
%327 = getelementptr i8* %ppu_state, i32 1576
%328 = bitcast i8* %327 to i64*
%329 = load i64* %328, align 8
%330 = getelementptr i8* %ppu_state, i32 1540
%331 = bitcast i8* %330 to i32*
%332 = load i32* %331, align 4
%333 = lshr i32 %332, 2
%334 = and i32 %333, 1
%335 = trunc i32 %334 to i1
br i1 %335, label %instr_0x0005E1F8, label %instr_0x0005E170
instr_0x0005E170: ; preds = %instr_0x0005E16C
%336 = call i32 @OR(i8* %ppu_state, i32 3, i32 27, i32 27, i32 0)
br label %instr_0x0005E174
instr_0x0005E174: ; preds = %instr_0x0005E170
%337 = call i32 @EXTSW(i8* %ppu_state, i32 4, i32 0, i32 0)
br label %instr_0x0005E178
instr_0x0005E178: ; preds = %instr_0x0005E174
%338 = getelementptr i8* %ppu_state, i32 1568
%339 = bitcast i8* %338 to i64*
store i64 385404, i64* %339, align 8
%340 = getelementptr i8* %ppu_state, i32 1664
%341 = bitcast i8* %340 to i32*
store i32 367548, i32* %341, align 4
%342 = load i64* inttoptr (i64 8623115688 to i64*)
%343 = inttoptr i64 %342 to i32 (i8*, i64)*
%344 = call i32 %343(i8* %ppu_state, i64 0)
%345 = icmp eq i32 %344, -1
br i1 %345, label %instr_0x0005E178_then_all_fs, label %instr_0x0005E178_merge_all_fs
instr_0x0005E178_then_all_fs: ; preds = %instr_0x0005E178
ret i32 0
instr_0x0005E178_merge_all_fs: ; preds = %instr_0x0005E178
br label %instr_0x0005E17C
instr_0x0005E17C: ; preds = %instr_0x0005E178_merge_all_fs
%346 = call i32 @ORI(i8* %ppu_state, i32 0, i32 0, i32 0)
br label %instr_0x0005E180
instr_0x0005E180: ; preds = %instr_0x0005E17C
br label %instr_0x0005DF8C
instr_0x0005E184: ; preds = %instr_0x0005DF90
%347 = phi i32 [ 384912, %instr_0x0005DF90 ]
%348 = getelementptr i8* %ppu_state, i32 1664
%349 = bitcast i8* %348 to i32*
store i32 385412, i32* %349, align 4
%350 = zext i32 %347 to i64
%351 = or i64 %350, 1652205199294464
%352 = load i64* inttoptr (i64 8623115696 to i64*)
%353 = inttoptr i64 %352 to i32 (i8*, i64)*
%354 = call i32 %353(i8* %ppu_state, i64 %351)
%355 = icmp eq i32 %354, -1
br i1 %355, label %instr_0x0005E184_then_all_fs, label %instr_0x0005E184_merge_all_fs
instr_0x0005E184_then_all_fs: ; preds = %instr_0x0005E184
ret i32 0
instr_0x0005E184_merge_all_fs: ; preds = %instr_0x0005E184
%356 = icmp ne i32 %354, 0
br i1 %356, label %instr_0x0005E184_then_0, label %instr_0x0005E184_merge_0
instr_0x0005E184_then_0: ; preds = %instr_0x0005E184_merge_all_fs
%357 = zext i32 %354 to i64
%358 = or i64 %357, 1652205199294464
%359 = call i32 @execute_unknown_block(i8* %ppu_state, i64 %358)
br label %instr_0x0005E184_merge_0
instr_0x0005E184_merge_0: ; preds = %instr_0x0005E184_then_0, %instr_0x0005E184_merge_all_fs
ret i32 0
instr_0x0005E188: ; preds = %instr_0x0005E1F4
%360 = call i32 @LD(i8* %ppu_state, i32 0, i32 1, i32 224)
br label %instr_0x0005E18C
instr_0x0005E18C: ; preds = %instr_0x0005E188
%361 = call i32 @EXTSW(i8* %ppu_state, i32 3, i32 3, i32 0)
br label %instr_0x0005E190
instr_0x0005E190: ; preds = %instr_0x0005E18C
%362 = call i32 @LWZ(i8* %ppu_state, i32 12, i32 1, i32 216)
br label %instr_0x0005E194
instr_0x0005E194: ; preds = %instr_0x0005E190
%363 = call i32 @LD(i8* %ppu_state, i32 20, i32 1, i32 112)
br label %instr_0x0005E198
instr_0x0005E198: ; preds = %instr_0x0005E194
%364 = call i32 @MTSPR(i8* %ppu_state, i32 256, i32 0)
br label %instr_0x0005E19C
instr_0x0005E19C: ; preds = %instr_0x0005E198
%365 = call i32 @LD(i8* %ppu_state, i32 21, i32 1, i32 120)
br label %instr_0x0005E1A0
instr_0x0005E1A0: ; preds = %instr_0x0005E19C
%366 = getelementptr i8* %ppu_state, i32 864
%367 = bitcast i8* %366 to i32*
%368 = load i32* %367, align 8
%369 = getelementptr i8* %ppu_state, i32 1540
%370 = bitcast i8* %369 to i32*
%371 = load i32* %370, align 4
%372 = and i32 %371, -983041
%373 = and i32 %368, -983041
%374 = or i32 %372, %373
%375 = getelementptr i8* %ppu_state, i32 1540
%376 = bitcast i8* %375 to i32*
store i32 %374, i32* %376, align 4
br label %instr_0x0005E1A4
instr_0x0005E1A4: ; preds = %instr_0x0005E1A0
%377 = call i32 @LD(i8* %ppu_state, i32 22, i32 1, i32 128)
br label %instr_0x0005E1A8
instr_0x0005E1A8: ; preds = %instr_0x0005E1A4
%378 = call i32 @LD(i8* %ppu_state, i32 23, i32 1, i32 136)
br label %instr_0x0005E1AC
instr_0x0005E1AC: ; preds = %instr_0x0005E1A8
%379 = call i32 @LD(i8* %ppu_state, i32 24, i32 1, i32 144)
br label %instr_0x0005E1B0
instr_0x0005E1B0: ; preds = %instr_0x0005E1AC
%380 = call i32 @LD(i8* %ppu_state, i32 25, i32 1, i32 152)
br label %instr_0x0005E1B4
instr_0x0005E1B4: ; preds = %instr_0x0005E1B0
%381 = call i32 @LD(i8* %ppu_state, i32 26, i32 1, i32 160)
br label %instr_0x0005E1B8
instr_0x0005E1B8: ; preds = %instr_0x0005E1B4
%382 = call i32 @LD(i8* %ppu_state, i32 27, i32 1, i32 168)
br label %instr_0x0005E1BC
instr_0x0005E1BC: ; preds = %instr_0x0005E1B8
%383 = call i32 @LD(i8* %ppu_state, i32 28, i32 1, i32 176)
br label %instr_0x0005E1C0
instr_0x0005E1C0: ; preds = %instr_0x0005E1BC
%384 = call i32 @LD(i8* %ppu_state, i32 29, i32 1, i32 184)
br label %instr_0x0005E1C4
instr_0x0005E1C4: ; preds = %instr_0x0005E1C0
%385 = call i32 @LD(i8* %ppu_state, i32 30, i32 1, i32 192)
br label %instr_0x0005E1C8
instr_0x0005E1C8: ; preds = %instr_0x0005E1C4
%386 = call i32 @LD(i8* %ppu_state, i32 31, i32 1, i32 200)
br label %instr_0x0005E1CC
instr_0x0005E1CC: ; preds = %instr_0x0005E1C8
%387 = call i32 @ADDI(i8* %ppu_state, i32 1, i32 1, i32 208)
br label %instr_0x0005E1D0
instr_0x0005E1D0: ; preds = %instr_0x0005E1CC
%388 = getelementptr i8* %ppu_state, i32 1568
%389 = bitcast i8* %388 to i64*
%390 = load i64* %389, align 8
%391 = and i64 %390, -4
%392 = trunc i64 %391 to i32
%393 = getelementptr i8* %ppu_state, i32 1576
%394 = bitcast i8* %393 to i64*
%395 = load i64* %394, align 8
%396 = getelementptr i8* %ppu_state, i32 1664
%397 = bitcast i8* %396 to i32*
store i32 %392, i32* %397, align 4
ret i32 0
instr_0x0005E1D4: ; preds = %instr_0x0005DF44
%398 = phi i32 [ 384836, %instr_0x0005DF44 ]
%399 = getelementptr i8* %ppu_state, i32 1664
%400 = bitcast i8* %399 to i32*
store i32 385492, i32* %400, align 4
%401 = zext i32 %398 to i64
%402 = or i64 %401, 1652205199294464
%403 = load i64* inttoptr (i64 8623115696 to i64*)
%404 = inttoptr i64 %403 to i32 (i8*, i64)*
%405 = call i32 %404(i8* %ppu_state, i64 %402)
%406 = icmp eq i32 %405, -1
br i1 %406, label %instr_0x0005E1D4_then_all_fs, label %instr_0x0005E1D4_merge_all_fs
instr_0x0005E1D4_then_all_fs: ; preds = %instr_0x0005E1D4
ret i32 0
instr_0x0005E1D4_merge_all_fs: ; preds = %instr_0x0005E1D4
%407 = icmp ne i32 %405, 0
br i1 %407, label %instr_0x0005E1D4_then_0, label %instr_0x0005E1D4_merge_0
instr_0x0005E1D4_then_0: ; preds = %instr_0x0005E1D4_merge_all_fs
%408 = zext i32 %405 to i64
%409 = or i64 %408, 1652205199294464
%410 = call i32 @execute_unknown_block(i8* %ppu_state, i64 %409)
br label %instr_0x0005E1D4_merge_0
instr_0x0005E1D4_merge_0: ; preds = %instr_0x0005E1D4_then_0, %instr_0x0005E1D4_merge_all_fs
ret i32 0
instr_0x0005E1E0: ; preds = %instr_0x0005DFF4
%411 = call i32 @ADDI(i8* %ppu_state, i32 24, i32 24, i32 1)
br label %instr_0x0005E1E4
instr_0x0005E1E4: ; preds = %instr_0x0005E1E0
%412 = call i32 @ADDI(i8* %ppu_state, i32 21, i32 0, i32 0)
br label %instr_0x0005E1E8
instr_0x0005E1E8: ; preds = %instr_0x0005E1E4
%413 = getelementptr i8* %ppu_state, i32 1576
%414 = bitcast i8* %413 to i64*
%415 = load i64* %414, align 8
%416 = sub i64 %415, 1
%417 = getelementptr i8* %ppu_state, i32 1576
%418 = bitcast i8* %417 to i64*
store i64 %416, i64* %418, align 8
%419 = icmp ne i64 %416, 0
%420 = xor i1 %419, true
br i1 %420, label %instr_0x0005DFFC, label %instr_0x0005E1EC
instr_0x0005E1EC: ; preds = %instr_0x0005E1E8
br label %instr_0x0005DFB8
instr_0x0005E1F0: ; preds = %instr_0x0005DF20, %instr_0x0005DF08
%421 = call i32 @ADDI(i8* %ppu_state, i32 3, i32 0, i32 0)
br label %instr_0x0005E1F4
instr_0x0005E1F4: ; preds = %instr_0x0005E1F0
br label %instr_0x0005E188
instr_0x0005E1F8: ; preds = %instr_0x0005E16C
%422 = phi i32 [ 385388, %instr_0x0005E16C ]
%423 = getelementptr i8* %ppu_state, i32 1664
%424 = bitcast i8* %423 to i32*
store i32 385528, i32* %424, align 4
%425 = zext i32 %422 to i64
%426 = or i64 %425, 1652205199294464
%427 = load i64* inttoptr (i64 8623115696 to i64*)
%428 = inttoptr i64 %427 to i32 (i8*, i64)*
%429 = call i32 %428(i8* %ppu_state, i64 %426)
%430 = icmp eq i32 %429, -1
br i1 %430, label %instr_0x0005E1F8_then_all_fs, label %instr_0x0005E1F8_merge_all_fs
instr_0x0005E1F8_then_all_fs: ; preds = %instr_0x0005E1F8
ret i32 0
instr_0x0005E1F8_merge_all_fs: ; preds = %instr_0x0005E1F8
%431 = icmp ne i32 %429, 0
br i1 %431, label %instr_0x0005E1F8_then_0, label %instr_0x0005E1F8_merge_0
instr_0x0005E1F8_then_0: ; preds = %instr_0x0005E1F8_merge_all_fs
%432 = zext i32 %429 to i64
%433 = or i64 %432, 1652205199294464
%434 = call i32 @execute_unknown_block(i8* %ppu_state, i64 %433)
br label %instr_0x0005E1F8_merge_0
instr_0x0005E1F8_merge_0: ; preds = %instr_0x0005E1F8_then_0, %instr_0x0005E1F8_merge_all_fs
ret i32 0
}
declare x86_64_win64cc i32 @MFOCRF(i8*, i32)
declare x86_64_win64cc i32 @STDU(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @STD(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @OR(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @STW(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @MFSPR(i8*, i32, i32)
declare x86_64_win64cc i32 @LWZ(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @CMPI(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @ADD(i8*, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @ADDI(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @DIVW(i8*, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @CMP(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @RLDICL(i8*, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @EXTSW(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @ORI(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @RLWINM(i8*, i32, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @LBZ(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @EXTSB(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @MULLW(i8*, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @MTSPR(i8*, i32, i32)
declare x86_64_win64cc i32 @LFS(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @FADDS(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @STFS(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @SUBF(i8*, i32, i32, i32, i32, i32)
declare x86_64_win64cc i32 @ADDIS(i8*, i32, i32, i32)
declare x86_64_win64cc i32 @AND(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @SRAWI(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @NEG(i8*, i32, i32, i32, i32)
declare x86_64_win64cc i32 @LD(i8*, i32, i32, i32)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment