.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8025DCC0 func_8025DCC0: /* 8025DCC0 00259920 38 04 00 01 */ addi r0, r4, 1 /* 8025DCC4 00259924 38 A0 00 00 */ li r5, 0 /* 8025DCC8 00259928 54 00 F8 7E */ srwi r0, r0, 1 /* 8025DCCC 0025992C 7C 09 03 A6 */ mtctr r0 /* 8025DCD0 00259930 2C 04 00 00 */ cmpwi r4, 0 /* 8025DCD4 00259934 40 81 00 2C */ ble lbl_8025DD00 lbl_8025DCD8: /* 8025DCD8 00259938 A0 83 00 00 */ lhz r4, 0(r3) /* 8025DCDC 0025993C 54 A0 04 3E */ clrlwi r0, r5, 0x10 /* 8025DCE0 00259940 38 63 00 02 */ addi r3, r3, 2 /* 8025DCE4 00259944 7C A5 22 14 */ add r5, r5, r4 /* 8025DCE8 00259948 54 A4 04 3E */ clrlwi r4, r5, 0x10 /* 8025DCEC 0025994C 7C 00 20 40 */ cmplw r0, r4 /* 8025DCF0 00259950 40 81 00 0C */ ble lbl_8025DCFC /* 8025DCF4 00259954 38 04 00 01 */ addi r0, r4, 1 /* 8025DCF8 00259958 54 05 04 3E */ clrlwi r5, r0, 0x10 lbl_8025DCFC: /* 8025DCFC 0025995C 42 00 FF DC */ bdnz lbl_8025DCD8 lbl_8025DD00: /* 8025DD00 00259960 7C A0 28 F8 */ nor r0, r5, r5 /* 8025DD04 00259964 54 03 04 3E */ clrlwi r3, r0, 0x10 /* 8025DD08 00259968 4E 80 00 20 */ blr .global func_8025DD0C func_8025DD0C: /* 8025DD0C 0025996C 90 83 00 00 */ stw r4, 0(r3) /* 8025DD10 00259970 4E 80 00 20 */ blr .global func_8025DD14 func_8025DD14: /* 8025DD14 00259974 3C 80 41 C6 */ lis r4, 0x41C64E6D@ha /* 8025DD18 00259978 80 A3 00 00 */ lwz r5, 0(r3) /* 8025DD1C 0025997C 38 04 4E 6D */ addi r0, r4, 0x41C64E6D@l /* 8025DD20 00259980 7C 85 01 D6 */ mullw r4, r5, r0 /* 8025DD24 00259984 38 04 30 39 */ addi r0, r4, 0x3039 /* 8025DD28 00259988 90 03 00 00 */ stw r0, 0(r3) /* 8025DD2C 0025998C 54 03 04 3E */ clrlwi r3, r0, 0x10 /* 8025DD30 00259990 4E 80 00 20 */ blr .global func_8025DD34 func_8025DD34: /* 8025DD34 00259994 B0 83 00 0A */ sth r4, 0xa(r3) /* 8025DD38 00259998 4E 80 00 20 */ blr .global func_8025DD3C func_8025DD3C: /* 8025DD3C 0025999C B0 83 00 08 */ sth r4, 8(r3) /* 8025DD40 002599A0 4E 80 00 20 */ blr .global func_8025DD44 func_8025DD44: /* 8025DD44 002599A4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8025DD48 002599A8 7C 08 02 A6 */ mflr r0 /* 8025DD4C 002599AC 90 01 00 34 */ stw r0, 0x34(r1) /* 8025DD50 002599B0 39 61 00 30 */ addi r11, r1, 0x30 /* 8025DD54 002599B4 4B F6 93 CD */ bl _savegpr_25 /* 8025DD58 002599B8 7C 9D 23 78 */ mr r29, r4 /* 8025DD5C 002599BC 7C BE 2B 78 */ mr r30, r5 /* 8025DD60 002599C0 7C 7C 1B 78 */ mr r28, r3 /* 8025DD64 002599C4 7C DF 33 78 */ mr r31, r6 /* 8025DD68 002599C8 7C F9 3B 78 */ mr r25, r7 /* 8025DD6C 002599CC 7F A3 EB 78 */ mr r3, r29 /* 8025DD70 002599D0 7F C4 F3 78 */ mr r4, r30 /* 8025DD74 002599D4 4B FF FF 4D */ bl func_8025DCC0 /* 8025DD78 002599D8 38 9E 00 01 */ addi r4, r30, 1 /* 8025DD7C 002599DC 7C 7B 1B 78 */ mr r27, r3 /* 8025DD80 002599E0 54 80 0F FE */ srwi r0, r4, 0x1f /* 8025DD84 002599E4 7C 00 22 14 */ add r0, r0, r4 /* 8025DD88 002599E8 54 03 00 3C */ rlwinm r3, r0, 0, 0, 0x1e /* 8025DD8C 002599EC 38 03 00 04 */ addi r0, r3, 4 /* 8025DD90 002599F0 7C 19 00 00 */ cmpw r25, r0 /* 8025DD94 002599F4 40 80 00 0C */ bge lbl_8025DDA0 /* 8025DD98 002599F8 38 60 00 00 */ li r3, 0 /* 8025DD9C 002599FC 48 00 00 90 */ b lbl_8025DE2C lbl_8025DDA0: /* 8025DDA0 00259A00 A0 9C 00 08 */ lhz r4, 8(r28) /* 8025DDA4 00259A04 7F 83 E3 78 */ mr r3, r28 /* 8025DDA8 00259A08 4B FF FF 65 */ bl func_8025DD0C /* 8025DDAC 00259A0C A0 7C 00 08 */ lhz r3, 8(r28) /* 8025DDB0 00259A10 3B 40 00 02 */ li r26, 2 /* 8025DDB4 00259A14 A0 1C 00 0A */ lhz r0, 0xa(r28) /* 8025DDB8 00259A18 7C 60 02 78 */ xor r0, r3, r0 /* 8025DDBC 00259A1C B0 1C 00 08 */ sth r0, 8(r28) /* 8025DDC0 00259A20 B0 1F 00 00 */ sth r0, 0(r31) /* 8025DDC4 00259A24 3B FF 00 02 */ addi r31, r31, 2 /* 8025DDC8 00259A28 48 00 00 3C */ b lbl_8025DE04 lbl_8025DDCC: /* 8025DDCC 00259A2C A3 3D 00 00 */ lhz r25, 0(r29) /* 8025DDD0 00259A30 7F 83 E3 78 */ mr r3, r28 /* 8025DDD4 00259A34 3B BD 00 02 */ addi r29, r29, 2 /* 8025DDD8 00259A38 4B FF FF 3D */ bl func_8025DD14 /* 8025DDDC 00259A3C A0 9C 00 08 */ lhz r4, 8(r28) /* 8025DDE0 00259A40 7F 39 1A 78 */ xor r25, r25, r3 /* 8025DDE4 00259A44 38 7A 00 02 */ addi r3, r26, 2 /* 8025DDE8 00259A48 38 1E FF FE */ addi r0, r30, -2 /* 8025DDEC 00259A4C 7F 39 22 78 */ xor r25, r25, r4 /* 8025DDF0 00259A50 B3 3F 00 00 */ sth r25, 0(r31) /* 8025DDF4 00259A54 54 7A 04 3E */ clrlwi r26, r3, 0x10 /* 8025DDF8 00259A58 54 1E 04 3E */ clrlwi r30, r0, 0x10 /* 8025DDFC 00259A5C 3B FF 00 02 */ addi r31, r31, 2 /* 8025DE00 00259A60 B3 3C 00 08 */ sth r25, 8(r28) lbl_8025DE04: /* 8025DE04 00259A64 2C 1E 00 00 */ cmpwi r30, 0 /* 8025DE08 00259A68 40 82 FF C4 */ bne lbl_8025DDCC /* 8025DE0C 00259A6C 7F 83 E3 78 */ mr r3, r28 /* 8025DE10 00259A70 4B FF FF 05 */ bl func_8025DD14 /* 8025DE14 00259A74 A0 9C 00 08 */ lhz r4, 8(r28) /* 8025DE18 00259A78 7F 63 1A 78 */ xor r3, r27, r3 /* 8025DE1C 00259A7C 38 1A 00 02 */ addi r0, r26, 2 /* 8025DE20 00259A80 7C 63 22 78 */ xor r3, r3, r4 /* 8025DE24 00259A84 B0 7F 00 00 */ sth r3, 0(r31) /* 8025DE28 00259A88 54 03 04 3E */ clrlwi r3, r0, 0x10 lbl_8025DE2C: /* 8025DE2C 00259A8C 39 61 00 30 */ addi r11, r1, 0x30 /* 8025DE30 00259A90 4B F6 93 3D */ bl _restgpr_25 /* 8025DE34 00259A94 80 01 00 34 */ lwz r0, 0x34(r1) /* 8025DE38 00259A98 7C 08 03 A6 */ mtlr r0 /* 8025DE3C 00259A9C 38 21 00 30 */ addi r1, r1, 0x30 /* 8025DE40 00259AA0 4E 80 00 20 */ blr .global func_8025DE44 func_8025DE44: /* 8025DE44 00259AA4 94 21 FF D0 */ stwu r1, -0x30(r1) /* 8025DE48 00259AA8 7C 08 02 A6 */ mflr r0 /* 8025DE4C 00259AAC 90 01 00 34 */ stw r0, 0x34(r1) /* 8025DE50 00259AB0 39 61 00 30 */ addi r11, r1, 0x30 /* 8025DE54 00259AB4 4B F6 92 CD */ bl _savegpr_25 /* 8025DE58 00259AB8 2C 06 00 04 */ cmpwi r6, 4 /* 8025DE5C 00259ABC 7C BB 2B 78 */ mr r27, r5 /* 8025DE60 00259AC0 7C 79 1B 78 */ mr r25, r3 /* 8025DE64 00259AC4 7C 9A 23 78 */ mr r26, r4 /* 8025DE68 00259AC8 7C DC 33 78 */ mr r28, r6 /* 8025DE6C 00259ACC 7F 7D DB 78 */ mr r29, r27 /* 8025DE70 00259AD0 40 80 00 0C */ bge lbl_8025DE7C /* 8025DE74 00259AD4 38 60 00 00 */ li r3, 0 /* 8025DE78 00259AD8 48 00 00 D0 */ b lbl_8025DF48 lbl_8025DE7C: /* 8025DE7C 00259ADC A0 84 00 00 */ lhz r4, 0(r4) /* 8025DE80 00259AE0 3B 5A 00 02 */ addi r26, r26, 2 /* 8025DE84 00259AE4 A0 03 00 0A */ lhz r0, 0xa(r3) /* 8025DE88 00259AE8 7C 84 02 78 */ xor r4, r4, r0 /* 8025DE8C 00259AEC B0 83 00 08 */ sth r4, 8(r3) /* 8025DE90 00259AF0 4B FF FE 7D */ bl func_8025DD0C /* 8025DE94 00259AF4 A0 79 00 08 */ lhz r3, 8(r25) /* 8025DE98 00259AF8 3B DC FF FC */ addi r30, r28, -4 /* 8025DE9C 00259AFC A0 19 00 0A */ lhz r0, 0xa(r25) /* 8025DEA0 00259B00 7C 60 02 78 */ xor r0, r3, r0 /* 8025DEA4 00259B04 B0 19 00 08 */ sth r0, 8(r25) /* 8025DEA8 00259B08 48 00 00 30 */ b lbl_8025DED8 lbl_8025DEAC: /* 8025DEAC 00259B0C A0 9A 00 00 */ lhz r4, 0(r26) /* 8025DEB0 00259B10 7F 23 CB 78 */ mr r3, r25 /* 8025DEB4 00259B14 A0 19 00 08 */ lhz r0, 8(r25) /* 8025DEB8 00259B18 3B 5A 00 02 */ addi r26, r26, 2 /* 8025DEBC 00259B1C B0 99 00 08 */ sth r4, 8(r25) /* 8025DEC0 00259B20 7C 9F 02 78 */ xor r31, r4, r0 /* 8025DEC4 00259B24 4B FF FE 51 */ bl func_8025DD14 /* 8025DEC8 00259B28 7F E0 1A 78 */ xor r0, r31, r3 /* 8025DECC 00259B2C 3B DE FF FE */ addi r30, r30, -2 /* 8025DED0 00259B30 B0 1B 00 00 */ sth r0, 0(r27) /* 8025DED4 00259B34 3B 7B 00 02 */ addi r27, r27, 2 lbl_8025DED8: /* 8025DED8 00259B38 2C 1E 00 00 */ cmpwi r30, 0 /* 8025DEDC 00259B3C 41 81 FF D0 */ bgt lbl_8025DEAC /* 8025DEE0 00259B40 A0 9A 00 00 */ lhz r4, 0(r26) /* 8025DEE4 00259B44 7F 23 CB 78 */ mr r3, r25 /* 8025DEE8 00259B48 A0 19 00 08 */ lhz r0, 8(r25) /* 8025DEEC 00259B4C 7C 9F 02 78 */ xor r31, r4, r0 /* 8025DEF0 00259B50 4B FF FE 25 */ bl func_8025DD14 /* 8025DEF4 00259B54 7F E0 1A 78 */ xor r0, r31, r3 /* 8025DEF8 00259B58 3B FC FF FC */ addi r31, r28, -4 /* 8025DEFC 00259B5C 7F A3 EB 78 */ mr r3, r29 /* 8025DF00 00259B60 7F E4 FB 78 */ mr r4, r31 /* 8025DF04 00259B64 54 1E 04 3E */ clrlwi r30, r0, 0x10 /* 8025DF08 00259B68 4B FF FD B9 */ bl func_8025DCC0 /* 8025DF0C 00259B6C 54 60 04 3E */ clrlwi r0, r3, 0x10 /* 8025DF10 00259B70 7C 1E 00 40 */ cmplw r30, r0 /* 8025DF14 00259B74 41 82 00 30 */ beq lbl_8025DF44 /* 8025DF18 00259B78 7F A3 EB 78 */ mr r3, r29 /* 8025DF1C 00259B7C 7F E4 FB 78 */ mr r4, r31 /* 8025DF20 00259B80 4B FF FD A1 */ bl func_8025DCC0 /* 8025DF24 00259B84 3C C0 80 42 */ lis r6, lbl_804255A8@ha /* 8025DF28 00259B88 54 64 04 3E */ clrlwi r4, r3, 0x10 /* 8025DF2C 00259B8C 7F C5 F3 78 */ mr r5, r30 /* 8025DF30 00259B90 38 66 55 A8 */ addi r3, r6, lbl_804255A8@l /* 8025DF34 00259B94 4C C6 31 82 */ crclr 6 /* 8025DF38 00259B98 4B DA 9B 8D */ bl OSReport /* 8025DF3C 00259B9C 38 60 00 00 */ li r3, 0 /* 8025DF40 00259BA0 48 00 00 08 */ b lbl_8025DF48 lbl_8025DF44: /* 8025DF44 00259BA4 57 E3 04 3E */ clrlwi r3, r31, 0x10 lbl_8025DF48: /* 8025DF48 00259BA8 39 61 00 30 */ addi r11, r1, 0x30 /* 8025DF4C 00259BAC 4B F6 92 21 */ bl _restgpr_25 /* 8025DF50 00259BB0 80 01 00 34 */ lwz r0, 0x34(r1) /* 8025DF54 00259BB4 7C 08 03 A6 */ mtlr r0 /* 8025DF58 00259BB8 38 21 00 30 */ addi r1, r1, 0x30 /* 8025DF5C 00259BBC 4E 80 00 20 */ blr .global func_8025DF60 func_8025DF60: /* 8025DF60 00259BC0 38 A0 00 01 */ li r5, 1 /* 8025DF64 00259BC4 38 6D A6 C8 */ addi r3, r13, lbl_8063F988-_SDA_BASE_ /* 8025DF68 00259BC8 38 80 00 04 */ li r4, 4 /* 8025DF6C 00259BCC 38 00 00 00 */ li r0, 0 /* 8025DF70 00259BD0 98 AD A6 C8 */ stb r5, lbl_8063F988-_SDA_BASE_(r13) /* 8025DF74 00259BD4 B0 83 00 02 */ sth r4, 2(r3) /* 8025DF78 00259BD8 98 03 00 04 */ stb r0, 4(r3) /* 8025DF7C 00259BDC 4E 80 00 20 */ blr