prime/asm/MetroidPrime/CFlameWarp.s

899 lines
43 KiB
ArmAsm
Raw Normal View History

2022-04-14 08:02:42 +00:00
.include "macros.inc"
2022-04-18 04:19:18 +00:00
.section .data
.global lbl_803E51C8
lbl_803E51C8:
# ROM: 0x3E21C8
.4byte 0
.4byte 0
.4byte __dt__10CFlameWarpFv
.4byte UpdateWarp__10CFlameWarpFv
.4byte ModifyParticles__10CFlameWarpFiiPiP9CVector3fP9CVector3fP9CVector3fP6CColorPfPf
.4byte Activate__10CFlameWarpFb
.4byte IsActivated__10CFlameWarpFv
.4byte Get4CharID__10CFlameWarpFv
2022-04-21 06:32:43 +00:00
.section .sdata
.global lbl_805A7C90
lbl_805A7C90:
# ROM: 0x3F5630
.4byte 0x00000013
.global lbl_805A7C94
lbl_805A7C94:
# ROM: 0x3F5634
.4byte 0x00000012
2022-04-14 08:02:42 +00:00
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global Get4CharID__10CFlameWarpFv
Get4CharID__10CFlameWarpFv:
/* 801B4F5C 001B1EBC 3C 60 46 57 */ lis r3, 0x46575250@ha
/* 801B4F60 001B1EC0 38 63 52 50 */ addi r3, r3, 0x46575250@l
/* 801B4F64 001B1EC4 4E 80 00 20 */ blr
.global IsActivated__10CFlameWarpFv
IsActivated__10CFlameWarpFv:
/* 801B4F68 001B1EC8 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B4F6C 001B1ECC 54 03 CF FE */ rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 801B4F70 001B1ED0 4E 80 00 20 */ blr
.global sub_801b4f74
sub_801b4f74:
/* 801B4F74 001B1ED4 38 A3 00 08 */ addi r5, r3, 8
/* 801B4F78 001B1ED8 7C A6 2B 78 */ mr r6, r5
/* 801B4F7C 001B1EDC 48 00 00 20 */ b lbl_801B4F9C
lbl_801B4F80:
/* 801B4F80 001B1EE0 C0 04 00 00 */ lfs f0, 0(r4)
/* 801B4F84 001B1EE4 D0 06 00 00 */ stfs f0, 0(r6)
/* 801B4F88 001B1EE8 C0 04 00 04 */ lfs f0, 4(r4)
/* 801B4F8C 001B1EEC D0 06 00 04 */ stfs f0, 4(r6)
/* 801B4F90 001B1EF0 C0 04 00 08 */ lfs f0, 8(r4)
/* 801B4F94 001B1EF4 D0 06 00 08 */ stfs f0, 8(r6)
/* 801B4F98 001B1EF8 38 C6 00 0C */ addi r6, r6, 0xc
lbl_801B4F9C:
/* 801B4F9C 001B1EFC 80 03 00 04 */ lwz r0, 4(r3)
/* 801B4FA0 001B1F00 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801B4FA4 001B1F04 7C 05 02 14 */ add r0, r5, r0
/* 801B4FA8 001B1F08 7C 06 00 40 */ cmplw r6, r0
/* 801B4FAC 001B1F0C 40 82 FF D4 */ bne lbl_801B4F80
/* 801B4FB0 001B1F10 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B4FB4 001B1F14 38 80 00 00 */ li r4, 0
/* 801B4FB8 001B1F18 50 80 2E B4 */ rlwimi r0, r4, 5, 0x1a, 0x1a
/* 801B4FBC 001B1F1C 98 03 00 A0 */ stb r0, 0xa0(r3)
/* 801B4FC0 001B1F20 4E 80 00 20 */ blr
.global ModifyParticles__10CFlameWarpFiiPiP9CVector3fP9CVector3fP9CVector3fP6CColorPfPf
ModifyParticles__10CFlameWarpFiiPiP9CVector3fP9CVector3fP9CVector3fP6CColorPfPf:
/* 801B4FC4 001B1F24 94 21 FE 50 */ stwu r1, -0x1b0(r1)
/* 801B4FC8 001B1F28 7C 08 02 A6 */ mflr r0
/* 801B4FCC 001B1F2C 90 01 01 B4 */ stw r0, 0x1b4(r1)
/* 801B4FD0 001B1F30 DB E1 01 A0 */ stfd f31, 0x1a0(r1)
/* 801B4FD4 001B1F34 F3 E1 01 A8 */ psq_st f31, 424(r1), 0, qr0
/* 801B4FD8 001B1F38 DB C1 01 90 */ stfd f30, 0x190(r1)
/* 801B4FDC 001B1F3C F3 C1 01 98 */ psq_st f30, 408(r1), 0, qr0
/* 801B4FE0 001B1F40 DB A1 01 80 */ stfd f29, 0x180(r1)
/* 801B4FE4 001B1F44 F3 A1 01 88 */ psq_st f29, 392(r1), 0, qr0
/* 801B4FE8 001B1F48 DB 81 01 70 */ stfd f28, 0x170(r1)
/* 801B4FEC 001B1F4C F3 81 01 78 */ psq_st f28, 376(r1), 0, qr0
/* 801B4FF0 001B1F50 DB 61 01 60 */ stfd f27, 0x160(r1)
/* 801B4FF4 001B1F54 F3 61 01 68 */ psq_st f27, 360(r1), 0, qr0
/* 801B4FF8 001B1F58 DB 41 01 50 */ stfd f26, 0x150(r1)
/* 801B4FFC 001B1F5C F3 41 01 58 */ psq_st f26, 344(r1), 0, qr0
/* 801B5000 001B1F60 BE 41 01 18 */ stmw r18, 0x118(r1)
/* 801B5004 001B1F64 7C 7E 1B 78 */ mr r30, r3
/* 801B5008 001B1F68 83 21 01 B8 */ lwz r25, 0x1b8(r1)
/* 801B500C 001B1F6C 80 03 00 9C */ lwz r0, 0x9c(r3)
/* 801B5010 001B1F70 7C 94 23 78 */ mr r20, r4
/* 801B5014 001B1F74 7C BF 2B 78 */ mr r31, r5
/* 801B5018 001B1F78 7C F5 3B 78 */ mr r21, r7
/* 801B501C 001B1F7C 28 00 00 00 */ cmplwi r0, 0
/* 801B5020 001B1F80 7D 16 43 78 */ mr r22, r8
/* 801B5024 001B1F84 7D 37 4B 78 */ mr r23, r9
/* 801B5028 001B1F88 7D 58 53 78 */ mr r24, r10
/* 801B502C 001B1F8C 41 82 05 EC */ beq lbl_801B5618
/* 801B5030 001B1F90 2C 14 00 09 */ cmpwi r20, 9
/* 801B5034 001B1F94 40 80 00 08 */ bge lbl_801B503C
/* 801B5038 001B1F98 48 00 05 E0 */ b lbl_801B5618
lbl_801B503C:
/* 801B503C 001B1F9C 38 00 00 00 */ li r0, 0
/* 801B5040 001B1FA0 38 61 00 88 */ addi r3, r1, 0x88
/* 801B5044 001B1FA4 90 01 00 8C */ stw r0, 0x8c(r1)
/* 801B5048 001B1FA8 90 01 00 90 */ stw r0, 0x90(r1)
/* 801B504C 001B1FAC 90 01 00 94 */ stw r0, 0x94(r1)
/* 801B5050 001B1FB0 48 00 09 7D */ bl sub_801b59cc
/* 801B5054 001B1FB4 C0 22 A9 4C */ lfs f1, lbl_805AC66C@sda21(r2)
/* 801B5058 001B1FB8 3B 60 00 00 */ li r27, 0
/* 801B505C 001B1FBC C0 02 A9 50 */ lfs f0, lbl_805AC670@sda21(r2)
/* 801B5060 001B1FC0 3B A0 00 00 */ li r29, 0
/* 801B5064 001B1FC4 D0 3E 00 90 */ stfs f1, 0x90(r30)
/* 801B5068 001B1FC8 C3 A2 A9 48 */ lfs f29, lbl_805AC668@sda21(r2)
/* 801B506C 001B1FCC D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 801B5070 001B1FD0 C3 C2 A9 54 */ lfs f30, lbl_805AC674@sda21(r2)
/* 801B5074 001B1FD4 C3 E2 A9 58 */ lfs f31, lbl_805AC678@sda21(r2)
/* 801B5078 001B1FD8 48 00 03 DC */ b lbl_801B5454
lbl_801B507C:
/* 801B507C 001B1FDC 38 1D 00 03 */ addi r0, r29, 3
/* 801B5080 001B1FE0 7F 96 EA 14 */ add r28, r22, r29
/* 801B5084 001B1FE4 10 18 05 0C */ psq_lx f0, r24, r0, 1, qr2
/* 801B5088 001B1FE8 EC 1F 00 32 */ fmuls f0, f31, f0
/* 801B508C 001B1FEC EF 9E 00 28 */ fsubs f28, f30, f0
/* 801B5090 001B1FF0 FC 1C E8 40 */ fcmpo cr0, f28, f29
/* 801B5094 001B1FF4 40 81 00 6C */ ble lbl_801B5100
/* 801B5098 001B1FF8 C0 3C 00 04 */ lfs f1, 4(r28)
/* 801B509C 001B1FFC C0 1E 00 78 */ lfs f0, 0x78(r30)
/* 801B50A0 001B2000 C0 7C 00 00 */ lfs f3, 0(r28)
/* 801B50A4 001B2004 EC 21 00 28 */ fsubs f1, f1, f0
/* 801B50A8 001B2008 C0 1E 00 74 */ lfs f0, 0x74(r30)
/* 801B50AC 001B200C C0 5C 00 08 */ lfs f2, 8(r28)
/* 801B50B0 001B2010 EC 63 00 28 */ fsubs f3, f3, f0
/* 801B50B4 001B2014 C0 1E 00 7C */ lfs f0, 0x7c(r30)
/* 801B50B8 001B2018 EC 21 00 72 */ fmuls f1, f1, f1
/* 801B50BC 001B201C EC 42 00 28 */ fsubs f2, f2, f0
/* 801B50C0 001B2020 C0 1E 00 8C */ lfs f0, 0x8c(r30)
/* 801B50C4 001B2024 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 801B50C8 001B2028 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 801B50CC 001B202C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B50D0 001B2030 40 81 00 30 */ ble lbl_801B5100
/* 801B50D4 001B2034 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 801B50D8 001B2038 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B50DC 001B203C 40 80 00 24 */ bge lbl_801B5100
/* 801B50E0 001B2040 D0 3E 00 8C */ stfs f1, 0x8c(r30)
/* 801B50E4 001B2044 FF A0 E0 90 */ fmr f29, f28
/* 801B50E8 001B2048 C0 1C 00 00 */ lfs f0, 0(r28)
/* 801B50EC 001B204C D0 1E 00 80 */ stfs f0, 0x80(r30)
/* 801B50F0 001B2050 C0 1C 00 04 */ lfs f0, 4(r28)
/* 801B50F4 001B2054 D0 1E 00 84 */ stfs f0, 0x84(r30)
/* 801B50F8 001B2058 C0 1C 00 08 */ lfs f0, 8(r28)
/* 801B50FC 001B205C D0 1E 00 88 */ stfs f0, 0x88(r30)
lbl_801B5100:
/* 801B5100 001B2060 7C 39 EC 2E */ lfsx f1, r25, r29
/* 801B5104 001B2064 C0 1E 00 90 */ lfs f0, 0x90(r30)
/* 801B5108 001B2068 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B510C 001B206C 40 80 00 08 */ bge lbl_801B5114
/* 801B5110 001B2070 D0 3E 00 90 */ stfs f1, 0x90(r30)
lbl_801B5114:
/* 801B5114 001B2074 7C 39 EC 2E */ lfsx f1, r25, r29
/* 801B5118 001B2078 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 801B511C 001B207C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B5120 001B2080 40 81 00 08 */ ble lbl_801B5128
/* 801B5124 001B2084 D0 3E 00 94 */ stfs f1, 0x94(r30)
lbl_801B5128:
/* 801B5128 001B2088 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 801B512C 001B208C 57 7A 06 3E */ clrlwi r26, r27, 0x18
/* 801B5130 001B2090 80 A1 00 90 */ lwz r5, 0x90(r1)
/* 801B5134 001B2094 7C 00 28 00 */ cmpw r0, r5
/* 801B5138 001B2098 41 80 00 1C */ blt lbl_801B5154
/* 801B513C 001B209C 2C 05 00 00 */ cmpwi r5, 0
/* 801B5140 001B20A0 38 61 00 88 */ addi r3, r1, 0x88
/* 801B5144 001B20A4 38 80 00 04 */ li r4, 4
/* 801B5148 001B20A8 41 82 00 08 */ beq lbl_801B5150
/* 801B514C 001B20AC 54 A4 08 3C */ slwi r4, r5, 1
lbl_801B5150:
/* 801B5150 001B20B0 48 00 08 7D */ bl sub_801b59cc
lbl_801B5154:
/* 801B5154 001B20B4 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 801B5158 001B20B8 80 61 00 94 */ lwz r3, 0x94(r1)
/* 801B515C 001B20BC 54 00 18 38 */ slwi r0, r0, 3
/* 801B5160 001B20C0 7C 63 02 15 */ add. r3, r3, r0
/* 801B5164 001B20C4 41 82 00 0C */ beq lbl_801B5170
/* 801B5168 001B20C8 D3 83 00 00 */ stfs f28, 0(r3)
/* 801B516C 001B20CC 9B 43 00 04 */ stb r26, 4(r3)
lbl_801B5170:
/* 801B5170 001B20D0 80 61 00 8C */ lwz r3, 0x8c(r1)
/* 801B5174 001B20D4 38 03 00 01 */ addi r0, r3, 1
/* 801B5178 001B20D8 90 01 00 8C */ stw r0, 0x8c(r1)
/* 801B517C 001B20DC 88 1E 00 A0 */ lbz r0, 0xa0(r30)
/* 801B5180 001B20E0 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801B5184 001B20E4 41 82 02 C8 */ beq lbl_801B544C
/* 801B5188 001B20E8 7E 55 EA 14 */ add r18, r21, r29
/* 801B518C 001B20EC C0 7C 00 04 */ lfs f3, 4(r28)
/* 801B5190 001B20F0 C0 52 00 04 */ lfs f2, 4(r18)
/* 801B5194 001B20F4 7F 57 EA 14 */ add r26, r23, r29
/* 801B5198 001B20F8 C0 3C 00 00 */ lfs f1, 0(r28)
/* 801B519C 001B20FC C0 12 00 00 */ lfs f0, 0(r18)
/* 801B51A0 001B2100 EC A3 10 28 */ fsubs f5, f3, f2
/* 801B51A4 001B2104 C0 9C 00 08 */ lfs f4, 8(r28)
/* 801B51A8 001B2108 C0 52 00 08 */ lfs f2, 8(r18)
/* 801B51AC 001B210C EC 61 00 28 */ fsubs f3, f1, f0
/* 801B51B0 001B2110 EC 25 01 72 */ fmuls f1, f5, f5
/* 801B51B4 001B2114 C0 02 A9 5C */ lfs f0, lbl_805AC67C@sda21(r2)
/* 801B51B8 001B2118 EC 84 10 28 */ fsubs f4, f4, f2
/* 801B51BC 001B211C D0 A1 00 80 */ stfs f5, 0x80(r1)
/* 801B51C0 001B2120 EC 43 00 F2 */ fmuls f2, f3, f3
/* 801B51C4 001B2124 D0 61 00 7C */ stfs f3, 0x7c(r1)
/* 801B51C8 001B2128 EC 64 01 32 */ fmuls f3, f4, f4
/* 801B51CC 001B212C EC 22 08 2A */ fadds f1, f2, f1
/* 801B51D0 001B2130 D0 81 00 84 */ stfs f4, 0x84(r1)
/* 801B51D4 001B2134 EC 23 08 2A */ fadds f1, f3, f1
/* 801B51D8 001B2138 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B51DC 001B213C 41 80 02 70 */ blt lbl_801B544C
/* 801B51E0 001B2140 38 61 00 4C */ addi r3, r1, 0x4c
/* 801B51E4 001B2144 38 81 00 7C */ addi r4, r1, 0x7c
/* 801B51E8 001B2148 48 15 F6 69 */ bl AsNormalized__9CVector3fCFv
/* 801B51EC 001B214C C0 A1 00 4C */ lfs f5, 0x4c(r1)
/* 801B51F0 001B2150 38 61 00 40 */ addi r3, r1, 0x40
/* 801B51F4 001B2154 C0 61 00 50 */ lfs f3, 0x50(r1)
/* 801B51F8 001B2158 C0 02 A9 60 */ lfs f0, lbl_805AC680@sda21(r2)
/* 801B51FC 001B215C C0 21 00 54 */ lfs f1, 0x54(r1)
/* 801B5200 001B2160 D0 A1 00 70 */ stfs f5, 0x70(r1)
/* 801B5204 001B2164 EC 80 00 F2 */ fmuls f4, f0, f3
/* 801B5208 001B2168 EC 40 00 72 */ fmuls f2, f0, f1
/* 801B520C 001B216C D0 61 00 74 */ stfs f3, 0x74(r1)
/* 801B5210 001B2170 EC 00 01 72 */ fmuls f0, f0, f5
/* 801B5214 001B2174 D0 21 00 78 */ stfs f1, 0x78(r1)
/* 801B5218 001B2178 C0 B2 00 04 */ lfs f5, 4(r18)
/* 801B521C 001B217C C0 72 00 08 */ lfs f3, 8(r18)
/* 801B5220 001B2180 C0 32 00 00 */ lfs f1, 0(r18)
/* 801B5224 001B2184 EC A5 20 28 */ fsubs f5, f5, f4
/* 801B5228 001B2188 EC 83 10 28 */ fsubs f4, f3, f2
/* 801B522C 001B218C EC 61 00 28 */ fsubs f3, f1, f0
/* 801B5230 001B2190 D0 A1 00 68 */ stfs f5, 0x68(r1)
/* 801B5234 001B2194 D0 61 00 64 */ stfs f3, 0x64(r1)
/* 801B5238 001B2198 D0 81 00 6C */ stfs f4, 0x6c(r1)
/* 801B523C 001B219C C0 5C 00 04 */ lfs f2, 4(r28)
/* 801B5240 001B21A0 C0 3C 00 08 */ lfs f1, 8(r28)
/* 801B5244 001B21A4 C0 1C 00 00 */ lfs f0, 0(r28)
/* 801B5248 001B21A8 EC 42 28 28 */ fsubs f2, f2, f5
/* 801B524C 001B21AC EC 21 20 28 */ fsubs f1, f1, f4
/* 801B5250 001B21B0 EC 00 18 28 */ fsubs f0, f0, f3
/* 801B5254 001B21B4 D0 41 00 44 */ stfs f2, 0x44(r1)
/* 801B5258 001B21B8 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 801B525C 001B21BC D0 21 00 48 */ stfs f1, 0x48(r1)
/* 801B5260 001B21C0 48 15 F6 59 */ bl Magnitude__9CVector3fCFv
/* 801B5264 001B21C4 FF 40 08 90 */ fmr f26, f1
/* 801B5268 001B21C8 80 AD 90 D4 */ lwz r5, lbl_805A7C94@sda21(r13)
/* 801B526C 001B21CC 38 60 00 00 */ li r3, 0
/* 801B5270 001B21D0 38 80 00 01 */ li r4, 1
/* 801B5274 001B21D4 48 1D 4C 81 */ bl __shl2i
/* 801B5278 001B21D8 80 AD 90 D0 */ lwz r5, lbl_805A7C90@sda21(r13)
/* 801B527C 001B21DC 7C 92 23 78 */ mr r18, r4
/* 801B5280 001B21E0 7C 73 1B 78 */ mr r19, r3
/* 801B5284 001B21E4 38 60 00 00 */ li r3, 0
/* 801B5288 001B21E8 38 80 00 01 */ li r4, 1
/* 801B528C 001B21EC 48 1D 4C 69 */ bl __shl2i
/* 801B5290 001B21F0 38 00 00 03 */ li r0, 3
/* 801B5294 001B21F4 90 61 00 98 */ stw r3, 0x98(r1)
/* 801B5298 001B21F8 FC 20 D0 90 */ fmr f1, f26
/* 801B529C 001B21FC 38 61 00 B0 */ addi r3, r1, 0xb0
/* 801B52A0 001B2200 90 81 00 9C */ stw r4, 0x9c(r1)
/* 801B52A4 001B2204 38 A1 00 64 */ addi r5, r1, 0x64
/* 801B52A8 001B2208 38 C1 00 70 */ addi r6, r1, 0x70
/* 801B52AC 001B220C 38 E1 00 98 */ addi r7, r1, 0x98
/* 801B52B0 001B2210 92 41 00 A4 */ stw r18, 0xa4(r1)
/* 801B52B4 001B2214 92 61 00 A0 */ stw r19, 0xa0(r1)
/* 801B52B8 001B2218 90 01 00 A8 */ stw r0, 0xa8(r1)
/* 801B52BC 001B221C 80 9E 00 9C */ lwz r4, 0x9c(r30)
/* 801B52C0 001B2220 4B E9 7C D9 */ bl RayStaticIntersection__13CStateManagerCFRC9CVector3fRC9CVector3ffRC15CMaterialFilter
/* 801B52C4 001B2224 88 81 00 D0 */ lbz r4, 0xd0(r1)
/* 801B52C8 001B2228 C0 E1 00 B0 */ lfs f7, 0xb0(r1)
/* 801B52CC 001B222C C0 C1 00 B4 */ lfs f6, 0xb4(r1)
/* 801B52D0 001B2230 28 04 00 00 */ cmplwi r4, 0
/* 801B52D4 001B2234 C0 A1 00 B8 */ lfs f5, 0xb8(r1)
/* 801B52D8 001B2238 C0 81 00 BC */ lfs f4, 0xbc(r1)
/* 801B52DC 001B223C C0 61 00 C0 */ lfs f3, 0xc0(r1)
/* 801B52E0 001B2240 C0 41 00 C4 */ lfs f2, 0xc4(r1)
/* 801B52E4 001B2244 C0 21 00 C8 */ lfs f1, 0xc8(r1)
/* 801B52E8 001B2248 C0 01 00 CC */ lfs f0, 0xcc(r1)
/* 801B52EC 001B224C 80 01 00 D8 */ lwz r0, 0xd8(r1)
/* 801B52F0 001B2250 80 61 00 DC */ lwz r3, 0xdc(r1)
/* 801B52F4 001B2254 D0 E1 00 E0 */ stfs f7, 0xe0(r1)
/* 801B52F8 001B2258 D0 C1 00 E4 */ stfs f6, 0xe4(r1)
/* 801B52FC 001B225C D0 A1 00 E8 */ stfs f5, 0xe8(r1)
/* 801B5300 001B2260 D0 81 00 EC */ stfs f4, 0xec(r1)
/* 801B5304 001B2264 D0 61 00 F0 */ stfs f3, 0xf0(r1)
/* 801B5308 001B2268 D0 41 00 F4 */ stfs f2, 0xf4(r1)
/* 801B530C 001B226C D0 21 00 F8 */ stfs f1, 0xf8(r1)
/* 801B5310 001B2270 D0 01 00 FC */ stfs f0, 0xfc(r1)
/* 801B5314 001B2274 98 81 01 00 */ stb r4, 0x100(r1)
/* 801B5318 001B2278 90 61 01 0C */ stw r3, 0x10c(r1)
/* 801B531C 001B227C 90 01 01 08 */ stw r0, 0x108(r1)
/* 801B5320 001B2280 41 82 01 2C */ beq lbl_801B544C
/* 801B5324 001B2284 C0 9C 00 04 */ lfs f4, 4(r28)
/* 801B5328 001B2288 C0 BC 00 00 */ lfs f5, 0(r28)
/* 801B532C 001B228C EC 82 01 32 */ fmuls f4, f2, f4
/* 801B5330 001B2290 C0 DC 00 08 */ lfs f6, 8(r28)
/* 801B5334 001B2294 C1 02 A9 48 */ lfs f8, lbl_805AC668@sda21(r2)
/* 801B5338 001B2298 EC 83 21 7A */ fmadds f4, f3, f5, f4
/* 801B533C 001B229C EC 81 21 BA */ fmadds f4, f1, f6, f4
/* 801B5340 001B22A0 EC 84 00 28 */ fsubs f4, f4, f0
/* 801B5344 001B22A4 FC 04 40 40 */ fcmpo cr0, f4, f8
/* 801B5348 001B22A8 41 81 01 04 */ bgt lbl_801B544C
/* 801B534C 001B22AC EC C4 00 F2 */ fmuls f6, f4, f3
/* 801B5350 001B22B0 C0 FC 00 00 */ lfs f7, 0(r28)
/* 801B5354 001B22B4 EC A4 00 B2 */ fmuls f5, f4, f2
/* 801B5358 001B22B8 EC 84 00 72 */ fmuls f4, f4, f1
/* 801B535C 001B22BC EC C7 30 28 */ fsubs f6, f7, f6
/* 801B5360 001B22C0 D0 DC 00 00 */ stfs f6, 0(r28)
/* 801B5364 001B22C4 C0 DC 00 04 */ lfs f6, 4(r28)
/* 801B5368 001B22C8 EC A6 28 28 */ fsubs f5, f6, f5
/* 801B536C 001B22CC D0 BC 00 04 */ stfs f5, 4(r28)
/* 801B5370 001B22D0 C0 BC 00 08 */ lfs f5, 8(r28)
/* 801B5374 001B22D4 EC 85 20 28 */ fsubs f4, f5, f4
/* 801B5378 001B22D8 D0 9C 00 08 */ stfs f4, 8(r28)
/* 801B537C 001B22DC C3 7A 00 04 */ lfs f27, 4(r26)
/* 801B5380 001B22E0 C3 9A 00 00 */ lfs f28, 0(r26)
/* 801B5384 001B22E4 EC A2 06 F2 */ fmuls f5, f2, f27
/* 801B5388 001B22E8 C3 5A 00 08 */ lfs f26, 8(r26)
/* 801B538C 001B22EC EC 83 2F 3A */ fmadds f4, f3, f28, f5
/* 801B5390 001B22F0 EC 81 26 BA */ fmadds f4, f1, f26, f4
/* 801B5394 001B22F4 FC 04 40 40 */ fcmpo cr0, f4, f8
/* 801B5398 001B22F8 40 80 00 B4 */ bge lbl_801B544C
/* 801B539C 001B22FC C1 7C 00 04 */ lfs f11, 4(r28)
/* 801B53A0 001B2300 EC DC 28 FA */ fmadds f6, f28, f3, f5
/* 801B53A4 001B2304 C1 3C 00 00 */ lfs f9, 0(r28)
/* 801B53A8 001B2308 ED AB D8 28 */ fsubs f13, f11, f27
/* 801B53AC 001B230C C1 5C 00 08 */ lfs f10, 8(r28)
/* 801B53B0 001B2310 ED 09 E0 28 */ fsubs f8, f9, f28
/* 801B53B4 001B2314 C0 A2 A9 54 */ lfs f5, lbl_805AC674@sda21(r2)
/* 801B53B8 001B2318 ED 8A D0 28 */ fsubs f12, f10, f26
/* 801B53BC 001B231C C0 82 A9 64 */ lfs f4, lbl_805AC684@sda21(r2)
/* 801B53C0 001B2320 EC ED 00 B2 */ fmuls f7, f13, f2
/* 801B53C4 001B2324 D1 01 00 34 */ stfs f8, 0x34(r1)
/* 801B53C8 001B2328 EC 5A 30 7A */ fmadds f2, f26, f1, f6
/* 801B53CC 001B232C D1 A1 00 38 */ stfs f13, 0x38(r1)
/* 801B53D0 001B2330 EC 68 38 FA */ fmadds f3, f8, f3, f7
/* 801B53D4 001B2334 D1 81 00 3C */ stfs f12, 0x3c(r1)
/* 801B53D8 001B2338 EC 2C 18 7A */ fmadds f1, f12, f1, f3
/* 801B53DC 001B233C EC 01 00 28 */ fsubs f0, f1, f0
/* 801B53E0 001B2340 FC 00 00 50 */ fneg f0, f0
/* 801B53E4 001B2344 EC 00 10 24 */ fdivs f0, f0, f2
/* 801B53E8 001B2348 EC 20 28 28 */ fsubs f1, f0, f5
/* 801B53EC 001B234C EC 01 07 32 */ fmuls f0, f1, f28
/* 801B53F0 001B2350 EC 41 06 F2 */ fmuls f2, f1, f27
/* 801B53F4 001B2354 EC 21 06 B2 */ fmuls f1, f1, f26
/* 801B53F8 001B2358 EC 09 00 2A */ fadds f0, f9, f0
/* 801B53FC 001B235C EC 4B 10 2A */ fadds f2, f11, f2
/* 801B5400 001B2360 EC 2A 08 2A */ fadds f1, f10, f1
/* 801B5404 001B2364 D0 1C 00 00 */ stfs f0, 0(r28)
/* 801B5408 001B2368 D0 5C 00 04 */ stfs f2, 4(r28)
/* 801B540C 001B236C D0 3C 00 08 */ stfs f1, 8(r28)
/* 801B5410 001B2370 C0 1A 00 00 */ lfs f0, 0(r26)
/* 801B5414 001B2374 C0 7A 00 04 */ lfs f3, 4(r26)
/* 801B5418 001B2378 EC 04 00 32 */ fmuls f0, f4, f0
/* 801B541C 001B237C C0 3A 00 00 */ lfs f1, 0(r26)
/* 801B5420 001B2380 C0 5A 00 08 */ lfs f2, 8(r26)
/* 801B5424 001B2384 EC 64 00 F2 */ fmuls f3, f4, f3
/* 801B5428 001B2388 EC 01 00 28 */ fsubs f0, f1, f0
/* 801B542C 001B238C EC 24 00 B2 */ fmuls f1, f4, f2
/* 801B5430 001B2390 D0 1A 00 00 */ stfs f0, 0(r26)
/* 801B5434 001B2394 C0 1A 00 04 */ lfs f0, 4(r26)
/* 801B5438 001B2398 EC 00 18 28 */ fsubs f0, f0, f3
/* 801B543C 001B239C D0 1A 00 04 */ stfs f0, 4(r26)
/* 801B5440 001B23A0 C0 1A 00 08 */ lfs f0, 8(r26)
/* 801B5444 001B23A4 EC 00 08 28 */ fsubs f0, f0, f1
/* 801B5448 001B23A8 D0 1A 00 08 */ stfs f0, 8(r26)
lbl_801B544C:
/* 801B544C 001B23AC 7F BD FA 14 */ add r29, r29, r31
/* 801B5450 001B23B0 3B 7B 00 01 */ addi r27, r27, 1
lbl_801B5454:
/* 801B5454 001B23B4 7C 1B A0 00 */ cmpw r27, r20
/* 801B5458 001B23B8 41 80 FC 24 */ blt lbl_801B507C
/* 801B545C 001B23BC 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 801B5460 001B23C0 38 61 00 24 */ addi r3, r1, 0x24
/* 801B5464 001B23C4 80 A1 00 94 */ lwz r5, 0x94(r1)
/* 801B5468 001B23C8 38 81 00 1C */ addi r4, r1, 0x1c
/* 801B546C 001B23CC 54 00 18 38 */ slwi r0, r0, 3
/* 801B5470 001B23D0 7C 05 02 14 */ add r0, r5, r0
/* 801B5474 001B23D4 90 A1 00 20 */ stw r5, 0x20(r1)
/* 801B5478 001B23D8 90 01 00 18 */ stw r0, 0x18(r1)
/* 801B547C 001B23DC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 801B5480 001B23E0 90 A1 00 24 */ stw r5, 0x24(r1)
/* 801B5484 001B23E4 48 00 03 C1 */ bl sub_801b5844
/* 801B5488 001B23E8 3C 60 38 E4 */ lis r3, 0x38E38E39@ha
/* 801B548C 001B23EC 3B 7E 00 08 */ addi r27, r30, 8
/* 801B5490 001B23F0 38 03 8E 39 */ addi r0, r3, 0x38E38E39@l
/* 801B5494 001B23F4 3B 40 00 00 */ li r26, 0
/* 801B5498 001B23F8 7C 00 A0 96 */ mulhw r0, r0, r20
/* 801B549C 001B23FC 7F 7C DB 78 */ mr r28, r27
/* 801B54A0 001B2400 3B A0 00 00 */ li r29, 0
/* 801B54A4 001B2404 7C 00 0E 70 */ srawi r0, r0, 1
/* 801B54A8 001B2408 54 03 0F FE */ srwi r3, r0, 0x1f
/* 801B54AC 001B240C 7C 00 1A 14 */ add r0, r0, r3
/* 801B54B0 001B2410 54 12 18 38 */ slwi r18, r0, 3
lbl_801B54B4:
/* 801B54B4 001B2414 80 61 00 94 */ lwz r3, 0x94(r1)
/* 801B54B8 001B2418 38 1D 00 04 */ addi r0, r29, 4
/* 801B54BC 001B241C 2C 1A 00 00 */ cmpwi r26, 0
/* 801B54C0 001B2420 7C 03 00 AE */ lbzx r0, r3, r0
/* 801B54C4 001B2424 7C 00 F9 D6 */ mullw r0, r0, r31
/* 801B54C8 001B2428 7C 76 02 14 */ add r3, r22, r0
/* 801B54CC 001B242C C0 03 00 00 */ lfs f0, 0(r3)
/* 801B54D0 001B2430 D0 1C 00 00 */ stfs f0, 0(r28)
/* 801B54D4 001B2434 C0 03 00 04 */ lfs f0, 4(r3)
/* 801B54D8 001B2438 D0 1C 00 04 */ stfs f0, 4(r28)
/* 801B54DC 001B243C C0 03 00 08 */ lfs f0, 8(r3)
/* 801B54E0 001B2440 D0 1C 00 08 */ stfs f0, 8(r28)
/* 801B54E4 001B2444 40 81 00 A0 */ ble lbl_801B5584
/* 801B54E8 001B2448 38 1A FF FF */ addi r0, r26, -1
/* 801B54EC 001B244C C0 BC 00 04 */ lfs f5, 4(r28)
/* 801B54F0 001B2450 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801B54F4 001B2454 C0 7C 00 08 */ lfs f3, 8(r28)
/* 801B54F8 001B2458 C0 3C 00 00 */ lfs f1, 0(r28)
/* 801B54FC 001B245C 38 61 00 58 */ addi r3, r1, 0x58
/* 801B5500 001B2460 7C 9B 02 14 */ add r4, r27, r0
/* 801B5504 001B2464 C0 84 00 04 */ lfs f4, 4(r4)
/* 801B5508 001B2468 C0 44 00 08 */ lfs f2, 8(r4)
/* 801B550C 001B246C C0 04 00 00 */ lfs f0, 0(r4)
/* 801B5510 001B2470 EC 85 20 28 */ fsubs f4, f5, f4
/* 801B5514 001B2474 EC 43 10 28 */ fsubs f2, f3, f2
/* 801B5518 001B2478 EC 01 00 28 */ fsubs f0, f1, f0
/* 801B551C 001B247C D0 81 00 5C */ stfs f4, 0x5c(r1)
/* 801B5520 001B2480 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 801B5524 001B2484 D0 41 00 60 */ stfs f2, 0x60(r1)
/* 801B5528 001B2488 48 15 F3 91 */ bl Magnitude__9CVector3fCFv
/* 801B552C 001B248C C0 02 A9 5C */ lfs f0, lbl_805AC67C@sda21(r2)
/* 801B5530 001B2490 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B5534 001B2494 40 80 00 50 */ bge lbl_801B5584
/* 801B5538 001B2498 38 61 00 28 */ addi r3, r1, 0x28
/* 801B553C 001B249C 38 81 00 58 */ addi r4, r1, 0x58
/* 801B5540 001B24A0 48 15 F3 11 */ bl AsNormalized__9CVector3fCFv
/* 801B5544 001B24A4 C0 82 A9 5C */ lfs f4, lbl_805AC67C@sda21(r2)
/* 801B5548 001B24A8 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 801B554C 001B24AC C0 61 00 2C */ lfs f3, 0x2c(r1)
/* 801B5550 001B24B0 EC 04 00 32 */ fmuls f0, f4, f0
/* 801B5554 001B24B4 C0 3C 00 00 */ lfs f1, 0(r28)
/* 801B5558 001B24B8 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 801B555C 001B24BC EC 64 00 F2 */ fmuls f3, f4, f3
/* 801B5560 001B24C0 EC 01 00 2A */ fadds f0, f1, f0
/* 801B5564 001B24C4 EC 24 00 B2 */ fmuls f1, f4, f2
/* 801B5568 001B24C8 D0 1C 00 00 */ stfs f0, 0(r28)
/* 801B556C 001B24CC C0 1C 00 04 */ lfs f0, 4(r28)
/* 801B5570 001B24D0 EC 00 18 2A */ fadds f0, f0, f3
/* 801B5574 001B24D4 D0 1C 00 04 */ stfs f0, 4(r28)
/* 801B5578 001B24D8 C0 1C 00 08 */ lfs f0, 8(r28)
/* 801B557C 001B24DC EC 00 08 2A */ fadds f0, f0, f1
/* 801B5580 001B24E0 D0 1C 00 08 */ stfs f0, 8(r28)
lbl_801B5584:
/* 801B5584 001B24E4 3B 5A 00 01 */ addi r26, r26, 1
/* 801B5588 001B24E8 7F BD 92 14 */ add r29, r29, r18
/* 801B558C 001B24EC 2C 1A 00 09 */ cmpwi r26, 9
/* 801B5590 001B24F0 3B 9C 00 0C */ addi r28, r28, 0xc
/* 801B5594 001B24F4 41 80 FF 20 */ blt lbl_801B54B4
/* 801B5598 001B24F8 C0 1E 00 74 */ lfs f0, 0x74(r30)
/* 801B559C 001B24FC 38 60 00 01 */ li r3, 1
/* 801B55A0 001B2500 D0 1B 00 00 */ stfs f0, 0(r27)
/* 801B55A4 001B2504 C0 1E 00 78 */ lfs f0, 0x78(r30)
/* 801B55A8 001B2508 D0 1B 00 04 */ stfs f0, 4(r27)
/* 801B55AC 001B250C C0 1E 00 7C */ lfs f0, 0x7c(r30)
/* 801B55B0 001B2510 D0 1B 00 08 */ stfs f0, 8(r27)
/* 801B55B4 001B2514 C0 1B 00 60 */ lfs f0, 0x60(r27)
/* 801B55B8 001B2518 D0 1E 00 80 */ stfs f0, 0x80(r30)
/* 801B55BC 001B251C C0 1B 00 64 */ lfs f0, 0x64(r27)
/* 801B55C0 001B2520 D0 1E 00 84 */ stfs f0, 0x84(r30)
/* 801B55C4 001B2524 C0 1B 00 68 */ lfs f0, 0x68(r27)
/* 801B55C8 001B2528 D0 1E 00 88 */ stfs f0, 0x88(r30)
/* 801B55CC 001B252C 88 1E 00 A0 */ lbz r0, 0xa0(r30)
/* 801B55D0 001B2530 50 60 2E B4 */ rlwimi r0, r3, 5, 0x1a, 0x1a
/* 801B55D4 001B2534 98 1E 00 A0 */ stb r0, 0xa0(r30)
/* 801B55D8 001B2538 80 01 00 8C */ lwz r0, 0x8c(r1)
/* 801B55DC 001B253C 80 61 00 94 */ lwz r3, 0x94(r1)
/* 801B55E0 001B2540 54 00 18 38 */ slwi r0, r0, 3
/* 801B55E4 001B2544 7C 03 02 14 */ add r0, r3, r0
/* 801B55E8 001B2548 90 61 00 0C */ stw r3, 0xc(r1)
/* 801B55EC 001B254C 7C 64 1B 78 */ mr r4, r3
/* 801B55F0 001B2550 90 01 00 14 */ stw r0, 0x14(r1)
/* 801B55F4 001B2554 90 01 00 10 */ stw r0, 0x10(r1)
/* 801B55F8 001B2558 90 61 00 08 */ stw r3, 8(r1)
/* 801B55FC 001B255C 48 00 00 08 */ b lbl_801B5604
lbl_801B5600:
/* 801B5600 001B2560 38 84 00 08 */ addi r4, r4, 8
lbl_801B5604:
/* 801B5604 001B2564 7C 04 00 40 */ cmplw r4, r0
/* 801B5608 001B2568 40 82 FF F8 */ bne lbl_801B5600
/* 801B560C 001B256C 28 03 00 00 */ cmplwi r3, 0
/* 801B5610 001B2570 41 82 00 08 */ beq lbl_801B5618
/* 801B5614 001B2574 48 16 03 1D */ bl Free__7CMemoryFPCv
lbl_801B5618:
/* 801B5618 001B2578 E3 E1 01 A8 */ psq_l f31, 424(r1), 0, qr0
/* 801B561C 001B257C CB E1 01 A0 */ lfd f31, 0x1a0(r1)
/* 801B5620 001B2580 E3 C1 01 98 */ psq_l f30, 408(r1), 0, qr0
/* 801B5624 001B2584 CB C1 01 90 */ lfd f30, 0x190(r1)
/* 801B5628 001B2588 E3 A1 01 88 */ psq_l f29, 392(r1), 0, qr0
/* 801B562C 001B258C CB A1 01 80 */ lfd f29, 0x180(r1)
/* 801B5630 001B2590 E3 81 01 78 */ psq_l f28, 376(r1), 0, qr0
/* 801B5634 001B2594 CB 81 01 70 */ lfd f28, 0x170(r1)
/* 801B5638 001B2598 E3 61 01 68 */ psq_l f27, 360(r1), 0, qr0
/* 801B563C 001B259C CB 61 01 60 */ lfd f27, 0x160(r1)
/* 801B5640 001B25A0 E3 41 01 58 */ psq_l f26, 344(r1), 0, qr0
/* 801B5644 001B25A4 CB 41 01 50 */ lfd f26, 0x150(r1)
/* 801B5648 001B25A8 BA 41 01 18 */ lmw r18, 0x118(r1)
/* 801B564C 001B25AC 80 01 01 B4 */ lwz r0, 0x1b4(r1)
/* 801B5650 001B25B0 7C 08 03 A6 */ mtlr r0
/* 801B5654 001B25B4 38 21 01 B0 */ addi r1, r1, 0x1b0
/* 801B5658 001B25B8 4E 80 00 20 */ blr
.global UpdateWarp__10CFlameWarpFv
UpdateWarp__10CFlameWarpFv:
/* 801B565C 001B25BC 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B5660 001B25C0 54 03 CF FE */ rlwinm r3, r0, 0x19, 0x1f, 0x1f
/* 801B5664 001B25C4 4E 80 00 20 */ blr
.global __dt__10CFlameWarpFv
__dt__10CFlameWarpFv:
/* 801B5668 001B25C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801B566C 001B25CC 7C 08 02 A6 */ mflr r0
/* 801B5670 001B25D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 801B5674 001B25D4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801B5678 001B25D8 7C 9F 23 78 */ mr r31, r4
/* 801B567C 001B25DC 93 C1 00 08 */ stw r30, 8(r1)
/* 801B5680 001B25E0 7C 7E 1B 79 */ or. r30, r3, r3
/* 801B5684 001B25E4 41 82 00 88 */ beq lbl_801B570C
/* 801B5688 001B25E8 3C 60 80 3E */ lis r3, lbl_803E51C8@ha
/* 801B568C 001B25EC 34 1E 00 04 */ addic. r0, r30, 4
/* 801B5690 001B25F0 38 03 51 C8 */ addi r0, r3, lbl_803E51C8@l
/* 801B5694 001B25F4 90 1E 00 00 */ stw r0, 0(r30)
/* 801B5698 001B25F8 41 82 00 58 */ beq lbl_801B56F0
/* 801B569C 001B25FC 80 BE 00 04 */ lwz r5, 4(r30)
/* 801B56A0 001B2600 38 60 00 00 */ li r3, 0
/* 801B56A4 001B2604 2C 05 00 00 */ cmpwi r5, 0
/* 801B56A8 001B2608 40 81 00 40 */ ble lbl_801B56E8
/* 801B56AC 001B260C 2C 05 00 08 */ cmpwi r5, 8
/* 801B56B0 001B2610 38 85 FF F8 */ addi r4, r5, -8
/* 801B56B4 001B2614 40 81 00 20 */ ble lbl_801B56D4
/* 801B56B8 001B2618 38 04 00 07 */ addi r0, r4, 7
/* 801B56BC 001B261C 54 00 E8 FE */ srwi r0, r0, 3
/* 801B56C0 001B2620 7C 09 03 A6 */ mtctr r0
/* 801B56C4 001B2624 2C 04 00 00 */ cmpwi r4, 0
/* 801B56C8 001B2628 40 81 00 0C */ ble lbl_801B56D4
lbl_801B56CC:
/* 801B56CC 001B262C 38 63 00 08 */ addi r3, r3, 8
/* 801B56D0 001B2630 42 00 FF FC */ bdnz lbl_801B56CC
lbl_801B56D4:
/* 801B56D4 001B2634 7C 03 28 50 */ subf r0, r3, r5
/* 801B56D8 001B2638 7C 09 03 A6 */ mtctr r0
/* 801B56DC 001B263C 7C 03 28 00 */ cmpw r3, r5
/* 801B56E0 001B2640 40 80 00 08 */ bge lbl_801B56E8
lbl_801B56E4:
/* 801B56E4 001B2644 42 00 00 00 */ bdnz lbl_801B56E4
lbl_801B56E8:
/* 801B56E8 001B2648 38 00 00 00 */ li r0, 0
/* 801B56EC 001B264C 90 1E 00 04 */ stw r0, 4(r30)
lbl_801B56F0:
/* 801B56F0 001B2650 7F C3 F3 78 */ mr r3, r30
/* 801B56F4 001B2654 38 80 00 00 */ li r4, 0
/* 801B56F8 001B2658 48 18 18 CD */ bl __dt__5CWarpFv
/* 801B56FC 001B265C 7F E0 07 35 */ extsh. r0, r31
/* 801B5700 001B2660 40 81 00 0C */ ble lbl_801B570C
/* 801B5704 001B2664 7F C3 F3 78 */ mr r3, r30
/* 801B5708 001B2668 48 16 02 29 */ bl Free__7CMemoryFPCv
lbl_801B570C:
/* 801B570C 001B266C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801B5710 001B2670 7F C3 F3 78 */ mr r3, r30
/* 801B5714 001B2674 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801B5718 001B2678 83 C1 00 08 */ lwz r30, 8(r1)
/* 801B571C 001B267C 7C 08 03 A6 */ mtlr r0
/* 801B5720 001B2680 38 21 00 10 */ addi r1, r1, 0x10
/* 801B5724 001B2684 4E 80 00 20 */ blr
.global __ct__10CFlameWarpFfRC9CVector3fb
__ct__10CFlameWarpFfRC9CVector3fb:
/* 801B5728 001B2688 3C C0 80 3F */ lis r6, lbl_803EE2F8@ha
/* 801B572C 001B268C 39 03 00 08 */ addi r8, r3, 8
/* 801B5730 001B2690 38 06 E2 F8 */ addi r0, r6, lbl_803EE2F8@l
/* 801B5734 001B2694 3C C0 80 3E */ lis r6, lbl_803E51C8@ha
/* 801B5738 001B2698 90 03 00 00 */ stw r0, 0(r3)
/* 801B573C 001B269C 38 E6 51 C8 */ addi r7, r6, lbl_803E51C8@l
/* 801B5740 001B26A0 38 00 00 03 */ li r0, 3
/* 801B5744 001B26A4 90 E3 00 00 */ stw r7, 0(r3)
/* 801B5748 001B26A8 38 C0 00 09 */ li r6, 9
/* 801B574C 001B26AC 38 E0 00 00 */ li r7, 0
/* 801B5750 001B26B0 90 C3 00 04 */ stw r6, 4(r3)
/* 801B5754 001B26B4 7C 09 03 A6 */ mtctr r0
lbl_801B5758:
/* 801B5758 001B26B8 28 08 00 00 */ cmplwi r8, 0
/* 801B575C 001B26BC 41 82 00 1C */ beq lbl_801B5778
/* 801B5760 001B26C0 C0 04 00 00 */ lfs f0, 0(r4)
/* 801B5764 001B26C4 D0 08 00 00 */ stfs f0, 0(r8)
/* 801B5768 001B26C8 C0 04 00 04 */ lfs f0, 4(r4)
/* 801B576C 001B26CC D0 08 00 04 */ stfs f0, 4(r8)
/* 801B5770 001B26D0 C0 04 00 08 */ lfs f0, 8(r4)
/* 801B5774 001B26D4 D0 08 00 08 */ stfs f0, 8(r8)
lbl_801B5778:
/* 801B5778 001B26D8 35 08 00 0C */ addic. r8, r8, 0xc
/* 801B577C 001B26DC 41 82 00 1C */ beq lbl_801B5798
/* 801B5780 001B26E0 C0 04 00 00 */ lfs f0, 0(r4)
/* 801B5784 001B26E4 D0 08 00 00 */ stfs f0, 0(r8)
/* 801B5788 001B26E8 C0 04 00 04 */ lfs f0, 4(r4)
/* 801B578C 001B26EC D0 08 00 04 */ stfs f0, 4(r8)
/* 801B5790 001B26F0 C0 04 00 08 */ lfs f0, 8(r4)
/* 801B5794 001B26F4 D0 08 00 08 */ stfs f0, 8(r8)
lbl_801B5798:
/* 801B5798 001B26F8 35 08 00 0C */ addic. r8, r8, 0xc
/* 801B579C 001B26FC 41 82 00 1C */ beq lbl_801B57B8
/* 801B57A0 001B2700 C0 04 00 00 */ lfs f0, 0(r4)
/* 801B57A4 001B2704 D0 08 00 00 */ stfs f0, 0(r8)
/* 801B57A8 001B2708 C0 04 00 04 */ lfs f0, 4(r4)
/* 801B57AC 001B270C D0 08 00 04 */ stfs f0, 4(r8)
/* 801B57B0 001B2710 C0 04 00 08 */ lfs f0, 8(r4)
/* 801B57B4 001B2714 D0 08 00 08 */ stfs f0, 8(r8)
lbl_801B57B8:
/* 801B57B8 001B2718 38 E7 00 02 */ addi r7, r7, 2
/* 801B57BC 001B271C 39 08 00 0C */ addi r8, r8, 0xc
/* 801B57C0 001B2720 42 00 FF 98 */ bdnz lbl_801B5758
/* 801B57C4 001B2724 C0 44 00 00 */ lfs f2, 0(r4)
/* 801B57C8 001B2728 EC 01 00 72 */ fmuls f0, f1, f1
/* 801B57CC 001B272C C0 62 A9 48 */ lfs f3, lbl_805AC668@sda21(r2)
/* 801B57D0 001B2730 38 C0 00 00 */ li r6, 0
/* 801B57D4 001B2734 D0 43 00 74 */ stfs f2, 0x74(r3)
/* 801B57D8 001B2738 C0 42 A9 4C */ lfs f2, lbl_805AC66C@sda21(r2)
/* 801B57DC 001B273C C0 84 00 04 */ lfs f4, 4(r4)
/* 801B57E0 001B2740 C0 22 A9 50 */ lfs f1, lbl_805AC670@sda21(r2)
/* 801B57E4 001B2744 D0 83 00 78 */ stfs f4, 0x78(r3)
/* 801B57E8 001B2748 C0 84 00 08 */ lfs f4, 8(r4)
/* 801B57EC 001B274C D0 83 00 7C */ stfs f4, 0x7c(r3)
/* 801B57F0 001B2750 C0 84 00 00 */ lfs f4, 0(r4)
/* 801B57F4 001B2754 D0 83 00 80 */ stfs f4, 0x80(r3)
/* 801B57F8 001B2758 C0 84 00 04 */ lfs f4, 4(r4)
/* 801B57FC 001B275C D0 83 00 84 */ stfs f4, 0x84(r3)
/* 801B5800 001B2760 C0 84 00 08 */ lfs f4, 8(r4)
/* 801B5804 001B2764 D0 83 00 88 */ stfs f4, 0x88(r3)
/* 801B5808 001B2768 D0 63 00 8C */ stfs f3, 0x8c(r3)
/* 801B580C 001B276C D0 43 00 90 */ stfs f2, 0x90(r3)
/* 801B5810 001B2770 D0 23 00 94 */ stfs f1, 0x94(r3)
/* 801B5814 001B2774 D0 03 00 98 */ stfs f0, 0x98(r3)
/* 801B5818 001B2778 90 C3 00 9C */ stw r6, 0x9c(r3)
/* 801B581C 001B277C 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B5820 001B2780 50 C0 3E 30 */ rlwimi r0, r6, 7, 0x18, 0x18
/* 801B5824 001B2784 98 03 00 A0 */ stb r0, 0xa0(r3)
/* 801B5828 001B2788 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B582C 001B278C 50 A0 36 72 */ rlwimi r0, r5, 6, 0x19, 0x19
/* 801B5830 001B2790 98 03 00 A0 */ stb r0, 0xa0(r3)
/* 801B5834 001B2794 88 03 00 A0 */ lbz r0, 0xa0(r3)
/* 801B5838 001B2798 50 C0 2E B4 */ rlwimi r0, r6, 5, 0x1a, 0x1a
/* 801B583C 001B279C 98 03 00 A0 */ stb r0, 0xa0(r3)
/* 801B5840 001B27A0 4E 80 00 20 */ blr
.global sub_801b5844
sub_801b5844:
/* 801B5844 001B27A4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 801B5848 001B27A8 7C 08 02 A6 */ mflr r0
/* 801B584C 001B27AC 90 01 00 44 */ stw r0, 0x44(r1)
/* 801B5850 001B27B0 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 801B5854 001B27B4 7C 9F 23 78 */ mr r31, r4
/* 801B5858 001B27B8 93 C1 00 38 */ stw r30, 0x38(r1)
/* 801B585C 001B27BC 7C 7E 1B 78 */ mr r30, r3
/* 801B5860 001B27C0 93 A1 00 34 */ stw r29, 0x34(r1)
/* 801B5864 001B27C4 80 63 00 00 */ lwz r3, 0(r3)
/* 801B5868 001B27C8 80 A4 00 00 */ lwz r5, 0(r4)
/* 801B586C 001B27CC 7C 03 28 50 */ subf r0, r3, r5
/* 801B5870 001B27D0 7C 00 1E 70 */ srawi r0, r0, 3
/* 801B5874 001B27D4 7C 80 01 94 */ addze r4, r0
/* 801B5878 001B27D8 2C 04 00 01 */ cmpwi r4, 1
/* 801B587C 001B27DC 40 81 01 34 */ ble lbl_801B59B0
/* 801B5880 001B27E0 2C 04 00 14 */ cmpwi r4, 0x14
/* 801B5884 001B27E4 41 81 00 24 */ bgt lbl_801B58A8
/* 801B5888 001B27E8 80 BF 00 00 */ lwz r5, 0(r31)
/* 801B588C 001B27EC 38 61 00 24 */ addi r3, r1, 0x24
/* 801B5890 001B27F0 80 1E 00 00 */ lwz r0, 0(r30)
/* 801B5894 001B27F4 38 81 00 20 */ addi r4, r1, 0x20
/* 801B5898 001B27F8 90 A1 00 20 */ stw r5, 0x20(r1)
/* 801B589C 001B27FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 801B58A0 001B2800 48 00 02 99 */ bl sub_801b5b38
/* 801B58A4 001B2804 48 00 01 0C */ b lbl_801B59B0
lbl_801B58A8:
/* 801B58A8 001B2808 54 80 0F FE */ srwi r0, r4, 0x1f
/* 801B58AC 001B280C 38 A5 FF F8 */ addi r5, r5, -8
/* 801B58B0 001B2810 7C 00 22 14 */ add r0, r0, r4
/* 801B58B4 001B2814 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 801B58B8 001B2818 7C 00 0E 70 */ srawi r0, r0, 1
/* 801B58BC 001B281C 54 00 18 38 */ slwi r0, r0, 3
/* 801B58C0 001B2820 7F A3 02 14 */ add r29, r3, r0
/* 801B58C4 001B2824 7F A4 EB 78 */ mr r4, r29
/* 801B58C8 001B2828 48 00 01 F9 */ bl sub_801b5ac0
/* 801B58CC 001B282C 80 9E 00 00 */ lwz r4, 0(r30)
/* 801B58D0 001B2830 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 801B58D4 001B2834 38 84 00 08 */ addi r4, r4, 8
/* 801B58D8 001B2838 C0 3D 00 00 */ lfs f1, 0(r29)
/* 801B58DC 001B283C 38 03 FF F8 */ addi r0, r3, -8
/* 801B58E0 001B2840 90 81 00 28 */ stw r4, 0x28(r1)
/* 801B58E4 001B2844 90 01 00 2C */ stw r0, 0x2c(r1)
/* 801B58E8 001B2848 48 00 00 10 */ b lbl_801B58F8
lbl_801B58EC:
/* 801B58EC 001B284C 80 61 00 28 */ lwz r3, 0x28(r1)
/* 801B58F0 001B2850 38 03 00 08 */ addi r0, r3, 8
/* 801B58F4 001B2854 90 01 00 28 */ stw r0, 0x28(r1)
lbl_801B58F8:
/* 801B58F8 001B2858 80 61 00 28 */ lwz r3, 0x28(r1)
/* 801B58FC 001B285C C0 03 00 00 */ lfs f0, 0(r3)
/* 801B5900 001B2860 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801B5904 001B2864 41 80 FF E8 */ blt lbl_801B58EC
/* 801B5908 001B2868 48 00 00 10 */ b lbl_801B5918
lbl_801B590C:
/* 801B590C 001B286C 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 801B5910 001B2870 38 03 FF F8 */ addi r0, r3, -8
/* 801B5914 001B2874 90 01 00 2C */ stw r0, 0x2c(r1)
lbl_801B5918:
/* 801B5918 001B2878 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 801B591C 001B287C C0 03 00 00 */ lfs f0, 0(r3)
/* 801B5920 001B2880 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B5924 001B2884 41 80 FF E8 */ blt lbl_801B590C
/* 801B5928 001B2888 80 01 00 28 */ lwz r0, 0x28(r1)
/* 801B592C 001B288C 7C 00 18 40 */ cmplw r0, r3
/* 801B5930 001B2890 40 80 00 48 */ bge lbl_801B5978
/* 801B5934 001B2894 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 801B5938 001B2898 80 C1 00 2C */ lwz r6, 0x2c(r1)
/* 801B593C 001B289C C0 45 00 00 */ lfs f2, 0(r5)
/* 801B5940 001B28A0 38 65 00 08 */ addi r3, r5, 8
/* 801B5944 001B28A4 88 E5 00 04 */ lbz r7, 4(r5)
/* 801B5948 001B28A8 38 06 FF F8 */ addi r0, r6, -8
/* 801B594C 001B28AC C0 06 00 00 */ lfs f0, 0(r6)
/* 801B5950 001B28B0 90 C1 00 18 */ stw r6, 0x18(r1)
/* 801B5954 001B28B4 D0 05 00 00 */ stfs f0, 0(r5)
/* 801B5958 001B28B8 88 86 00 04 */ lbz r4, 4(r6)
/* 801B595C 001B28BC 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 801B5960 001B28C0 98 85 00 04 */ stb r4, 4(r5)
/* 801B5964 001B28C4 D0 46 00 00 */ stfs f2, 0(r6)
/* 801B5968 001B28C8 98 E6 00 04 */ stb r7, 4(r6)
/* 801B596C 001B28CC 90 61 00 28 */ stw r3, 0x28(r1)
/* 801B5970 001B28D0 90 01 00 2C */ stw r0, 0x2c(r1)
/* 801B5974 001B28D4 4B FF FF 84 */ b lbl_801B58F8
lbl_801B5978:
/* 801B5978 001B28D8 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 801B597C 001B28DC 38 61 00 14 */ addi r3, r1, 0x14
/* 801B5980 001B28E0 80 1E 00 00 */ lwz r0, 0(r30)
/* 801B5984 001B28E4 38 81 00 10 */ addi r4, r1, 0x10
/* 801B5988 001B28E8 90 A1 00 10 */ stw r5, 0x10(r1)
/* 801B598C 001B28EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 801B5990 001B28F0 4B FF FE B5 */ bl sub_801b5844
/* 801B5994 001B28F4 80 BF 00 00 */ lwz r5, 0(r31)
/* 801B5998 001B28F8 38 61 00 0C */ addi r3, r1, 0xc
/* 801B599C 001B28FC 80 01 00 28 */ lwz r0, 0x28(r1)
/* 801B59A0 001B2900 38 81 00 08 */ addi r4, r1, 8
/* 801B59A4 001B2904 90 A1 00 08 */ stw r5, 8(r1)
/* 801B59A8 001B2908 90 01 00 0C */ stw r0, 0xc(r1)
/* 801B59AC 001B290C 4B FF FE 99 */ bl sub_801b5844
lbl_801B59B0:
/* 801B59B0 001B2910 80 01 00 44 */ lwz r0, 0x44(r1)
/* 801B59B4 001B2914 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 801B59B8 001B2918 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 801B59BC 001B291C 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 801B59C0 001B2920 7C 08 03 A6 */ mtlr r0
/* 801B59C4 001B2924 38 21 00 40 */ addi r1, r1, 0x40
/* 801B59C8 001B2928 4E 80 00 20 */ blr
.global sub_801b59cc
sub_801b59cc:
/* 801B59CC 001B292C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 801B59D0 001B2930 7C 08 02 A6 */ mflr r0
/* 801B59D4 001B2934 90 01 00 34 */ stw r0, 0x34(r1)
/* 801B59D8 001B2938 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 801B59DC 001B293C 7C 9F 23 78 */ mr r31, r4
/* 801B59E0 001B2940 93 C1 00 28 */ stw r30, 0x28(r1)
/* 801B59E4 001B2944 7C 7E 1B 78 */ mr r30, r3
/* 801B59E8 001B2948 93 A1 00 24 */ stw r29, 0x24(r1)
/* 801B59EC 001B294C 80 03 00 08 */ lwz r0, 8(r3)
/* 801B59F0 001B2950 7C 1F 00 00 */ cmpw r31, r0
/* 801B59F4 001B2954 40 81 00 B0 */ ble lbl_801B5AA4
/* 801B59F8 001B2958 57 E3 18 39 */ rlwinm. r3, r31, 3, 0, 0x1c
/* 801B59FC 001B295C 40 82 00 0C */ bne lbl_801B5A08
/* 801B5A00 001B2960 3B A0 00 00 */ li r29, 0
/* 801B5A04 001B2964 48 00 00 18 */ b lbl_801B5A1C
lbl_801B5A08:
/* 801B5A08 001B2968 3C 80 80 3D */ lis r4, lbl_803D1638@ha
/* 801B5A0C 001B296C 38 A0 00 00 */ li r5, 0
/* 801B5A10 001B2970 38 84 16 38 */ addi r4, r4, lbl_803D1638@l
/* 801B5A14 001B2974 48 15 FE 05 */ bl __nwa__FUlPCcPCc
/* 801B5A18 001B2978 7C 7D 1B 78 */ mr r29, r3
lbl_801B5A1C:
/* 801B5A1C 001B297C 80 1E 00 04 */ lwz r0, 4(r30)
/* 801B5A20 001B2980 7F A4 EB 78 */ mr r4, r29
/* 801B5A24 001B2984 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 801B5A28 001B2988 54 00 18 38 */ slwi r0, r0, 3
/* 801B5A2C 001B298C 7C 65 02 14 */ add r3, r5, r0
/* 801B5A30 001B2990 90 A1 00 10 */ stw r5, 0x10(r1)
/* 801B5A34 001B2994 90 61 00 08 */ stw r3, 8(r1)
/* 801B5A38 001B2998 90 61 00 0C */ stw r3, 0xc(r1)
/* 801B5A3C 001B299C 90 A1 00 14 */ stw r5, 0x14(r1)
/* 801B5A40 001B29A0 48 00 00 24 */ b lbl_801B5A64
lbl_801B5A44:
/* 801B5A44 001B29A4 28 04 00 00 */ cmplwi r4, 0
/* 801B5A48 001B29A8 41 82 00 14 */ beq lbl_801B5A5C
/* 801B5A4C 001B29AC C0 05 00 00 */ lfs f0, 0(r5)
/* 801B5A50 001B29B0 D0 04 00 00 */ stfs f0, 0(r4)
/* 801B5A54 001B29B4 88 05 00 04 */ lbz r0, 4(r5)
/* 801B5A58 001B29B8 98 04 00 04 */ stb r0, 4(r4)
lbl_801B5A5C:
/* 801B5A5C 001B29BC 38 84 00 08 */ addi r4, r4, 8
/* 801B5A60 001B29C0 38 A5 00 08 */ addi r5, r5, 8
lbl_801B5A64:
/* 801B5A64 001B29C4 7C 05 18 40 */ cmplw r5, r3
/* 801B5A68 001B29C8 40 82 FF DC */ bne lbl_801B5A44
/* 801B5A6C 001B29CC 80 1E 00 04 */ lwz r0, 4(r30)
/* 801B5A70 001B29D0 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 801B5A74 001B29D4 54 00 18 38 */ slwi r0, r0, 3
/* 801B5A78 001B29D8 7C 64 1B 78 */ mr r4, r3
/* 801B5A7C 001B29DC 7C 03 02 14 */ add r0, r3, r0
/* 801B5A80 001B29E0 48 00 00 08 */ b lbl_801B5A88
lbl_801B5A84:
/* 801B5A84 001B29E4 38 84 00 08 */ addi r4, r4, 8
lbl_801B5A88:
/* 801B5A88 001B29E8 7C 04 00 40 */ cmplw r4, r0
/* 801B5A8C 001B29EC 40 82 FF F8 */ bne lbl_801B5A84
/* 801B5A90 001B29F0 28 03 00 00 */ cmplwi r3, 0
/* 801B5A94 001B29F4 41 82 00 08 */ beq lbl_801B5A9C
/* 801B5A98 001B29F8 48 15 FE 99 */ bl Free__7CMemoryFPCv
lbl_801B5A9C:
/* 801B5A9C 001B29FC 93 BE 00 0C */ stw r29, 0xc(r30)
/* 801B5AA0 001B2A00 93 FE 00 08 */ stw r31, 8(r30)
lbl_801B5AA4:
/* 801B5AA4 001B2A04 80 01 00 34 */ lwz r0, 0x34(r1)
/* 801B5AA8 001B2A08 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 801B5AAC 001B2A0C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 801B5AB0 001B2A10 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 801B5AB4 001B2A14 7C 08 03 A6 */ mtlr r0
/* 801B5AB8 001B2A18 38 21 00 30 */ addi r1, r1, 0x30
/* 801B5ABC 001B2A1C 4E 80 00 20 */ blr
.global sub_801b5ac0
sub_801b5ac0:
/* 801B5AC0 001B2A20 C0 24 00 00 */ lfs f1, 0(r4)
/* 801B5AC4 001B2A24 C0 03 00 00 */ lfs f0, 0(r3)
/* 801B5AC8 001B2A28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B5ACC 001B2A2C 40 80 00 1C */ bge lbl_801B5AE8
/* 801B5AD0 001B2A30 88 C3 00 04 */ lbz r6, 4(r3)
/* 801B5AD4 001B2A34 D0 23 00 00 */ stfs f1, 0(r3)
/* 801B5AD8 001B2A38 88 04 00 04 */ lbz r0, 4(r4)
/* 801B5ADC 001B2A3C 98 03 00 04 */ stb r0, 4(r3)
/* 801B5AE0 001B2A40 D0 04 00 00 */ stfs f0, 0(r4)
/* 801B5AE4 001B2A44 98 C4 00 04 */ stb r6, 4(r4)
lbl_801B5AE8:
/* 801B5AE8 001B2A48 C0 05 00 00 */ lfs f0, 0(r5)
/* 801B5AEC 001B2A4C C0 24 00 00 */ lfs f1, 0(r4)
/* 801B5AF0 001B2A50 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801B5AF4 001B2A54 4C 80 00 20 */ bgelr
/* 801B5AF8 001B2A58 88 C5 00 04 */ lbz r6, 4(r5)
/* 801B5AFC 001B2A5C D0 25 00 00 */ stfs f1, 0(r5)
/* 801B5B00 001B2A60 88 04 00 04 */ lbz r0, 4(r4)
/* 801B5B04 001B2A64 98 05 00 04 */ stb r0, 4(r5)
/* 801B5B08 001B2A68 C0 23 00 00 */ lfs f1, 0(r3)
/* 801B5B0C 001B2A6C FC 00 08 40 */ fcmpo cr0, f0, f1
/* 801B5B10 001B2A70 40 80 00 1C */ bge lbl_801B5B2C
/* 801B5B14 001B2A74 D0 24 00 00 */ stfs f1, 0(r4)
/* 801B5B18 001B2A78 88 03 00 04 */ lbz r0, 4(r3)
/* 801B5B1C 001B2A7C 98 04 00 04 */ stb r0, 4(r4)
/* 801B5B20 001B2A80 D0 03 00 00 */ stfs f0, 0(r3)
/* 801B5B24 001B2A84 98 C3 00 04 */ stb r6, 4(r3)
/* 801B5B28 001B2A88 4E 80 00 20 */ blr
lbl_801B5B2C:
/* 801B5B2C 001B2A8C D0 04 00 00 */ stfs f0, 0(r4)
/* 801B5B30 001B2A90 98 C4 00 04 */ stb r6, 4(r4)
/* 801B5B34 001B2A94 4E 80 00 20 */ blr
.global sub_801b5b38
sub_801b5b38:
/* 801B5B38 001B2A98 80 A3 00 00 */ lwz r5, 0(r3)
/* 801B5B3C 001B2A9C 38 A5 00 08 */ addi r5, r5, 8
/* 801B5B40 001B2AA0 48 00 00 54 */ b lbl_801B5B94
lbl_801B5B44:
/* 801B5B44 001B2AA4 C0 25 00 00 */ lfs f1, 0(r5)
/* 801B5B48 001B2AA8 7C A8 2B 78 */ mr r8, r5
/* 801B5B4C 001B2AAC 88 C5 00 04 */ lbz r6, 4(r5)
/* 801B5B50 001B2AB0 38 E5 FF F8 */ addi r7, r5, -8
/* 801B5B54 001B2AB4 48 00 00 1C */ b lbl_801B5B70
lbl_801B5B58:
/* 801B5B58 001B2AB8 C0 07 00 00 */ lfs f0, 0(r7)
/* 801B5B5C 001B2ABC D0 08 00 00 */ stfs f0, 0(r8)
/* 801B5B60 001B2AC0 88 07 00 04 */ lbz r0, 4(r7)
/* 801B5B64 001B2AC4 38 E7 FF F8 */ addi r7, r7, -8
/* 801B5B68 001B2AC8 98 08 00 04 */ stb r0, 4(r8)
/* 801B5B6C 001B2ACC 39 08 FF F8 */ addi r8, r8, -8
lbl_801B5B70:
/* 801B5B70 001B2AD0 80 03 00 00 */ lwz r0, 0(r3)
/* 801B5B74 001B2AD4 7C 00 40 40 */ cmplw r0, r8
/* 801B5B78 001B2AD8 40 80 00 10 */ bge lbl_801B5B88
/* 801B5B7C 001B2ADC C0 07 00 00 */ lfs f0, 0(r7)
/* 801B5B80 001B2AE0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801B5B84 001B2AE4 41 80 FF D4 */ blt lbl_801B5B58
lbl_801B5B88:
/* 801B5B88 001B2AE8 D0 28 00 00 */ stfs f1, 0(r8)
/* 801B5B8C 001B2AEC 38 A5 00 08 */ addi r5, r5, 8
/* 801B5B90 001B2AF0 98 C8 00 04 */ stb r6, 4(r8)
lbl_801B5B94:
/* 801B5B94 001B2AF4 80 04 00 00 */ lwz r0, 0(r4)
/* 801B5B98 001B2AF8 7C 05 00 40 */ cmplw r5, r0
/* 801B5B9C 001B2AFC 41 80 FF A8 */ blt lbl_801B5B44
/* 801B5BA0 001B2B00 4E 80 00 20 */ blr