80253720: 27 bd ff d0 ADDIU sp, sp, 0xffffffd0 (-48) 80253724: af bf 00 1c SW ra, sp, 0x1c (28) 80253728: af a4 00 30 SW a0, sp, 0x30 (48) arg1 === [sp + 0x30] /* obviously a pointer */ 8025372c: af b0 00 18 SW s0, sp, 0x18 (24) 80253730: 3c 0e 80 33 LUI t6, 0x8033 (32819) 80253734: 81 ce d5 98 LB t6, t6, 0xffffd598 (-10856) 80253738: 11 c0 00 38 BEQ r0, t6, 0x8025381c (pc + 0xe0) if (!*(0x8032d598)) return; 8025373c: 00 00 00 00 NOP 80253740: 8f af 00 30 LW t7, sp, 0x30 (48) t7 = arg1 80253744: 8d f8 00 68 LW t8, t7, 0x68 (104) t8 = arg1->off0x68 80253748: c7 04 00 1c LWC1 f4, t8, 0x1c (28) f4 = arg1->off0x68->off0x1c 8025374c: c7 08 00 24 LWC1 f8, t8, 0x24 (36) f8 = arg1->off0x68->off0x24 80253750: 46 04 21 82 MUL.S f6, f4, f4 80253754: 00 00 00 00 NOP 80253758: 46 08 42 82 MUL.S f10, f8, f8 8025375c: 0c 0c 8e 94 JAL 0x80323a50 (-2144191920) [sp + 0x2c] = 0x80323a50(arg1->off0x68->off0x1c*arg1->off0x68->off0x1c + arg1->off0x68->off0x24*arg1->off0x68->off0x24); 80253760: 46 0a 33 00 ADD.S f12, f6, f10 80253764: e7 a0 00 2c SWC1 f0, sp, 0x2c (44) 80253768: 8f b9 00 30 LW t9, sp, 0x30 (48) t9 = arg1 8025376c: 8f 28 00 68 LW t0, t9, 0x68 (104) t0 = arg1->off0x68 80253770: c5 10 00 20 LWC1 f16, t0, 0x20 (32) f16 = arg1->off0x68->off0x20 80253774: e7 b0 00 28 SWC1 f16, sp, 0x28 (40) [sp + 0x28] = arg1->off0x68->off0x20; 80253778: c7 ac 00 28 LWC1 f12, sp, 0x28 (40) 8025377c: 0c 0d ea 6a JAL 0x8037a9a8 (-2143835736) v0 = 0x8037a9a8([sp + 0x28], [sp + 0x2c]) 80253780: c7 ae 00 2c LWC1 f14, sp, 0x2c (44) 80253784: 00 02 84 00 SLL s0, v0, 0x10 (16) s0 = v0 << 16 80253788: 00 10 4c 03 SRA t1, s0, 0x10 (16) t1 = ((signed int)(unsigned short)v0) 000000 00000 10000 01001 10000 000011 8025378c: 01 20 80 25 OR s0, t1, r0 s0 = (v0 << 16) >> 16 80253790: 44 90 90 00 MTC1 s0, f18 f18 = ((signed int)(unsigned short)v0) 80253794: 3c 01 43 34 LUI at, 0x4334 (17204) 80253798: 44 81 40 00 MTC1 at, f8 f8 = 0x43340000 (180.0) 0 10000110 (1)0110100.0000000000000000 8025379c: 46 80 91 20 CVT.S.W f4, f18 f4 = ((float)(signed int)(unsigned short)v0) 802537a0: 3c 01 47 00 LUI at, 0x4700 (18176) 802537a4: 44 81 50 00 MTC1 at, f10 f10 = 0x47000000 (32768.0) 0 10001110 (1)000000000000000.00000000 802537a8: 3c 06 80 33 LUI a2, 0x8033 (32819) 802537ac: 24 c6 64 20 ADDIU a2, a2, 0x6420 (25632) 802537b0: 24 04 00 d2 ADDIU a0, r0, 0xd2 (210) 802537b4: 46 08 21 82 MUL.S f6, f4, f8 f6 = ((float)(signed int)(unsigned short)v0) * 180.0 802537b8: 24 05 00 58 ADDIU a1, r0, 0x58 (88) 802537bc: 46 0a 34 03 DIV.S f16, f6, f10 f16 = ((float)(signed int)(unsigned short)v0) * 180.0 / 32768.0 802537c0: 46 00 84 8d TRUNC.W.S f18, f16 802537c4: 44 07 90 00 MFC1 a3, f18 802537c8: 0c 0b 58 b6 JAL 0x802d62d8 (-2144509224) 0x802d62d8(210, 88, 0x80336420 /* "ANG %d" */, 0x8037a9a8([sp + 0x28], [sp + 0x2c]) * 180.0 / 32768.0); 802537cc: 00 00 00 00 NOP 802537d0: 8f ab 00 30 LW t3, sp, 0x30 (48) t3 = [sp + 0x30] 802537d4: 3c 06 80 33 LUI a2, 0x8033 (32819) 802537d8: 24 c6 64 28 ADDIU a2, a2, 0x6428 (25640) 802537dc: c5 64 00 54 LWC1 f4, t3, 0x54 (84) f4 = [sp + 0x30]->off0x54 802537e0: 24 04 00 d2 ADDIU a0, r0, 0xd2 (210) 802537e4: 24 05 00 48 ADDIU a1, r0, 0x48 (72) 802537e8: 46 00 22 0d TRUNC.W.S f8, f4 f8 = (int)([sp + 0x30]->off0x54) 802537ec: 44 07 40 00 MFC1 a3, f8 802537f0: 0c 0b 58 b6 JAL 0x802d62d8 (-2144509224) 0x802d62d8(210, 72, 0x80336428 /* "SPD %d" */, (int)(arg1->off0x54)); 802537f4: 00 00 00 00 NOP 802537f8: 8f ad 00 30 LW t5, sp, 0x30 (48) t5 = [sp + 0x30] 802537fc: 3c 06 80 33 LUI a2, 0x8033 (32819) 80253800: 24 c6 64 30 ADDIU a2, a2, 0x6430 (25648) a2 = 0x80336430 80253804: 8d a7 00 0c LW a3, t5, 0xc (12) a3 = [sp + 0x30]->off0xc 80253808: 24 04 00 d2 ADDIU a0, r0, 0xd2 (210) 8025380c: 24 05 00 38 ADDIU a1, r0, 0x38 (56) 80253810: 30 ee 01 ff ANDI t6, a3, 0x1ff (511) t6 = [sp + 0x30]->off0xc & 0x1ff 80253814: 0c 0b 58 b6 JAL 0x802d62d8 (-2144509224) 0x802d62d8(210, 56, 0x80336430 /* "STA %x" */, arg1->off0xc & 0x1ff); 80253818: 01 c0 38 25 OR a3, t6, r0 8025381c: 10 00 00 01 BEQ r0, r0, 0x80253824 (pc + 0x4) 80253820: 00 00 00 00 NOP 80253824: 8f bf 00 1c LW ra, sp, 0x1c (28) 80253828: 8f b0 00 18 LW s0, sp, 0x18 (24) 8025382c: 27 bd 00 30 ADDIU sp, sp, 0x30 (48) 80253830: 03 e0 00 08 JR ra 80253834: 00 00 00 00 NOP void 0x80253720(struct ??? *arg1) { if (*(0x8032d598)) { local1 = 0x80323a50(arg1->off0x68->off0x1c*arg1->off0x68->off0x1c + arg1->off0x68->off0x24*arg1->off0x68->off0x24); local2 = arg1->off0x68->off0x20; 0x802d62d8(210, 88, 0x80336420 /* "ANG %d" */, 0x8037a9a8(local2, local1) * 180.0 / 32768.0); 0x802d62d8(210, 72, 0x80336428 /* "SPD %d" */, (int)(arg1->off0x54)); 0x802d62d8(210, 56, 0x80336430 /* "STA %x" */, arg1->off0xc & 0x1ff); } } void 0x80253720(struct ??? *arg1) { float local1; float local2; if (*(0x8032d598)) { local1 = 0x80323a50(arg1->off0x68->off0x1c*arg1->off0x68->off0x1c + arg1->off0x68->off0x24*arg1->off0x68->off0x24); local2 = arg1->off0x68->off0x20; 0x802d62d8(210, 88, "ANG %d", 0x8037a9a8(local2, local1) * 180.0 / 32768.0); 0x802d62d8(210, 72, "SPD %d", (int)(arg1->off0x54)); 0x802d62d8(210, 56, "STA %x", arg1->off0xc & 0x1ff); } }