All pastes #899398 Raw Edit

Unnamed

public text v1 · immutable
·published 2008-02-11 02:19 UTC
rendered paste body
Running bfc00000
COP0: 00
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: /// WHAT HAS SCIENCE DONE!?!?!?
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[0] = (UInt64) 0;
0008: 			Reg[1] = (UInt64) (((UInt32) Reg[26] < 0x59) ? 1 : 0);
0009: 			if((UInt32) Reg[1] != Reg[0]) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc00024;
0012: 			} else {
0013: 				return (UInt32) 0xbfc00014;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc00024
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[26] = (UInt64) 0xbfc00000;
0008: 			Reg[26] = (UInt64) ((UInt32) Reg[26] ^ 0x2000);
0009: 			Reg[0] = (UInt64) 0;
0010: 			return (UInt32) (UInt32) Reg[26];
0011: 		}
0012: 	}
0013: }
0014: 
Running bfc02000
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			if(Reg[0] == 0) {
0008: 				Reg[0] = (UInt64) 0;
0009: 				return (UInt32) 0xbfc02028;
0010: 			} else {
0011: 				return (UInt32) 0xbfc02008;
0012: 			}
0013: 		}
0014: 	}
0015: }
0016: 
Running bfc02028
COP0: 00
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[0] = (UInt64) 0;
0008: 			Reg[1] = (UInt64) (((UInt32) Reg[8] < 0x10) ? 1 : 0);
0009: 			if((UInt32) Reg[1] != Reg[0]) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02054;
0012: 			} else {
0013: 				return (UInt32) 0xbfc0203c;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc02054
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[8] = (UInt64) 0xbfc00000;
0008: 			Reg[8] = (UInt64) ((UInt32) Reg[8] + 0x24a8);
0009: 			Reg[0] = (UInt64) 0;
0010: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc02064);
0011: 			Reg[10] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[8] + 0x04), 0xbfc02068);
0012: 			Reg[11] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[9], 0xbfc0206c);
0013: 			Reg[8] = (UInt64) ((UInt32) Reg[8] + 0x08);
0014: 			Reg[11] = (UInt64) ((UInt32) Reg[11] & 0x1000);
0015: 			Reg[10] = (UInt64) ((UInt32) Reg[10] | (UInt32) Reg[11]);
0016: 			MMU.SetUInt32((UInt32) (UInt32) Reg[9], (UInt32) Reg[10], 0xbfc0207c);
0017: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc02080);
0018: 			Reg[10] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[8] + 0x04), 0xbfc02084);
0019: 			if(Reg[9] == 0) {
0020: 				Reg[0] = (UInt64) 0;
0021: 				return (UInt32) 0xbfc02098;
0022: 			} else {
0023: 				return (UInt32) 0xbfc0208c;
0024: 			}
0025: 		}
0026: 	}
0027: }
0028: 
Getting HW reg bf801010 [UInt32]
Setting HW reg bf801010 to 0015243f
Running bfc0208c
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			MMU.SetUInt32((UInt32) (UInt32) Reg[9], (UInt32) Reg[10], 0xbfc02090);
0008: 			if(Reg[0] == 0) {
0009: 				Reg[8] = (UInt64) ((UInt32) Reg[8] + 0x08);
0010: 				return (UInt32) 0xbfc0207c;
0011: 			} else {
0012: 				return (UInt32) 0xbfc02098;
0013: 			}
0014: 		}
0015: 	}
0016: }
0017: 
Setting HW reg bf801020 to 00001225
Running bfc0207c
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc02080);
0008: 			Reg[10] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[8] + 0x04), 0xbfc02084);
0009: 			if(Reg[9] == 0) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02098;
0012: 			} else {
0013: 				return (UInt32) 0xbfc0208c;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Setting HW reg bf80101c to 000000ff
Setting HW reg bf801004 to 1f802000
Setting HW reg bf80101c to 000d2077
Setting HW reg bf802070 to 000000fe
Setting HW reg bf801008 to 000000ff
Setting HW reg bf801000 to 1f000000
Setting HW reg bf801008 to 00142455
Setting HW reg bf801014 to 200931e1
Setting HW reg bf801018 to 00020843
Setting HW reg bf80100c to 00153044
Setting HW reg bf8010f0 to 07777777
Setting HW reg bf808268 to 40000000
Setting HW reg bf808240 to 06060a05
Setting HW reg bf808248 to 06060a05
Setting HW reg bf808250 to 06060a05
Setting HW reg bf808258 to 06060a05
Setting HW reg bf808244 to 00050400
Setting HW reg bf80824c to 00050400
Setting HW reg bf808254 to 00050400
Setting HW reg bf80825c to 00050400
Running bfc02098
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[3] = (UInt64) 0x01;
0008: 			Reg[1] = (UInt64) 0xbf800000;
0009: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[3], 0xbfc020a4);
0010: 			Reg[0] = (UInt64) 0;
0011: 			if(Reg[0] == 0) {
0012: 				Reg[0] = (UInt64) 0;
0013: 				return (UInt32) 0xbfc02104;
0014: 			} else {
0015: 				return (UInt32) 0xbfc020b0;
0016: 			}
0017: 		}
0018: 	}
0019: }
0020: 
Setting HW reg bf802070 to 01
Running bfc02104
COP0: 04
COP0: 04
COP0: 04
COP0: 04
COP0: 04
COP0: 04
COP0: 04
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[1] = (UInt64) 0;
0008: 			Reg[2] = (UInt64) 0;
0009: 			Reg[3] = (UInt64) 0;
0010: 			Reg[4] = (UInt64) 0;
0011: 			Reg[5] = (UInt64) 0;
0012: 			Reg[6] = (UInt64) 0;
0013: 			Reg[7] = (UInt64) 0;
0014: 			Reg[8] = (UInt64) 0;
0015: 			Reg[9] = (UInt64) 0;
0016: 			Reg[10] = (UInt64) 0;
0017: 			Reg[11] = (UInt64) 0;
0018: 			Reg[12] = (UInt64) 0;
0019: 			Reg[13] = (UInt64) 0;
0020: 			Reg[14] = (UInt64) 0;
0021: 			Reg[15] = (UInt64) 0;
0022: 			Reg[16] = (UInt64) 0;
0023: 			Reg[17] = (UInt64) 0;
0024: 			Reg[18] = (UInt64) 0;
0025: 			Reg[19] = (UInt64) 0;
0026: 			Reg[20] = (UInt64) 0;
0027: 			Reg[21] = (UInt64) 0;
0028: 			Reg[22] = (UInt64) 0;
0029: 			Reg[23] = (UInt64) 0;
0030: 			Reg[24] = (UInt64) 0;
0031: 			Reg[25] = (UInt64) 0;
0032: 			Reg[26] = (UInt64) 0;
0033: 			Reg[27] = (UInt64) 0;
0034: 			Reg[28] = (UInt64) 0;
0035: 			Reg[29] = (UInt64) 0;
0036: 			Reg[30] = (UInt64) 0;
0037: 			Reg[31] = (UInt64) 0;
0038: 			Reg[0] = (UInt64) 0;
0039: 			Reg[0] = (UInt64) 0;
0040: 			Reg[0] = (UInt64) 0;
0041: 			Reg[0] = (UInt64) 0;
0042: 			Reg[0] = (UInt64) 0;
0043: 			Reg[0] = (UInt64) 0;
0044: 			Reg[9] = (UInt64) 0x0cc4;
0045: 			Reg[1] = (UInt64) 0xfffe0000;
0046: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[1] + 0x0130), (UInt32) Reg[9], 0xbfc021bc);
0047: 			Reg[12] = (UInt64) 0x00010000;
0048: 			Reg[0] = (UInt64) 0;
0049: 			Reg[0] = (UInt64) 0;
0050: 			Reg[10] = (UInt64) 0;
0051: 			Reg[11] = (UInt64) 0x0f80;
0052: 			MMU.SetUInt32((UInt32) (UInt32) Reg[10], (UInt32) Reg[0], 0xbfc021d8);
0053: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x10), (UInt32) Reg[0], 0xbfc021dc);
0054: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x20), (UInt32) Reg[0], 0xbfc021e0);
0055: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x30), (UInt32) Reg[0], 0xbfc021e4);
0056: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x40), (UInt32) Reg[0], 0xbfc021e8);
0057: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x50), (UInt32) Reg[0], 0xbfc021ec);
0058: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x60), (UInt32) Reg[0], 0xbfc021f0);
0059: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x70), (UInt32) Reg[0], 0xbfc021f4);
0060: 			if((UInt32) Reg[10] != Reg[11]) {
0061: 				Reg[10] = (UInt64) ((UInt32) Reg[10] + 0x80);
0062: 				return (UInt32) 0xbfc021d4;
0063: 			} else {
0064: 				return (UInt32) 0xbfc021fc;
0065: 			}
0066: 		}
0067: 	}
0068: }
0069: 
Setting cache control: 00000cc4
Running bfc021d4
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			MMU.SetUInt32((UInt32) (UInt32) Reg[10], (UInt32) Reg[0], 0xbfc021d8);
0008: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x10), (UInt32) Reg[0], 0xbfc021dc);
0009: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x20), (UInt32) Reg[0], 0xbfc021e0);
0010: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x30), (UInt32) Reg[0], 0xbfc021e4);
0011: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x40), (UInt32) Reg[0], 0xbfc021e8);
0012: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x50), (UInt32) Reg[0], 0xbfc021ec);
0013: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x60), (UInt32) Reg[0], 0xbfc021f0);
0014: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x70), (UInt32) Reg[0], 0xbfc021f4);
0015: 			if((UInt32) Reg[10] != Reg[11]) {
0016: 				Reg[10] = (UInt64) ((UInt32) Reg[10] + 0x80);
0017: 				return (UInt32) 0xbfc021d4;
0018: 			} else {
0019: 				return (UInt32) 0xbfc021fc;
0020: 			}
0021: 		}
0022: 	}
0023: }
0024: 
Running bfc021fc
COP0: 04
COP0: 04
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[3] = (UInt64) 0x03;
0008: 			Reg[1] = (UInt64) 0xbf800000;
0009: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[3], 0xbfc02208);
0010: 			Reg[0] = (UInt64) 0;
0011: 			Reg[0] = (UInt64) 0;
0012: 			Reg[9] = (UInt64) 0x0cc0;
0013: 			Reg[1] = (UInt64) 0xfffe0000;
0014: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[1] + 0x0130), (UInt32) Reg[9], 0xbfc02220);
0015: 			Reg[0] = (UInt64) 0;
0016: 			Reg[0] = (UInt64) 0;
0017: 			Reg[10] = (UInt64) 0;
0018: 			Reg[11] = (UInt64) 0x0f80;
0019: 			MMU.SetUInt32((UInt32) (UInt32) Reg[10], (UInt32) Reg[0], 0xbfc02238);
0020: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x04), (UInt32) Reg[0], 0xbfc0223c);
0021: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x08), (UInt32) Reg[0], 0xbfc02240);
0022: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x0c), (UInt32) Reg[0], 0xbfc02244);
0023: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x10), (UInt32) Reg[0], 0xbfc02248);
0024: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x14), (UInt32) Reg[0], 0xbfc0224c);
0025: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x18), (UInt32) Reg[0], 0xbfc02250);
0026: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x1c), (UInt32) Reg[0], 0xbfc02254);
0027: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x20), (UInt32) Reg[0], 0xbfc02258);
0028: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x24), (UInt32) Reg[0], 0xbfc0225c);
0029: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x28), (UInt32) Reg[0], 0xbfc02260);
0030: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x2c), (UInt32) Reg[0], 0xbfc02264);
0031: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x30), (UInt32) Reg[0], 0xbfc02268);
0032: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x34), (UInt32) Reg[0], 0xbfc0226c);
0033: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x38), (UInt32) Reg[0], 0xbfc02270);
0034: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x3c), (UInt32) Reg[0], 0xbfc02274);
0035: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x40), (UInt32) Reg[0], 0xbfc02278);
0036: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x44), (UInt32) Reg[0], 0xbfc0227c);
0037: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x48), (UInt32) Reg[0], 0xbfc02280);
0038: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x4c), (UInt32) Reg[0], 0xbfc02284);
0039: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x50), (UInt32) Reg[0], 0xbfc02288);
0040: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x54), (UInt32) Reg[0], 0xbfc0228c);
0041: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x58), (UInt32) Reg[0], 0xbfc02290);
0042: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x5c), (UInt32) Reg[0], 0xbfc02294);
0043: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x60), (UInt32) Reg[0], 0xbfc02298);
0044: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x64), (UInt32) Reg[0], 0xbfc0229c);
0045: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x68), (UInt32) Reg[0], 0xbfc022a0);
0046: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x6c), (UInt32) Reg[0], 0xbfc022a4);
0047: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x70), (UInt32) Reg[0], 0xbfc022a8);
0048: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x74), (UInt32) Reg[0], 0xbfc022ac);
0049: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x78), (UInt32) Reg[0], 0xbfc022b0);
0050: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x7c), (UInt32) Reg[0], 0xbfc022b4);
0051: 			if((UInt32) Reg[10] != Reg[11]) {
0052: 				Reg[10] = (UInt64) ((UInt32) Reg[10] + 0x80);
0053: 				return (UInt32) 0xbfc02234;
0054: 			} else {
0055: 				return (UInt32) 0xbfc022bc;
0056: 			}
0057: 		}
0058: 	}
0059: }
0060: 
Setting HW reg bf802070 to 03
Setting cache control: 00000cc0
Running bfc02234
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			MMU.SetUInt32((UInt32) (UInt32) Reg[10], (UInt32) Reg[0], 0xbfc02238);
0008: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x04), (UInt32) Reg[0], 0xbfc0223c);
0009: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x08), (UInt32) Reg[0], 0xbfc02240);
0010: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x0c), (UInt32) Reg[0], 0xbfc02244);
0011: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x10), (UInt32) Reg[0], 0xbfc02248);
0012: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x14), (UInt32) Reg[0], 0xbfc0224c);
0013: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x18), (UInt32) Reg[0], 0xbfc02250);
0014: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x1c), (UInt32) Reg[0], 0xbfc02254);
0015: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x20), (UInt32) Reg[0], 0xbfc02258);
0016: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x24), (UInt32) Reg[0], 0xbfc0225c);
0017: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x28), (UInt32) Reg[0], 0xbfc02260);
0018: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x2c), (UInt32) Reg[0], 0xbfc02264);
0019: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x30), (UInt32) Reg[0], 0xbfc02268);
0020: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x34), (UInt32) Reg[0], 0xbfc0226c);
0021: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x38), (UInt32) Reg[0], 0xbfc02270);
0022: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x3c), (UInt32) Reg[0], 0xbfc02274);
0023: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x40), (UInt32) Reg[0], 0xbfc02278);
0024: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x44), (UInt32) Reg[0], 0xbfc0227c);
0025: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x48), (UInt32) Reg[0], 0xbfc02280);
0026: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x4c), (UInt32) Reg[0], 0xbfc02284);
0027: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x50), (UInt32) Reg[0], 0xbfc02288);
0028: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x54), (UInt32) Reg[0], 0xbfc0228c);
0029: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x58), (UInt32) Reg[0], 0xbfc02290);
0030: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x5c), (UInt32) Reg[0], 0xbfc02294);
0031: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x60), (UInt32) Reg[0], 0xbfc02298);
0032: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x64), (UInt32) Reg[0], 0xbfc0229c);
0033: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x68), (UInt32) Reg[0], 0xbfc022a0);
0034: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x6c), (UInt32) Reg[0], 0xbfc022a4);
0035: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x70), (UInt32) Reg[0], 0xbfc022a8);
0036: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x74), (UInt32) Reg[0], 0xbfc022ac);
0037: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x78), (UInt32) Reg[0], 0xbfc022b0);
0038: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[10] + 0x7c), (UInt32) Reg[0], 0xbfc022b4);
0039: 			if((UInt32) Reg[10] != Reg[11]) {
0040: 				Reg[10] = (UInt64) ((UInt32) Reg[10] + 0x80);
0041: 				return (UInt32) 0xbfc02234;
0042: 			} else {
0043: 				return (UInt32) 0xbfc022bc;
0044: 			}
0045: 		}
0046: 	}
0047: }
0048: 
Running bfc022bc
COP0: 04
COP0: 00
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[0] = (UInt64) 0;
0008: 			Reg[8] = (UInt64) 0xa0000000;
0009: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022cc);
0010: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022d0);
0011: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022d4);
0012: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022d8);
0013: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022dc);
0014: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022e0);
0015: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022e4);
0016: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc022e8);
0017: 			Reg[0] = (UInt64) 0;
0018: 			Reg[0] = (UInt64) 0;
0019: 			Reg[1] = (UInt64) (((UInt32) Reg[8] < 0x10) ? 1 : 0);
0020: 			if((UInt32) Reg[1] != Reg[0]) {
0021: 				Reg[0] = (UInt64) 0;
0022: 				return (UInt32) 0xbfc02318;
0023: 			} else {
0024: 				return (UInt32) 0xbfc02300;
0025: 			}
0026: 		}
0027: 	}
0028: }
0029: 
Running bfc02300
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[8] = (UInt64) 0xbf800000;
0008: 			Reg[8] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[8] + 0x1450), 0xbfc02308);
0009: 			Reg[0] = (UInt64) 0;
0010: 			Reg[8] = (UInt64) ((UInt32) Reg[8] & 0x08);
0011: 			if((UInt32) Reg[8] == Reg[0]) {
0012: 				Reg[0] = (UInt64) 0;
0013: 				return (UInt32) 0xbfc02328;
0014: 			} else {
0015: 				return (UInt32) 0xbfc02318;
0016: 			}
0017: 		}
0018: 	}
0019: }
0020: 
Getting HW reg bf801450 [UInt32]
Running bfc02328
COP0: 04
COP0: 04
COP0: 00
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[9] = (UInt64) 0x00010000;
0008: 			Reg[9] = (UInt64) ((UInt32) Reg[9] ^ 0xedd8);
0009: 			Reg[1] = (UInt64) 0xfffe0000;
0010: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[1] + 0x0130), (UInt32) Reg[9], 0xbfc02338);
0011: 			Reg[3] = (UInt64) 0x04;
0012: 			Reg[1] = (UInt64) 0xbf800000;
0013: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[3], 0xbfc02344);
0014: 			Reg[0] = (UInt64) 0;
0015: 			Reg[0] = (UInt64) 0;
0016: 			Reg[0] = (UInt64) 0;
0017: 			Reg[3] = (UInt64) 0x05;
0018: 			Reg[1] = (UInt64) 0xbf800000;
0019: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[3], 0xbfc02364);
0020: 			Reg[0] = (UInt64) 0;
0021: 			Reg[0] = (UInt64) 0;
0022: 			Reg[1] = (UInt64) (((UInt32) Reg[8] < 0x10) ? 1 : 0);
0023: 			if((UInt32) Reg[1] != Reg[0]) {
0024: 				Reg[8] = (UInt64) 0xbf800000;
0025: 				return (UInt32) 0xbfc02390;
0026: 			} else {
0027: 				return (UInt32) 0xbfc0237c;
0028: 			}
0029: 		}
0030: 	}
0031: }
0032: 
Setting cache control: 0001edd8
Setting HW reg bf802070 to 04
Setting HW reg bf802070 to 05
Running bfc02390
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[8] = (UInt64) 0x06;
0008: 			Reg[1] = (UInt64) 0xbf800000;
0009: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[8], 0xbfc0239c);
0010: 			Reg[8] = (UInt64) 0xbfc00000;
0011: 			Reg[8] = (UInt64) ((UInt32) Reg[8] + 0x24a0);
0012: 			Reg[9] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[8] + 0x04), 0xbfc023a8);
0013: 			Reg[16] = (UInt64) MMU.GetUInt8((UInt32) ((UInt32) Reg[8] + 0x02), 0xbfc023ac);
0014: 			Reg[1] = (UInt64) 0xbf800000;
0015: 			MMU.SetUInt32((UInt32) ((UInt32) Reg[1] + 0x1060), (UInt32) Reg[9], 0xbfc023b4);
0016: 			Reg[8] = (UInt64) 0x07;
0017: 			Reg[1] = (UInt64) 0xbf800000;
0018: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[8], 0xbfc023c0);
0019: 			Reg[4] = (UInt64) 0xbfc00000;
0020: 			Reg[5] = (UInt64) 0xbfc80000;
0021: 			Reg[6] = (UInt64) 0xbfc00000;
0022: 			Reg[6] = (UInt64) ((UInt32) Reg[6] + 0x2488);
0023: 			Reg[31] = (UInt64) 0xbfc023d8;
0024: 			Reg[0] = (UInt64) 0;
0025: 			return (UInt32) 0xbfc02640;
0026: 		}
0027: 	}
0028: }
0029: 
Setting HW reg bf802070 to 06
Setting HW reg bf801060 to 00002bbd
Setting HW reg bf802070 to 07
Running bfc02640
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[8] = (UInt64) (UInt32) Reg[4];
0008: 			Reg[2] = (UInt64) (((UInt32) Reg[8] < (UInt32) Reg[5]) ? 1 : 0);
0009: 			if((UInt32) Reg[2] == Reg[0]) {
0010: 				Reg[10] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02728;
0012: 			} else {
0013: 				return (UInt32) 0xbfc02650;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc02650
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[13] = (UInt64) 0x45530000;
0008: 			Reg[13] = (UInt64) ((UInt32) Reg[13] ^ 0x4552);
0009: 			Reg[14] = (UInt64) 0x54;
0010: 			Reg[12] = (UInt64) 0xfff0;
0011: 			Reg[9] = (UInt64) ((UInt32) Reg[8] + 0x0c);
0012: 			Reg[2] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc02668);
0013: 			Reg[0] = (UInt64) 0;
0014: 			if((UInt32) Reg[2] != Reg[13]) {
0015: 				Reg[0] = (UInt64) 0;
0016: 				return (UInt32) 0xbfc02714;
0017: 			} else {
0018: 				return (UInt32) 0xbfc02674;
0019: 			}
0020: 		}
0021: 	}
0022: }
0023: 
Running bfc02714
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[9] = (UInt64) ((UInt32) Reg[9] + 0x10);
0008: 			Reg[8] = (UInt64) ((UInt32) Reg[8] + 0x10);
0009: 			Reg[2] = (UInt64) (((UInt32) Reg[8] < (UInt32) Reg[5]) ? 1 : 0);
0010: 			if((UInt32) Reg[2] != Reg[0]) {
0011: 				Reg[10] = (UInt64) ((UInt32) Reg[10] + 0x10);
0012: 				return (UInt32) 0xbfc02664;
0013: 			} else {
0014: 				return (UInt32) 0xbfc02728;
0015: 			}
0016: 		}
0017: 	}
0018: }
0019: 
Running bfc02664
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[2] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[8], 0xbfc02668);
0008: 			Reg[0] = (UInt64) 0;
0009: 			if((UInt32) Reg[2] != Reg[13]) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02714;
0012: 			} else {
0013: 				return (UInt32) 0xbfc02674;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc02674
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[2] = (UInt64) MMU.GetUInt32((UInt32) ((UInt32) Reg[9] + -8), 0xbfc02678);
0008: 			Reg[0] = (UInt64) 0;
0009: 			if((UInt32) Reg[2] != Reg[14]) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02714;
0012: 			} else {
0013: 				return (UInt32) 0xbfc02684;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc02684
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[2] = (UInt64) MMU.GetUInt16((UInt32) ((UInt32) Reg[9] + -4), 0xbfc02688);
0008: 			Reg[0] = (UInt64) 0;
0009: 			if((UInt32) Reg[2] != Reg[0]) {
0010: 				Reg[0] = (UInt64) 0;
0011: 				return (UInt32) 0xbfc02714;
0012: 			} else {
0013: 				return (UInt32) 0xbfc02694;
0014: 			}
0015: 		}
0016: 	}
0017: }
0018: 
Running bfc02694
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[2] = (UInt64) MMU.GetUInt32((UInt32) (UInt32) Reg[9], 0xbfc02698);
0008: 			Reg[0] = (UInt64) 0;
0009: 			Reg[2] = (UInt64) ((UInt32) Reg[2] + 0x0f);
0010: 			Reg[2] = (UInt64) ((UInt32) Reg[2] & (UInt32) Reg[12]);
0011: 			if((UInt32) Reg[2] != Reg[10]) {
0012: 				Reg[0] = (UInt64) 0;
0013: 				return (UInt32) 0xbfc02714;
0014: 			} else {
0015: 				return (UInt32) 0xbfc026ac;
0016: 			}
0017: 		}
0018: 	}
0019: }
0020: 
Running bfc02728
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[2] = (UInt64) 0;
0008: 			return (UInt32) (UInt32) Reg[31];
0009: 		}
0010: 	}
0011: }
0012: 
Running bfc023d8
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			if((UInt32) Reg[2] == Reg[0]) {
0008: 				Reg[0] = (UInt64) 0;
0009: 				return (UInt32) 0xbfc02454;
0010: 			} else {
0011: 				return (UInt32) 0xbfc023e0;
0012: 			}
0013: 		}
0014: 	}
0015: }
0016: 
Running bfc02454
0001: using System;
0002: using IronBabelCS.Interfaces;
0003: 
0004: namespace IronBabel.Decompiled {
0005: 	class Decompiled {
0006: 		public static UInt32 Func(UInt64[] Reg, IMMU<UInt32> MMU, IBox Box) {
0007: 			Reg[0] = (UInt64) 0;
0008: 			Reg[0] = (UInt64) 0;
0009: 			Reg[3] = (UInt64) 0xfa;
0010: 			Reg[1] = (UInt64) 0xbf800000;
0011: 			MMU.SetUInt8((UInt32) ((UInt32) Reg[1] + 0x2070), (Byte) Reg[3], 0xbfc02468);
0012: 			Reg[0] = (UInt64) 0;
0013: 			if(Reg[0] == 0) {
0014: 				Reg[0] = (UInt64) 0;
0015: 				return (UInt32) 0xbfc02454;
0016: 			} else {
0017: 				return (UInt32) 0xbfc02474;
0018: 			}
0019: 		}
0020: 	}
0021: }
0022: