diff options
Diffstat (limited to 'asm/code_801FA094.s')
-rw-r--r-- | asm/code_801FA094.s | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/asm/code_801FA094.s b/asm/code_801FA094.s new file mode 100644 index 0000000..665dfee --- /dev/null +++ b/asm/code_801FA094.s @@ -0,0 +1,231 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global func_801FA094
+func_801FA094:
+/* 801FA094 001F5CF4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801FA098 001F5CF8 7C 08 02 A6 */ mflr r0
+/* 801FA09C 001F5CFC 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801FA0A0 001F5D00 39 61 00 20 */ addi r11, r1, 0x20
+/* 801FA0A4 001F5D04 4B FC D0 81 */ bl _savegpr_26
+/* 801FA0A8 001F5D08 38 00 00 00 */ li r0, 0
+/* 801FA0AC 001F5D0C 90 83 00 00 */ stw r4, 0(r3)
+/* 801FA0B0 001F5D10 7C 7F 1B 78 */ mr r31, r3
+/* 801FA0B4 001F5D14 7C 9A 23 78 */ mr r26, r4
+/* 801FA0B8 001F5D18 90 03 00 04 */ stw r0, 4(r3)
+/* 801FA0BC 001F5D1C 90 03 00 08 */ stw r0, 8(r3)
+/* 801FA0C0 001F5D20 90 03 00 0C */ stw r0, 0xc(r3)
+/* 801FA0C4 001F5D24 90 03 00 10 */ stw r0, 0x10(r3)
+/* 801FA0C8 001F5D28 A3 A4 00 18 */ lhz r29, 0x18(r4)
+/* 801FA0CC 001F5D2C 2C 1D 00 00 */ cmpwi r29, 0
+/* 801FA0D0 001F5D30 40 82 00 08 */ bne lbl_801FA0D8
+/* 801FA0D4 001F5D34 48 00 01 A8 */ b lbl_801FA27C
+lbl_801FA0D8:
+/* 801FA0D8 001F5D38 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 801FA0DC 001F5D3C 57 A4 13 BA */ rlwinm r4, r29, 2, 0xe, 0x1d
+/* 801FA0E0 001F5D40 4B FE 0B B5 */ bl func_801DAC94
+/* 801FA0E4 001F5D44 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA0E8 001F5D48 90 7F 00 04 */ stw r3, 4(r31)
+/* 801FA0EC 001F5D4C 40 82 00 0C */ bne lbl_801FA0F8
+/* 801FA0F0 001F5D50 7F E3 FB 78 */ mr r3, r31
+/* 801FA0F4 001F5D54 48 00 01 88 */ b lbl_801FA27C
+lbl_801FA0F8:
+/* 801FA0F8 001F5D58 38 80 00 00 */ li r4, 0
+/* 801FA0FC 001F5D5C 38 A0 00 04 */ li r5, 4
+/* 801FA100 001F5D60 4B E0 A0 05 */ bl memset
+/* 801FA104 001F5D64 3B 80 00 00 */ li r28, 0
+/* 801FA108 001F5D68 3B C0 00 00 */ li r30, 0
+/* 801FA10C 001F5D6C 48 00 00 58 */ b lbl_801FA164
+lbl_801FA110:
+/* 801FA110 001F5D70 80 7A 00 08 */ lwz r3, 8(r26)
+/* 801FA114 001F5D74 7F 63 F0 2E */ lwzx r27, r3, r30
+/* 801FA118 001F5D78 2C 1B 00 00 */ cmpwi r27, 0
+/* 801FA11C 001F5D7C 41 82 00 40 */ beq lbl_801FA15C
+/* 801FA120 001F5D80 4B FE 0A 09 */ bl func_801DAB28
+/* 801FA124 001F5D84 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA128 001F5D88 41 82 00 14 */ beq lbl_801FA13C
+/* 801FA12C 001F5D8C 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 801FA130 001F5D90 38 80 01 54 */ li r4, 0x154
+/* 801FA134 001F5D94 4B FE 0B 61 */ bl func_801DAC94
+/* 801FA138 001F5D98 48 00 00 08 */ b lbl_801FA140
+lbl_801FA13C:
+/* 801FA13C 001F5D9C 38 60 00 00 */ li r3, 0
+lbl_801FA140:
+/* 801FA140 001F5DA0 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA144 001F5DA4 41 82 00 10 */ beq lbl_801FA154
+/* 801FA148 001F5DA8 7F E4 FB 78 */ mr r4, r31
+/* 801FA14C 001F5DAC 7F 65 DB 78 */ mr r5, r27
+/* 801FA150 001F5DB0 4B FF A4 CD */ bl func_801F461C
+lbl_801FA154:
+/* 801FA154 001F5DB4 80 9F 00 04 */ lwz r4, 4(r31)
+/* 801FA158 001F5DB8 7C 64 F1 2E */ stwx r3, r4, r30
+lbl_801FA15C:
+/* 801FA15C 001F5DBC 3B DE 00 04 */ addi r30, r30, 4
+/* 801FA160 001F5DC0 3B 9C 00 01 */ addi r28, r28, 1
+lbl_801FA164:
+/* 801FA164 001F5DC4 7C 1C E8 00 */ cmpw r28, r29
+/* 801FA168 001F5DC8 41 80 FF A8 */ blt lbl_801FA110
+/* 801FA16C 001F5DCC 81 1A 00 24 */ lwz r8, 0x24(r26)
+/* 801FA170 001F5DD0 2C 08 00 00 */ cmpwi r8, 0
+/* 801FA174 001F5DD4 41 82 01 04 */ beq lbl_801FA278
+/* 801FA178 001F5DD8 38 C0 00 00 */ li r6, 0
+/* 801FA17C 001F5DDC 7F A9 03 A6 */ mtctr r29
+/* 801FA180 001F5DE0 2C 1D 00 00 */ cmpwi r29, 0
+/* 801FA184 001F5DE4 40 81 00 E0 */ ble lbl_801FA264
+lbl_801FA188:
+/* 801FA188 001F5DE8 80 7F 00 04 */ lwz r3, 4(r31)
+/* 801FA18C 001F5DEC 7D 23 30 2E */ lwzx r9, r3, r6
+/* 801FA190 001F5DF0 2C 09 00 00 */ cmpwi r9, 0
+/* 801FA194 001F5DF4 41 82 00 C8 */ beq lbl_801FA25C
+/* 801FA198 001F5DF8 A0 89 00 E4 */ lhz r4, 0xe4(r9)
+/* 801FA19C 001F5DFC 39 40 00 00 */ li r10, 0
+/* 801FA1A0 001F5E00 48 00 00 B0 */ b lbl_801FA250
+lbl_801FA1A4:
+/* 801FA1A4 001F5E04 80 A9 00 18 */ lwz r5, 0x18(r9)
+/* 801FA1A8 001F5E08 2C 05 00 00 */ cmpwi r5, 0
+/* 801FA1AC 001F5E0C 40 82 00 0C */ bne lbl_801FA1B8
+/* 801FA1B0 001F5E10 38 60 00 00 */ li r3, 0
+/* 801FA1B4 001F5E14 48 00 00 54 */ b lbl_801FA208
+lbl_801FA1B8:
+/* 801FA1B8 001F5E18 A0 09 00 E4 */ lhz r0, 0xe4(r9)
+/* 801FA1BC 001F5E1C 55 43 04 3E */ clrlwi r3, r10, 0x10
+/* 801FA1C0 001F5E20 7C 03 00 40 */ cmplw r3, r0
+/* 801FA1C4 001F5E24 41 80 00 0C */ blt lbl_801FA1D0
+/* 801FA1C8 001F5E28 38 60 00 00 */ li r3, 0
+/* 801FA1CC 001F5E2C 48 00 00 3C */ b lbl_801FA208
+lbl_801FA1D0:
+/* 801FA1D0 001F5E30 80 E9 00 08 */ lwz r7, 8(r9)
+/* 801FA1D4 001F5E34 55 40 0B FC */ rlwinm r0, r10, 1, 0xf, 0x1e
+/* 801FA1D8 001F5E38 7C 65 02 2E */ lhzx r3, r5, r0
+/* 801FA1DC 001F5E3C 2C 07 00 00 */ cmpwi r7, 0
+/* 801FA1E0 001F5E40 40 82 00 0C */ bne lbl_801FA1EC
+/* 801FA1E4 001F5E44 38 60 00 00 */ li r3, 0
+/* 801FA1E8 001F5E48 48 00 00 20 */ b lbl_801FA208
+lbl_801FA1EC:
+/* 801FA1EC 001F5E4C A0 09 00 DE */ lhz r0, 0xde(r9)
+/* 801FA1F0 001F5E50 7C 03 00 40 */ cmplw r3, r0
+/* 801FA1F4 001F5E54 41 80 00 0C */ blt lbl_801FA200
+/* 801FA1F8 001F5E58 38 60 00 00 */ li r3, 0
+/* 801FA1FC 001F5E5C 48 00 00 0C */ b lbl_801FA208
+lbl_801FA200:
+/* 801FA200 001F5E60 54 60 13 BA */ rlwinm r0, r3, 2, 0xe, 0x1d
+/* 801FA204 001F5E64 7C 67 00 2E */ lwzx r3, r7, r0
+lbl_801FA208:
+/* 801FA208 001F5E68 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA20C 001F5E6C 41 82 00 40 */ beq lbl_801FA24C
+/* 801FA210 001F5E70 80 A3 01 0C */ lwz r5, 0x10c(r3)
+/* 801FA214 001F5E74 2C 05 00 00 */ cmpwi r5, 0
+/* 801FA218 001F5E78 41 82 00 34 */ beq lbl_801FA24C
+/* 801FA21C 001F5E7C 80 08 00 18 */ lwz r0, 0x18(r8)
+/* 801FA220 001F5E80 7C 05 00 40 */ cmplw r5, r0
+/* 801FA224 001F5E84 40 82 00 08 */ bne lbl_801FA22C
+/* 801FA228 001F5E88 90 7F 00 08 */ stw r3, 8(r31)
+lbl_801FA22C:
+/* 801FA22C 001F5E8C 80 08 00 1C */ lwz r0, 0x1c(r8)
+/* 801FA230 001F5E90 7C 05 00 40 */ cmplw r5, r0
+/* 801FA234 001F5E94 40 82 00 08 */ bne lbl_801FA23C
+/* 801FA238 001F5E98 90 7F 00 0C */ stw r3, 0xc(r31)
+lbl_801FA23C:
+/* 801FA23C 001F5E9C 80 08 00 20 */ lwz r0, 0x20(r8)
+/* 801FA240 001F5EA0 7C 05 00 40 */ cmplw r5, r0
+/* 801FA244 001F5EA4 40 82 00 08 */ bne lbl_801FA24C
+/* 801FA248 001F5EA8 90 7F 00 10 */ stw r3, 0x10(r31)
+lbl_801FA24C:
+/* 801FA24C 001F5EAC 39 4A 00 01 */ addi r10, r10, 1
+lbl_801FA250:
+/* 801FA250 001F5EB0 55 40 04 3E */ clrlwi r0, r10, 0x10
+/* 801FA254 001F5EB4 7C 00 20 40 */ cmplw r0, r4
+/* 801FA258 001F5EB8 41 80 FF 4C */ blt lbl_801FA1A4
+lbl_801FA25C:
+/* 801FA25C 001F5EBC 38 C6 00 04 */ addi r6, r6, 4
+/* 801FA260 001F5EC0 42 00 FF 28 */ bdnz lbl_801FA188
+lbl_801FA264:
+/* 801FA264 001F5EC4 80 1F 00 10 */ lwz r0, 0x10(r31)
+/* 801FA268 001F5EC8 2C 00 00 00 */ cmpwi r0, 0
+/* 801FA26C 001F5ECC 40 82 00 0C */ bne lbl_801FA278
+/* 801FA270 001F5ED0 80 1F 00 0C */ lwz r0, 0xc(r31)
+/* 801FA274 001F5ED4 90 1F 00 10 */ stw r0, 0x10(r31)
+lbl_801FA278:
+/* 801FA278 001F5ED8 7F E3 FB 78 */ mr r3, r31
+lbl_801FA27C:
+/* 801FA27C 001F5EDC 39 61 00 20 */ addi r11, r1, 0x20
+/* 801FA280 001F5EE0 4B FC CE F1 */ bl _restgpr_26
+/* 801FA284 001F5EE4 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801FA288 001F5EE8 7C 08 03 A6 */ mtlr r0
+/* 801FA28C 001F5EEC 38 21 00 20 */ addi r1, r1, 0x20
+/* 801FA290 001F5EF0 4E 80 00 20 */ blr
+
+.global func_801FA294
+func_801FA294:
+/* 801FA294 001F5EF4 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 801FA298 001F5EF8 7C 08 02 A6 */ mflr r0
+/* 801FA29C 001F5EFC 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA2A0 001F5F00 90 01 00 24 */ stw r0, 0x24(r1)
+/* 801FA2A4 001F5F04 93 E1 00 1C */ stw r31, 0x1c(r1)
+/* 801FA2A8 001F5F08 93 C1 00 18 */ stw r30, 0x18(r1)
+/* 801FA2AC 001F5F0C 7C 9E 23 78 */ mr r30, r4
+/* 801FA2B0 001F5F10 93 A1 00 14 */ stw r29, 0x14(r1)
+/* 801FA2B4 001F5F14 7C 7D 1B 78 */ mr r29, r3
+/* 801FA2B8 001F5F18 41 82 00 94 */ beq lbl_801FA34C
+/* 801FA2BC 001F5F1C 80 8D A1 A8 */ lwz r4, lbl_8063F468-_SDA_BASE_(r13)
+/* 801FA2C0 001F5F20 80 04 01 24 */ lwz r0, 0x124(r4)
+/* 801FA2C4 001F5F24 7C 00 18 40 */ cmplw r0, r3
+/* 801FA2C8 001F5F28 40 82 00 0C */ bne lbl_801FA2D4
+/* 801FA2CC 001F5F2C 38 60 00 00 */ li r3, 0
+/* 801FA2D0 001F5F30 48 00 87 01 */ bl func_802029D0
+lbl_801FA2D4:
+/* 801FA2D4 001F5F34 80 1D 00 04 */ lwz r0, 4(r29)
+/* 801FA2D8 001F5F38 2C 00 00 00 */ cmpwi r0, 0
+/* 801FA2DC 001F5F3C 41 82 00 5C */ beq lbl_801FA338
+/* 801FA2E0 001F5F40 3B E0 00 00 */ li r31, 0
+/* 801FA2E4 001F5F44 48 00 00 24 */ b lbl_801FA308
+lbl_801FA2E8:
+/* 801FA2E8 001F5F48 80 7D 00 04 */ lwz r3, 4(r29)
+/* 801FA2EC 001F5F4C 57 E0 13 BA */ rlwinm r0, r31, 2, 0xe, 0x1d
+/* 801FA2F0 001F5F50 7C 63 00 2E */ lwzx r3, r3, r0
+/* 801FA2F4 001F5F54 2C 03 00 00 */ cmpwi r3, 0
+/* 801FA2F8 001F5F58 41 82 00 0C */ beq lbl_801FA304
+/* 801FA2FC 001F5F5C 38 80 00 01 */ li r4, 1
+/* 801FA300 001F5F60 4B FF A7 F1 */ bl func_801F4AF0
+lbl_801FA304:
+/* 801FA304 001F5F64 3B FF 00 01 */ addi r31, r31, 1
+lbl_801FA308:
+/* 801FA308 001F5F68 80 7D 00 00 */ lwz r3, 0(r29)
+/* 801FA30C 001F5F6C 57 E4 04 3E */ clrlwi r4, r31, 0x10
+/* 801FA310 001F5F70 A0 03 00 18 */ lhz r0, 0x18(r3)
+/* 801FA314 001F5F74 7C 04 00 40 */ cmplw r4, r0
+/* 801FA318 001F5F78 41 80 FF D0 */ blt lbl_801FA2E8
+/* 801FA31C 001F5F7C 80 9D 00 04 */ lwz r4, 4(r29)
+/* 801FA320 001F5F80 2C 04 00 00 */ cmpwi r4, 0
+/* 801FA324 001F5F84 41 82 00 14 */ beq lbl_801FA338
+/* 801FA328 001F5F88 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 801FA32C 001F5F8C 4B FE 0A 1D */ bl func_801DAD48
+/* 801FA330 001F5F90 38 00 00 00 */ li r0, 0
+/* 801FA334 001F5F94 90 1D 00 04 */ stw r0, 4(r29)
+lbl_801FA338:
+/* 801FA338 001F5F98 2C 1E 00 00 */ cmpwi r30, 0
+/* 801FA33C 001F5F9C 40 81 00 10 */ ble lbl_801FA34C
+/* 801FA340 001F5FA0 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13)
+/* 801FA344 001F5FA4 7F A4 EB 78 */ mr r4, r29
+/* 801FA348 001F5FA8 4B FE 0A 01 */ bl func_801DAD48
+lbl_801FA34C:
+/* 801FA34C 001F5FAC 83 E1 00 1C */ lwz r31, 0x1c(r1)
+/* 801FA350 001F5FB0 7F A3 EB 78 */ mr r3, r29
+/* 801FA354 001F5FB4 83 C1 00 18 */ lwz r30, 0x18(r1)
+/* 801FA358 001F5FB8 83 A1 00 14 */ lwz r29, 0x14(r1)
+/* 801FA35C 001F5FBC 80 01 00 24 */ lwz r0, 0x24(r1)
+/* 801FA360 001F5FC0 7C 08 03 A6 */ mtlr r0
+/* 801FA364 001F5FC4 38 21 00 20 */ addi r1, r1, 0x20
+/* 801FA368 001F5FC8 4E 80 00 20 */ blr
+
+.global func_801FA36C
+func_801FA36C:
+/* 801FA36C 001F5FCC 38 A0 00 01 */ li r5, 1
+/* 801FA370 001F5FD0 38 6D A1 30 */ addi r3, r13, lbl_8063F3F0-_SDA_BASE_
+/* 801FA374 001F5FD4 38 80 00 04 */ li r4, 4
+/* 801FA378 001F5FD8 38 00 00 00 */ li r0, 0
+/* 801FA37C 001F5FDC 98 AD A1 30 */ stb r5, lbl_8063F3F0-_SDA_BASE_(r13)
+/* 801FA380 001F5FE0 B0 83 00 02 */ sth r4, 2(r3)
+/* 801FA384 001F5FE4 98 03 00 04 */ stb r0, 4(r3)
+/* 801FA388 001F5FE8 4E 80 00 20 */ blr
|