Files
dusklight/asm/d/ky/d_ky_thunder.s
T
lepelog 0eec99db4d Split SComponent (#45)
* split c_math

* split c_angle

* split c_API_controller_pad

* split c_API_graphic

* split c_bg_s_chk

* c_bg_s_gnd_chk split

* more c_bg split

* split c_cc_d

* delete asm

* split c_cc_s

* split c_lib

* split c_m2d and c_m3d_g_aab

* split c_m3d_g_cir

* split c_m3d_g_cps

* split rest of c_m3d_g

* split c_m3d

* split c_malloc

* split c_request

* split c_sxyz

* split and partly decompile c_xyz

* format

* c_angle.h

* begin c_angle decomp

* c_angle

* progress adding stub classes for SComponent

* more c_m3d

* remove some asm and format

* more m3d headers

* more c_angle decomp

* c_lib headers

* add public to classes

* fix csXyz member names

* c_sxyz partly OK

* move Zero csXyz to c_sxyz header

* c_API_graphic

* delete some unused asm

* move math extern data, decompile some functions

* delete unused asm

* fix duplicated c_angle.h

* fix an inlined function name, add more inlined functions for c_angle.h (currently unused)

* format

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 20:04:53 -05:00

680 lines
36 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 801adf58
.global dThunder_c_NS_createHeap
dThunder_c_NS_createHeap:
/* 801ADF58 001AAE98 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801ADF5C 001AAE9C 7C 08 02 A6 */ mflr r0
/* 801ADF60 001AAEA0 90 01 00 14 */ stw r0, 0x14(r1)
/* 801ADF64 001AAEA4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801ADF68 001AAEA8 7C 7F 1B 78 */ mr r31, r3
/* 801ADF6C 001AAEAC 80 03 00 F8 */ lwz r0, 0xf8(r3)
/* 801ADF70 001AAEB0 28 00 00 00 */ cmplwi r0, 0
/* 801ADF74 001AAEB4 40 82 00 28 */ bne lbl_801ADF9C
/* 801ADF78 001AAEB8 38 60 00 00 */ li r3, 0
/* 801ADF7C 001AAEBC 38 80 00 20 */ li r4, 0x20
/* 801ADF80 001AAEC0 4B E6 10 C5 */ bl mDoExt_createSolidHeapFromGameToCurrent_X1_
/* 801ADF84 001AAEC4 90 7F 00 F8 */ stw r3, 0xf8(r31)
/* 801ADF88 001AAEC8 80 1F 00 F8 */ lwz r0, 0xf8(r31)
/* 801ADF8C 001AAECC 28 00 00 00 */ cmplwi r0, 0
/* 801ADF90 001AAED0 40 82 00 0C */ bne lbl_801ADF9C
/* 801ADF94 001AAED4 38 60 00 00 */ li r3, 0
/* 801ADF98 001AAED8 48 00 00 08 */ b lbl_801ADFA0
lbl_801ADF9C:
/* 801ADF9C 001AAEDC 38 60 00 01 */ li r3, 1
lbl_801ADFA0:
/* 801ADFA0 001AAEE0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801ADFA4 001AAEE4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801ADFA8 001AAEE8 7C 08 03 A6 */ mtlr r0
/* 801ADFAC 001AAEEC 38 21 00 10 */ addi r1, r1, 0x10
/* 801ADFB0 001AAEF0 4E 80 00 20 */ blr
.global dThunder_c_NS_adjustHeap
dThunder_c_NS_adjustHeap:
/* 801ADFB4 001AAEF4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801ADFB8 001AAEF8 7C 08 02 A6 */ mflr r0
/* 801ADFBC 001AAEFC 90 01 00 14 */ stw r0, 0x14(r1)
/* 801ADFC0 001AAF00 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801ADFC4 001AAF04 7C 7F 1B 78 */ mr r31, r3
/* 801ADFC8 001AAF08 4B E6 12 2D */ bl mDoExt_restoreCurrentHeap
/* 801ADFCC 001AAF0C 80 7F 00 F8 */ lwz r3, 0xf8(r31)
/* 801ADFD0 001AAF10 4B E6 10 BD */ bl mDoExt_adjustSolidHeap
/* 801ADFD4 001AAF14 2C 03 00 00 */ cmpwi r3, 0
/* 801ADFD8 001AAF18 41 80 00 14 */ blt lbl_801ADFEC
/* 801ADFDC 001AAF1C 80 7F 00 F8 */ lwz r3, 0xf8(r31)
/* 801ADFE0 001AAF20 80 83 00 38 */ lwz r4, 0x38(r3)
/* 801ADFE4 001AAF24 80 63 00 30 */ lwz r3, 0x30(r3)
/* 801ADFE8 001AAF28 48 18 D6 51 */ bl DCStoreRangeNoSync
lbl_801ADFEC:
/* 801ADFEC 001AAF2C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801ADFF0 001AAF30 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801ADFF4 001AAF34 7C 08 03 A6 */ mtlr r0
/* 801ADFF8 001AAF38 38 21 00 10 */ addi r1, r1, 0x10
/* 801ADFFC 001AAF3C 4E 80 00 20 */ blr
/* 801AE000 001AAF40 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 801AE004 001AAF44 7C 08 02 A6 */ mflr r0
/* 801AE008 001AAF48 90 01 00 54 */ stw r0, 0x54(r1)
/* 801AE00C 001AAF4C 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 801AE010 001AAF50 7C 7F 1B 78 */ mr r31, r3
/* 801AE014 001AAF54 88 0D 8A F0 */ lbz r0, lbl_80451070-_SDA_BASE_(r13)
/* 801AE018 001AAF58 7C 00 07 75 */ extsb. r0, r0
/* 801AE01C 001AAF5C 40 82 00 3C */ bne lbl_801AE058
/* 801AE020 001AAF60 C0 02 A4 70 */ lfs f0, lbl_80453E70-_SDA2_BASE_(r2)
/* 801AE024 001AAF64 3C 60 80 43 */ lis r3, lbl_8042E808@ha
/* 801AE028 001AAF68 D4 03 E8 08 */ stfsu f0, lbl_8042E808@l(r3)
/* 801AE02C 001AAF6C C0 02 A4 74 */ lfs f0, lbl_80453E74-_SDA2_BASE_(r2)
/* 801AE030 001AAF70 D0 03 00 04 */ stfs f0, 4(r3)
/* 801AE034 001AAF74 C0 02 A4 78 */ lfs f0, lbl_80453E78-_SDA2_BASE_(r2)
/* 801AE038 001AAF78 D0 03 00 08 */ stfs f0, 8(r3)
/* 801AE03C 001AAF7C 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
/* 801AE040 001AAF80 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
/* 801AE044 001AAF84 3C A0 80 43 */ lis r5, lbl_8042E7F0@ha
/* 801AE048 001AAF88 38 A5 E7 F0 */ addi r5, r5, lbl_8042E7F0@l
/* 801AE04C 001AAF8C 48 1B 3B D9 */ bl func_80361C24
/* 801AE050 001AAF90 38 00 00 01 */ li r0, 1
/* 801AE054 001AAF94 98 0D 8A F0 */ stb r0, lbl_80451070-_SDA_BASE_(r13)
lbl_801AE058:
/* 801AE058 001AAF98 88 0D 8A F1 */ lbz r0, lbl_80451071-_SDA_BASE_(r13)
/* 801AE05C 001AAF9C 7C 00 07 75 */ extsb. r0, r0
/* 801AE060 001AAFA0 40 82 00 34 */ bne lbl_801AE094
/* 801AE064 001AAFA4 C0 02 A4 7C */ lfs f0, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE068 001AAFA8 3C 60 80 43 */ lis r3, lbl_8042E814@ha
/* 801AE06C 001AAFAC D4 03 E8 14 */ stfsu f0, lbl_8042E814@l(r3)
/* 801AE070 001AAFB0 D0 03 00 04 */ stfs f0, 4(r3)
/* 801AE074 001AAFB4 D0 03 00 08 */ stfs f0, 8(r3)
/* 801AE078 001AAFB8 3C 80 80 01 */ lis r4, cXyz_NS_dtor@ha
/* 801AE07C 001AAFBC 38 84 91 84 */ addi r4, r4, cXyz_NS_dtor@l
/* 801AE080 001AAFC0 3C A0 80 43 */ lis r5, lbl_8042E7FC@ha
/* 801AE084 001AAFC4 38 A5 E7 FC */ addi r5, r5, lbl_8042E7FC@l
/* 801AE088 001AAFC8 48 1B 3B 9D */ bl func_80361C24
/* 801AE08C 001AAFCC 38 00 00 01 */ li r0, 1
/* 801AE090 001AAFD0 98 0D 8A F1 */ stb r0, lbl_80451071-_SDA_BASE_(r13)
lbl_801AE094:
/* 801AE094 001AAFD4 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 801AE098 001AAFD8 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 801AE09C 001AAFDC C0 3F 01 44 */ lfs f1, 0x144(r31)
/* 801AE0A0 001AAFE0 C0 5F 01 48 */ lfs f2, 0x148(r31)
/* 801AE0A4 001AAFE4 C0 7F 01 4C */ lfs f3, 0x14c(r31)
/* 801AE0A8 001AAFE8 48 19 88 41 */ bl PSMTXTrans
/* 801AE0AC 001AAFEC 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 801AE0B0 001AAFF0 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 801AE0B4 001AAFF4 A8 9F 01 68 */ lha r4, 0x168(r31)
/* 801AE0B8 001AAFF8 4B E5 E3 7D */ bl mDoMtx_YrotM
/* 801AE0BC 001AAFFC 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 801AE0C0 001AB000 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 801AE0C4 001AB004 C0 1F 01 5C */ lfs f0, 0x15c(r31)
/* 801AE0C8 001AB008 FC 00 00 1E */ fctiwz f0, f0
/* 801AE0CC 001AB00C D8 01 00 38 */ stfd f0, 0x38(r1)
/* 801AE0D0 001AB010 80 81 00 3C */ lwz r4, 0x3c(r1)
/* 801AE0D4 001AB014 4B E5 E3 F9 */ bl mDoMtx_ZrotM
/* 801AE0D8 001AB018 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 801AE0DC 001AB01C 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 801AE0E0 001AB020 C0 1F 01 5C */ lfs f0, 0x15c(r31)
/* 801AE0E4 001AB024 FC 00 00 1E */ fctiwz f0, f0
/* 801AE0E8 001AB028 D8 01 00 40 */ stfd f0, 0x40(r1)
/* 801AE0EC 001AB02C 80 81 00 44 */ lwz r4, 0x44(r1)
/* 801AE0F0 001AB030 4B E5 E2 AD */ bl mDoMtx_XrotM
/* 801AE0F4 001AB034 3C 60 80 3E */ lis r3, lbl_803DD470@ha
/* 801AE0F8 001AB038 38 63 D4 70 */ addi r3, r3, lbl_803DD470@l
/* 801AE0FC 001AB03C 38 81 00 08 */ addi r4, r1, 8
/* 801AE100 001AB040 48 19 83 B1 */ bl PSMTXCopy
/* 801AE104 001AB044 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 801AE108 001AB048 C0 1F 01 38 */ lfs f0, 0x138(r31)
/* 801AE10C 001AB04C D0 03 00 18 */ stfs f0, 0x18(r3)
/* 801AE110 001AB050 C0 1F 01 3C */ lfs f0, 0x13c(r31)
/* 801AE114 001AB054 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 801AE118 001AB058 C0 1F 01 40 */ lfs f0, 0x140(r31)
/* 801AE11C 001AB05C D0 03 00 20 */ stfs f0, 0x20(r3)
/* 801AE120 001AB060 38 61 00 08 */ addi r3, r1, 8
/* 801AE124 001AB064 80 9F 00 FC */ lwz r4, 0xfc(r31)
/* 801AE128 001AB068 38 84 00 24 */ addi r4, r4, 0x24
/* 801AE12C 001AB06C 48 19 83 85 */ bl PSMTXCopy
/* 801AE130 001AB070 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 801AE134 001AB074 80 83 00 04 */ lwz r4, 4(r3)
/* 801AE138 001AB078 C0 3F 01 18 */ lfs f1, 0x118(r31)
/* 801AE13C 001AB07C 38 7F 01 08 */ addi r3, r31, 0x108
/* 801AE140 001AB080 38 84 00 58 */ addi r4, r4, 0x58
/* 801AE144 001AB084 4B E5 F6 65 */ bl mDoExt_brkAnm_NS_entry
/* 801AE148 001AB088 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801AE14C 001AB08C 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l
/* 801AE150 001AB090 80 04 5F 80 */ lwz r0, 0x5f80(r4)
/* 801AE154 001AB094 3C 60 80 43 */ lis r3, lbl_80434AC8@ha
/* 801AE158 001AB098 38 63 4A C8 */ addi r3, r3, lbl_80434AC8@l
/* 801AE15C 001AB09C 90 03 00 48 */ stw r0, 0x48(r3)
/* 801AE160 001AB0A0 80 04 5F 84 */ lwz r0, 0x5f84(r4)
/* 801AE164 001AB0A4 90 03 00 4C */ stw r0, 0x4c(r3)
/* 801AE168 001AB0A8 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 801AE16C 001AB0AC 4B E5 FB 59 */ bl mDoExt_modelUpdateDL
/* 801AE170 001AB0B0 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 801AE174 001AB0B4 80 63 00 04 */ lwz r3, 4(r3)
/* 801AE178 001AB0B8 38 63 00 58 */ addi r3, r3, 0x58
/* 801AE17C 001AB0BC 80 9F 01 1C */ lwz r4, 0x11c(r31)
/* 801AE180 001AB0C0 48 18 17 01 */ bl J3DMaterialTable_NS_removeTevRegAnimator
/* 801AE184 001AB0C4 38 60 00 01 */ li r3, 1
/* 801AE188 001AB0C8 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 801AE18C 001AB0CC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 801AE190 001AB0D0 7C 08 03 A6 */ mtlr r0
/* 801AE194 001AB0D4 38 21 00 50 */ addi r1, r1, 0x50
/* 801AE198 001AB0D8 4E 80 00 20 */ blr
/* 801AE19C 001AB0DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801AE1A0 001AB0E0 7C 08 02 A6 */ mflr r0
/* 801AE1A4 001AB0E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801AE1A8 001AB0E8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801AE1AC 001AB0EC 93 C1 00 08 */ stw r30, 8(r1)
/* 801AE1B0 001AB0F0 7C 7F 1B 78 */ mr r31, r3
/* 801AE1B4 001AB0F4 3C 60 80 43 */ lis r3, lbl_8042CA54@ha
/* 801AE1B8 001AB0F8 3B C3 CA 54 */ addi r30, r3, lbl_8042CA54@l
/* 801AE1BC 001AB0FC 88 1E 0E D5 */ lbz r0, 0xed5(r30)
/* 801AE1C0 001AB100 28 00 00 0A */ cmplwi r0, 0xa
/* 801AE1C4 001AB104 40 80 00 1C */ bge lbl_801AE1E0
/* 801AE1C8 001AB108 38 7F 01 64 */ addi r3, r31, 0x164
/* 801AE1CC 001AB10C C0 22 A4 80 */ lfs f1, lbl_80453E80-_SDA2_BASE_(r2)
/* 801AE1D0 001AB110 C0 42 A4 84 */ lfs f2, lbl_80453E84-_SDA2_BASE_(r2)
/* 801AE1D4 001AB114 C0 62 A4 88 */ lfs f3, lbl_80453E88-_SDA2_BASE_(r2)
/* 801AE1D8 001AB118 C0 82 A4 8C */ lfs f4, lbl_80453E8C-_SDA2_BASE_(r2)
/* 801AE1DC 001AB11C 48 0C 17 A1 */ bl cLib_addCalc__FPfffff
lbl_801AE1E0:
/* 801AE1E0 001AB120 C0 1F 01 64 */ lfs f0, 0x164(r31)
/* 801AE1E4 001AB124 D0 1F 01 14 */ stfs f0, 0x114(r31)
/* 801AE1E8 001AB128 38 7F 01 08 */ addi r3, r31, 0x108
/* 801AE1EC 001AB12C 4B E5 F2 3D */ bl mDoExt_baseAnm_NS_play
/* 801AE1F0 001AB130 2C 03 00 00 */ cmpwi r3, 0
/* 801AE1F4 001AB134 41 82 00 20 */ beq lbl_801AE214
/* 801AE1F8 001AB138 3C 60 80 43 */ lis r3, lbl_8042DD70@ha
/* 801AE1FC 001AB13C 38 63 DD 70 */ addi r3, r3, lbl_8042DD70@l
/* 801AE200 001AB140 38 9F 01 44 */ addi r4, r31, 0x144
/* 801AE204 001AB144 38 A0 00 00 */ li r5, 0
/* 801AE208 001AB148 48 11 9C 61 */ bl Z2EnvSeMgr_NS_startFarThunderSe
/* 801AE20C 001AB14C 7F E3 FB 78 */ mr r3, r31
/* 801AE210 001AB150 4B E7 15 39 */ bl fopKyM_Delete
lbl_801AE214:
/* 801AE214 001AB154 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801AE218 001AB158 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 801AE21C 001AB15C 80 63 61 B0 */ lwz r3, 0x61b0(r3)
/* 801AE220 001AB160 28 03 00 00 */ cmplwi r3, 0
/* 801AE224 001AB164 41 82 00 30 */ beq lbl_801AE254
/* 801AE228 001AB168 C0 23 00 D0 */ lfs f1, 0xd0(r3)
/* 801AE22C 001AB16C C0 02 A4 90 */ lfs f0, lbl_80453E90-_SDA2_BASE_(r2)
/* 801AE230 001AB170 EC 61 00 24 */ fdivs f3, f1, f0
/* 801AE234 001AB174 C0 02 A4 7C */ lfs f0, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE238 001AB178 FC 03 00 40 */ fcmpo cr0, f3, f0
/* 801AE23C 001AB17C 4C 41 13 82 */ cror 2, 1, 2
/* 801AE240 001AB180 40 82 00 08 */ bne lbl_801AE248
/* 801AE244 001AB184 FC 60 00 90 */ fmr f3, f0
lbl_801AE248:
/* 801AE248 001AB188 EC 03 00 F2 */ fmuls f0, f3, f3
/* 801AE24C 001AB18C EC 63 00 32 */ fmuls f3, f3, f0
/* 801AE250 001AB190 48 00 00 08 */ b lbl_801AE258
lbl_801AE254:
/* 801AE254 001AB194 C0 62 A4 7C */ lfs f3, lbl_80453E7C-_SDA2_BASE_(r2)
lbl_801AE258:
/* 801AE258 001AB198 C0 1F 01 64 */ lfs f0, 0x164(r31)
/* 801AE25C 001AB19C EC 63 00 32 */ fmuls f3, f3, f0
/* 801AE260 001AB1A0 88 1E 0E D5 */ lbz r0, 0xed5(r30)
/* 801AE264 001AB1A4 28 00 00 0A */ cmplwi r0, 0xa
/* 801AE268 001AB1A8 40 80 00 78 */ bge lbl_801AE2E0
/* 801AE26C 001AB1AC A8 1F 01 6A */ lha r0, 0x16a(r31)
/* 801AE270 001AB1B0 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
/* 801AE274 001AB1B4 3C 60 80 44 */ lis r3, lbl_80439A20@ha
/* 801AE278 001AB1B8 38 63 9A 20 */ addi r3, r3, lbl_80439A20@l
/* 801AE27C 001AB1BC 7C 83 04 2E */ lfsx f4, r3, r0
/* 801AE280 001AB1C0 C0 3F 01 38 */ lfs f1, 0x138(r31)
/* 801AE284 001AB1C4 C0 42 A4 94 */ lfs f2, lbl_80453E94-_SDA2_BASE_(r2)
/* 801AE288 001AB1C8 EC 03 00 72 */ fmuls f0, f3, f1
/* 801AE28C 001AB1CC EC 02 00 32 */ fmuls f0, f2, f0
/* 801AE290 001AB1D0 EC 00 01 32 */ fmuls f0, f0, f4
/* 801AE294 001AB1D4 EC 01 00 2A */ fadds f0, f1, f0
/* 801AE298 001AB1D8 D0 1F 01 38 */ stfs f0, 0x138(r31)
/* 801AE29C 001AB1DC A8 1F 01 6C */ lha r0, 0x16c(r31)
/* 801AE2A0 001AB1E0 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
/* 801AE2A4 001AB1E4 7C 63 02 14 */ add r3, r3, r0
/* 801AE2A8 001AB1E8 C0 83 00 04 */ lfs f4, 4(r3)
/* 801AE2AC 001AB1EC C0 3F 01 3C */ lfs f1, 0x13c(r31)
/* 801AE2B0 001AB1F0 EC 03 00 72 */ fmuls f0, f3, f1
/* 801AE2B4 001AB1F4 EC 02 00 32 */ fmuls f0, f2, f0
/* 801AE2B8 001AB1F8 EC 00 01 32 */ fmuls f0, f0, f4
/* 801AE2BC 001AB1FC EC 01 00 2A */ fadds f0, f1, f0
/* 801AE2C0 001AB200 D0 1F 01 3C */ stfs f0, 0x13c(r31)
/* 801AE2C4 001AB204 A8 7F 01 6A */ lha r3, 0x16a(r31)
/* 801AE2C8 001AB208 38 03 9E 58 */ addi r0, r3, -25000
/* 801AE2CC 001AB20C B0 1F 01 6A */ sth r0, 0x16a(r31)
/* 801AE2D0 001AB210 A8 7F 01 6C */ lha r3, 0x16c(r31)
/* 801AE2D4 001AB214 38 03 70 E4 */ addi r0, r3, 0x70e4
/* 801AE2D8 001AB218 B0 1F 01 6C */ sth r0, 0x16c(r31)
/* 801AE2DC 001AB21C 48 00 00 7C */ b lbl_801AE358
lbl_801AE2E0:
/* 801AE2E0 001AB220 A8 1F 01 6A */ lha r0, 0x16a(r31)
/* 801AE2E4 001AB224 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
/* 801AE2E8 001AB228 3C 60 80 44 */ lis r3, lbl_80439A20@ha
/* 801AE2EC 001AB22C 38 63 9A 20 */ addi r3, r3, lbl_80439A20@l
/* 801AE2F0 001AB230 7C 83 04 2E */ lfsx f4, r3, r0
/* 801AE2F4 001AB234 C0 3F 01 38 */ lfs f1, 0x138(r31)
/* 801AE2F8 001AB238 C0 42 A4 98 */ lfs f2, lbl_80453E98-_SDA2_BASE_(r2)
/* 801AE2FC 001AB23C EC 03 00 72 */ fmuls f0, f3, f1
/* 801AE300 001AB240 EC 02 00 32 */ fmuls f0, f2, f0
/* 801AE304 001AB244 EC 00 01 32 */ fmuls f0, f0, f4
/* 801AE308 001AB248 EC 01 00 2A */ fadds f0, f1, f0
/* 801AE30C 001AB24C D0 1F 01 38 */ stfs f0, 0x138(r31)
/* 801AE310 001AB250 A8 1F 01 6C */ lha r0, 0x16c(r31)
/* 801AE314 001AB254 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c
/* 801AE318 001AB258 7C 63 02 14 */ add r3, r3, r0
/* 801AE31C 001AB25C C0 83 00 04 */ lfs f4, 4(r3)
/* 801AE320 001AB260 C0 3F 01 3C */ lfs f1, 0x13c(r31)
/* 801AE324 001AB264 EC 03 00 72 */ fmuls f0, f3, f1
/* 801AE328 001AB268 EC 02 00 32 */ fmuls f0, f2, f0
/* 801AE32C 001AB26C EC 00 01 32 */ fmuls f0, f0, f4
/* 801AE330 001AB270 EC 01 00 2A */ fadds f0, f1, f0
/* 801AE334 001AB274 D0 1F 01 3C */ stfs f0, 0x13c(r31)
/* 801AE338 001AB278 A8 7F 01 6A */ lha r3, 0x16a(r31)
/* 801AE33C 001AB27C 3C 63 FF FF */ addis r3, r3, 0xffff
/* 801AE340 001AB280 38 03 77 48 */ addi r0, r3, 0x7748
/* 801AE344 001AB284 B0 1F 01 6A */ sth r0, 0x16a(r31)
/* 801AE348 001AB288 A8 7F 01 6C */ lha r3, 0x16c(r31)
/* 801AE34C 001AB28C 3C 63 00 01 */ addis r3, r3, 1
/* 801AE350 001AB290 38 03 97 F4 */ addi r0, r3, -26636
/* 801AE354 001AB294 B0 1F 01 6C */ sth r0, 0x16c(r31)
lbl_801AE358:
/* 801AE358 001AB298 38 60 00 01 */ li r3, 1
/* 801AE35C 001AB29C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801AE360 001AB2A0 83 C1 00 08 */ lwz r30, 8(r1)
/* 801AE364 001AB2A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801AE368 001AB2A8 7C 08 03 A6 */ mtlr r0
/* 801AE36C 001AB2AC 38 21 00 10 */ addi r1, r1, 0x10
/* 801AE370 001AB2B0 4E 80 00 20 */ blr
/* 801AE374 001AB2B4 38 60 00 01 */ li r3, 1
/* 801AE378 001AB2B8 4E 80 00 20 */ blr
/* 801AE37C 001AB2BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801AE380 001AB2C0 7C 08 02 A6 */ mflr r0
/* 801AE384 001AB2C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 801AE388 001AB2C8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801AE38C 001AB2CC 7C 7F 1B 79 */ or. r31, r3, r3
/* 801AE390 001AB2D0 41 82 00 54 */ beq lbl_801AE3E4
/* 801AE394 001AB2D4 80 7F 00 F8 */ lwz r3, 0xf8(r31)
/* 801AE398 001AB2D8 4B E6 0D F5 */ bl mDoExt_destroySolidHeap
/* 801AE39C 001AB2DC 34 1F 00 FC */ addic. r0, r31, 0xfc
/* 801AE3A0 001AB2E0 41 82 00 44 */ beq lbl_801AE3E4
/* 801AE3A4 001AB2E4 34 1F 01 20 */ addic. r0, r31, 0x120
/* 801AE3A8 001AB2E8 41 82 00 1C */ beq lbl_801AE3C4
/* 801AE3AC 001AB2EC 28 00 00 00 */ cmplwi r0, 0
/* 801AE3B0 001AB2F0 41 82 00 14 */ beq lbl_801AE3C4
/* 801AE3B4 001AB2F4 41 82 00 10 */ beq lbl_801AE3C4
/* 801AE3B8 001AB2F8 3C 60 80 3A */ lis r3, lbl_803A3354@ha
/* 801AE3BC 001AB2FC 38 03 33 54 */ addi r0, r3, lbl_803A3354@l
/* 801AE3C0 001AB300 90 1F 01 20 */ stw r0, 0x120(r31)
lbl_801AE3C4:
/* 801AE3C4 001AB304 34 1F 01 08 */ addic. r0, r31, 0x108
/* 801AE3C8 001AB308 41 82 00 1C */ beq lbl_801AE3E4
/* 801AE3CC 001AB30C 28 00 00 00 */ cmplwi r0, 0
/* 801AE3D0 001AB310 41 82 00 14 */ beq lbl_801AE3E4
/* 801AE3D4 001AB314 41 82 00 10 */ beq lbl_801AE3E4
/* 801AE3D8 001AB318 3C 60 80 3A */ lis r3, lbl_803A3354@ha
/* 801AE3DC 001AB31C 38 03 33 54 */ addi r0, r3, lbl_803A3354@l
/* 801AE3E0 001AB320 90 1F 01 08 */ stw r0, 0x108(r31)
lbl_801AE3E4:
/* 801AE3E4 001AB324 38 60 00 01 */ li r3, 1
/* 801AE3E8 001AB328 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801AE3EC 001AB32C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801AE3F0 001AB330 7C 08 03 A6 */ mtlr r0
/* 801AE3F4 001AB334 38 21 00 10 */ addi r1, r1, 0x10
/* 801AE3F8 001AB338 4E 80 00 20 */ blr
/* 801AE3FC 001AB33C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801AE400 001AB340 7C 08 02 A6 */ mflr r0
/* 801AE404 001AB344 90 01 00 14 */ stw r0, 0x14(r1)
/* 801AE408 001AB348 93 E1 00 0C */ stw r31, 0xc(r1)
/* 801AE40C 001AB34C 93 C1 00 08 */ stw r30, 8(r1)
/* 801AE410 001AB350 7C 7F 1B 78 */ mr r31, r3
/* 801AE414 001AB354 4B FF FB 45 */ bl dThunder_c_NS_createHeap
/* 801AE418 001AB358 2C 03 00 00 */ cmpwi r3, 0
/* 801AE41C 001AB35C 40 82 00 0C */ bne lbl_801AE428
/* 801AE420 001AB360 38 60 00 05 */ li r3, 5
/* 801AE424 001AB364 48 00 00 1C */ b lbl_801AE440
lbl_801AE428:
/* 801AE428 001AB368 7F E3 FB 78 */ mr r3, r31
/* 801AE42C 001AB36C 48 00 00 2D */ bl dThunder_c_NS_create
/* 801AE430 001AB370 7C 7E 1B 78 */ mr r30, r3
/* 801AE434 001AB374 7F E3 FB 78 */ mr r3, r31
/* 801AE438 001AB378 4B FF FB 7D */ bl dThunder_c_NS_adjustHeap
/* 801AE43C 001AB37C 7F C3 F3 78 */ mr r3, r30
lbl_801AE440:
/* 801AE440 001AB380 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 801AE444 001AB384 83 C1 00 08 */ lwz r30, 8(r1)
/* 801AE448 001AB388 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801AE44C 001AB38C 7C 08 03 A6 */ mtlr r0
/* 801AE450 001AB390 38 21 00 10 */ addi r1, r1, 0x10
/* 801AE454 001AB394 4E 80 00 20 */ blr
.global dThunder_c_NS_create
dThunder_c_NS_create:
/* 801AE458 001AB398 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 801AE45C 001AB39C 7C 08 02 A6 */ mflr r0
/* 801AE460 001AB3A0 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 801AE464 001AB3A4 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 801AE468 001AB3A8 F3 E1 00 98 */ psq_st f31, 152(r1), 0, qr0
/* 801AE46C 001AB3AC DB C1 00 80 */ stfd f30, 0x80(r1)
/* 801AE470 001AB3B0 F3 C1 00 88 */ psq_st f30, 136(r1), 0, qr0
/* 801AE474 001AB3B4 DB A1 00 70 */ stfd f29, 0x70(r1)
/* 801AE478 001AB3B8 F3 A1 00 78 */ psq_st f29, 120(r1), 0, qr0
/* 801AE47C 001AB3BC DB 81 00 60 */ stfd f28, 0x60(r1)
/* 801AE480 001AB3C0 F3 81 00 68 */ psq_st f28, 104(r1), 0, qr0
/* 801AE484 001AB3C4 DB 61 00 50 */ stfd f27, 0x50(r1)
/* 801AE488 001AB3C8 F3 61 00 58 */ psq_st f27, 88(r1), 0, qr0
/* 801AE48C 001AB3CC 39 61 00 50 */ addi r11, r1, 0x50
/* 801AE490 001AB3D0 48 1B 3D 45 */ bl _savegpr_27
/* 801AE494 001AB3D4 7C 7D 1B 78 */ mr r29, r3
/* 801AE498 001AB3D8 3C 60 80 43 */ lis r3, lbl_8042CA54@ha
/* 801AE49C 001AB3DC 3B E3 CA 54 */ addi r31, r3, lbl_8042CA54@l
/* 801AE4A0 001AB3E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801AE4A4 001AB3E4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 801AE4A8 001AB3E8 83 C3 5D 74 */ lwz r30, 0x5d74(r3)
/* 801AE4AC 001AB3EC 7F BC EB 79 */ or. r28, r29, r29
/* 801AE4B0 001AB3F0 41 82 00 4C */ beq lbl_801AE4FC
/* 801AE4B4 001AB3F4 3B 7C 01 08 */ addi r27, r28, 0x108
/* 801AE4B8 001AB3F8 3C 60 80 3A */ lis r3, lbl_803A3354@ha
/* 801AE4BC 001AB3FC 38 03 33 54 */ addi r0, r3, lbl_803A3354@l
/* 801AE4C0 001AB400 90 1C 01 08 */ stw r0, 0x108(r28)
/* 801AE4C4 001AB404 7F 63 DB 78 */ mr r3, r27
/* 801AE4C8 001AB408 38 80 00 00 */ li r4, 0
/* 801AE4CC 001AB40C 48 17 9F 31 */ bl J3DFrameCtrl_NS_init
/* 801AE4D0 001AB410 38 00 00 00 */ li r0, 0
/* 801AE4D4 001AB414 90 1B 00 14 */ stw r0, 0x14(r27)
/* 801AE4D8 001AB418 3B 7C 01 20 */ addi r27, r28, 0x120
/* 801AE4DC 001AB41C 3C 60 80 3A */ lis r3, lbl_803A3354@ha
/* 801AE4E0 001AB420 38 03 33 54 */ addi r0, r3, lbl_803A3354@l
/* 801AE4E4 001AB424 90 1C 01 20 */ stw r0, 0x120(r28)
/* 801AE4E8 001AB428 7F 63 DB 78 */ mr r3, r27
/* 801AE4EC 001AB42C 38 80 00 00 */ li r4, 0
/* 801AE4F0 001AB430 48 17 9F 0D */ bl J3DFrameCtrl_NS_init
/* 801AE4F4 001AB434 38 00 00 00 */ li r0, 0
/* 801AE4F8 001AB438 90 1B 00 14 */ stw r0, 0x14(r27)
lbl_801AE4FC:
/* 801AE4FC 001AB43C C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE500 001AB440 48 0B 94 55 */ bl cM_rndF__Ff
/* 801AE504 001AB444 C0 02 A4 9C */ lfs f0, lbl_80453E9C-_SDA2_BASE_(r2)
/* 801AE508 001AB448 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801AE50C 001AB44C 40 80 00 30 */ bge lbl_801AE53C
/* 801AE510 001AB450 3C 60 80 39 */ lis r3, lbl_80394F40@ha
/* 801AE514 001AB454 38 63 4F 40 */ addi r3, r3, lbl_80394F40@l
/* 801AE518 001AB458 38 80 00 1E */ li r4, 0x1e
/* 801AE51C 001AB45C 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha
/* 801AE520 001AB460 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l
/* 801AE524 001AB464 3C A5 00 02 */ addis r5, r5, 2
/* 801AE528 001AB468 38 C0 00 80 */ li r6, 0x80
/* 801AE52C 001AB46C 38 A5 C2 F8 */ addi r5, r5, -15624
/* 801AE530 001AB470 4B E8 DD BD */ bl dRes_control_c_NS_getRes
/* 801AE534 001AB474 7C 7B 1B 78 */ mr r27, r3
/* 801AE538 001AB478 48 00 00 2C */ b lbl_801AE564
lbl_801AE53C:
/* 801AE53C 001AB47C 3C 60 80 39 */ lis r3, lbl_80394F40@ha
/* 801AE540 001AB480 38 63 4F 40 */ addi r3, r3, lbl_80394F40@l
/* 801AE544 001AB484 38 80 00 1F */ li r4, 0x1f
/* 801AE548 001AB488 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha
/* 801AE54C 001AB48C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l
/* 801AE550 001AB490 3C A5 00 02 */ addis r5, r5, 2
/* 801AE554 001AB494 38 C0 00 80 */ li r6, 0x80
/* 801AE558 001AB498 38 A5 C2 F8 */ addi r5, r5, -15624
/* 801AE55C 001AB49C 4B E8 DD 91 */ bl dRes_control_c_NS_getRes
/* 801AE560 001AB4A0 7C 7B 1B 78 */ mr r27, r3
lbl_801AE564:
/* 801AE564 001AB4A4 7F 63 DB 78 */ mr r3, r27
/* 801AE568 001AB4A8 3C 80 00 08 */ lis r4, 8
/* 801AE56C 001AB4AC 3C A0 01 00 */ lis r5, 0x100
/* 801AE570 001AB4B0 4B E6 66 E5 */ bl mDoExt_J3DModel__create
/* 801AE574 001AB4B4 90 7D 00 FC */ stw r3, 0xfc(r29)
/* 801AE578 001AB4B8 80 1D 00 FC */ lwz r0, 0xfc(r29)
/* 801AE57C 001AB4BC 28 00 00 00 */ cmplwi r0, 0
/* 801AE580 001AB4C0 40 82 00 0C */ bne lbl_801AE58C
/* 801AE584 001AB4C4 38 60 00 05 */ li r3, 5
/* 801AE588 001AB4C8 48 00 03 70 */ b lbl_801AE8F8
lbl_801AE58C:
/* 801AE58C 001AB4CC 3C 60 80 39 */ lis r3, lbl_80394F40@ha
/* 801AE590 001AB4D0 38 63 4F 40 */ addi r3, r3, lbl_80394F40@l
/* 801AE594 001AB4D4 38 80 00 2F */ li r4, 0x2f
/* 801AE598 001AB4D8 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha
/* 801AE59C 001AB4DC 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l
/* 801AE5A0 001AB4E0 3C A5 00 02 */ addis r5, r5, 2
/* 801AE5A4 001AB4E4 38 C0 00 80 */ li r6, 0x80
/* 801AE5A8 001AB4E8 38 A5 C2 F8 */ addi r5, r5, -15624
/* 801AE5AC 001AB4EC 4B E8 DD 41 */ bl dRes_control_c_NS_getRes
/* 801AE5B0 001AB4F0 7C 65 1B 78 */ mr r5, r3
/* 801AE5B4 001AB4F4 38 7D 01 08 */ addi r3, r29, 0x108
/* 801AE5B8 001AB4F8 38 9B 00 58 */ addi r4, r27, 0x58
/* 801AE5BC 001AB4FC 38 C0 00 01 */ li r6, 1
/* 801AE5C0 001AB500 38 E0 00 00 */ li r7, 0
/* 801AE5C4 001AB504 C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE5C8 001AB508 39 00 00 00 */ li r8, 0
/* 801AE5CC 001AB50C 39 20 FF FF */ li r9, -1
/* 801AE5D0 001AB510 4B E5 F1 3D */ bl mDoExt_brkAnm_NS_init
/* 801AE5D4 001AB514 2C 03 00 00 */ cmpwi r3, 0
/* 801AE5D8 001AB518 40 82 00 0C */ bne lbl_801AE5E4
/* 801AE5DC 001AB51C 38 60 00 05 */ li r3, 5
/* 801AE5E0 001AB520 48 00 03 18 */ b lbl_801AE8F8
lbl_801AE5E4:
/* 801AE5E4 001AB524 C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE5E8 001AB528 D0 3D 01 64 */ stfs f1, 0x164(r29)
/* 801AE5EC 001AB52C C0 1D 01 64 */ lfs f0, 0x164(r29)
/* 801AE5F0 001AB530 D0 1D 01 14 */ stfs f0, 0x114(r29)
/* 801AE5F4 001AB534 88 1F 0E D5 */ lbz r0, 0xed5(r31)
/* 801AE5F8 001AB538 28 00 00 0A */ cmplwi r0, 0xa
/* 801AE5FC 001AB53C 40 80 00 0C */ bge lbl_801AE608
/* 801AE600 001AB540 FF A0 08 90 */ fmr f29, f1
/* 801AE604 001AB544 48 00 00 08 */ b lbl_801AE60C
lbl_801AE608:
/* 801AE608 001AB548 C3 A2 A4 A0 */ lfs f29, lbl_80453EA0-_SDA2_BASE_(r2)
lbl_801AE60C:
/* 801AE60C 001AB54C 38 7E 00 D8 */ addi r3, r30, 0xd8
/* 801AE610 001AB550 38 9E 00 E4 */ addi r4, r30, 0xe4
/* 801AE614 001AB554 48 0C 25 F1 */ bl cLib_targetAngleY__FPC3VecPC3Vec
/* 801AE618 001AB558 B0 7D 01 68 */ sth r3, 0x168(r29)
/* 801AE61C 001AB55C 3C 60 80 43 */ lis r3, lbl_80430CD8@ha
/* 801AE620 001AB560 80 03 0C D8 */ lwz r0, lbl_80430CD8@l(r3)
/* 801AE624 001AB564 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 801AE628 001AB568 40 82 00 10 */ bne lbl_801AE638
/* 801AE62C 001AB56C A8 7D 01 68 */ lha r3, 0x168(r29)
/* 801AE630 001AB570 38 03 7F FF */ addi r0, r3, 0x7fff
/* 801AE634 001AB574 B0 1D 01 68 */ sth r0, 0x168(r29)
lbl_801AE638:
/* 801AE638 001AB578 C3 82 A4 A4 */ lfs f28, lbl_80453EA4-_SDA2_BASE_(r2)
/* 801AE63C 001AB57C C3 62 A4 A8 */ lfs f27, lbl_80453EA8-_SDA2_BASE_(r2)
/* 801AE640 001AB580 FF E0 E0 90 */ fmr f31, f28
/* 801AE644 001AB584 FF C0 D8 90 */ fmr f30, f27
/* 801AE648 001AB588 C0 02 A4 AC */ lfs f0, lbl_80453EAC-_SDA2_BASE_(r2)
/* 801AE64C 001AB58C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 801AE650 001AB590 C0 02 A4 B0 */ lfs f0, lbl_80453EB0-_SDA2_BASE_(r2)
/* 801AE654 001AB594 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 801AE658 001AB598 C0 02 A4 70 */ lfs f0, lbl_80453E70-_SDA2_BASE_(r2)
/* 801AE65C 001AB59C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 801AE660 001AB5A0 C0 02 A4 B4 */ lfs f0, lbl_80453EB4-_SDA2_BASE_(r2)
/* 801AE664 001AB5A4 D0 1D 01 5C */ stfs f0, 0x15c(r29)
/* 801AE668 001AB5A8 88 1F 0E D5 */ lbz r0, 0xed5(r31)
/* 801AE66C 001AB5AC 28 00 00 0A */ cmplwi r0, 0xa
/* 801AE670 001AB5B0 41 80 00 1C */ blt lbl_801AE68C
/* 801AE674 001AB5B4 FF E0 D8 90 */ fmr f31, f27
/* 801AE678 001AB5B8 C3 C2 A4 B8 */ lfs f30, lbl_80453EB8-_SDA2_BASE_(r2)
/* 801AE67C 001AB5BC C0 02 A4 BC */ lfs f0, lbl_80453EBC-_SDA2_BASE_(r2)
/* 801AE680 001AB5C0 D0 1D 01 5C */ stfs f0, 0x15c(r29)
/* 801AE684 001AB5C4 C0 02 A4 C0 */ lfs f0, lbl_80453EC0-_SDA2_BASE_(r2)
/* 801AE688 001AB5C8 D0 01 00 18 */ stfs f0, 0x18(r1)
lbl_801AE68C:
/* 801AE68C 001AB5CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 801AE690 001AB5D0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 801AE694 001AB5D4 3B 63 4E 00 */ addi r27, r3, 0x4e00
/* 801AE698 001AB5D8 7F 63 DB 78 */ mr r3, r27
/* 801AE69C 001AB5DC 3C 80 80 39 */ lis r4, lbl_80394F40@ha
/* 801AE6A0 001AB5E0 38 84 4F 40 */ addi r4, r4, lbl_80394F40@l
/* 801AE6A4 001AB5E4 38 84 00 07 */ addi r4, r4, 7
/* 801AE6A8 001AB5E8 48 1B A2 ED */ bl strcmp
/* 801AE6AC 001AB5EC 2C 03 00 00 */ cmpwi r3, 0
/* 801AE6B0 001AB5F0 40 82 00 20 */ bne lbl_801AE6D0
/* 801AE6B4 001AB5F4 88 0D 87 E4 */ lbz r0, lbl_80450D64-_SDA_BASE_(r13)
/* 801AE6B8 001AB5F8 2C 00 00 04 */ cmpwi r0, 4
/* 801AE6BC 001AB5FC 40 82 00 14 */ bne lbl_801AE6D0
/* 801AE6C0 001AB600 C3 82 A4 80 */ lfs f28, lbl_80453E80-_SDA2_BASE_(r2)
/* 801AE6C4 001AB604 C3 62 A4 A0 */ lfs f27, lbl_80453EA0-_SDA2_BASE_(r2)
/* 801AE6C8 001AB608 C3 E2 A4 C4 */ lfs f31, lbl_80453EC4-_SDA2_BASE_(r2)
/* 801AE6CC 001AB60C C3 C2 A4 C8 */ lfs f30, lbl_80453EC8-_SDA2_BASE_(r2)
lbl_801AE6D0:
/* 801AE6D0 001AB610 C0 3D 01 5C */ lfs f1, 0x15c(r29)
/* 801AE6D4 001AB614 48 0B 92 B9 */ bl cM_rndFX__Ff
/* 801AE6D8 001AB618 EC 1D 00 72 */ fmuls f0, f29, f1
/* 801AE6DC 001AB61C D0 1D 01 5C */ stfs f0, 0x15c(r29)
/* 801AE6E0 001AB620 EC 3B E0 28 */ fsubs f1, f27, f28
/* 801AE6E4 001AB624 48 0B 92 71 */ bl cM_rndF__Ff
/* 801AE6E8 001AB628 EC 1C 08 2A */ fadds f0, f28, f1
/* 801AE6EC 001AB62C EC 1D 00 32 */ fmuls f0, f29, f0
/* 801AE6F0 001AB630 D0 1D 01 38 */ stfs f0, 0x138(r29)
/* 801AE6F4 001AB634 C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE6F8 001AB638 48 0B 92 95 */ bl cM_rndFX__Ff
/* 801AE6FC 001AB63C C8 02 A4 D0 */ lfd f0, lbl_80453ED0-_SDA2_BASE_(r2)
/* 801AE700 001AB640 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801AE704 001AB644 4C 41 13 82 */ cror 2, 1, 2
/* 801AE708 001AB648 40 82 00 14 */ bne lbl_801AE71C
/* 801AE70C 001AB64C C0 3D 01 38 */ lfs f1, 0x138(r29)
/* 801AE710 001AB650 C0 02 A4 D8 */ lfs f0, lbl_80453ED8-_SDA2_BASE_(r2)
/* 801AE714 001AB654 EC 01 00 32 */ fmuls f0, f1, f0
/* 801AE718 001AB658 D0 1D 01 38 */ stfs f0, 0x138(r29)
lbl_801AE71C:
/* 801AE71C 001AB65C EC 3E F8 28 */ fsubs f1, f30, f31
/* 801AE720 001AB660 48 0B 92 35 */ bl cM_rndF__Ff
/* 801AE724 001AB664 EC 1F 08 2A */ fadds f0, f31, f1
/* 801AE728 001AB668 EC 1D 00 32 */ fmuls f0, f29, f0
/* 801AE72C 001AB66C D0 1D 01 3C */ stfs f0, 0x13c(r29)
/* 801AE730 001AB670 C0 02 A4 7C */ lfs f0, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE734 001AB674 D0 1D 01 40 */ stfs f0, 0x140(r29)
/* 801AE738 001AB678 38 7E 00 D8 */ addi r3, r30, 0xd8
/* 801AE73C 001AB67C 38 9E 00 E4 */ addi r4, r30, 0xe4
/* 801AE740 001AB680 38 A1 00 20 */ addi r5, r1, 0x20
/* 801AE744 001AB684 4B EA D0 1D */ bl dKyr_get_vectle_calc
/* 801AE748 001AB688 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 801AE74C 001AB68C EC 61 00 72 */ fmuls f3, f1, f1
/* 801AE750 001AB690 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 801AE754 001AB694 EC 02 00 B2 */ fmuls f0, f2, f2
/* 801AE758 001AB698 EF A3 00 2A */ fadds f29, f3, f0
/* 801AE75C 001AB69C C0 02 A4 70 */ lfs f0, lbl_80453E70-_SDA2_BASE_(r2)
/* 801AE760 001AB6A0 FC 1D 00 40 */ fcmpo cr0, f29, f0
/* 801AE764 001AB6A4 40 81 00 0C */ ble lbl_801AE770
/* 801AE768 001AB6A8 FC 00 E8 34 */ frsqrte f0, f29
/* 801AE76C 001AB6AC EF A0 07 72 */ fmuls f29, f0, f29
lbl_801AE770:
/* 801AE770 001AB6B0 48 0B 8F 05 */ bl cM_atan2s__Fff
/* 801AE774 001AB6B4 7C 7C 1B 78 */ mr r28, r3
/* 801AE778 001AB6B8 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 801AE77C 001AB6BC FC 40 E8 90 */ fmr f2, f29
/* 801AE780 001AB6C0 48 0B 8E F5 */ bl cM_atan2s__Fff
/* 801AE784 001AB6C4 7C 7F 1B 78 */ mr r31, r3
/* 801AE788 001AB6C8 C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE78C 001AB6CC 48 0B 92 01 */ bl cM_rndFX__Ff
/* 801AE790 001AB6D0 C0 02 A4 70 */ lfs f0, lbl_80453E70-_SDA2_BASE_(r2)
/* 801AE794 001AB6D4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801AE798 001AB6D8 4C 41 13 82 */ cror 2, 1, 2
/* 801AE79C 001AB6DC 40 82 00 10 */ bne lbl_801AE7AC
/* 801AE7A0 001AB6E0 38 1C 40 00 */ addi r0, r28, 0x4000
/* 801AE7A4 001AB6E4 7C 05 07 34 */ extsh r5, r0
/* 801AE7A8 001AB6E8 48 00 00 08 */ b lbl_801AE7B0
lbl_801AE7AC:
/* 801AE7AC 001AB6EC 38 BC C0 00 */ addi r5, r28, -16384
lbl_801AE7B0:
/* 801AE7B0 001AB6F0 3C 60 80 44 */ lis r3, lbl_80439A20@ha
/* 801AE7B4 001AB6F4 38 63 9A 20 */ addi r3, r3, lbl_80439A20@l
/* 801AE7B8 001AB6F8 38 83 00 04 */ addi r4, r3, 4
/* 801AE7BC 001AB6FC 57 E0 04 38 */ rlwinm r0, r31, 0, 0x10, 0x1c
/* 801AE7C0 001AB700 7C 24 04 2E */ lfsx f1, r4, r0
/* 801AE7C4 001AB704 54 A0 04 38 */ rlwinm r0, r5, 0, 0x10, 0x1c
/* 801AE7C8 001AB708 7C 03 04 2E */ lfsx f0, r3, r0
/* 801AE7CC 001AB70C EC 01 00 32 */ fmuls f0, f1, f0
/* 801AE7D0 001AB710 D0 01 00 08 */ stfs f0, 8(r1)
/* 801AE7D4 001AB714 7C 04 04 2E */ lfsx f0, r4, r0
/* 801AE7D8 001AB718 EC 01 00 32 */ fmuls f0, f1, f0
/* 801AE7DC 001AB71C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 801AE7E0 001AB720 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 801AE7E4 001AB724 48 0B 91 71 */ bl cM_rndF__Ff
/* 801AE7E8 001AB728 FF E0 08 90 */ fmr f31, f1
/* 801AE7EC 001AB72C C0 5E 00 D8 */ lfs f2, 0xd8(r30)
/* 801AE7F0 001AB730 C0 22 A4 DC */ lfs f1, lbl_80453EDC-_SDA2_BASE_(r2)
/* 801AE7F4 001AB734 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 801AE7F8 001AB738 EC 01 00 32 */ fmuls f0, f1, f0
/* 801AE7FC 001AB73C EC 22 00 2A */ fadds f1, f2, f0
/* 801AE800 001AB740 C0 01 00 08 */ lfs f0, 8(r1)
/* 801AE804 001AB744 EC 00 07 F2 */ fmuls f0, f0, f31
/* 801AE808 001AB748 EC 01 00 2A */ fadds f0, f1, f0
/* 801AE80C 001AB74C D0 1D 01 44 */ stfs f0, 0x144(r29)
/* 801AE810 001AB750 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 801AE814 001AB754 48 0B 91 41 */ bl cM_rndF__Ff
/* 801AE818 001AB758 C0 42 A4 B4 */ lfs f2, lbl_80453EB4-_SDA2_BASE_(r2)
/* 801AE81C 001AB75C C0 1E 00 DC */ lfs f0, 0xdc(r30)
/* 801AE820 001AB760 EC 02 00 2A */ fadds f0, f2, f0
/* 801AE824 001AB764 EC 00 08 2A */ fadds f0, f0, f1
/* 801AE828 001AB768 D0 1D 01 48 */ stfs f0, 0x148(r29)
/* 801AE82C 001AB76C C0 5E 00 E0 */ lfs f2, 0xe0(r30)
/* 801AE830 001AB770 C0 22 A4 DC */ lfs f1, lbl_80453EDC-_SDA2_BASE_(r2)
/* 801AE834 001AB774 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 801AE838 001AB778 EC 01 00 32 */ fmuls f0, f1, f0
/* 801AE83C 001AB77C EC 22 00 2A */ fadds f1, f2, f0
/* 801AE840 001AB780 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 801AE844 001AB784 EC 00 07 F2 */ fmuls f0, f0, f31
/* 801AE848 001AB788 EC 01 00 2A */ fadds f0, f1, f0
/* 801AE84C 001AB78C D0 1D 01 4C */ stfs f0, 0x14c(r29)
/* 801AE850 001AB790 7F 63 DB 78 */ mr r3, r27
/* 801AE854 001AB794 3C 80 80 39 */ lis r4, lbl_80394F40@ha
/* 801AE858 001AB798 38 84 4F 40 */ addi r4, r4, lbl_80394F40@l
/* 801AE85C 001AB79C 38 84 00 07 */ addi r4, r4, 7
/* 801AE860 001AB7A0 48 1B A1 35 */ bl strcmp
/* 801AE864 001AB7A4 2C 03 00 00 */ cmpwi r3, 0
/* 801AE868 001AB7A8 40 82 00 40 */ bne lbl_801AE8A8
/* 801AE86C 001AB7AC 88 0D 87 E4 */ lbz r0, lbl_80450D64-_SDA_BASE_(r13)
/* 801AE870 001AB7B0 2C 00 00 04 */ cmpwi r0, 4
/* 801AE874 001AB7B4 40 82 00 34 */ bne lbl_801AE8A8
/* 801AE878 001AB7B8 C0 22 A4 E4 */ lfs f1, lbl_80453EE4-_SDA2_BASE_(r2)
/* 801AE87C 001AB7BC 48 0B 91 11 */ bl cM_rndFX__Ff
/* 801AE880 001AB7C0 C0 02 A4 E0 */ lfs f0, lbl_80453EE0-_SDA2_BASE_(r2)
/* 801AE884 001AB7C4 EC 00 08 2A */ fadds f0, f0, f1
/* 801AE888 001AB7C8 D0 1D 01 44 */ stfs f0, 0x144(r29)
/* 801AE88C 001AB7CC C0 02 A4 E8 */ lfs f0, lbl_80453EE8-_SDA2_BASE_(r2)
/* 801AE890 001AB7D0 D0 1D 01 48 */ stfs f0, 0x148(r29)
/* 801AE894 001AB7D4 C0 22 A4 F0 */ lfs f1, lbl_80453EF0-_SDA2_BASE_(r2)
/* 801AE898 001AB7D8 48 0B 90 F5 */ bl cM_rndFX__Ff
/* 801AE89C 001AB7DC C0 02 A4 EC */ lfs f0, lbl_80453EEC-_SDA2_BASE_(r2)
/* 801AE8A0 001AB7E0 EC 00 08 2A */ fadds f0, f0, f1
/* 801AE8A4 001AB7E4 D0 1D 01 4C */ stfs f0, 0x14c(r29)
lbl_801AE8A8:
/* 801AE8A8 001AB7E8 C0 22 A4 7C */ lfs f1, lbl_80453E7C-_SDA2_BASE_(r2)
/* 801AE8AC 001AB7EC 48 0B 90 A9 */ bl cM_rndF__Ff
/* 801AE8B0 001AB7F0 C0 02 A4 F4 */ lfs f0, lbl_80453EF4-_SDA2_BASE_(r2)
/* 801AE8B4 001AB7F4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 801AE8B8 001AB7F8 40 80 00 3C */ bge lbl_801AE8F4
/* 801AE8BC 001AB7FC C0 1D 01 44 */ lfs f0, 0x144(r29)
/* 801AE8C0 001AB800 FC 00 00 50 */ fneg f0, f0
/* 801AE8C4 001AB804 D0 1D 01 50 */ stfs f0, 0x150(r29)
/* 801AE8C8 001AB808 C0 1D 01 48 */ lfs f0, 0x148(r29)
/* 801AE8CC 001AB80C FC 00 00 50 */ fneg f0, f0
/* 801AE8D0 001AB810 D0 1D 01 54 */ stfs f0, 0x154(r29)
/* 801AE8D4 001AB814 C0 1D 01 4C */ lfs f0, 0x14c(r29)
/* 801AE8D8 001AB818 FC 00 00 50 */ fneg f0, f0
/* 801AE8DC 001AB81C D0 1D 01 58 */ stfs f0, 0x158(r29)
/* 801AE8E0 001AB820 3C 60 80 43 */ lis r3, lbl_8042DD70@ha
/* 801AE8E4 001AB824 38 63 DD 70 */ addi r3, r3, lbl_8042DD70@l
/* 801AE8E8 001AB828 38 9D 01 50 */ addi r4, r29, 0x150
/* 801AE8EC 001AB82C 38 A0 00 00 */ li r5, 0
/* 801AE8F0 001AB830 48 11 95 79 */ bl Z2EnvSeMgr_NS_startFarThunderSe
lbl_801AE8F4:
/* 801AE8F4 001AB834 38 60 00 04 */ li r3, 4
lbl_801AE8F8:
/* 801AE8F8 001AB838 E3 E1 00 98 */ psq_l f31, 152(r1), 0, qr0
/* 801AE8FC 001AB83C CB E1 00 90 */ lfd f31, 0x90(r1)
/* 801AE900 001AB840 E3 C1 00 88 */ psq_l f30, 136(r1), 0, qr0
/* 801AE904 001AB844 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 801AE908 001AB848 E3 A1 00 78 */ psq_l f29, 120(r1), 0, qr0
/* 801AE90C 001AB84C CB A1 00 70 */ lfd f29, 0x70(r1)
/* 801AE910 001AB850 E3 81 00 68 */ psq_l f28, 104(r1), 0, qr0
/* 801AE914 001AB854 CB 81 00 60 */ lfd f28, 0x60(r1)
/* 801AE918 001AB858 E3 61 00 58 */ psq_l f27, 88(r1), 0, qr0
/* 801AE91C 001AB85C CB 61 00 50 */ lfd f27, 0x50(r1)
/* 801AE920 001AB860 39 61 00 50 */ addi r11, r1, 0x50
/* 801AE924 001AB864 48 1B 38 FD */ bl _restgpr_27
/* 801AE928 001AB868 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 801AE92C 001AB86C 7C 08 03 A6 */ mtlr r0
/* 801AE930 001AB870 38 21 00 A0 */ addi r1, r1, 0xa0
/* 801AE934 001AB874 4E 80 00 20 */ blr