summaryrefslogtreecommitdiff
path: root/asm/code_80032E60.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/code_80032E60.s')
-rw-r--r--asm/code_80032E60.s131
1 files changed, 131 insertions, 0 deletions
diff --git a/asm/code_80032E60.s b/asm/code_80032E60.s
new file mode 100644
index 0000000..c706961
--- /dev/null
+++ b/asm/code_80032E60.s
@@ -0,0 +1,131 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_80032E60
+func_80032E60:
+/* 80032E60 0002EAC0 4E 80 00 20 */ blr
+
+.global func_80032E64
+func_80032E64:
+/* 80032E64 0002EAC4 A0 A4 00 00 */ lhz r5, 0(r4)
+/* 80032E68 0002EAC8 38 04 00 08 */ addi r0, r4, 8
+/* 80032E6C 0002EACC 38 C0 00 00 */ li r6, 0
+/* 80032E70 0002EAD0 90 A3 00 00 */ stw r5, 0(r3)
+/* 80032E74 0002EAD4 90 03 00 04 */ stw r0, 4(r3)
+/* 80032E78 0002EAD8 48 00 00 34 */ b lbl_80032EAC
+lbl_80032E7C:
+/* 80032E7C 0002EADC 7C 04 02 14 */ add r0, r4, r0
+/* 80032E80 0002EAE0 7C 05 31 2E */ stwx r0, r5, r6
+/* 80032E84 0002EAE4 80 A3 00 04 */ lwz r5, 4(r3)
+/* 80032E88 0002EAE8 7C A5 30 2E */ lwzx r5, r5, r6
+/* 80032E8C 0002EAEC 48 00 00 10 */ b lbl_80032E9C
+lbl_80032E90:
+/* 80032E90 0002EAF0 7C 04 02 14 */ add r0, r4, r0
+/* 80032E94 0002EAF4 90 05 00 00 */ stw r0, 0(r5)
+/* 80032E98 0002EAF8 38 A5 00 04 */ addi r5, r5, 4
+lbl_80032E9C:
+/* 80032E9C 0002EAFC 80 05 00 00 */ lwz r0, 0(r5)
+/* 80032EA0 0002EB00 2C 00 00 00 */ cmpwi r0, 0
+/* 80032EA4 0002EB04 40 82 FF EC */ bne lbl_80032E90
+/* 80032EA8 0002EB08 38 C6 00 04 */ addi r6, r6, 4
+lbl_80032EAC:
+/* 80032EAC 0002EB0C 80 A3 00 04 */ lwz r5, 4(r3)
+/* 80032EB0 0002EB10 7C 05 30 2E */ lwzx r0, r5, r6
+/* 80032EB4 0002EB14 2C 00 00 00 */ cmpwi r0, 0
+/* 80032EB8 0002EB18 40 82 FF C4 */ bne lbl_80032E7C
+/* 80032EBC 0002EB1C 4E 80 00 20 */ blr
+
+.global func_80032EC0
+func_80032EC0:
+/* 80032EC0 0002EB20 2C 04 00 00 */ cmpwi r4, 0
+/* 80032EC4 0002EB24 41 80 00 10 */ blt lbl_80032ED4
+/* 80032EC8 0002EB28 80 03 00 00 */ lwz r0, 0(r3)
+/* 80032ECC 0002EB2C 7C 04 00 40 */ cmplw r4, r0
+/* 80032ED0 0002EB30 41 80 00 0C */ blt lbl_80032EDC
+lbl_80032ED4:
+/* 80032ED4 0002EB34 38 60 00 00 */ li r3, 0
+/* 80032ED8 0002EB38 4E 80 00 20 */ blr
+lbl_80032EDC:
+/* 80032EDC 0002EB3C 80 63 00 04 */ lwz r3, 4(r3)
+/* 80032EE0 0002EB40 54 80 10 3A */ slwi r0, r4, 2
+/* 80032EE4 0002EB44 7C 63 00 2E */ lwzx r3, r3, r0
+/* 80032EE8 0002EB48 4E 80 00 20 */ blr
+
+.global func_80032EEC
+func_80032EEC:
+/* 80032EEC 0002EB4C 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80032EF0 0002EB50 7C 08 02 A6 */ mflr r0
+/* 80032EF4 0002EB54 90 01 00 24 */ stw r0, 0x24(r1)
+/* 80032EF8 0002EB58 39 61 00 20 */ addi r11, r1, 0x20
+/* 80032EFC 0002EB5C 48 19 42 2D */ bl _savegpr_27
+/* 80032F00 0002EB60 7C BB 2B 78 */ mr r27, r5
+/* 80032F04 0002EB64 7C DC 33 78 */ mr r28, r6
+/* 80032F08 0002EB68 4B FF FF B9 */ bl func_80032EC0
+/* 80032F0C 0002EB6C 2C 03 00 00 */ cmpwi r3, 0
+/* 80032F10 0002EB70 40 82 00 0C */ bne lbl_80032F1C
+/* 80032F14 0002EB74 38 60 00 00 */ li r3, 0
+/* 80032F18 0002EB78 48 00 00 98 */ b lbl_80032FB0
+lbl_80032F1C:
+/* 80032F1C 0002EB7C 7C 7E 1B 78 */ mr r30, r3
+/* 80032F20 0002EB80 48 00 00 80 */ b lbl_80032FA0
+lbl_80032F24:
+/* 80032F24 0002EB84 88 1D 00 00 */ lbz r0, 0(r29)
+/* 80032F28 0002EB88 88 7D 00 01 */ lbz r3, 1(r29)
+/* 80032F2C 0002EB8C 2C 00 00 02 */ cmpwi r0, 2
+/* 80032F30 0002EB90 8B FD 00 02 */ lbz r31, 2(r29)
+/* 80032F34 0002EB94 50 7F 44 2E */ rlwimi r31, r3, 8, 0x10, 0x17
+/* 80032F38 0002EB98 41 82 00 2C */ beq lbl_80032F64
+/* 80032F3C 0002EB9C 40 80 00 14 */ bge lbl_80032F50
+/* 80032F40 0002EBA0 2C 00 00 00 */ cmpwi r0, 0
+/* 80032F44 0002EBA4 41 82 00 58 */ beq lbl_80032F9C
+/* 80032F48 0002EBA8 40 80 00 14 */ bge lbl_80032F5C
+/* 80032F4C 0002EBAC 48 00 00 50 */ b lbl_80032F9C
+lbl_80032F50:
+/* 80032F50 0002EBB0 2C 00 00 04 */ cmpwi r0, 4
+/* 80032F54 0002EBB4 40 80 00 48 */ bge lbl_80032F9C
+/* 80032F58 0002EBB8 48 00 00 20 */ b lbl_80032F78
+lbl_80032F5C:
+/* 80032F5C 0002EBBC 38 7D 00 03 */ addi r3, r29, 3
+/* 80032F60 0002EBC0 48 00 00 50 */ b lbl_80032FB0
+lbl_80032F64:
+/* 80032F64 0002EBC4 57 E0 04 3E */ clrlwi r0, r31, 0x10
+/* 80032F68 0002EBC8 7C 00 D8 00 */ cmpw r0, r27
+/* 80032F6C 0002EBCC 40 82 00 30 */ bne lbl_80032F9C
+/* 80032F70 0002EBD0 38 7D 00 03 */ addi r3, r29, 3
+/* 80032F74 0002EBD4 48 00 00 3C */ b lbl_80032FB0
+lbl_80032F78:
+/* 80032F78 0002EBD8 48 00 B1 E5 */ bl func_8003E15C
+/* 80032F7C 0002EBDC 7F 84 E3 78 */ mr r4, r28
+/* 80032F80 0002EBE0 57 E5 04 3E */ clrlwi r5, r31, 0x10
+/* 80032F84 0002EBE4 48 00 B4 B1 */ bl func_8003E434
+/* 80032F88 0002EBE8 54 60 04 3E */ clrlwi r0, r3, 0x10
+/* 80032F8C 0002EBEC 28 00 FF FF */ cmplwi r0, 0xffff
+/* 80032F90 0002EBF0 41 82 00 0C */ beq lbl_80032F9C
+/* 80032F94 0002EBF4 38 7D 00 03 */ addi r3, r29, 3
+/* 80032F98 0002EBF8 48 00 00 18 */ b lbl_80032FB0
+lbl_80032F9C:
+/* 80032F9C 0002EBFC 3B DE 00 04 */ addi r30, r30, 4
+lbl_80032FA0:
+/* 80032FA0 0002EC00 83 BE 00 00 */ lwz r29, 0(r30)
+/* 80032FA4 0002EC04 2C 1D 00 00 */ cmpwi r29, 0
+/* 80032FA8 0002EC08 40 82 FF 7C */ bne lbl_80032F24
+/* 80032FAC 0002EC0C 38 60 00 00 */ li r3, 0
+lbl_80032FB0:
+/* 80032FB0 0002EC10 39 61 00 20 */ addi r11, r1, 0x20
+/* 80032FB4 0002EC14 48 19 41 C1 */ bl _restgpr_27
+/* 80032FB8 0002EC18 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 80032FBC 0002EC1C 7C 08 03 A6 */ mtlr r0
+/* 80032FC0 0002EC20 38 21 00 20 */ addi r1, r1, 0x20
+/* 80032FC4 0002EC24 4E 80 00 20 */ blr
+
+.global func_80032FC8
+func_80032FC8:
+/* 80032FC8 0002EC28 38 A0 00 01 */ li r5, 1
+/* 80032FCC 0002EC2C 38 6D 97 88 */ addi r3, r13, lbl_8063EA48-_SDA_BASE_
+/* 80032FD0 0002EC30 38 80 00 04 */ li r4, 4
+/* 80032FD4 0002EC34 38 00 00 00 */ li r0, 0
+/* 80032FD8 0002EC38 98 AD 97 88 */ stb r5, lbl_8063EA48-_SDA_BASE_(r13)
+/* 80032FDC 0002EC3C B0 83 00 02 */ sth r4, 2(r3)
+/* 80032FE0 0002EC40 98 03 00 04 */ stb r0, 4(r3)
+/* 80032FE4 0002EC44 4E 80 00 20 */ blr