prime/asm/MetroidPrime/Weapons/GunController/CGSComboFire.s

280 lines
14 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global SetAnim__12CGSComboFireFR9CAnimDataiiR13CStateManagerf
SetAnim__12CGSComboFireFR9CAnimDataiiR13CStateManagerf:
/* 801CD0A0 001CA000 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 801CD0A4 001CA004 7C 08 02 A6 */ mflr r0
/* 801CD0A8 001CA008 90 01 00 F4 */ stw r0, 0xf4(r1)
/* 801CD0AC 001CA00C DB E1 00 E0 */ stfd f31, 0xe0(r1)
/* 801CD0B0 001CA010 F3 E1 00 E8 */ psq_st f31, 232(r1), 0, qr0
/* 801CD0B4 001CA014 BF 61 00 CC */ stmw r27, 0xcc(r1)
/* 801CD0B8 001CA018 88 03 00 10 */ lbz r0, 0x10(r3)
/* 801CD0BC 001CA01C FF E0 08 90 */ fmr f31, f1
/* 801CD0C0 001CA020 7C 7C 1B 78 */ mr r28, r3
/* 801CD0C4 001CA024 7C 9D 23 78 */ mr r29, r4
/* 801CD0C8 001CA028 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 801CD0CC 001CA02C 7C BE 2B 78 */ mr r30, r5
/* 801CD0D0 001CA030 7C FF 3B 78 */ mr r31, r7
/* 801CD0D4 001CA034 3B 60 00 02 */ li r27, 2
/* 801CD0D8 001CA038 40 82 00 08 */ bne lbl_801CD0E0
/* 801CD0DC 001CA03C 7C DB 33 78 */ mr r27, r6
lbl_801CD0E0:
/* 801CD0E0 001CA040 88 1C 00 10 */ lbz r0, 0x10(r28)
/* 801CD0E4 001CA044 38 60 00 00 */ li r3, 0
/* 801CD0E8 001CA048 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 801CD0EC 001CA04C 38 61 00 10 */ addi r3, r1, 0x10
/* 801CD0F0 001CA050 98 1C 00 10 */ stb r0, 0x10(r28)
/* 801CD0F4 001CA054 48 11 5F 89 */ bl NoParameter__12CPASAnimParmFv
/* 801CD0F8 001CA058 38 61 00 18 */ addi r3, r1, 0x18
/* 801CD0FC 001CA05C 48 11 5F 81 */ bl NoParameter__12CPASAnimParmFv
/* 801CD100 001CA060 38 61 00 20 */ addi r3, r1, 0x20
/* 801CD104 001CA064 48 11 5F 79 */ bl NoParameter__12CPASAnimParmFv
/* 801CD108 001CA068 38 61 00 28 */ addi r3, r1, 0x28
/* 801CD10C 001CA06C 48 11 5F 71 */ bl NoParameter__12CPASAnimParmFv
/* 801CD110 001CA070 38 61 00 30 */ addi r3, r1, 0x30
/* 801CD114 001CA074 48 11 5F 69 */ bl NoParameter__12CPASAnimParmFv
/* 801CD118 001CA078 38 61 00 38 */ addi r3, r1, 0x38
/* 801CD11C 001CA07C 48 11 5F 61 */ bl NoParameter__12CPASAnimParmFv
/* 801CD120 001CA080 7F 64 DB 78 */ mr r4, r27
/* 801CD124 001CA084 38 61 00 40 */ addi r3, r1, 0x40
/* 801CD128 001CA088 48 11 5E 5D */ bl FromEnum__12CPASAnimParmFi
/* 801CD12C 001CA08C 7F C4 F3 78 */ mr r4, r30
/* 801CD130 001CA090 38 61 00 48 */ addi r3, r1, 0x48
/* 801CD134 001CA094 48 11 5F 19 */ bl FromInt32__12CPASAnimParmFi
/* 801CD138 001CA098 38 61 00 18 */ addi r3, r1, 0x18
/* 801CD13C 001CA09C 38 01 00 10 */ addi r0, r1, 0x10
/* 801CD140 001CA0A0 90 61 00 08 */ stw r3, 8(r1)
/* 801CD144 001CA0A4 38 61 00 80 */ addi r3, r1, 0x80
/* 801CD148 001CA0A8 38 A1 00 48 */ addi r5, r1, 0x48
/* 801CD14C 001CA0AC 38 C1 00 40 */ addi r6, r1, 0x40
/* 801CD150 001CA0B0 90 01 00 0C */ stw r0, 0xc(r1)
/* 801CD154 001CA0B4 38 E1 00 38 */ addi r7, r1, 0x38
/* 801CD158 001CA0B8 39 01 00 30 */ addi r8, r1, 0x30
/* 801CD15C 001CA0BC 39 21 00 28 */ addi r9, r1, 0x28
/* 801CD160 001CA0C0 39 41 00 20 */ addi r10, r1, 0x20
/* 801CD164 001CA0C4 38 80 00 04 */ li r4, 4
/* 801CD168 001CA0C8 4B EB 01 5D */ bl __ct__16CPASAnimParmDataFiRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParmRC12CPASAnimParm
/* 801CD16C 001CA0CC 80 DF 09 00 */ lwz r6, 0x900(r31)
/* 801CD170 001CA0D0 38 61 00 50 */ addi r3, r1, 0x50
/* 801CD174 001CA0D4 38 9D 00 3C */ addi r4, r29, 0x3c
/* 801CD178 001CA0D8 38 A1 00 80 */ addi r5, r1, 0x80
/* 801CD17C 001CA0DC 38 E0 FF FF */ li r7, -1
/* 801CD180 001CA0E0 48 11 7E E1 */ bl FindBestAnimation__12CPASDatabaseCFRC16CPASAnimParmDataR9CRandom16i
/* 801CD184 001CA0E4 34 A1 00 84 */ addic. r5, r1, 0x84
/* 801CD188 001CA0E8 83 E1 00 54 */ lwz r31, 0x54(r1)
/* 801CD18C 001CA0EC 41 82 00 58 */ beq lbl_801CD1E4
/* 801CD190 001CA0F0 80 C5 00 00 */ lwz r6, 0(r5)
/* 801CD194 001CA0F4 38 60 00 00 */ li r3, 0
/* 801CD198 001CA0F8 2C 06 00 00 */ cmpwi r6, 0
/* 801CD19C 001CA0FC 40 81 00 40 */ ble lbl_801CD1DC
/* 801CD1A0 001CA100 2C 06 00 08 */ cmpwi r6, 8
/* 801CD1A4 001CA104 38 86 FF F8 */ addi r4, r6, -8
/* 801CD1A8 001CA108 40 81 00 20 */ ble lbl_801CD1C8
/* 801CD1AC 001CA10C 38 04 00 07 */ addi r0, r4, 7
/* 801CD1B0 001CA110 54 00 E8 FE */ srwi r0, r0, 3
/* 801CD1B4 001CA114 7C 09 03 A6 */ mtctr r0
/* 801CD1B8 001CA118 2C 04 00 00 */ cmpwi r4, 0
/* 801CD1BC 001CA11C 40 81 00 0C */ ble lbl_801CD1C8
lbl_801CD1C0:
/* 801CD1C0 001CA120 38 63 00 08 */ addi r3, r3, 8
/* 801CD1C4 001CA124 42 00 FF FC */ bdnz lbl_801CD1C0
lbl_801CD1C8:
/* 801CD1C8 001CA128 7C 03 30 50 */ subf r0, r3, r6
/* 801CD1CC 001CA12C 7C 09 03 A6 */ mtctr r0
/* 801CD1D0 001CA130 7C 03 30 00 */ cmpw r3, r6
/* 801CD1D4 001CA134 40 80 00 08 */ bge lbl_801CD1DC
lbl_801CD1D8:
/* 801CD1D8 001CA138 42 00 00 00 */ bdnz lbl_801CD1D8
lbl_801CD1DC:
/* 801CD1DC 001CA13C 38 00 00 00 */ li r0, 0
/* 801CD1E0 001CA140 90 05 00 00 */ stw r0, 0(r5)
lbl_801CD1E4:
/* 801CD1E4 001CA144 88 1C 00 10 */ lbz r0, 0x10(r28)
/* 801CD1E8 001CA148 39 00 00 00 */ li r8, 0
/* 801CD1EC 001CA14C 51 00 3E 30 */ rlwimi r0, r8, 7, 0x18, 0x18
/* 801CD1F0 001CA150 C0 02 AB 90 */ lfs f0, lbl_805AC8B0@sda21(r2)
/* 801CD1F4 001CA154 98 1C 00 10 */ stb r0, 0x10(r28)
/* 801CD1F8 001CA158 FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 801CD1FC 001CA15C 93 DC 00 0C */ stw r30, 0xc(r28)
/* 801CD200 001CA160 93 7C 00 04 */ stw r27, 4(r28)
/* 801CD204 001CA164 41 82 00 10 */ beq lbl_801CD214
/* 801CD208 001CA168 D3 FC 00 00 */ stfs f31, 0(r28)
/* 801CD20C 001CA16C 93 FC 00 08 */ stw r31, 8(r28)
/* 801CD210 001CA170 48 00 00 68 */ b lbl_801CD278
lbl_801CD214:
/* 801CD214 001CA174 20 1B 00 01 */ subfic r0, r27, 1
/* 801CD218 001CA178 88 7D 02 20 */ lbz r3, 0x220(r29)
/* 801CD21C 001CA17C 7C 00 00 34 */ cntlzw r0, r0
/* 801CD220 001CA180 38 E0 00 01 */ li r7, 1
/* 801CD224 001CA184 50 03 0E 72 */ rlwimi r3, r0, 1, 0x19, 0x19
/* 801CD228 001CA188 C0 02 AB 94 */ lfs f0, lbl_805AC8B4@sda21(r2)
/* 801CD22C 001CA18C 98 7D 02 20 */ stb r3, 0x220(r29)
/* 801CD230 001CA190 38 00 FF FF */ li r0, -1
/* 801CD234 001CA194 7F A3 EB 78 */ mr r3, r29
/* 801CD238 001CA198 38 81 00 58 */ addi r4, r1, 0x58
/* 801CD23C 001CA19C 88 DD 02 20 */ lbz r6, 0x220(r29)
/* 801CD240 001CA1A0 50 E6 3E 30 */ rlwimi r6, r7, 7, 0x18, 0x18
/* 801CD244 001CA1A4 38 A0 00 00 */ li r5, 0
/* 801CD248 001CA1A8 98 DD 02 20 */ stb r6, 0x220(r29)
/* 801CD24C 001CA1AC 93 E1 00 58 */ stw r31, 0x58(r1)
/* 801CD250 001CA1B0 90 01 00 5C */ stw r0, 0x5c(r1)
/* 801CD254 001CA1B4 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 801CD258 001CA1B8 98 E1 00 64 */ stb r7, 0x64(r1)
/* 801CD25C 001CA1BC 91 01 00 68 */ stw r8, 0x68(r1)
/* 801CD260 001CA1C0 91 01 00 6C */ stw r8, 0x6c(r1)
/* 801CD264 001CA1C4 99 01 00 70 */ stb r8, 0x70(r1)
/* 801CD268 001CA1C8 91 01 00 74 */ stw r8, 0x74(r1)
/* 801CD26C 001CA1CC 91 01 00 78 */ stw r8, 0x78(r1)
/* 801CD270 001CA1D0 91 01 00 7C */ stw r8, 0x7c(r1)
/* 801CD274 001CA1D4 4B E5 FB 09 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
lbl_801CD278:
/* 801CD278 001CA1D8 7F E3 FB 78 */ mr r3, r31
/* 801CD27C 001CA1DC E3 E1 00 E8 */ psq_l f31, 232(r1), 0, qr0
/* 801CD280 001CA1E0 CB E1 00 E0 */ lfd f31, 0xe0(r1)
/* 801CD284 001CA1E4 BB 61 00 CC */ lmw r27, 0xcc(r1)
/* 801CD288 001CA1E8 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 801CD28C 001CA1EC 7C 08 03 A6 */ mtlr r0
/* 801CD290 001CA1F0 38 21 00 F0 */ addi r1, r1, 0xf0
/* 801CD294 001CA1F4 4E 80 00 20 */ blr
.global Update__12CGSComboFireFR9CAnimDatafR13CStateManager
Update__12CGSComboFireFR9CAnimDatafR13CStateManager:
/* 801CD298 001CA1F8 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 801CD29C 001CA1FC 7C 08 02 A6 */ mflr r0
/* 801CD2A0 001CA200 90 01 00 54 */ stw r0, 0x54(r1)
/* 801CD2A4 001CA204 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 801CD2A8 001CA208 7C 9F 23 78 */ mr r31, r4
/* 801CD2AC 001CA20C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 801CD2B0 001CA210 7C 7E 1B 78 */ mr r30, r3
/* 801CD2B4 001CA214 93 A1 00 44 */ stw r29, 0x44(r1)
/* 801CD2B8 001CA218 93 81 00 40 */ stw r28, 0x40(r1)
/* 801CD2BC 001CA21C 7C BC 2B 78 */ mr r28, r5
/* 801CD2C0 001CA220 80 03 00 08 */ lwz r0, 8(r3)
/* 801CD2C4 001CA224 2C 00 FF FF */ cmpwi r0, -1
/* 801CD2C8 001CA228 41 82 00 AC */ beq lbl_801CD374
/* 801CD2CC 001CA22C C0 5E 00 00 */ lfs f2, 0(r30)
/* 801CD2D0 001CA230 C0 02 AB 90 */ lfs f0, lbl_805AC8B0@sda21(r2)
/* 801CD2D4 001CA234 EC 22 08 28 */ fsubs f1, f2, f1
/* 801CD2D8 001CA238 D0 3E 00 00 */ stfs f1, 0(r30)
/* 801CD2DC 001CA23C C0 3E 00 00 */ lfs f1, 0(r30)
/* 801CD2E0 001CA240 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801CD2E4 001CA244 4C 40 13 82 */ cror 2, 0, 2
/* 801CD2E8 001CA248 40 82 01 4C */ bne lbl_801CD434
/* 801CD2EC 001CA24C 80 1E 00 04 */ lwz r0, 4(r30)
/* 801CD2F0 001CA250 39 00 00 01 */ li r8, 1
/* 801CD2F4 001CA254 88 9F 02 20 */ lbz r4, 0x220(r31)
/* 801CD2F8 001CA258 38 C0 FF FF */ li r6, -1
/* 801CD2FC 001CA25C 20 00 00 01 */ subfic r0, r0, 1
/* 801CD300 001CA260 C0 02 AB 94 */ lfs f0, lbl_805AC8B4@sda21(r2)
/* 801CD304 001CA264 7C 03 00 34 */ cntlzw r3, r0
/* 801CD308 001CA268 54 65 DE 3E */ rlwinm r5, r3, 0x1b, 0x18, 0x1f
/* 801CD30C 001CA26C 38 00 00 00 */ li r0, 0
/* 801CD310 001CA270 50 A4 36 72 */ rlwimi r4, r5, 6, 0x19, 0x19
/* 801CD314 001CA274 7F E3 FB 78 */ mr r3, r31
/* 801CD318 001CA278 98 9F 02 20 */ stb r4, 0x220(r31)
/* 801CD31C 001CA27C 38 81 00 18 */ addi r4, r1, 0x18
/* 801CD320 001CA280 38 A0 00 00 */ li r5, 0
/* 801CD324 001CA284 88 FF 02 20 */ lbz r7, 0x220(r31)
/* 801CD328 001CA288 51 07 3E 30 */ rlwimi r7, r8, 7, 0x18, 0x18
/* 801CD32C 001CA28C 98 FF 02 20 */ stb r7, 0x220(r31)
/* 801CD330 001CA290 80 FE 00 08 */ lwz r7, 8(r30)
/* 801CD334 001CA294 90 E1 00 18 */ stw r7, 0x18(r1)
/* 801CD338 001CA298 90 C1 00 1C */ stw r6, 0x1c(r1)
/* 801CD33C 001CA29C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 801CD340 001CA2A0 99 01 00 24 */ stb r8, 0x24(r1)
/* 801CD344 001CA2A4 90 01 00 28 */ stw r0, 0x28(r1)
/* 801CD348 001CA2A8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 801CD34C 001CA2AC 98 01 00 30 */ stb r0, 0x30(r1)
/* 801CD350 001CA2B0 90 01 00 34 */ stw r0, 0x34(r1)
/* 801CD354 001CA2B4 90 01 00 38 */ stw r0, 0x38(r1)
/* 801CD358 001CA2B8 90 01 00 3C */ stw r0, 0x3c(r1)
/* 801CD35C 001CA2BC 4B E5 FA 21 */ bl SetAnimation__9CAnimDataFRC18CAnimPlaybackParmsb
/* 801CD360 001CA2C0 C0 02 AB 90 */ lfs f0, lbl_805AC8B0@sda21(r2)
/* 801CD364 001CA2C4 38 00 FF FF */ li r0, -1
/* 801CD368 001CA2C8 D0 1E 00 00 */ stfs f0, 0(r30)
/* 801CD36C 001CA2CC 90 1E 00 08 */ stw r0, 8(r30)
/* 801CD370 001CA2D0 48 00 00 C4 */ b lbl_801CD434
lbl_801CD374:
/* 801CD374 001CA2D4 3C 80 80 3D */ lis r4, lbl_803D1AC8@ha
/* 801CD378 001CA2D8 38 61 00 08 */ addi r3, r1, 8
/* 801CD37C 001CA2DC 38 84 1A C8 */ addi r4, r4, lbl_803D1AC8@l
/* 801CD380 001CA2E0 4B E3 79 39 */ bl string_l__4rstlFPCc
/* 801CD384 001CA2E4 C0 22 AB 98 */ lfs f1, lbl_805AC8B8@sda21(r2)
/* 801CD388 001CA2E8 7F E3 FB 78 */ mr r3, r31
/* 801CD38C 001CA2EC 38 81 00 08 */ addi r4, r1, 8
/* 801CD390 001CA2F0 4B E5 F0 5D */ bl "IsAnimTimeRemaining__9CAnimDataCFfRCQ24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>"
/* 801CD394 001CA2F4 7C 7D 1B 78 */ mr r29, r3
/* 801CD398 001CA2F8 38 61 00 08 */ addi r3, r1, 8
/* 801CD39C 001CA2FC 48 17 07 45 */ bl "internal_dereference__Q24rstl66basic_string<c,Q24rstl14char_traits<c>,Q24rstl17rmemory_allocator>Fv"
/* 801CD3A0 001CA300 57 A0 06 3F */ clrlwi. r0, r29, 0x18
/* 801CD3A4 001CA304 40 82 00 90 */ bne lbl_801CD434
/* 801CD3A8 001CA308 80 1E 00 04 */ lwz r0, 4(r30)
/* 801CD3AC 001CA30C 2C 00 00 01 */ cmpwi r0, 1
/* 801CD3B0 001CA310 41 82 00 84 */ beq lbl_801CD434
/* 801CD3B4 001CA314 40 80 00 10 */ bge lbl_801CD3C4
/* 801CD3B8 001CA318 2C 00 00 00 */ cmpwi r0, 0
/* 801CD3BC 001CA31C 40 80 00 14 */ bge lbl_801CD3D0
/* 801CD3C0 001CA320 48 00 00 74 */ b lbl_801CD434
lbl_801CD3C4:
/* 801CD3C4 001CA324 2C 00 00 03 */ cmpwi r0, 3
/* 801CD3C8 001CA328 40 80 00 6C */ bge lbl_801CD434
/* 801CD3CC 001CA32C 48 00 00 58 */ b lbl_801CD424
lbl_801CD3D0:
/* 801CD3D0 001CA330 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 801CD3D4 001CA334 7F C3 F3 78 */ mr r3, r30
/* 801CD3D8 001CA338 C0 22 AB 90 */ lfs f1, lbl_805AC8B0@sda21(r2)
/* 801CD3DC 001CA33C 7F E4 FB 78 */ mr r4, r31
/* 801CD3E0 001CA340 7F 87 E3 78 */ mr r7, r28
/* 801CD3E4 001CA344 38 C0 00 01 */ li r6, 1
/* 801CD3E8 001CA348 4B FF FC B9 */ bl SetAnim__12CGSComboFireFR9CAnimDataiiR13CStateManagerf
/* 801CD3EC 001CA34C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 801CD3F0 001CA350 2C 00 00 04 */ cmpwi r0, 4
/* 801CD3F4 001CA354 41 82 00 1C */ beq lbl_801CD410
/* 801CD3F8 001CA358 40 80 00 3C */ bge lbl_801CD434
/* 801CD3FC 001CA35C 2C 00 00 02 */ cmpwi r0, 2
/* 801CD400 001CA360 40 80 00 34 */ bge lbl_801CD434
/* 801CD404 001CA364 2C 00 00 00 */ cmpwi r0, 0
/* 801CD408 001CA368 40 80 00 08 */ bge lbl_801CD410
/* 801CD40C 001CA36C 48 00 00 28 */ b lbl_801CD434
lbl_801CD410:
/* 801CD410 001CA370 88 1E 00 10 */ lbz r0, 0x10(r30)
/* 801CD414 001CA374 38 60 00 01 */ li r3, 1
/* 801CD418 001CA378 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 801CD41C 001CA37C 98 1E 00 10 */ stb r0, 0x10(r30)
/* 801CD420 001CA380 48 00 00 14 */ b lbl_801CD434
lbl_801CD424:
/* 801CD424 001CA384 38 00 FF FF */ li r0, -1
/* 801CD428 001CA388 38 60 00 01 */ li r3, 1
/* 801CD42C 001CA38C 90 1E 00 04 */ stw r0, 4(r30)
/* 801CD430 001CA390 48 00 00 08 */ b lbl_801CD438
lbl_801CD434:
/* 801CD434 001CA394 38 60 00 00 */ li r3, 0
lbl_801CD438:
/* 801CD438 001CA398 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801CD43C 001CA39C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 801CD440 001CA3A0 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 801CD444 001CA3A4 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 801CD448 001CA3A8 83 81 00 40 */ lwz r28, 0x40(r1)
/* 801CD44C 001CA3AC 7C 08 03 A6 */ mtlr r0
/* 801CD450 001CA3B0 38 21 00 50 */ addi r1, r1, 0x50
/* 801CD454 001CA3B4 4E 80 00 20 */ blr
.global __ct__12CGSComboFireFv
__ct__12CGSComboFireFv:
/* 801CD458 001CA3B8 C0 02 AB 90 */ lfs f0, lbl_805AC8B0@sda21(r2)
/* 801CD45C 001CA3BC 38 00 FF FF */ li r0, -1
/* 801CD460 001CA3C0 38 80 00 00 */ li r4, 0
/* 801CD464 001CA3C4 D0 03 00 00 */ stfs f0, 0(r3)
/* 801CD468 001CA3C8 90 03 00 04 */ stw r0, 4(r3)
/* 801CD46C 001CA3CC 90 03 00 08 */ stw r0, 8(r3)
/* 801CD470 001CA3D0 90 03 00 0C */ stw r0, 0xc(r3)
/* 801CD474 001CA3D4 88 03 00 10 */ lbz r0, 0x10(r3)
/* 801CD478 001CA3D8 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 801CD47C 001CA3DC 98 03 00 10 */ stb r0, 0x10(r3)
/* 801CD480 001CA3E0 88 03 00 10 */ lbz r0, 0x10(r3)
/* 801CD484 001CA3E4 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 801CD488 001CA3E8 98 03 00 10 */ stb r0, 0x10(r3)
/* 801CD48C 001CA3EC 4E 80 00 20 */ blr