Skip to content

Instantly share code, notes, and snippets.

@zbanks

zbanks/camera.c Secret

Last active December 13, 2021 17:22
Show Gist options
  • Save zbanks/479b31fa637e9ba462778ae28ed4b2d3 to your computer and use it in GitHub Desktop.
Save zbanks/479b31fa637e9ba462778ae28ed4b2d3 to your computer and use it in GitHub Desktop.
struct _struct_lbl_80110260_0x8 {
/* 0x0 */ s32 unk0; /* inferred */
/* 0x4 */ s32 unk4; /* inferred */
}; /* size = 0x8 */
? C_MTXPerspective(f32 *, f32, f32, f32, f32, f32, f32); /* extern */
? GXClearVtxDesc(); /* extern */
? GXGetLightColor(void *, u8 *); /* extern */
? GXGetLightPos(void *, f32 *, ? *, ? *); /* extern */
? GXInitLightAttnK(? *, f32, f32, f32, f32, f32, f32); /* extern */
? GXInitLightColor(? *, s32 *); /* extern */
? GXInitLightDistAttn(? *, f32, f32); /* extern */
? GXInitLightPos(? *, f32, f32, f32); /* extern */
? GXInitLightSpot(? *, ?, f32); /* extern */
? GXLoadLightObjImm(? *, s32); /* extern */
? GXSetProjection(f32 *, ?, f32, f32, f32); /* extern */
? GXSetScissor(?, ?, u16, u16); /* extern */
? GXSetViewport(s32, u16, void *, f32, f32, f32, f32, f32, f32); /* extern */
? GXSetVtxAttrFmt(?, ?, ?, ?, ?); /* extern */
? OSPanic(f32 (**)(s32 *, f32 *, ? *, s16), ?, f32 (**)(s32 *, f32 *, ? *, s16)); /* extern */
? __cvt_fp2unsigned(f32); /* extern */
? func_8000E3BC(); /* extern */
? func_8000E428(s32 (*)[], f32, f32, f32); /* extern */
? func_80030BA8(f32); /* extern */
s32 func_80031210(s32); /* extern */
? func_800314B8(s32, f32); /* extern */
? func_80033B34(s32); /* extern */
? func_80033B3C(void *, s32, f32, f32, f32); /* extern */
f32 func_8004964C(s32, ? *, s32); /* extern */
? func_800496BC(s32, f32 *, f32, f64, f32, f32); /* extern */
f32 func_8008CDC0(f32 (**)(s32 *, f32 *, ? *, s16), s32, f32 (**)(s32 *, f32 *, ? *, s16), f32); /* extern */
? func_8008E428(f32, f32, f32); /* extern */
? func_8008E56C(s32); /* extern */
? func_8008E574(f32 *); /* extern */
? func_8008E5B8(u8, f32, u8, f32, f32, f32, f32, f64); /* extern */
? func_8009A9A8(); /* extern */
s32 func_8009D5D8(); /* extern */
s32 func_8009D7CC(); /* extern */
s32 func_8009D7E8(); /* extern */
? func_8009D7FC(?, f32 *); /* extern */
? func_8009D98C(f32 *); /* extern */
? func_8009DB6C(s32); /* extern */
? g_get_replay_info(s32, u16 *); /* extern */
s16 mathutil_atan(f32); /* extern */
s16 mathutil_atan2(f32, f32, f32, f64, f64, f64, f64); /* extern */
? mathutil_mtxA_from_identity(f64, f32, f32); /* extern */
? mathutil_mtxA_from_mtx(void *, f32, f64, f64, f64, f32, f64); /* extern */
? mathutil_mtxA_from_mtxB(void *); /* extern */
? mathutil_mtxA_from_rotate_y(s16, f64, f64); /* extern */
? mathutil_mtxA_from_translate(f32 *, f64, f64, f64, f64, f32, f32, f64, f64, f32); /* extern */
? mathutil_mtxA_pop(); /* extern */
? mathutil_mtxA_push(f32, ? *); /* extern */
? mathutil_mtxA_rigid_inv_tf_point(s32 *, f32 *, f32, f64); /* extern */
? mathutil_mtxA_rigid_inv_tf_vec(void *, s32 *, f32, f32, f64, f32, f32); /* extern */
? mathutil_mtxA_rotate_x(s32, f32, f32, f64); /* extern */
? mathutil_mtxA_rotate_y(s16, f32, f32, f64); /* extern */
? mathutil_mtxA_rotate_z(s32); /* extern */
? mathutil_mtxA_scale_s(f32); /* extern */
? mathutil_mtxA_sq_from_identity(); /* extern */
f32 mathutil_mtxA_tf_point(f32 *, f32 *, f32, f32, f32, f64); /* extern */
f32 mathutil_mtxA_tf_point_xyz(s32 *, f32, f32, f32); /* extern */
? mathutil_mtxA_tf_vec(f32 *, f32 *); /* extern */
? mathutil_mtxA_to_euler_yxz(s16 *, s16 *, f32 *, f32, f32); /* extern */
f32 mathutil_mtxA_to_mtx(s32 *, s32, s32); /* extern */
? mathutil_mtxA_translate(s32 *); /* extern */
? mathutil_mtxA_translate_neg(s32 *); /* extern */
? mathutil_mtxA_translate_xyz(f32, f32, f32); /* extern */
? mathutil_mtx_copy(s32 *, s32 *, s32); /* extern */
f32 mathutil_rsqrt(); /* extern */
f64 mathutil_sin(s32, f64); /* extern */
? mathutil_sin_cos_v(s32, f32 *); /* extern */
f32 mathutil_sqrt(f32, f32, f32, f32, f32, f32); /* extern */
f32 mathutil_tan(s32, f32); /* extern */
f32 mathutil_vec_dot_normalized_safe(f32 *, f32 *); /* extern */
f32 mathutil_vec_normalize_len(f32 *, void *, f32, f32, f32, f32, f32); /* extern */
? mathutil_vec_set_len(f32 *, f32 *, f32, f32, f64, f32); /* extern */
? memcpy(void *, ? *, ?); /* extern */
? memset(? *, ?, s32); /* extern */
? perf_init_timer(?); /* extern */
s32 perf_stop_timer(?); /* extern */
f32 printf(s32 *, s8, f32, s32, f32, f32, f32); /* extern */
s16 rand(f32, f32, f64, f64); /* extern */
void camera_clear(s32 *arg0, ? *arg1); /* static */
f32 camera_sub_13(f32 *arg0, f32 *arg1); /* static */
f32 camera_sub_17(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 camera_sub_22_23_24(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 camera_sub_26(f32 *arg0, f32 *arg1); /* static */
f32 camera_sub_36(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 camera_sub_42(f32 *arg0, f32 *arg1); /* static */
f32 camera_sub_47(s32 *arg0, f32 *arg1, f32 (**)(s32 *, f32 *, ?, s16), s32); /* static */
f32 camera_sub_49(s32 *arg0, f32 *arg1, s8, s8, s32, f32, f32, f32, f32, f32, f32, f32); /* static */
f32 camera_sub_71(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void camera_sub_73(s32 *arg0, f32 *arg1); /* static */
f32 camera_sub_goal_main(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void camera_sub_ready_init(f32 *arg0, f32 *arg1); /* static */
f32 camera_sub_ready_main(f32 *arg0, f32 *arg1, s16, s16); /* static */
f32 camera_sub_ringout_main(s32 *arg0, f32 *arg1, f32, f32, f32); /* static */
void func_80018330(s32 arg0, s8 arg1, s8, s32 *, s32, s32 *, f32, f32); /* static */
f32 func_80018C58(s32 *arg0, s32 arg1); /* static */
void func_80018DC8(s32 *arg0, f32 *arg1); /* static */
s32 *func_80018E34(s32 *arg0); /* static */
void func_80018E38(s32 *arg0, f32 *arg1); /* static */
void func_80018E6C(s32 *arg0, f32 *arg1); /* static */
void func_80018FA4(s32 *arg0, f32 *arg1); /* static */
void func_80018FE4(s32 *arg0, f32 *arg1); /* static */
void func_80019284(f32 *arg0, f32 *arg1); /* static */
void func_800193AC(f32 *arg0, f32 *arg1); /* static */
void func_800196E8(s32 *arg0, f32 *arg1); /* static */
s32 *func_800197AC(s32 *arg0); /* static */
void func_80019CA4(s32 *arg0, f32 *arg1); /* static */
f32 func_80019CDC(f32 *arg0, f32 arg8); /* static */
void func_80019D74(f32 *arg0, f32 *arg1); /* static */
f32 func_80019EB0(f32 *arg0, f32 *arg1); /* static */
void func_8001A34C(f32 *arg0, f32 *arg1); /* static */
void func_8001A70C(s32 *arg0, f32 *arg1); /* static */
void func_8001A7A4(s32 *arg0, f32 *arg1); /* static */
f32 func_8001A840(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001A96C(s32 *arg0, f32 *arg1, ? **, s16); /* static */
s32 *func_8001AC80(s32 *arg0); /* static */
f32 func_8001AC84(s32 *arg0, f32 *arg1, ? **, s16); /* static */
s32 *func_8001B13C(s32 *arg0); /* static */
void func_8001B140(s32 *arg0, f32 *arg1); /* static */
f32 func_8001B478(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001BDDC(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001C0C4(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001C368(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void func_8001C5FC(s32 *arg0, f32 *arg1); /* static */
void func_8001C7D8(f32 *arg0, f32 *arg1); /* static */
void func_8001CAB8(s32 *arg0, f32 *arg1); /* static */
f32 func_8001CBB0(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void func_8001CD4C(s32 *arg0, f32 *arg1); /* static */
f32 func_8001CF28(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void func_8001D32C(s32 *arg0, f32 *arg1); /* static */
f32 func_8001D708(s32 *arg0, f32 *arg1, ? **, s16); /* static */
s32 *func_8001D968(s32 *arg0); /* static */
s32 *func_8001D96C(s32 *arg0); /* static */
void func_8001D970(f32 *arg0, f32 *arg1); /* static */
f32 func_8001DDF0(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001E0A8(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001E2E8(s32 *arg0, f32 *arg1, ? **, s16); /* static */
f32 func_8001E924(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void func_8001F524(s32 *arg0, f32 *arg1); /* static */
f32 func_8001F560(s32 *arg0, f32 *arg1, ? **, s16); /* static */
void func_8001F698(f32 *arg0, f32 *arg1); /* static */
f32 func_8001F864(f32 *arg0, f32 *arg1); /* static */
f32 func_8001FAA4(s32 *arg0, f32 arg8); /* static */
void func_8001FADC(s32 *arg0); /* static */
void func_8001FB14(s32 *arg0, f32 *arg1); /* static */
void func_8001FBA8(f32 *arg0, f32 *arg1); /* static */
void func_8001FF2C(f32 *arg0, f32 *arg1, s16 *arg2, s16 *arg3, s16 *arg4, s16 *arg5, f32 *arg6, s32 arg7); /* static */
void func_80020334(f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4, s16 *arg5, s16 *arg6, s16 *); /* static */
void func_8002049C(s32 *arg0, f32 *arg1); /* static */
void func_80020910(s32 *arg0, f32 *arg1); /* static */
s32 *func_80020A88(s32 *arg0, f32 *arg1); /* static */
void func_80020AB8(s32 *arg0, s32 *arg1, s32 arg8, ? *arg9, f32 argA, f32 argB, f32, f32); /* static */
? func_80022140(? *arg0, s32 arg1); /* static */
void func_80022274(s32 arg0, s32 arg1); /* static */
void func_800225FC(f32 arg8, f32 arg9, f32 argA); /* static */
void func_80022614(f32 arg1, f32 arg8, f32 arg9, f32 argA); /* static */
extern s16 backgroundInfo;
extern s32 cameraInfo;
extern void *currRenderMode;
extern s16 currStageId;
extern s32 *currentCameraStructPtr;
extern void *decodedStageLzPtr;
extern s32 dipSwitches;
extern ? eventInfo;
extern s16 gameMode;
extern s16 gameSubmode;
extern ? lbl_80017CFC;
extern ? lbl_80017D08;
extern ? lbl_80017DA4;
extern ? lbl_80017DB0;
extern ? lbl_80017DBC;
extern ? lbl_80017E70;
extern ? lbl_80017ED0;
extern ? lbl_80017EDC;
extern ? lbl_80017EE8;
extern ? lbl_80017F08;
extern ? lbl_80017F3C;
extern ? lbl_8001E16C;
extern ? lbl_8001E1F4;
extern ? lbl_8001E264;
extern ? lbl_8001E28C;
extern ? lbl_8001E2B0;
extern ? lbl_800212E4;
extern ? lbl_80021344;
extern ? lbl_80021384;
extern ? lbl_80021438;
extern ? lbl_8002144C;
extern ? lbl_80021640;
extern ? lbl_80021664;
extern ? lbl_80021688;
extern ? lbl_80021864;
extern ? lbl_80021878;
extern ? lbl_8002188C;
extern ? lbl_800218A0;
extern ? lbl_800218B0;
extern ? lbl_8002274C;
extern ? lbl_800227CC;
extern ? lbl_80022808;
extern ? lbl_80110004;
extern ? lbl_801EED2C;
extern ? lbl_801EFB94;
extern ? lbl_801EFC18;
extern ? lbl_801EFC54;
extern ? lbl_801EFC88;
extern ? lbl_801EFC94;
extern ? lbl_801F065C;
extern ? lbl_801F3A58;
extern ? lbl_801F3B70;
extern u16 lbl_801F3D50;
extern u16 lbl_801F3D88;
extern f32 lbl_80205E60;
extern ? lbl_80206BD0;
extern ? lbl_80206BF0;
extern ? lbl_80206E48;
extern ? lbl_8020ADD4;
extern ? lbl_80250A68;
extern s32 lbl_802F03EC;
extern s32 lbl_802F03F0;
extern void *lbl_802F1B04;
extern s32 *lbl_802F1B3C;
extern void *lbl_802F1C28;
extern s32 lbl_802F1C34;
extern s32 lbl_802F1C40;
extern s32 lbl_802F1C48;
extern s32 lbl_802F1C4C;
extern u8 lbl_802F1C50;
extern f32 lbl_802F1C54;
extern s32 lbl_802F1C58;
extern s32 lbl_802F1C5C;
extern s32 lbl_802F1C60;
extern s32 lbl_802F1C64;
extern s32 lbl_802F1C68;
extern s32 lbl_802F1C78;
extern s32 lbl_802F1C7C;
extern s32 lbl_802F1C80;
extern s32 lbl_802F1C84;
extern s32 lbl_802F1C88;
extern s32 lbl_802F1C8C;
extern s32 lbl_802F1C94;
extern s32 lbl_802F1C98;
extern s32 lbl_802F1EE0;
extern s32 mathutilData;
extern u32 minigameRelCameraCallback;
extern s32 modeCtrl;
extern ? spritePoolInfo;
static f32 (*lbl_80176200[0x4B])(s32 *, f32 *, ? *, s16) = {
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80019D74),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80019EB0),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001A34C),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001A70C),
func_8001A840,
func_8001A96C,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001AC80),
func_8001AC84,
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_ringout_main),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001B13C),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_ready_init),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_ready_main),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_800193AC),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_13),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001B140),
camera_sub_goal_main,
func_8001B478,
camera_sub_17,
func_8001BDDC,
func_8001C0C4,
func_8001C368,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001C5FC),
camera_sub_22_23_24,
camera_sub_22_23_24,
camera_sub_22_23_24,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001C7D8),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_26),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018DC8),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018E34),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018E38),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018E6C),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001CAB8),
func_8001CBB0,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001CD4C),
func_8001CF28,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001D32C),
camera_sub_36,
func_8001D708,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80019CA4),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001D968),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001D96C),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001D970),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_42),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80019284),
func_8001DDF0,
func_8001E0A8,
func_8001E2E8,
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_47),
func_8001E924,
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_49),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001F524),
func_8001F560,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_800196E8),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_800197AC),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018FA4),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80018FE4),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001F698),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001F864),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001A7A4),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001FAA4),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001FADC),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001FB14),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8001FBA8),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_8002049C),
camera_sub_71,
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020910),
((f32 (*)(s32 *, f32 *, ? *, s16)) camera_sub_73),
((f32 (*)(s32 *, f32 *, ? *, s16)) func_80020A88),
};
static ? *lbl_8017632C[0x39] = {
&lbl_80017DB0,
&lbl_80017CFC,
&lbl_80017D08,
&lbl_80017D08,
&lbl_80017DA4,
&lbl_80017DBC,
&lbl_80017E70,
&lbl_80017ED0,
&lbl_80017EDC,
&lbl_80017F3C,
&lbl_80017EE8,
&lbl_80017F3C,
&lbl_80017F08,
NULL,
NULL,
(? *)0x3F800000,
(? *)0x3F800000,
NULL,
NULL,
(? *)0x3F800000,
(? *)0x3F000000,
NULL,
(? *)0x3F000000,
(? *)0x3F800000,
(? *)0x3F000000,
NULL,
NULL,
(? *)0x3F800000,
(? *)0x3F000000,
NULL,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
NULL,
NULL,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
NULL,
(? *)0x3F000000,
(? *)0x3F000000,
NULL,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x3F000000,
(? *)0x80176360,
(? *)0x80176370,
(? *)0x80176390,
(? *)0x801763C0,
};
static ? lbl_80177214; /* unable to generate initializer */
static ? *lbl_801772AC[0x2B] = {
&lbl_8001E1F4,
&lbl_8001E28C,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E1F4,
&lbl_8001E28C,
&lbl_8001E2B0,
&lbl_8001E28C,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E2B0,
&lbl_8001E16C,
&lbl_8001E2B0,
&lbl_8001E264,
NULL,
};
static s32 lbl_80177358[0]; /* unable to generate initializer */
static ? lbl_8017748C; /* unable to generate initializer */
static ? *lbl_80180D08[9] = {
&lbl_800212E4,
&lbl_80021384,
&lbl_80021344,
&lbl_80021384,
&lbl_80021344,
&lbl_80021384,
&lbl_80021344,
&lbl_80021384,
&lbl_80021344,
};
static ? *lbl_80180D2C[9] = {
&lbl_80021640,
&lbl_80021664,
&lbl_80021688,
&lbl_80021664,
&lbl_80021688,
&lbl_80021664,
&lbl_80021688,
&lbl_80021664,
&lbl_80021688,
};
static ? *lbl_80180D50[9] = {
&lbl_80021438,
&lbl_80021438,
&lbl_8002144C,
&lbl_80021438,
&lbl_8002144C,
&lbl_80021438,
&lbl_8002144C,
&lbl_80021438,
&lbl_8002144C,
};
static ? *lbl_80180D74[0xF] = {
&lbl_80021878,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218A0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_8002188C,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_800218B0,
&lbl_80021864,
};
static s32 lbl_80180DB0; /* unable to generate initializer */
static s32 lbl_80180DE0; /* unable to generate initializer */
static ? *lbl_80180E0C[0x20] = {
&lbl_800227CC,
&lbl_8002274C,
&lbl_80022808,
&lbl_8002274C,
&lbl_80022808,
&lbl_8002274C,
&lbl_80022808,
&lbl_8002274C,
&lbl_80022808,
(? *)0x5010502,
(? *)0x5030504,
(? *)0xFFFF0000,
(? *)0x6010602,
(? *)0x6030604,
(? *)0x6050606,
(? *)0x6070608,
(? *)0xFFFF0000,
(? *)0x7010702,
(? *)0x5010503,
(? *)0xFFFF0000,
(? *)0x5040601,
(? *)0x6020603,
(? *)0xFFFF0000,
(? *)0x80180E30,
(? *)0x80180E3C,
(? *)0x802F03F8,
(? *)0x802F0400,
(? *)0x80180E50,
(? *)0x802F0408,
(? *)0x802F0410,
(? *)0x80180E5C,
NULL,
};
static ? lbl_80180F64; /* unable to generate initializer */
static ? lbl_80110230; /* unable to generate initializer; const */
static ? lbl_8011023C; /* unable to generate initializer; const */
static ? lbl_80110248; /* unable to generate initializer; const */
static struct _struct_lbl_80110260_0x8 lbl_80110260[0x16] = {
{ 0, 3 },
{ 1, 3 },
{ 1, 1 },
{ 0, 1 },
{ 0, 1 },
{ 0, 1 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
{ 0, 3 },
}; /* const */
static ? lbl_80110310; /* unable to generate initializer; const */
static s32 lbl_802F2C70 = 0; /* const */
static u16 lbl_802F2C74 = 0; /* const */
static s32 lbl_802F2C94 = 0; /* const */
static u16 lbl_802F2C98 = 0; /* const */
static s32 lbl_802F2CA4 = 0; /* const */
static u16 lbl_802F2CA8 = 0; /* const */
void camera_init(s32 arg1) {
s32 *temp_r8;
s32 *temp_r8_2;
s32 *temp_r8_3;
currentCameraStructPtr = &cameraInfo;
temp_r8 = &cameraInfo + 0x284 + 0x284;
lbl_802F1C40 = -1;
lbl_802F1C34 = -1;
cameraInfo.unk204 = 0;
cameraInfo.unk1E = 3;
cameraInfo.unk208 = 3;
cameraInfo.unk26 = 0;
cameraInfo.unk28 = 0.0f;
cameraInfo.unk2C = 0.0f;
cameraInfo.unk30 = 0x2AAA;
cameraInfo.unk32 = 0x2AAA;
cameraInfo.unk34 = 1.3333334f;
cameraInfo.unk40 = 0.0f;
cameraInfo.unk44 = 0.0f;
cameraInfo.unk48 = 1.0f;
cameraInfo.unk4C = 1.0f;
cameraInfo.unk488 = 1;
cameraInfo.unk2A2 = 3;
cameraInfo.unk48C = 3;
cameraInfo.unk2AA = 0;
cameraInfo.unk2AC = 0.0f;
cameraInfo.unk2B0 = 0.0f;
cameraInfo.unk2B4 = 0x2AAA;
cameraInfo.unk2B6 = 0x2AAA;
cameraInfo.unk2B8 = 1.3333334f;
cameraInfo.unk2C4 = 0.0f;
cameraInfo.unk2C8 = 0.0f;
cameraInfo.unk2CC = 1.0f;
cameraInfo.unk2D0 = 1.0f;
cameraInfo.unk70C = 2;
cameraInfo.unk526 = 3;
cameraInfo.unk710 = 3;
cameraInfo.unk52E = 0;
temp_r8->unk28 = 0.0f;
temp_r8->unk2C = 0.0f;
temp_r8->unk30 = 0x2AAA;
temp_r8->unk32 = 0x2AAA;
temp_r8->unk34 = 1.3333334f;
temp_r8->unk40 = 0.0f;
temp_r8->unk44 = 0.0f;
temp_r8->unk48 = 1.0f;
temp_r8->unk4C = 1.0f;
temp_r8->unk488 = 3;
temp_r8->unk2A2 = 3;
temp_r8->unk48C = 3;
temp_r8->unk2AA = 0;
temp_r8_2 = temp_r8 + 0x284;
temp_r8_2->unk28 = 0.0f;
temp_r8_2->unk2C = 0.0f;
temp_r8_2->unk30 = 0x2AAA;
temp_r8_2->unk32 = 0x2AAA;
temp_r8_2->unk34 = 1.3333334f;
temp_r8_2->unk40 = 0.0f;
temp_r8_2->unk44 = 0.0f;
temp_r8_2->unk48 = 1.0f;
temp_r8_2->unk4C = 1.0f;
temp_r8_2->unk488 = 4;
temp_r8_2->unk2A2 = 3;
temp_r8_2->unk48C = 3;
temp_r8_2->unk2AA = 0;
temp_r8_3 = temp_r8_2 + 0x284;
temp_r8_3->unk28 = 0.0f;
temp_r8_3->unk2C = 0.0f;
temp_r8_3->unk30 = 0x2AAA;
temp_r8_3->unk32 = 0x2AAA;
temp_r8_3->unk34 = 1.3333334f;
temp_r8_3->unk40 = 0.0f;
temp_r8_3->unk44 = 0.0f;
temp_r8_3->unk48 = 1.0f;
temp_r8_3->unk4C = 1.0f;
func_80018330(0, 0, 3, &cameraInfo, 4, temp_r8_3, 1.3333334f, 0.0f);
}
void ev_camera_init(s32 arg1) {
s32 temp_r29;
s32 *phi_r28;
s32 phi_r29;
phi_r28 = &cameraInfo;
phi_r29 = 0;
do {
phi_r28->unk24 = 0;
camera_clear(phi_r28);
phi_r28->unk26 = (s8) 0;
temp_r29 = phi_r29 + 1;
phi_r28->unk28 = 0.0f;
phi_r28->unk2C = 0.0f;
phi_r28->unk30 = 0x2AAA;
phi_r28 += 0x284;
phi_r29 = temp_r29;
} while (temp_r29 < 4);
func_80018330(0);
}
void ev_camera_main(s32 arg1) {
s32 sp34;
s32 sp30;
f64 sp28;
s32 sp24;
s32 sp20;
f64 sp18;
f32 (**temp_r5)(s32 *, f32 *, ?, s16);
s16 temp_r3_3;
s32 temp_r25;
s32 temp_r3;
s32 temp_r4;
u8 temp_r3_2;
void *temp_r20;
void *temp_r20_2;
u8 *phi_r22;
s32 *phi_r24;
f32 *phi_r23;
s32 phi_r21;
s32 phi_r25;
temp_r4 = dipSwitches;
if ((temp_r4 & 1) != 0) {
if (((temp_r4 & 0x1000) != 0) && ((lbl_801F3B70.unk18 & 0x800) != 0)) {
dipSwitches = temp_r4 ^ 0x2000;
}
if (((lbl_801F3B70.unk0 & 0x200) != 0) && ((lbl_801F3B70.unk18 & 0x800) != 0)) {
temp_r3 = dipSwitches;
if ((temp_r3 & 0x1000) != 0) {
dipSwitches = temp_r3 & 0xFFFFEFFF;
} else if ((lbl_802F1EE0 & 1) != 0) {
dipSwitches = temp_r3 | 0x1000;
dipSwitches &= 0xFFFFDFFF;
}
}
}
phi_r22 = spritePoolInfo.unkC;
phi_r24 = &cameraInfo;
phi_r23 = &lbl_80205E60;
phi_r21 = 0;
phi_r25 = 0;
do {
temp_r3_2 = *phi_r22;
if ((((s8) temp_r3_2 != 0) && ((s32) (s8) temp_r3_2 != 4)) || (temp_r3_3 = phi_r24->unk24, (((temp_r3_3 & 0x10) == 0) == 0)) || ((temp_r3_3 & 0x80) != 0)) {
phi_r24->unk24 = (s16) (phi_r24->unk24 & 0xFFFFFFFE);
if ((dipSwitches & 0x1000) != 0) {
lbl_80176200->unk8(phi_r24, phi_r23);
} else {
temp_r5 = &lbl_80176200[(s8) phi_r24->unk1E];
*temp_r5(phi_r24, phi_r23, temp_r5);
}
mathutil_mtxA_from_translate(phi_r23 + 4);
mathutil_mtxA_rotate_y(phi_r24->unk1A);
mathutil_mtxA_rigid_inv_tf_point(phi_r24, (f32 *) (phi_r24 + 0xBC));
mathutil_mtxA_rigid_inv_tf_point(phi_r24 + 0xC, (f32 *) (phi_r24 + 0xC8));
mathutil_mtx_copy(phi_r24 + 0x144, phi_r24 + 0x174);
mathutil_mtx_copy(phi_r24 + 0x1A4, phi_r24 + 0x1D4);
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_z(-(s32) phi_r24->unk1C);
mathutil_mtxA_rotate_x(-(s32) phi_r24->unk18);
mathutil_mtxA_rotate_y((s16) -(s32) phi_r24->unk1A);
mathutil_mtxA_translate_neg(phi_r24);
if ((phi_r24->unk24 & 4) == 0) {
mathutil_mtxA_to_mtx(phi_r24 + 0x1A4);
if (((s32) eventInfo.unk30 == 2) && ((phi_r24->unk24 & 8) == 0)) {
mathutil_mtxA_translate((s32 *) (phi_r23 + 4));
temp_r20 = &lbl_80206BF0 + phi_r21;
sp34 = temp_r20->unk0 ^ 0x80000000;
sp30 = 0x43300000;
sp28 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
mathutil_mtxA_rotate_x(unksp2C);
sp24 = temp_r20->unk2 ^ 0x80000000;
sp20 = 0x43300000;
sp18 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
mathutil_mtxA_rotate_z(unksp1C);
mathutil_mtxA_translate_neg((s32 *) (phi_r23 + 4));
}
mathutil_mtxA_to_mtx(phi_r24 + 0x144);
} else {
mathutil_mtxA_push();
mathutil_mtxA_translate((s32 *) (phi_r23 + 4));
temp_r20_2 = &lbl_80206BF0 + phi_r21;
mathutil_mtxA_rotate_z((s32) -(s32) temp_r20_2->unk2 >> 1);
mathutil_mtxA_rotate_x((s32) -(s32) temp_r20_2->unk0 >> 1);
mathutil_mtxA_translate_neg((s32 *) (phi_r23 + 4));
mathutil_mtxA_to_mtx(phi_r24 + 0x1A4);
mathutil_mtxA_pop();
mathutil_mtxA_translate((s32 *) (phi_r23 + 4));
mathutil_mtxA_rotate_x((s32) temp_r20_2->unk0 >> 1);
mathutil_mtxA_rotate_z((s32) temp_r20_2->unk2 >> 1);
mathutil_mtxA_translate_neg((s32 *) (phi_r23 + 4));
mathutil_mtxA_to_mtx(phi_r24 + 0x144);
}
if ((u32) (s8) phi_r24->unk26 <= 0xCU) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
phi_r24->unk28 = 0.0f;
phi_r24->unk2C = 0.0f;
}
phi_r24->unk38 = mathutil_tan((s32) phi_r24->unk30 >> 1);
phi_r24->unk3C = (f32) (1.0 / (f64) phi_r24->unk38);
func_80018C58(phi_r24);
}
temp_r25 = phi_r25 + 1;
phi_r22 += 1;
phi_r24 += 0x284;
phi_r23 += 0x1A4;
phi_r21 += 0x40;
phi_r25 = temp_r25;
} while (temp_r25 < 4);
func_80018330(0);
}
s32 ev_camera_dest(s32 arg0) {
return arg0;
}
void func_80017FCC(s32 arg1) {
s32 sp6C;
s32 sp68;
s32 sp64;
s32 sp60;
f32 sp1C;
s32 sp18;
s32 sp14;
s32 sp10;
u16 spC;
s32 sp8;
s32 *temp_r3;
s32 temp_r5_2;
u16 temp_r4;
void *temp_r5;
void *temp_r6;
currentCameraStructPtr = &cameraInfo;
lbl_802F1C40 = 4;
lbl_802F1C34 = 4;
mathutil_mtx_copy(&cameraInfo + 0x144, mathutilData + 0x30);
mathutil_mtx_copy(mathutilData + 0x30, lbl_802F1B3C + 0x60);
mathutil_mtx_copy(&cameraInfo + 0x174, lbl_802F1B3C + 0x90);
mathutil_mtx_copy(&cameraInfo + 0x1A4, lbl_802F1B3C);
mathutil_mtx_copy(&cameraInfo + 0x1D4, lbl_802F1B3C + 0xC0);
C_MTXPerspective(&sp1C, 59.996338f, 1.3333334f, 0.1f, 20000.0f);
GXSetProjection(&sp1C, 0);
temp_r5 = currRenderMode;
temp_r4 = temp_r5->unk4;
sp6C = (s32) temp_r4;
sp64 = (s32) temp_r5->unk8;
sp68 = 0x43300000;
sp60 = 0x43300000;
GXSetViewport(0x43300000, temp_r4, temp_r5, 0.0f, 0.0f, (f32) (bitwise f64) sp68 - (f32) 4503599627370496.0, (f32) (bitwise f64) sp60 - (f32) 4503599627370496.0, 0.0f, 1.0f);
temp_r6 = currRenderMode;
GXSetScissor(0, 0, temp_r6->unk4, temp_r6->unk8);
sp8 = lbl_802F2C70;
spC = lbl_802F2C74;
temp_r5_2 = lbl_80110230.unk0;
temp_r3 = &sp10;
sp10 = temp_r5_2;
sp14 = lbl_80110230.unk4;
sp18 = lbl_80110230.unk8;
func_80020AB8(temp_r3, &sp8, temp_r5_2, &lbl_80110230, 59.996338f, 1.3333334f, 0.0f, 0.0f);
}
void func_80018128(s32 arg0, f32 arg1, f32 arg8, f32 arg9, f32 argA, f32 argB) {
void *temp_r31;
temp_r31 = &cameraInfo + (arg0 * 0x284);
temp_r31->unk40 = arg8;
temp_r31->unk44 = arg9;
temp_r31->unk48 = argA;
temp_r31->unk4C = argB;
if ((argA > 0.0f) && (argB > 0.0f)) {
temp_r31->unk34 = (f32) (1.3333334f * (argA / argB));
if (argB == 1.0f) {
temp_r31->unk32 = 0x2AAA;
} else {
temp_r31->unk32 = (s16) ((s16) mathutil_atan2((0.5f + (0.5f * argB)) * mathutil_tan(0x1555), 1.0f, 0.5f) * 2);
temp_r31->unk30 = (s16) temp_r31->unk32;
}
}
if (lbl_802F1C40 == arg0) {
func_80018330(arg0);
}
}
void func_8001820C(s32 arg0, s32 arg1) {
s32 temp_r31;
s32 phi_r31;
void *phi_r30;
if ((arg0 < 1) || (arg0 > 4)) {
OSPanic(lbl_80176200 + 0x210, 0x256, lbl_80176200 + 0x21C);
}
phi_r31 = 0;
phi_r30 = lbl_80176200[arg0].unk1FC;
do {
if (phi_r31 >= arg0) {
func_80018128(phi_r31, 0.0f, 0.0f, 0.0f, 0.0f);
} else {
func_80018128(phi_r31, phi_r30->unk0, phi_r30->unk4, phi_r30->unk8, phi_r30->unkC);
phi_r30 += 0x10;
}
temp_r31 = phi_r31 + 1;
phi_r31 = temp_r31;
} while (temp_r31 < 4);
}
void func_800182CC(s32 arg1) {
s32 temp_r31;
s32 phi_r31;
phi_r31 = 0;
do {
func_80018128(phi_r31, 0.0f, 0.0f, 0.0f, 0.0f);
temp_r31 = phi_r31 + 1;
phi_r31 = temp_r31;
} while (temp_r31 < 4);
func_80018128(0, 0.0f, 0.0f, 1.0f, 1.0f);
}
void func_80018330(s32 arg0, s32 arg1) {
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
f32 sp2C;
f32 sp1C;
f32 sp14;
u16 sp10; /* compiler-managed */
s32 spC; /* compiler-managed */
? temp_r28;
? temp_r29;
? temp_r30;
f32 temp_f1;
f32 temp_f28;
f32 temp_f29;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f30;
f32 temp_f31;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f7;
f32 temp_f8;
s32 *temp_r31;
s32 *temp_r3;
s32 *temp_r4_4;
s32 temp_r4;
s32 temp_r4_2;
s32 temp_r5;
s32 temp_r5_3;
u16 temp_r4_3;
void *temp_r5_2;
temp_r5 = arg0 * 0x284;
lbl_802F1C40 = arg0;
lbl_802F1C34 = arg0;
temp_r31 = &cameraInfo + temp_r5;
currentCameraStructPtr = temp_r31;
mathutil_mtx_copy(temp_r31 + 0x144, mathutilData + 0x30, temp_r5);
mathutil_mtx_copy(mathutilData + 0x30, lbl_802F1B3C + 0x60);
mathutil_mtx_copy(temp_r31 + 0x174, lbl_802F1B3C + 0x90);
mathutil_mtx_copy(temp_r31 + 0x1A4, lbl_802F1B3C);
mathutil_mtx_copy(temp_r31 + 0x1D4, lbl_802F1B3C + 0xC0);
temp_r3 = lbl_802F1B3C;
mathutil_mtx_copy(temp_r3, temp_r3 + 0x30);
lbl_802F1B3C->unk3C = 0.0f;
lbl_802F1B3C->unk4C = (f32) -temp_r31->unk4;
lbl_802F1B3C->unk5C = 0.0f;
if (((s32) gameMode == 4) && ((s32) gameSubmode == 0x9D) && (arg0 == 0)) {
temp_r4 = temp_r31->unk30 ^ 0x80000000;
sp64 = temp_r4;
sp60 = 0x43300000;
C_MTXPerspective(&sp14, (bitwise f32) temp_r4, 0.005493164f * ((f32) (bitwise f64) sp60 - (f32) 4503601774854144.0), temp_r31->unk34, 0.17320509f / temp_r31->unk38, 20000.0f, 0.005493164f);
} else {
temp_r4_2 = temp_r31->unk30 ^ 0x80000000;
sp64 = temp_r4_2;
sp60 = 0x43300000;
C_MTXPerspective(&sp14, (bitwise f32) temp_r4_2, 0.005493164f * ((f32) (bitwise f64) sp60 - (f32) 4503601774854144.0), temp_r31->unk34, 0.1f, 20000.0f, 0.005493164f);
}
temp_f3 = sp1C;
sp1C = temp_f3 - (temp_r31->unk38 * (temp_r31->unk34 * (sp14 * temp_r31->unk28)));
temp_f2 = temp_r31->unk38;
temp_f1 = sp2C;
sp2C = temp_f1 - (temp_f2 * (sp28 * temp_r31->unk2C));
GXSetProjection(&sp14, 0, temp_f1, temp_f2, temp_f3);
temp_f7 = temp_r31->unk48;
if (temp_f7 > 0.0f) {
temp_f8 = temp_r31->unk4C;
if (temp_f8 > 0.0f) {
temp_r5_2 = currRenderMode;
temp_r4_3 = temp_r5_2->unk4;
sp64 = (s32) temp_r4_3;
sp5C = (s32) temp_r5_2->unk8;
sp60 = 0x43300000;
sp58 = 0x43300000;
temp_f3_2 = (f32) (bitwise f64) sp60 - (f32) 4503599627370496.0;
temp_f2_2 = (f32) (bitwise f64) sp58 - (f32) 4503599627370496.0;
temp_f31 = temp_f3_2 * temp_r31->unk40;
temp_f29 = temp_f3_2 * temp_f7;
temp_f28 = temp_f2_2 * temp_f8;
temp_f30 = temp_f2_2 * temp_r31->unk44;
GXSetViewport(0x43300000, temp_r4_3, temp_r5_2, temp_f31, temp_f30, temp_f29, temp_f28);
temp_r28 = __cvt_fp2unsigned(temp_f28);
temp_r29 = __cvt_fp2unsigned(temp_f29);
temp_r30 = __cvt_fp2unsigned(temp_f30);
__cvt_fp2unsigned(temp_f31);
GXSetScissor();
}
}
temp_r4_4 = &spC;
spC = lbl_802F2C94;
sp10 = lbl_802F2C98;
spC = temp_r31->unk18;
unkspE = temp_r31->unk1A;
sp10 = temp_r31->unk1C;
temp_r5_3 = temp_r31->unk30 ^ 0x80000000;
sp5C = temp_r5_3;
sp58 = 0x43300000;
func_80020AB8(temp_r31, temp_r4_4, temp_r5_3, (bitwise ? *) (0.005493164f * ((f32) (bitwise f64) sp58 - (f32) 4503601774854144.0)), temp_r31->unk34, temp_r31->unk28, temp_r31->unk2C, 0.005493164f);
}
f32 func_80018648(s32 arg0, s32 arg1, f32 arg8) {
if ((lbl_802F1C40 != arg0) || (lbl_802F1C34 != arg0)) {
func_80018330();
}
return arg8;
}
void func_80018680(s32 arg0, s32 arg1) {
s32 sp5C;
s32 sp58;
f32 sp2C;
f32 sp1C;
f32 sp14;
u16 sp10; /* compiler-managed */
s32 spC; /* compiler-managed */
f32 temp_f1;
f32 temp_f2;
f32 temp_f3;
s32 *temp_r31;
s32 *temp_r3;
s32 *temp_r4_3;
s32 temp_r4;
s32 temp_r4_2;
s32 temp_r5;
s32 temp_r5_2;
temp_r5 = arg0 * 0x284;
lbl_802F1C40 = arg0;
temp_r31 = &cameraInfo + temp_r5;
currentCameraStructPtr = temp_r31;
mathutil_mtx_copy(temp_r31 + 0x144, mathutilData + 0x30, temp_r5);
mathutil_mtx_copy(mathutilData + 0x30, lbl_802F1B3C + 0x60);
mathutil_mtx_copy(temp_r31 + 0x174, lbl_802F1B3C + 0x90);
mathutil_mtx_copy(temp_r31 + 0x1A4, lbl_802F1B3C);
mathutil_mtx_copy(temp_r31 + 0x1D4, lbl_802F1B3C + 0xC0);
temp_r3 = lbl_802F1B3C;
mathutil_mtx_copy(temp_r3, temp_r3 + 0x30);
lbl_802F1B3C->unk3C = 0.0f;
lbl_802F1B3C->unk4C = (f32) -temp_r31->unk4;
lbl_802F1B3C->unk5C = 0.0f;
if (((s32) gameMode == 4) && ((s32) gameSubmode == 0x9D) && (arg0 == 0)) {
temp_r4 = temp_r31->unk30 ^ 0x80000000;
sp5C = temp_r4;
sp58 = 0x43300000;
C_MTXPerspective(&sp14, (bitwise f32) temp_r4, 0.005493164f * ((f32) (bitwise f64) sp58 - (f32) 4503601774854144.0), temp_r31->unk34, 0.17320509f / temp_r31->unk38, 20000.0f, 0.005493164f);
} else {
temp_r4_2 = temp_r31->unk30 ^ 0x80000000;
sp5C = temp_r4_2;
sp58 = 0x43300000;
C_MTXPerspective(&sp14, (bitwise f32) temp_r4_2, 0.005493164f * ((f32) (bitwise f64) sp58 - (f32) 4503601774854144.0), temp_r31->unk34, 0.1f, 20000.0f, 0.005493164f);
}
temp_f3 = sp1C;
sp1C = temp_f3 - (temp_r31->unk38 * (temp_r31->unk34 * (sp14 * temp_r31->unk28)));
temp_f2 = temp_r31->unk38;
temp_f1 = sp2C;
sp2C = temp_f1 - (temp_f2 * (sp28 * temp_r31->unk2C));
GXSetProjection(&sp14, 0, temp_f1, temp_f2, temp_f3);
temp_r4_3 = &spC;
spC = lbl_802F2CA4;
sp10 = lbl_802F2CA8;
spC = temp_r31->unk18;
unkspE = temp_r31->unk1A;
sp10 = temp_r31->unk1C;
temp_r5_2 = temp_r31->unk30 ^ 0x80000000;
sp5C = temp_r5_2;
sp58 = 0x43300000;
func_80020AB8(temp_r31, temp_r4_3, temp_r5_2, (bitwise ? *) (0.005493164f * ((f32) (bitwise f64) sp58 - (f32) 4503601774854144.0)), temp_r31->unk34, temp_r31->unk28, temp_r31->unk2C, 0.005493164f);
}
f32 func_800188A8(s32 arg0, s32 arg1, f32 arg8) {
if (lbl_802F1C40 != arg0) {
func_80018680();
}
return arg8;
}
void func_800188D4(s32 arg1) {
s32 sp4C;
s32 sp48;
f32 sp20;
f32 sp10;
f32 sp8;
f32 temp_f2;
f32 temp_f3;
s32 temp_r4;
temp_r4 = cameraInfo.unk30 ^ 0x80000000;
sp4C = temp_r4;
sp48 = 0x43300000;
C_MTXPerspective(&sp8, (bitwise f32) temp_r4, 0.005493164f * ((f32) (bitwise f64) sp48 - (f32) 4503601774854144.0), cameraInfo.unk34, 0.1f, 20000.0f, 0.005493164f);
temp_f3 = cameraInfo.unk38;
sp10 -= temp_f3 * (cameraInfo.unk34 * (sp8 * cameraInfo.unk28));
temp_f2 = sp20;
sp20 = temp_f2 - (temp_f3 * (sp1C * cameraInfo.unk2C));
GXSetProjection(&sp8, 0, sp1C, temp_f2, temp_f3);
}
void func_8001898C(s32 arg0, s32 arg1, void *arg2) {
s32 temp_r0;
void *temp_r3;
temp_r3 = &cameraInfo + (arg0 * 0x284);
temp_r3->unkEC = 1;
temp_r3->unk100 = (f32) (temp_r3->unk100 + arg2->unk0);
temp_r3->unk104 = (f32) (temp_r3->unk104 + arg2->unk4);
temp_r3->unk108 = (f32) (temp_r3->unk108 + arg2->unk8);
if ((arg1 < 0) || (temp_r0 = temp_r3->unkF0, ((temp_r0 < 0) != 0))) {
temp_r3->unkF0 = -1;
return;
}
if (temp_r0 < arg1) {
temp_r3->unkF0 = arg1;
}
}
f32 func_80018A04(s8 arg0, f32 arg8) {
s32 *temp_r5;
s32 *temp_r5_2;
s32 *temp_r5_3;
s8 temp_r3;
temp_r3 = (s8) arg0;
if ((cameraInfo.unk24 & 0x20) == 0) {
cameraInfo.unk1E = temp_r3;
cameraInfo.unk1F = 0;
}
temp_r5 = &cameraInfo + 0x284;
if ((temp_r5->unk24 & 0x20) == 0) {
temp_r5->unk1E = temp_r3;
temp_r5->unk1F = 0;
}
temp_r5_2 = temp_r5 + 0x284;
if ((temp_r5->unk2A8 & 0x20) == 0) {
temp_r5_2->unk1E = temp_r3;
temp_r5_2->unk1F = 0;
}
temp_r5_3 = temp_r5_2 + 0x284;
if ((temp_r5_2->unk2A8 & 0x20) == 0) {
temp_r5_3->unk1E = temp_r3;
temp_r5_3->unk1F = 0;
return arg8;
}
return arg8;
}
f32 func_80018A74(s32 arg0, s32 arg1, f32 arg8) {
s32 temp_r3;
if (arg1 != 0) {
cameraInfo.unk24 = (s16) (cameraInfo.unk24 | arg0);
cameraInfo.unk2A8 = (s16) (cameraInfo.unk2A8 | arg0);
cameraInfo.unk52C = (s16) (cameraInfo.unk52C | arg0);
cameraInfo.unk7B0 = (s16) (cameraInfo.unk7B0 | arg0);
return arg8;
}
temp_r3 = ~(arg0 | arg0);
cameraInfo.unk24 = (s16) (cameraInfo.unk24 & temp_r3);
cameraInfo.unk2A8 = (s16) (cameraInfo.unk2A8 & temp_r3);
cameraInfo.unk52C = (s16) (cameraInfo.unk52C & temp_r3);
cameraInfo.unk7B0 = (s16) (cameraInfo.unk7B0 & temp_r3);
return arg8;
}
void camera_clear(s32 *arg0, ? *arg1) {
s32 sp5C;
s32 sp58;
s32 sp54;
s32 sp50;
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
s32 sp3C;
s32 sp38;
u8 sp2F;
s32 temp_r27;
s32 temp_r28;
s32 temp_r6;
u8 temp_r30;
u8 temp_r31;
void *temp_r3;
temp_r28 = arg0->unk204;
temp_r27 = arg0->unk24 & 0x50;
temp_r31 = arg0->unk1E;
temp_r30 = arg0->unk26;
sp38 = arg0->unk28;
sp3C = arg0->unk2C;
sp40 = arg0->unk30;
sp44 = arg0->unk34;
sp48 = arg0->unk38;
sp4C = arg0->unk3C;
sp50 = arg0->unk40;
sp54 = arg0->unk44;
temp_r6 = arg0->unk48;
sp58 = temp_r6;
sp5C = arg0->unk4C;
sp2F = arg0->unk1F;
memset(NULL, 0x284, temp_r6);
arg0->unk204 = temp_r28;
arg0->unk1E = temp_r31;
arg0->unk24 = (s16) (arg0->unk24 | (temp_r27 | 1));
arg0->unk26 = temp_r30;
arg0->unk28 = sp38;
arg0->unk2C = sp3C;
arg0->unk30 = sp40;
arg0->unk34 = sp44;
arg0->unk38 = sp48;
arg0->unk3C = sp4C;
arg0->unk40 = sp50;
arg0->unk44 = sp54;
arg0->unk48 = sp58;
arg0->unk4C = sp5C;
arg0->unk1F = sp2F;
arg0->unk8 = 10.0f;
arg0->unk30 = (s16) arg0->unk32;
arg0->unk20 = 1.0f;
temp_r3 = &cameraInfo + (arg0->unk204 * 0x284);
temp_r3->unkEC = 0;
temp_r3->unkF0 = 0;
temp_r3->unkF4 = 0.0f;
temp_r3->unkF8 = 0.0f;
temp_r3->unkFC = 0.0f;
temp_r3->unk100 = 0.0f;
temp_r3->unk104 = 0.0f;
temp_r3->unk108 = 0.0f;
}
f32 func_80018C58(s32 *arg0, s32 arg1, f32 arg8) {
f32 temp_f1;
f32 temp_f1_2;
s32 temp_r3;
void *temp_r3_2;
f32 phi_f1;
phi_f1 = arg8;
if ((u32) arg0->unkEC != 0U) {
arg0->unk100 = (f32) ((f64) arg0->unk100 - (0.75 * (f64) arg0->unkF4));
arg0->unk104 = (f32) ((f64) arg0->unk104 - (0.75 * (f64) arg0->unkF8));
arg0->unk108 = (f32) ((f64) arg0->unk108 - (0.75 * (f64) arg0->unkFC));
arg0->unk100 = (f32) ((f64) arg0->unk100 * 0.85);
arg0->unk104 = (f32) ((f64) arg0->unk104 * 0.85);
arg0->unk108 = (f32) ((f64) arg0->unk108 * 0.85);
arg0->unkF4 = (f32) (arg0->unkF4 + arg0->unk100);
arg0->unkF8 = (f32) (arg0->unkF8 + arg0->unk104);
temp_f1 = arg0->unkFC;
arg0->unkFC = (f32) (temp_f1 + arg0->unk108);
mathutil_mtxA_from_mtx(arg0 + 0x144, temp_f1, 0.75);
mathutil_mtxA_translate(arg0 + 0xF4);
mathutil_mtxA_to_mtx(arg0 + 0x144);
mathutil_mtxA_from_mtx(arg0 + 0x1A4);
mathutil_mtxA_translate(arg0 + 0xF4);
temp_f1_2 = mathutil_mtxA_to_mtx(arg0 + 0x1A4);
temp_r3 = arg0->unkF0;
phi_f1 = temp_f1_2;
if (temp_r3 > 0) {
arg0->unkF0 = (s32) (temp_r3 - 1);
if (arg0->unkF0 == 0) {
temp_r3_2 = &cameraInfo + (arg0->unk204 * 0x284);
temp_r3_2->unkEC = 0;
temp_r3_2->unkF0 = 0;
temp_r3_2->unkF4 = 0.0f;
temp_r3_2->unkF8 = 0.0f;
temp_r3_2->unkFC = 0.0f;
temp_r3_2->unk100 = 0.0f;
temp_r3_2->unk104 = 0.0f;
temp_r3_2->unk108 = 0.0f;
}
}
}
return phi_f1;
}
void func_80018DC8(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk0 = 0.0f;
arg0->unk4 = 0.0f;
arg0->unk8 = 280.0f;
arg0->unkC = 0.0f;
arg0->unk10 = 0.0f;
arg0->unk14 = 0.0f;
arg0->unk30 = 0xB6;
arg0->unk18 = 0;
arg0->unk1A = 0;
arg0->unk1C = 0;
arg0->unk1E = 0x1C;
}
s32 *func_80018E34(s32 *arg0) {
return arg0;
}
void func_80018E38(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk1E = 0x1E;
}
void func_80018E6C(s32 *arg0, f32 *arg1) {
s32 sp24;
s32 sp20;
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f31;
s32 temp_r4;
temp_r4 = lbl_801EED2C.unk8 ^ 0x80000000;
sp24 = temp_r4;
sp20 = 0x43300000;
temp_f31 = (f32) (bitwise f64) sp20 - (f32) 4503601774854144.0;
arg0->unk0 = func_8008CDC0(lbl_80176200 + 0x234, temp_r4, lbl_80176200, temp_f31);
arg0->unk4 = func_8008CDC0(lbl_80176200 + 0x334, (bitwise s32) temp_f31);
arg0->unk8 = func_8008CDC0(lbl_80176200 + 0x434, (bitwise s32) temp_f31);
arg0->unkC = func_8008CDC0(lbl_80176200 + 0x534, (bitwise s32) temp_f31);
arg0->unk10 = func_8008CDC0(lbl_80176200 + 0x634, (bitwise s32) temp_f31);
arg0->unk14 = func_8008CDC0(lbl_80176200 + 0x734, (bitwise s32) temp_f31);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
}
void func_80018FA4(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk24 = (s16) (arg0->unk24 | 8);
arg0->unk1E = 0x37;
}
void func_80018FE4(s32 *arg0, f32 *arg1) {
s32 sp24;
s32 sp20;
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f31;
void *temp_r4;
void *temp_r4_2;
void *temp_r4_3;
void *temp_r4_4;
void *temp_r4_5;
sp24 = lbl_801EED2C.unk8 ^ 0x80000000;
sp20 = 0x43300000;
temp_f31 = (f32) (bitwise f64) sp20 - (f32) 4503601774854144.0;
if (((temp_f31 >= 1740.0f) && (temp_f31 < 1850.0f)) || ((temp_f31 >= 1954.0f) && (temp_f31 < 2064.0f)) || ((temp_f31 >= 2498.0f) && (temp_f31 < 2902.0f))) {
arg0->unk0 = func_8008CDC0(lbl_80176200 + 0x834, (bitwise s32) temp_f31);
arg0->unk4 = func_8008CDC0(lbl_80176200 + 0x984, (bitwise s32) temp_f31);
arg0->unk8 = func_8008CDC0(lbl_80176200 + 0xAD4, (bitwise s32) temp_f31);
arg0->unkC = func_8008CDC0(lbl_80176200 + 0xC24, (bitwise s32) temp_f31);
arg0->unk10 = func_8008CDC0(lbl_80176200 + 0xD74, (bitwise s32) temp_f31);
arg0->unk14 = func_8008CDC0(lbl_80176200 + 0xEC4, (bitwise s32) temp_f31);
} else {
temp_r4 = (&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC;
arg0->unk0 = temp_r4->unk30 + func_8008CDC0(lbl_80176200 + 0x834, (bitwise s32) temp_f31);
temp_r4_2 = (&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC;
arg0->unk4 = (f32) (temp_r4_2->unk34 + func_8008CDC0(lbl_80176200 + 0x984, (s32) temp_r4, (bitwise f32 (**)(s32 *, f32 *, ? *, s16)) temp_f31));
temp_r4_3 = (&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC;
arg0->unk8 = (f32) (temp_r4_3->unk38 + func_8008CDC0(lbl_80176200 + 0xAD4, (s32) temp_r4_2, (bitwise f32 (**)(s32 *, f32 *, ? *, s16)) temp_f31));
temp_r4_4 = (&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC;
arg0->unkC = (f32) (temp_r4_4->unk30 + func_8008CDC0(lbl_80176200 + 0xC24, (s32) temp_r4_3, (bitwise f32 (**)(s32 *, f32 *, ? *, s16)) temp_f31));
temp_r4_5 = (&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC;
arg0->unk10 = (f32) (temp_r4_5->unk34 + func_8008CDC0(lbl_80176200 + 0xD74, (s32) temp_r4_4, (bitwise f32 (**)(s32 *, f32 *, ? *, s16)) temp_f31));
arg0->unk14 = (f32) ((&lbl_80205E60 + (lbl_801EED2C.unkC * 0x1A4))->unkFC->unk38 + func_8008CDC0(lbl_80176200 + 0xEC4, (s32) temp_r4_5, (bitwise f32 (**)(s32 *, f32 *, ? *, s16)) temp_f31));
}
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
}
void func_80019284(f32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r3_2;
f32 temp_f0;
camera_clear();
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
mathutil_mtxA_from_translate(arg0 + 0xC, 0.5);
mathutil_mtxA_rotate_y(0);
temp_r3 = &sp10;
sp10 = 0.0f;
sp14 = 1.0f;
sp18 = 3.0f;
mathutil_mtxA_tf_point(temp_r3, arg0, 1.0f);
temp_r3_2 = &sp10;
sp10 = 0.0f;
sp14 = 0.0f;
sp18 = 3.0f;
mathutil_mtxA_tf_point(temp_r3_2, arg0 + 0xAC, 0.0f);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
arg0->unk1E = 1;
}
void func_800193AC(f32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk8C = 0x80;
arg0->unk6C = 0;
arg0->unk80 = 0.0f;
camera_sub_13(arg0, arg1);
arg0->unk1E = 0xD;
}
f32 camera_sub_13(f32 *arg0, f32 *arg1, f32 arg8) {
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f1;
s16 temp_r0;
s16 temp_r3;
s16 temp_ret;
s32 temp_r10;
s32 temp_r10_2;
s32 temp_r7;
s32 temp_r7_2;
s32 phi_r3;
s32 phi_r4;
s32 phi_r3_2;
s32 phi_r4_2;
f32 phi_f1;
phi_f1 = arg8;
if (((lbl_802F1EE0 & 0xA) == 0) || ((s32) arg0->unk1E != 0xD)) {
func_80019CDC(&sp1C);
arg0->unkC = sp1C;
arg0->unk10 = sp20;
arg0->unk14 = sp24;
if ((s32) arg0->unk50 > 0) {
phi_r3 = 0;
phi_r4 = 0;
loop_11:
if (phi_r3 < modeCtrl.unk24) {
temp_f0 = arg0->unk80;
temp_r10 = *(&lbl_80206BD0 + phi_r4);
if ((temp_f0 > (f32) -0.3) && ((*(&lbl_801F3D50 + (temp_r10 * 0xA)) & 0x80) != 0)) {
arg0->unk80 = (f32) ((f64) temp_f0 - 0.01);
}
temp_f0_2 = arg0->unk80;
if ((temp_f0_2 < (f32) 0.2) && ((*(&lbl_801F3D50 + (temp_r10 * 0xA)) & 0x40) != 0)) {
arg0->unk80 = (f32) ((f64) temp_f0_2 + 0.01);
}
phi_r3 += 1;
phi_r4 += 4;
goto loop_11;
}
}
temp_r0 = gameSubmode;
sp10 = 0.0f;
if (((s32) temp_r0 == 0x4C) || ((s32) temp_r0 == 0x4D) || ((s32) temp_r0 == 0x4E)) {
sp14 = (f32) ((f64) sp28 * (0.4 + (f64) arg0->unk80));
} else {
sp14 = (f32) ((f64) sp28 * (0.8 + (f64) arg0->unk80));
}
sp18 = (f32) ((f64) sp28 * (0.8 + (f64) arg0->unk80));
phi_r3_2 = 0;
phi_r4_2 = 0;
loop_25:
if (phi_r3_2 < modeCtrl.unk24) {
temp_r7 = arg0->unk8C;
temp_r10_2 = *(&lbl_80206BD0 + phi_r4_2);
if ((temp_r7 < 0x100) && ((*(&lbl_801F3D50 + (temp_r10_2 * 0xA)) & 0x20) != 0)) {
arg0->unk8C = (s32) (temp_r7 + 8);
}
temp_r7_2 = arg0->unk8C;
if ((temp_r7_2 > -0x100) && ((*(&lbl_801F3D50 + (temp_r10_2 * 0xA)) & 0x10) != 0)) {
arg0->unk8C = (s32) (temp_r7_2 - 8);
}
phi_r3_2 += 1;
phi_r4_2 += 4;
goto loop_25;
}
if ((s32) arg0->unk50 > 0) {
arg0->unk6C = (s32) (arg0->unk6C + arg0->unk8C);
}
mathutil_mtxA_from_translate(arg0 + 0xC);
mathutil_mtxA_rotate_y((s16) arg0->unk6C);
mathutil_mtxA_tf_point(&sp10, arg0);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0_3 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0_3;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0_3 * temp_f0_3) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
temp_r3 = arg0->unk50;
phi_f1 = temp_f1;
if ((s32) temp_r3 < 0x3C) {
arg0->unk50 = (s16) (temp_r3 + 1);
phi_f1 = temp_f1;
}
}
return phi_f1;
}
void func_800196E8(s32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
camera_clear();
arg0->unk0 = 0.0f;
arg0->unk4 = 0.0f;
arg0->unk8 = 42.0f;
arg0->unkC = 0.0f;
arg0->unk10 = 0.0f;
arg0->unk14 = 0.0f;
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
arg0->unk1E = 0x35;
}
s32 *func_800197AC(s32 *arg0) {
return arg0;
}
void camera_sub_ready_init(f32 *arg0, f32 *arg1) {
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r3_2;
f32 *temp_r4;
f32 *temp_r4_2;
f32 *temp_r4_3;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
s16 temp_r3_3;
s16 temp_r6;
camera_clear();
func_80019CDC(&sp1C);
arg0->unk54 = sp1C;
arg0->unk58 = sp20;
arg0->unk5C = sp24;
arg0->unk60 = (f32) (0.8 * (f64) sp28);
arg0->unk64 = (f32) (0.8 * (f64) sp28);
mathutil_mtxA_from_translate(arg0 + 0x54, 0.8);
mathutil_mtxA_rotate_y(decodedStageLzPtr->unk10->unkE);
temp_r3 = &sp10;
temp_r4 = temp_r3;
sp10 = 0.0f;
temp_f0 = arg0->unk64;
sp14 = temp_f0;
temp_f0_2 = arg0->unk60;
sp18 = temp_f0_2;
mathutil_mtxA_tf_point(temp_r3, temp_r4);
sp10 = arg0->unk54 - 0.0f;
sp14 = arg0->unk58 - temp_f0;
temp_f0_3 = arg0->unk5C - temp_f0_2;
sp18 = temp_f0_3;
arg0->unk6C = (s32) (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk68 = (s32) (s16) mathutil_atan2(sp14, mathutil_sqrt((temp_f0_3 * temp_f0_3) + (sp10 * sp10)));
arg0->unk70 = 0;
arg0->unk74 = (f32) *decodedStageLzPtr->unk10;
arg0->unk78 = (f32) (0.5 + (f64) decodedStageLzPtr->unk10->unk4);
temp_r4_2 = decodedStageLzPtr->unk10;
arg0->unk7C = (f32) temp_r4_2->unk8;
mathutil_mtxA_from_translate(arg0 + 0x74, (bitwise f64) temp_r4_2, 0.5);
mathutil_mtxA_rotate_y(decodedStageLzPtr->unk10->unkE);
temp_r3_2 = &sp10;
temp_r4_3 = temp_r3_2;
sp10 = 0.0f;
sp14 = 1.0f;
sp18 = 3.0f;
mathutil_mtxA_tf_point(temp_r3_2, temp_r4_3, 1.0f);
sp10 = arg0->unk74 - 0.0f;
sp14 = arg0->unk78 - sp14;
temp_f0_4 = arg0->unk7C - 3.0f;
sp18 = temp_f0_4;
temp_r3_3 = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk8C = (s32) (temp_r3_3 + 0x10000);
arg0->unk88 = (s32) (s16) mathutil_atan2(sp14, mathutil_sqrt((bitwise f32) temp_r3_3, (temp_f0_4 * temp_f0_4) + (sp10 * sp10)));
arg0->unk90 = 0;
temp_r6 = arg0->unk24 | 1;
arg0->unk24 = temp_r6;
arg0->unk50 = 0x5A;
arg0->unk52 = 0x5A;
arg0->unk26 = 1;
camera_sub_ready_main(arg0, arg1, 0x5A, temp_r6);
arg0->unk1E = 0xB;
}
f32 camera_sub_ready_main(f32 *arg0, f32 *arg1, f32 arg8) {
s32 sp74;
s32 sp70;
s32 sp6C;
s32 sp68;
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
f64 sp50;
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
f64 sp38;
s32 sp34;
s32 sp30;
s32 sp2C;
s32 sp28;
f64 sp20;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3_2;
f32 temp_f30;
f32 temp_f3;
f32 temp_f4;
f32 temp_f7;
f64 temp_f1;
f64 temp_f31;
f64 temp_f5;
s16 temp_r3;
s32 temp_r5;
s32 temp_r5_2;
s32 temp_r5_3;
f32 phi_f1;
phi_f1 = arg8;
if (((lbl_802F1EE0 & 0xA) == 0) || ((s32) arg0->unk1E != 0xB)) {
temp_r3 = arg0->unk50;
if ((s32) temp_r3 > 0) {
arg0->unk50 = (s16) (temp_r3 - 1);
if (((s32) lbl_801F3A58.unk1E == 1) && ((lbl_801F3D88 & 0x100) != 0) && (modeCtrl > 0x78)) {
arg0->unk50 = (s16) (arg0->unk50 - 1);
}
}
sp74 = arg0->unk50 ^ 0x80000000;
sp6C = arg0->unk52 ^ 0x80000000;
sp70 = 0x43300000;
sp68 = 0x43300000;
temp_f3 = arg0->unk74;
temp_f7 = ((f32) (bitwise f64) sp70 - (f32) 4503601774854144.0) / ((f32) (bitwise f64) sp68 - (f32) 4503601774854144.0);
temp_f4 = temp_f7 * temp_f7;
temp_f5 = 3.0 + (-2.0 * (f64) temp_f7);
temp_f30 = (f32) (temp_f5 * (f64) temp_f4);
temp_f31 = 1.0 - (f64) temp_f30;
arg0->unkC = (f32) (((f64) temp_f3 * temp_f31) + (f64) (arg0->unk54 * temp_f30));
arg0->unk10 = (f32) (((f64) arg0->unk78 * temp_f31) + (f64) (arg0->unk58 * temp_f30));
arg0->unk14 = (f32) (((f64) arg0->unk7C * temp_f31) + (f64) (arg0->unk5C * temp_f30));
temp_r5 = arg0->unk68;
sp64 = temp_r5 ^ 0x80000000;
sp60 = 0x43300000;
sp5C = (s16) (arg0->unk88 - temp_r5) ^ 0x80000000;
sp58 = 0x43300000;
sp50 = MIPS2C_ERROR(unknown instruction: fctiwz $f1, $f1);
arg0->unk18 = (s16) unksp54;
temp_r5_2 = arg0->unk6C;
sp4C = temp_r5_2 ^ 0x80000000;
sp44 = (arg0->unk8C - temp_r5_2) ^ 0x80000000;
sp40 = 0x43300000;
sp48 = 0x43300000;
sp38 = MIPS2C_ERROR(unknown instruction: fctiwz $f1, $f1);
arg0->unk1A = (s16) unksp3C;
temp_r5_3 = arg0->unk70;
sp34 = temp_r5_3 ^ 0x80000000;
sp30 = 0x43300000;
sp2C = (s16) (arg0->unk90 - temp_r5_3) ^ 0x80000000;
sp28 = 0x43300000;
sp20 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk1C = (s16) unksp24;
mathutil_mtxA_from_translate(arg0 + 0xC, (bitwise f64) 0x43300000, (bitwise f64) temp_r5_3, (bitwise f64) sp28, (bitwise f64) sp30 - 4503601774854144.0, temp_f3, temp_f4, temp_f5, 3.0, temp_f7);
mathutil_mtxA_rotate_y(arg0->unk1A);
temp_r3_2 = &sp10;
sp10 = 0.0f;
temp_f1 = 3.0 * temp_f31;
sp14 = (f32) (temp_f31 + (f64) (arg0->unk64 * temp_f30));
sp18 = (f32) (temp_f1 + (f64) (arg0->unk60 * temp_f30));
phi_f1 = mathutil_mtxA_tf_point(temp_r3_2, arg0, (f32) temp_f1);
}
return phi_f1;
}
void func_80019CA4(s32 *arg0, f32 *arg1) {
camera_sub_ready_init();
arg0->unk50 = 0x15E;
arg0->unk52 = 0x15E;
}
f32 func_80019CDC(f32 *arg0, f32 arg8) {
f32 temp_f1;
? *phi_r6;
phi_r6 = &lbl_80177214;
loop_4:
if (phi_r6->unk0 <= 0) {
arg0->unk0 = lbl_8020ADD4.unk0;
arg0->unk4 = (s32) lbl_8020ADD4.unk4;
arg0->unk8 = (s32) lbl_8020ADD4.unk8;
arg0->unkC = (f32) lbl_8020ADD4.unkC;
temp_f1 = arg0->unkC;
if (temp_f1 < (f32) 31.25) {
arg0->unkC = 31.25f;
return temp_f1;
}
return temp_f1;
}
if (phi_r6->unk0 == (s32) currStageId) {
arg0->unk0 = phi_r6->unk4;
arg0->unk4 = (s32) phi_r6->unk8;
arg0->unk8 = (s32) phi_r6->unkC;
arg0->unkC = (f32) phi_r6->unk10;
return arg8;
}
phi_r6 += 0x14;
goto loop_4;
}
void func_80019D74(f32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r3_2;
f32 temp_f0;
camera_clear();
arg0->unk26 = 0;
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
mathutil_mtxA_from_translate(arg0 + 0xC, 0.5);
mathutil_mtxA_rotate_y(decodedStageLzPtr->unk10->unkE);
temp_r3 = &sp10;
sp10 = 0.0f;
sp14 = 1.0f;
sp18 = 3.0f;
mathutil_mtxA_tf_point(temp_r3, arg0, 1.0f);
temp_r3_2 = &sp10;
sp10 = 0.0f;
sp14 = 0.0f;
sp18 = 3.0f;
mathutil_mtxA_tf_point(temp_r3_2, arg0 + 0xAC, 0.0f);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = (s16) 0;
arg0->unk1E = 1;
}
f32 func_80019EB0(f32 *arg0, f32 *arg1, f32 arg8) {
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
f64 sp38;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3_6;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
f32 temp_f1_2;
f64 temp_f2;
s16 temp_r0;
s16 temp_r30;
s16 temp_r3;
s16 temp_r3_2;
s16 temp_r3_4;
s16 temp_r3_5;
s16 temp_r4;
s16 temp_r4_2;
s32 temp_r3_3;
s16 phi_r4;
s32 phi_r3;
s32 phi_r4_2;
s16 phi_r31;
s16 phi_r31_2;
s16 phi_r30;
f32 phi_f1;
s16 phi_r3_2;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
sp1C = arg0->unk0;
sp20 = arg0->unk4;
sp24 = arg0->unk8;
sp10 = arg0->unkC;
sp14 = arg0->unk10;
sp18 = arg0->unk14;
sp28 = arg0->unkAC - arg0->unkC;
temp_f0 = arg0->unkB0 - arg0->unk10;
sp2C = temp_f0;
sp30 = arg0->unkB4 - arg0->unk14;
if (((sp30 * sp30) + ((temp_f0 * temp_f0) + (sp28 * sp28))) > 1.1920929e-7f) {
temp_f1 = mathutil_rsqrt();
sp28 *= temp_f1;
sp2C *= temp_f1;
sp30 *= temp_f1;
} else {
sp28 = 1.0f;
sp2C = 0.0f;
sp30 = 0.0f;
}
temp_f0_2 = (f32) ((0.75 * (f64) sp28) + (f64) arg0->unkC);
sp28 = temp_f0_2;
temp_f0_3 = (f32) ((0.75 * (f64) sp2C) + (f64) arg0->unk10);
sp2C = temp_f0_3;
temp_f0_4 = (f32) ((0.75 * (f64) sp30) + (f64) arg0->unk14);
sp30 = temp_f0_4;
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
sp28 = arg0->unkC - temp_f0_2;
sp2C = arg0->unk10 - temp_f0_3;
sp30 = arg0->unk14 - temp_f0_4;
if (arg1->unk80 < 0x3C) {
phi_r31 = 0;
} else {
phi_r31 = mathutil_atan2(sp2C, mathutil_sqrt((sp30 * sp30) + (sp28 * sp28)));
}
temp_r3 = (s16) ((mathutil_atan2(sp28, sp30) - 0x8000) - arg0->unk1A);
phi_r31_2 = phi_r31;
if ((s32) temp_r3 < -0x200) {
phi_r4 = -0x200;
} else if ((s32) temp_r3 > 0x200) {
phi_r4 = 0x200;
} else {
phi_r4 = temp_r3;
}
temp_r30 = arg0->unk1A + phi_r4;
phi_r30 = temp_r30;
if (((arg0->unk24 & 2) == 0) && ((arg1->unk94 & 0x1000) == 0)) {
temp_r3_2 = (s16) (arg1->unk92 - temp_r30);
if ((s32) temp_r3_2 > 0x800) {
phi_r3 = temp_r3_2 - 0x800;
} else if ((s32) temp_r3_2 < -0x800) {
phi_r3 = temp_r3_2 + 0x800;
} else {
phi_r3 = 0;
}
temp_r3_3 = phi_r3 >> 7;
temp_r4 = arg0->unk10C;
if (temp_r3_3 == 0) {
phi_r4_2 = 0;
} else if ((((s32) temp_r4 < 0) && (temp_r3_3 > 0)) || (((s32) temp_r4 > 0) && (temp_r3_3 < 0))) {
phi_r4_2 = 0;
} else if (temp_r3_3 < 0) {
if (temp_r3_3 < (temp_r4 - 4)) {
phi_r4_2 = temp_r4 - 4;
} else {
phi_r4_2 = temp_r3_3;
}
} else if (temp_r3_3 > (temp_r4 + 4)) {
phi_r4_2 = temp_r4 + 4;
} else {
phi_r4_2 = temp_r3_3;
}
temp_r3_4 = (s16) ((temp_r30 + phi_r4_2) - arg0->unk1A);
phi_r3_2 = temp_r3_4;
if ((s32) temp_r3_4 < -0x300) {
phi_r3_2 = -0x300;
} else if ((s32) temp_r3_4 > 0x300) {
phi_r3_2 = 0x300;
}
phi_r30 = arg0->unk1A + phi_r3_2;
}
temp_r0 = (s16) phi_r31;
if ((s32) temp_r0 < -0x1800) {
phi_r31_2 = -0x1800;
} else if ((s32) temp_r0 > 0x1800) {
phi_r31_2 = 0x1800;
}
temp_r3_5 = arg0->unkB8;
sp44 = ((s16) phi_r31_2 - temp_r3_5) ^ 0x80000000;
sp40 = 0x43300000;
sp4C = temp_r3_5 ^ 0x80000000;
sp48 = 0x43300000;
temp_f2 = (bitwise f64) sp48;
sp38 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unkB8 = (s16) unksp3C;
mathutil_mtxA_from_translate(arg0 + 0xC, (bitwise f64) 0x43300000, temp_f2 - 4503601774854144.0, temp_f2, 4503601774854144.0);
mathutil_mtxA_rotate_y((s16) phi_r30);
mathutil_mtxA_rotate_x((s32) (s16) unksp3C);
temp_r3_6 = &sp28;
sp28 = 0.0f;
sp2C = 0.0f;
sp30 = 3.0f;
mathutil_mtxA_tf_point(temp_r3_6, arg0 + 0xAC, 0.0f);
temp_r4_2 = arg0->unk1A;
arg0->unk10C = (s16) (phi_r30 - temp_r4_2);
arg0->unk1A = phi_r30;
arg0->unk18 = (s16) ((unksp3C + 0x10000) - 0xD00);
mathutil_mtxA_from_translate(arg0 + 0xC, (bitwise f64) temp_r4_2);
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
sp28 = 0.0f;
sp2C = 0.0f;
sp30 = mathutil_sqrt((1.0f * 1.0f) + (3.0f * 3.0f), 1.0f);
mathutil_mtxA_tf_point(&sp28, arg0);
arg0->unk94 = (f32) (arg0->unk0 - sp1C);
arg0->unk98 = (f32) (arg0->unk4 - sp20);
arg0->unk9C = (f32) (arg0->unk8 - sp24);
arg0->unkA0 = (f32) (arg0->unkC - sp10);
arg0->unkA4 = (f32) (arg0->unk10 - sp14);
temp_f1_2 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1_2 - sp18);
phi_f1 = temp_f1_2;
}
return phi_f1;
}
void func_8001A34C(f32 *arg0, f32 *arg1) {
s32 sp44;
s32 sp40;
s32 sp3C;
s32 sp38;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
f32 temp_f2;
f32 temp_f2_2;
f64 temp_f5;
sp10 = arg0->unkC - arg0->unk0;
temp_f0 = arg0->unk10 - arg0->unk4;
sp14 = temp_f0;
sp18 = arg0->unk14 - arg0->unk8;
temp_f5 = 0.1 * mathutil_sqrt((sp18 * sp18) + ((temp_f0 * temp_f0) + (sp10 * sp10)), sp18);
sp44 = (s32) lbl_801F3B70.unk6;
sp40 = 0x43300000;
sp28 = 0.0f;
sp1C = 0.0f;
sp2C = 0.0f;
sp20 = 0.0f;
sp30 = 0.0f;
sp24 = 0.0f;
sp3C = (s8) lbl_801F3B70.unk2 ^ 0x80000000;
sp38 = 0x43300000;
temp_f0_2 = (f32) ((f64) (f32) (temp_f5 / 5.0) * (1.0 + ((9.0 * ((bitwise f64) sp40 - 4503599627370496.0)) / 170.0)));
sp28 = (f32) ((f64) (temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
if ((lbl_801F3D50 & 0x200) != 0) {
sp3C = (s8) lbl_801F3B70.unk3 ^ 0x80000000;
sp38 = 0x43300000;
sp2C = (f32) ((f64) (temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
} else {
sp3C = (s8) lbl_801F3B70.unk3 ^ 0x80000000;
sp38 = 0x43300000;
sp30 = (f32) ((f64) (-temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
}
sp3C = (s8) lbl_801F3B70.unk4 ^ 0x80000000;
sp38 = 0x43300000;
sp1C = (f32) ((f64) (temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
if ((lbl_801F3D50 & 0x200) != 0) {
sp3C = (s8) lbl_801F3B70.unk5 ^ 0x80000000;
sp38 = 0x43300000;
sp20 = (f32) ((f64) (temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
} else {
sp3C = (s8) lbl_801F3B70.unk5 ^ 0x80000000;
sp38 = 0x43300000;
sp24 = (f32) ((f64) (-temp_f0_2 * ((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0)) / 74.0);
}
mathutil_mtxA_from_translate(arg0);
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
mathutil_mtxA_rotate_z((s32) arg0->unk1C);
mathutil_mtxA_tf_point(&sp28, arg0);
mathutil_mtxA_rigid_inv_tf_point((s32 *) (arg0 + 0xC), &sp10);
temp_r3 = &sp10;
sp10 += sp1C;
temp_f2 = sp14;
sp14 = temp_f2 + sp20;
temp_f1 = sp18;
sp18 = temp_f1 + sp24;
mathutil_mtxA_tf_point(temp_r3, arg0 + 0xC, temp_f1, temp_f2);
sp10 = arg0->unkC - arg0->unk0;
temp_f0_3 = arg0->unk10 - arg0->unk4;
sp14 = temp_f0_3;
sp18 = arg0->unk14 - arg0->unk8;
if (((sp18 * sp18) + ((temp_f0_3 * temp_f0_3) + (sp10 * sp10))) < (f32) 0.09) {
temp_f2_2 = (f32) (0.3 / mathutil_sqrt());
arg0->unkC = (f32) (arg0->unk0 + (sp10 * temp_f2_2));
arg0->unk10 = (f32) (arg0->unk4 + (sp14 * temp_f2_2));
arg0->unk14 = (f32) (arg0->unk8 + (sp18 * temp_f2_2));
}
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0_4 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0_4;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0_4 * temp_f0_4) + (sp10 * sp10)));
arg0->unk1C = 0;
}
void func_8001A70C(s32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
}
void func_8001A7A4(s32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = (s16) currentCameraStructPtr->unk1C;
}
f32 func_8001A840(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f1;
s16 temp_ret;
f32 phi_f1;
arg0->unk26 = 2;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.97);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.955);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.97);
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) arg1->unk8;
arg0->unk14 = (f32) arg1->unkC;
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
f32 func_8001A96C(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp44;
s32 sp40;
f32 sp38;
f32 sp34;
f32 sp30;
f32 sp10;
f32 *temp_r29;
f32 temp_f0;
f32 temp_f2_2;
f32 temp_f31;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f4;
f64 temp_f1;
f64 temp_f2;
f32 phi_f31;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk1E = 8;
arg0->unk26 = 2;
arg0->unk24 = (s16) (arg0->unk24 | 4);
sp30 = 3.0f;
sp34 = 3.0f;
sp38 = 3.0f;
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_y(rand() & 0x7FFF);
mathutil_mtxA_tf_vec(&sp30, &sp30);
sp44 = rand() ^ 0x80000000;
sp40 = 0x43300000;
temp_f4 = (f32) (bitwise f64) sp40 - (f32) 4503601774854144.0;
temp_f3 = temp_f4 / 32767.0f;
temp_f2 = 0.25 * (f64) temp_f3;
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, (f32) ((f64) lbl_80250A68.unk10 * (0.75 + temp_f2)), temp_f2, temp_f3, temp_f4);
arg0->unk0 = sp10 + 3.0f;
arg0->unk4 = (f32) (sp14 + 3.0f);
arg0->unk8 = (f32) (sp18 + 3.0f);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, 0.0f);
temp_r29 = &sp30;
sp30 = (bitwise f32) arg0->unk0 - sp10;
sp34 = arg0->unk4 - sp14;
temp_f0 = arg0->unk8 - sp18;
sp38 = temp_f0;
if (((1.0f / mathutil_sqrt((temp_f0 * temp_f0) + ((sp34 * sp34) + (sp30 * sp30)), sp34)) * sp34) > (f32) 0.9659258263) {
temp_f1 = 0.2588190451 * (f64) sp34;
sp34 = 0.0f;
mathutil_vec_set_len(temp_r29, temp_r29, (f32) temp_f1, 0.0f);
arg0->unk0 = sp10 + sp30;
arg0->unk8 = (f32) (sp18 + sp38);
}
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.25);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.25);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.25);
temp_f31 = lbl_80250A68.unk10;
phi_f31 = temp_f31;
if (temp_f31 < 60.0f) {
} else {
phi_f31 = 60.0f;
}
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, lbl_80250A68.unk10 - phi_f31);
temp_f3_2 = (f32) (1.0 / (f64) phi_f31);
arg0->unk94 = (f32) (arg0->unk94 + (temp_f3_2 * (sp10 - arg1->unk4)));
arg0->unk98 = (f32) (arg0->unk98 + (temp_f3_2 * (sp14 - arg1->unk8)));
temp_f2_2 = arg0->unk9C;
arg0->unk9C = (f32) (temp_f2_2 + (temp_f3_2 * (sp18 - arg1->unkC)));
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) arg1->unk8;
arg0->unk14 = (f32) arg1->unkC;
arg0->unk24 = (s16) (arg0->unk24 | 1);
phi_f1 = camera_sub_ringout_main(arg0, arg1, sp18, temp_f2_2, temp_f3_2);
}
return phi_f1;
}
s32 *func_8001AC80(s32 *arg0) {
return arg0;
}
f32 func_8001AC84(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp64;
s32 sp60;
f32 sp58;
f32 sp54;
f32 sp50;
f32 sp30;
f32 sp10;
f32 *temp_r29;
f32 temp_f0;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f31;
f32 temp_f3;
f64 temp_f1;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk1E = 8;
arg0->unk26 = 2;
arg0->unk24 = (s16) (arg0->unk24 | 4);
sp50 = 1.0f;
sp54 = 1.0f;
sp58 = 1.0f;
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_y(rand() & 0x7FFF);
mathutil_mtxA_tf_vec(&sp50, &sp50);
sp64 = rand() ^ 0x80000000;
sp60 = 0x43300000;
temp_f3 = (f32) (bitwise f64) sp60 - (f32) 4503601774854144.0;
temp_f2 = temp_f3 / 32767.0f;
temp_f31 = (f32) ((f64) lbl_80250A68.unk10 * (0.25 * (f64) temp_f2));
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp30, temp_f31, (f64) temp_f2, temp_f3);
arg0->unk0 = sp30 + 1.0f;
arg0->unk4 = (f32) (sp34 + 1.0f);
arg0->unk8 = (f32) (sp38 + 1.0f);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp30, 0.0f);
temp_r29 = &sp50;
sp50 = (bitwise f32) arg0->unk0 - sp30;
sp54 = arg0->unk4 - sp34;
temp_f0 = arg0->unk8 - sp38;
sp58 = temp_f0;
if (((1.0f / mathutil_sqrt((temp_f0 * temp_f0) + ((sp54 * sp54) + (sp50 * sp50)), sp54)) * sp54) > (f32) 0.9659258263) {
temp_f1 = 0.2588190451 * (f64) sp54;
sp54 = 0.0f;
mathutil_vec_set_len(temp_r29, temp_r29, (f32) temp_f1, 0.0f);
arg0->unk0 = sp30 + sp50;
arg0->unk8 = (f32) (sp38 + sp58);
}
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.1);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.1);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.1);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp30, temp_f31, 0.1);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, (f32) (1.0 + (f64) temp_f31));
arg0->unk94 = (f32) ((f64) arg0->unk94 - (0.6 * (f64) (sp30 - sp10)));
arg0->unk98 = (f32) ((f64) arg0->unk98 - (0.6 * (f64) (sp34 - sp14)));
temp_f2_2 = arg0->unk9C;
arg0->unk9C = (f32) ((f64) temp_f2_2 - (0.6 * (f64) (sp38 - sp18)));
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) arg1->unk8;
arg0->unk14 = (f32) arg1->unkC;
arg0->unk24 = (s16) (arg0->unk24 | 1);
phi_f1 = camera_sub_ringout_main(arg0, arg1, sp38, temp_f2_2, (f32) 0.6);
}
return phi_f1;
}
f32 camera_sub_ringout_main(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
s16 temp_ret;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.97);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.955);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.97);
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f0 = arg1->unk4 - arg0->unkC;
sp10 = temp_f0;
temp_f0_2 = arg1->unk8 - arg0->unk10;
sp14 = temp_f0_2;
temp_f0_3 = arg1->unkC - arg0->unk14;
sp18 = temp_f0_3;
arg0->unkA0 = (f32) (0.15 * (f64) temp_f0);
arg0->unkA4 = (f32) (0.15 * (f64) temp_f0_2);
arg0->unkA8 = (f32) (0.15 * (f64) temp_f0_3);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0_4 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0_4;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0_4 * temp_f0_4) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
s32 *func_8001B13C(s32 *arg0) {
return arg0;
}
void func_8001B140(s32 *arg0, f32 *arg1) {
arg0->unk1E = 0xF;
arg0->unk26 = 3;
camera_sub_goal_main();
}
f32 camera_sub_goal_main(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f31;
f32 temp_f3;
s16 temp_ret;
void *temp_r4;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r4 = arg0 + 0x94;
temp_r3 = &sp10;
sp10 = arg1->unk4 - arg0->unk0;
sp14 = 0.0f;
temp_f0 = arg1->unkC - arg0->unk8;
sp18 = temp_f0;
temp_f2 = temp_r4->unk0;
temp_f1 = temp_r4->unk4;
temp_f31 = (sp18 * temp_r4->unk8) + ((sp14 * temp_f1) + (sp10 * temp_f2));
mathutil_vec_normalize_len(temp_r3, temp_r4, temp_f1, temp_f2, sp18, sp14, sp10);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.97);
temp_f2_2 = (f32) (-0.01 * (f64) temp_f31);
arg0->unk94 = (f32) (arg0->unk94 + (temp_f2_2 * sp10));
arg0->unk9C = (f32) (arg0->unk9C + (temp_f2_2 * temp_f0));
if (temp_f2_2 < (f32) 0.0) {
temp_f2_3 = (f32) ((f64) temp_f2_2 * 0.5);
arg0->unk94 = (f32) (arg0->unk94 + (temp_f2_3 * sp18));
arg0->unk9C = (f32) (arg0->unk9C + (temp_f2_3 * sp10));
}
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
arg0->unkA0 = (f32) (0.3 * (f64) (arg1->unk4 - arg0->unkC));
arg0->unkA4 = (f32) (0.3 * (f64) (arg1->unk8 - arg0->unk10));
arg0->unkA8 = (f32) (0.3 * (f64) (arg1->unkC - arg0->unk14));
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
temp_f2_4 = arg0->unk0;
temp_f1_2 = temp_f2_4 - arg0->unkC;
sp10 = temp_f1_2;
sp14 = 0.0f;
temp_f0_2 = arg0->unk8 - arg0->unk14;
sp18 = temp_f0_2;
temp_f1_3 = mathutil_sqrt((temp_f0_2 * temp_f0_2) + (temp_f1_2 * temp_f1_2), temp_f2_4);
if (temp_f1_3 > 1.1920929e-7f) {
temp_f3 = (f32) (((f64) temp_f1_3 + (0.08 * (2.0 - (f64) temp_f1_3))) / (f64) temp_f1_3);
arg0->unk0 = arg0->unkC + (sp10 * temp_f3);
arg0->unk8 = (f32) (arg0->unk14 + (sp18 * temp_f3));
if ((arg1->unk94 & 0x200) == 0) {
temp_f0_3 = arg0->unk10 - arg0->unk4;
sp14 = temp_f0_3;
arg0->unk4 = (f32) ((f64) arg0->unk4 + (0.01 * (f64) temp_f0_3));
}
}
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0_4 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0_4;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0_4 * temp_f0_4) + (sp10 * sp10)));
temp_f1_4 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1_4;
}
return phi_f1;
}
f32 func_8001B478(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp94;
s32 sp90;
s32 sp8C;
s32 sp88;
s32 sp84;
s32 sp80;
s32 sp7C;
s32 sp78;
f32 sp74;
f32 sp70;
f32 sp6C;
f32 sp68;
f32 sp64;
f32 sp60;
s32 sp54;
f32 sp34;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp10;
f32 (**temp_r5)(s32 *, f32 *, ?, s16);
f32 *temp_r3;
f32 *temp_r3_3;
f32 *temp_r3_4;
f32 *temp_r3_5;
f32 *temp_r4_3;
f32 *temp_r4_5;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f0_5;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f2_5;
f32 temp_f2_6;
f32 temp_f2_7;
f32 temp_f2_8;
f32 temp_f2_9;
f32 temp_f31;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f3_3;
f32 temp_f3_4;
f32 temp_f3_5;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f4_3;
f32 temp_f5;
f32 temp_f5_2;
f32 temp_f5_3;
f64 temp_f1_4;
f64 temp_f1_5;
f64 temp_f1_6;
f64 temp_f3_6;
s16 temp_r0;
s32 *temp_r29;
s32 temp_r4_2;
s32 temp_r4_4;
s32 temp_r5_2;
void *temp_r3_2;
void *temp_r4;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk26 = 4;
arg0->unk24 = (s16) (arg0->unk24 | 4);
if (((*(&lbl_801F3B70 + (*(&lbl_80206BD0 + ((s8) arg1->unk2E * 4)) * 0x3C)) & 0x100) != 0) && ((lbl_801F3D88 & 0x100) != 0)) {
arg0->unk1E = 0x30U;
temp_r5 = &lbl_80176200[(s8) arg0->unk1E];
return *temp_r5(arg0, arg1, temp_r5);
}
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp34, 0.0f);
temp_r4 = decodedStageLzPtr->unk1C + (lbl_801F3A58.unkC * 0x14);
sp6C = temp_r4->unk0;
sp70 = temp_r4->unk4;
sp74 = temp_r4->unk8;
sp78 = temp_r4->unkC;
sp7C = temp_r4->unk10;
temp_r0 = lbl_801F3A58.unkE;
if ((s32) temp_r0 > 0) {
temp_r4_2 = temp_r0 * 0x84;
mathutil_mtxA_from_mtx(&lbl_80206E48 + temp_r4_2 + 0x24, (bitwise f32) temp_r4_2);
mathutil_mtxA_tf_point(&sp6C, &sp6C);
}
temp_r3 = arg1 + 4;
temp_f2 = temp_r3->unk0;
temp_f5 = sp6C - temp_f2;
temp_f4 = sp70 - temp_r3->unk4;
temp_f3 = sp74 - temp_r3->unk8;
if (mathutil_sqrt((bitwise f32) temp_r3, (temp_f3 * temp_f3) + ((temp_f4 * temp_f4) + (temp_f5 * temp_f5)), temp_f2, temp_f3, temp_f4, temp_f5) < (f32) 16.0) {
arg0->unk1E = 0x11U;
mathutil_mtxA_from_translate(&sp6C);
mathutil_mtxA_rotate_z((s32) (s16) sp7C);
mathutil_mtxA_rotate_y(unksp7A);
mathutil_mtxA_rotate_x((s32) (s16) sp78);
temp_r3_2 = &lbl_801F3A58 + 0x10;
temp_f1 = temp_r3_2->unk0;
temp_f2_2 = temp_r3_2->unk4;
temp_f0 = temp_r3_2->unk8;
temp_f31 = mathutil_sqrt((bitwise f32) temp_r3_2, (temp_f0 * temp_f0) + ((temp_f2_2 * temp_f2_2) + (temp_f1 * temp_f1)), temp_f2_2);
temp_f5_2 = sp6C - sp34;
temp_f4_2 = sp70 - sp38;
temp_f3_2 = sp74 - sp3C;
if ((mathutil_sqrt((temp_f3_2 * temp_f3_2) + ((temp_f4_2 * temp_f4_2) + (temp_f5_2 * temp_f5_2)), sp34, temp_f3_2, temp_f4_2, temp_f5_2) > (f32) 2.5) && ((rand() & 3) != 0) && (sp38 > sp70)) {
temp_r3_3 = &sp28;
temp_r4_3 = temp_r3_3;
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.02);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.02);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.02);
sp28 = 0.0f;
sp2C = 2.0f;
sp30 = 0.0f;
mathutil_mtxA_tf_point(temp_r3_3, temp_r4_3, 0.0f);
sp60 = sp34 - sp28;
sp64 = sp38 - sp2C;
sp68 = sp3C - sp30;
temp_f2_3 = fabs(sp64);
if ((f32) 0.0 != temp_f2_3) {
temp_r3_4 = &sp60;
temp_f1_2 = (f32) (0.35 / (f64) temp_f2_3);
sp60 *= temp_f1_2;
sp64 *= temp_f1_2;
temp_f0_2 = sp68 * temp_f1_2;
sp68 = temp_f0_2;
temp_f2_4 = (temp_f0_2 * temp_f0_2) + ((sp64 * sp64) + (sp60 * sp60));
if (temp_f2_4 < (f32) 1.0) {
mathutil_vec_set_len((bitwise f32 *) 1.0f);
} else if (temp_f2_4 > (f32) 4.0) {
mathutil_vec_set_len((bitwise f32 *) 2.0f);
}
} else {
sp94 = rand() ^ 0x80000000;
sp90 = 0x43300000;
temp_f2_5 = (f32) (bitwise f64) sp90 - (f32) 4503601774854144.0;
mathutil_vec_set_len(&sp60, &sp60, (f32) (1.0 + (f64) (temp_f2_5 / 32767.0f)), temp_f2_5, 4503601774854144.0);
}
arg0->unk0 = sp34 + sp60;
arg0->unk4 = (f32) (sp38 + sp64);
arg0->unk8 = (f32) (sp3C + sp68);
} else if ((temp_f31 > (f32) 0.25) && ((rand() & 3) != 0)) {
arg0->unk1E = 0x14U;
sp94 = rand() ^ 0x80000000;
sp90 = 0x43300000;
temp_f2_6 = (f32) (bitwise f64) sp90 - (f32) 4503601774854144.0;
temp_f1_3 = temp_f2_6 / 32767.0f;
arg0->unk54 = (f32) (2.0 + (f64) temp_f1_3);
sp8C = rand(temp_f1_3, temp_f2_6, 4503601774854144.0) ^ 0x80000000;
sp88 = 0x43300000;
temp_f3_3 = (f32) (bitwise f64) sp88 - (f32) 4503601774854144.0;
temp_f2_7 = temp_f3_3 / 32767.0f;
temp_f1_4 = 5.0 * (f64) temp_f2_7;
arg0->unk58 = (f32) (1.0 + temp_f1_4);
sp84 = rand((f32) temp_f1_4, temp_f2_7, (f64) temp_f3_3, 4503601774854144.0) ^ 0x80000000;
sp80 = 0x43300000;
temp_f3_4 = (f32) (bitwise f64) sp80 - (f32) 4503601774854144.0;
temp_f2_8 = temp_f3_4 / 32767.0f;
temp_f1_5 = (f64) temp_f2_8 - 0.5;
arg0->unk5C = (f32) (4.0 * temp_f1_5);
if ((rand((f32) temp_f1_5, temp_f2_8, (f64) temp_f3_4, 4503601774854144.0) & 1) != 0) {
arg0->unk54 = (f32) -arg0->unk54;
}
sp84 = rand() ^ 0x80000000;
sp80 = 0x43300000;
temp_f3_5 = (f32) (bitwise f64) sp80 - (f32) 4503601774854144.0;
temp_f1_6 = 0.5 * (0.5 + (f64) (temp_f3_5 / 32767.0f));
arg0->unk60 = (f32) ((f64) arg0->unk58 + temp_f1_6);
temp_r5_2 = decodedStageLzPtr->unk1C;
temp_r4_4 = lbl_801F3A58.unkC * 0x14;
temp_r29 = temp_r5_2 + temp_r4_4;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (lbl_801F3A58.unkE * 0x84) + 0x24, (bitwise f32) temp_r4_4, (bitwise f64) temp_r5_2, temp_f1_6, 0.5, temp_f3_5, 4503601774854144.0);
mathutil_mtxA_translate(temp_r29);
mathutil_mtxA_rotate_z((s32) temp_r29->unk10);
mathutil_mtxA_rotate_y(temp_r29->unkE);
mathutil_mtxA_rotate_x((s32) temp_r29->unkC);
mathutil_mtxA_tf_point((f32 *) (arg0 + 0x54), &sp10);
temp_r3_5 = &sp1C;
temp_r4_5 = temp_r3_5;
temp_f0_3 = sp10 - arg1->unk4;
sp1C = temp_f0_3;
temp_f0_4 = sp14 - arg1->unk8;
sp20 = temp_f0_4;
temp_f0_5 = sp18 - arg1->unkC;
sp24 = temp_f0_5;
mathutil_vec_set_len(temp_r3_5, temp_r4_5, arg0->unk60, sp14);
arg0->unk0 = sp10 + temp_f0_3;
arg0->unk4 = (f32) (sp14 + temp_f0_4);
arg0->unk8 = (f32) (sp18 + temp_f0_5);
} else {
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.02);
arg0->unk98 = 0.0f;
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.02);
sp84 = rand((f32) 0.02) ^ 0x80000000;
sp80 = 0x43300000;
temp_f5_3 = (f32) (bitwise f64) sp80 - (f32) 4503601774854144.0;
temp_f4_3 = temp_f5_3 / 32767.0f;
temp_f3_6 = (f64) temp_f31 * ((f64) temp_f4_3 - 0.5);
temp_f2_9 = (f32) (9.0 * temp_f3_6);
sp60 = temp_f2_9;
sp64 = 2.5f;
sp68 = 5.0f;
mathutil_mtxA_rigid_inv_tf_vec(&lbl_801F3A58 + 0x10, &sp54, 2.5f, temp_f2_9, temp_f3_6, temp_f4_3, temp_f5_3);
if (sp5C > (f32) 0.0) {
sp68 = -sp68;
}
mathutil_mtxA_tf_point(&sp60, (f32 *) arg0);
if ((s32) lbl_801F3A58.unkE > 0) {
arg0->unk1E = 0x13U;
}
}
} else {
arg0->unk1E = 0x12U;
sp60 = arg1->unk4 - sp6C;
sp64 = arg1->unk8 - sp70;
sp68 = arg1->unkC - sp74;
if (((f32) 0.0 == sp60) && ((f32) 0.0 == sp64) && ((f32) 0.0 == sp68)) {
sp68 = 1.0f;
}
mathutil_vec_set_len(&sp60, &sp60, 1.0f);
arg0->unk0 = arg1->unk4 + sp60;
arg0->unk4 = (f32) (arg1->unk8 + sp64);
arg0->unk8 = (f32) (arg1->unkC + sp68);
}
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) arg1->unk8;
arg0->unk14 = (f32) arg1->unkC;
arg0->unk24 = (s16) (arg0->unk24 | 1);
phi_f1 = camera_sub_17(arg0, arg1);
/* Duplicate return node #32. Try simplifying control flow for better match */
return phi_f1;
}
return phi_f1;
}
f32 camera_sub_17(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
s16 temp_ret;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.98);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.98);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.98);
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f0 = arg1->unk4 - arg0->unkC;
sp10 = temp_f0;
temp_f0_2 = arg1->unk8 - arg0->unk10;
sp14 = temp_f0_2;
temp_f0_3 = arg1->unkC - arg0->unk14;
sp18 = temp_f0_3;
arg0->unkA0 = (f32) (0.15 * (f64) temp_f0);
arg0->unkA4 = (f32) (0.15 * (f64) temp_f0_2);
arg0->unkA8 = (f32) (0.15 * (f64) temp_f0_3);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0_4 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0_4;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0_4 * temp_f0_4) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
f32 func_8001BDDC(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f64 temp_f3;
f64 temp_f4;
f64 temp_f6;
s16 temp_r0;
s16 temp_ret;
s32 temp_r4;
void *temp_r5;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r5 = decodedStageLzPtr->unk1C + (lbl_801F3A58.unkC * 0x14);
sp1C = temp_r5->unk0;
sp20 = temp_r5->unk4;
sp24 = temp_r5->unk8;
temp_r0 = lbl_801F3A58.unkE;
if ((s32) temp_r0 > 0) {
temp_r4 = temp_r0 * 0x84;
mathutil_mtxA_from_mtx(&lbl_80206E48 + temp_r4 + 0x24, (bitwise f32) temp_r4);
mathutil_mtxA_tf_point(&sp1C, &sp1C);
}
temp_r3 = &sp1C;
sp1C = arg1->unk4 - sp1C;
sp20 = arg1->unk8 - sp20;
temp_f1 = arg1->unkC;
sp24 = temp_f1 - sp24;
if (mathutil_vec_normalize_len(temp_r3, (bitwise void *) temp_f1) < (f32) 12.0) {
arg0->unk1E = 0x10;
}
temp_f6 = 4.0 * (f64) arg1->unk1C;
sp10 = (f32) (temp_f6 + ((f64) arg1->unk4 + (2.0 * (f64) sp1C)));
temp_f4 = 4.0 * (f64) arg1->unk20;
temp_f1_2 = (f32) (2.0 + (temp_f4 + ((f64) arg1->unk8 + (2.0 * (f64) sp20))));
sp14 = temp_f1_2;
temp_f3 = 4.0 * (f64) arg1->unk24;
sp18 = (f32) (temp_f3 + ((f64) arg1->unkC + (2.0 * (f64) sp24)));
arg0->unk94 = (f32) (0.04 * (f64) (sp10 - arg0->unk0));
arg0->unk98 = (f32) (0.04 * (f64) (temp_f1_2 - arg0->unk4));
arg0->unk9C = (f32) (0.04 * (f64) (sp18 - arg0->unk8));
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f0 = arg1->unk4 - arg0->unkC;
sp1C = temp_f0;
temp_f0_2 = arg1->unk8 - arg0->unk10;
sp20 = temp_f0_2;
temp_f0_3 = arg1->unkC - arg0->unk14;
sp24 = temp_f0_3;
arg0->unkA0 = (f32) (0.15 * (f64) temp_f0);
arg0->unkA4 = (f32) (0.15 * (f64) temp_f0_2);
arg0->unkA8 = (f32) (0.15 * (f64) temp_f0_3);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp1C = arg0->unkC - arg0->unk0;
sp20 = arg0->unk10 - arg0->unk4;
temp_f0_4 = arg0->unk14 - arg0->unk8;
sp24 = temp_f0_4;
arg0->unk1A = (s16) (mathutil_atan2(sp1C, sp24, (f32) temp_f3, temp_f4, 2.0, temp_f6, 4.0) - 0x8000);
temp_ret = mathutil_atan2(sp20, mathutil_sqrt((temp_f0_4 * temp_f0_4) + (sp1C * sp1C)));
temp_f1_3 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1_3;
}
return phi_f1;
}
f32 func_8001C0C4(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r4_2;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f0_5;
f32 temp_f0_6;
f32 temp_f1;
f32 temp_f3;
f32 temp_f5;
s16 temp_r0;
s16 temp_ret;
s32 temp_r4;
void *temp_r5;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r5 = decodedStageLzPtr->unk1C + (lbl_801F3A58.unkC * 0x14);
sp10 = temp_r5->unk0;
sp14 = temp_r5->unk4;
sp18 = temp_r5->unk8;
temp_r0 = lbl_801F3A58.unkE;
if ((s32) temp_r0 > 0) {
temp_r4 = temp_r0 * 0x84;
mathutil_mtxA_from_mtx(&lbl_80206E48 + temp_r4 + 0x24, (bitwise f32) temp_r4);
mathutil_mtxA_tf_point(&sp10, &sp10);
}
temp_f0 = lbl_801F3A58.unk10;
temp_r3 = &sp28;
temp_r4_2 = temp_r3;
sp28 = temp_f0;
sp2C = (f32) (0.05 * (f64) lbl_801F3A58.unk14);
temp_f0_2 = lbl_801F3A58.unk18;
sp30 = temp_f0_2;
mathutil_vec_set_len(temp_r3, temp_r4_2, (bitwise f32) &lbl_801F3A58, -4.0f, 0.05);
sp2C = (f32) ((f64) sp2C + 2.5);
temp_f5 = sp10 + temp_f0;
temp_f3 = sp14 + sp2C;
sp1C = temp_f5;
sp20 = temp_f3;
sp24 = sp18 + temp_f0_2;
arg0->unk94 = (f32) (0.04 * (f64) (sp1C - arg0->unk0));
arg0->unk98 = (f32) (0.04 * (f64) (sp20 - arg0->unk4));
arg0->unk9C = (f32) (0.04 * (f64) (sp24 - arg0->unk8));
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f0_3 = arg1->unk4 - arg0->unkC;
sp28 = temp_f0_3;
temp_f0_4 = arg1->unk8 - arg0->unk10;
sp2C = temp_f0_4;
temp_f0_5 = arg1->unkC - arg0->unk14;
sp30 = temp_f0_5;
arg0->unkA0 = (f32) (0.15 * (f64) temp_f0_3);
arg0->unkA4 = (f32) (0.15 * (f64) temp_f0_4);
arg0->unkA8 = (f32) (0.15 * (f64) temp_f0_5);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0_6 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0_6;
arg0->unk1A = (s16) (mathutil_atan2(sp28, sp30, temp_f3, (f64) sp14, (f64) temp_f5) - 0x8000);
temp_ret = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0_6 * temp_f0_6) + (sp28 * sp28)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
f32 func_8001C368(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp10;
f32 *temp_r3;
f32 *temp_r4_2;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f0_5;
f32 temp_f1;
f32 temp_f2;
f32 temp_f3;
f32 temp_f4;
s16 temp_r5;
s16 temp_ret;
s32 *temp_r30;
s32 temp_r4;
s32 temp_r6;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r5 = lbl_801F3A58.unkC;
temp_r6 = decodedStageLzPtr->unk1C;
temp_r4 = temp_r5 * 0x14;
temp_r30 = temp_r6 + temp_r4;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (lbl_801F3A58.unkE * 0x84) + 0x24, (bitwise f32) temp_r4, (bitwise f64) temp_r5, (bitwise f64) temp_r6);
mathutil_mtxA_translate(temp_r30);
mathutil_mtxA_rotate_z((s32) temp_r30->unk10);
mathutil_mtxA_rotate_y(temp_r30->unkE);
mathutil_mtxA_rotate_x((s32) temp_r30->unkC);
mathutil_mtxA_tf_point(arg0 + 0x54, &sp10);
temp_r3 = &sp28;
temp_r4_2 = temp_r3;
temp_f2 = sp10 - arg1->unk4;
sp28 = temp_f2;
sp2C = 0.0f;
temp_f0 = sp18 - arg1->unkC;
sp30 = temp_f0;
mathutil_vec_set_len(temp_r3, temp_r4_2, arg0->unk60, temp_f2);
temp_f4 = sp10 + sp28;
temp_f3 = sp14 + sp2C;
sp1C = temp_f4;
sp20 = temp_f3;
sp24 = sp18 + temp_f0;
arg0->unk94 = (f32) (0.02 * (f64) (sp1C - arg0->unk0));
arg0->unk98 = (f32) (0.02 * (f64) (sp20 - arg0->unk4));
arg0->unk9C = (f32) (0.02 * (f64) (sp24 - arg0->unk8));
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f0_2 = arg1->unk4 - arg0->unkC;
sp28 = temp_f0_2;
temp_f0_3 = arg1->unk8 - arg0->unk10;
sp2C = temp_f0_3;
temp_f0_4 = arg1->unkC - arg0->unk14;
sp30 = temp_f0_4;
arg0->unkA0 = (f32) (0.15 * (f64) temp_f0_2);
arg0->unkA4 = (f32) (0.15 * (f64) temp_f0_3);
arg0->unkA8 = (f32) (0.15 * (f64) temp_f0_4);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0_5 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0_5;
arg0->unk1A = (s16) (mathutil_atan2(sp28, sp30, temp_f3, (f64) temp_f4) - 0x8000);
temp_ret = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0_5 * temp_f0_5) + (sp28 * sp28)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
void func_8001C5FC(s32 *arg0, f32 *arg1) {
arg0->unk1E = 0x16;
camera_sub_22_23_24();
}
f32 camera_sub_22_23_24(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f1;
s16 temp_ret;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk94 = (f32) ((f64) arg0->unk94 * 0.92);
arg0->unk98 = (f32) ((f64) arg0->unk98 * 0.92);
arg0->unk9C = (f32) ((f64) arg0->unk9C * 0.92);
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
sp10 = arg1->unk4 - arg0->unkC;
sp14 = arg1->unk8 - arg0->unk10;
sp18 = arg1->unkC - arg0->unk14;
arg0->unkA0 = (f32) (0.1 * (f64) (sp10 - arg0->unkA0));
arg0->unkA4 = (f32) (0.1 * (f64) (sp14 - arg0->unkA4));
arg0->unkA8 = (f32) (0.1 * (f64) (sp18 - arg0->unkA8));
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1;
}
return phi_f1;
}
void func_8001C7D8(f32 *arg0, f32 *arg1) {
camera_clear();
camera_sub_26(arg0, arg1);
arg0->unk50 = 0;
arg0->unk26 = 7;
arg0->unk1E = 0x1A;
}
f32 camera_sub_26(f32 *arg0, f32 *arg1, f32 arg8) {
s32 sp44;
s32 sp40;
s32 sp3C;
s32 sp38;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f1;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f2_5;
f32 temp_f2_6;
s16 temp_r0;
s16 temp_r3;
s16 temp_ret;
f32 phi_f1;
phi_f1 = arg8;
if (((lbl_802F1EE0 & 0xA) == 0) || ((s32) arg0->unk1E != 0x1A)) {
mathutil_mtxA_from_translate(arg1 + 4);
mathutil_mtxA_rotate_y(arg1->unk92);
sp1C = 0.0f;
sp20 = -0.3f;
sp10 = 0.0f;
sp44 = arg0->unk50 ^ 0x80000000;
sp40 = 0x43300000;
sp14 = -0.4f;
sp24 = (f32) (-1.4 - (0.01 * ((bitwise f64) sp40 - 4503601774854144.0)));
sp3C = arg0->unk50 ^ 0x80000000;
sp38 = 0x43300000;
sp18 = (f32) -(0.01 * ((bitwise f64) sp38 - 4503601774854144.0));
if ((s32) arg0->unk1E == 0x1A) {
if (((modeCtrl.unk8 & 4) != 0) && (modeCtrl.unk10 == 1)) {
sp24 = -5.0f;
sp18 = -3.6f;
}
mathutil_mtxA_tf_point(&sp1C, &sp1C);
mathutil_mtxA_tf_point(&sp10, &sp10);
temp_f2 = arg0->unk0;
arg0->unk0 = (f32) ((f64) temp_f2 + (0.1 * (f64) (sp1C - temp_f2)));
temp_f2_2 = arg0->unk4;
arg0->unk4 = (f32) ((f64) temp_f2_2 + (0.1 * (f64) (sp20 - temp_f2_2)));
temp_f2_3 = arg0->unk8;
arg0->unk8 = (f32) ((f64) temp_f2_3 + (0.1 * (f64) (sp24 - temp_f2_3)));
temp_f2_4 = arg0->unkC;
arg0->unkC = (f32) ((f64) temp_f2_4 + (0.1 * (f64) (sp10 - temp_f2_4)));
temp_f2_5 = arg0->unk10;
arg0->unk10 = (f32) ((f64) temp_f2_5 + (0.1 * (f64) (sp14 - temp_f2_5)));
temp_f2_6 = arg0->unk14;
arg0->unk14 = (f32) ((f64) temp_f2_6 + (0.1 * (f64) (sp18 - temp_f2_6)));
} else {
mathutil_mtxA_tf_point(&sp1C, arg0);
mathutil_mtxA_tf_point(&sp10, arg0 + 0xC);
}
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp28, sp30) - 0x8000);
temp_ret = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0 * temp_f0) + (sp28 * sp28)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
temp_r3 = arg0->unk50 + 1;
temp_r0 = (s16) temp_r3;
arg0->unk50 = temp_r3;
phi_f1 = temp_f1;
if ((s32) temp_r0 > 0x293) {
arg0->unk50 = 0x293;
phi_f1 = temp_f1;
}
}
return phi_f1;
}
void func_8001CAB8(s32 *arg0, f32 *arg1) {
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
camera_clear();
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) arg1->unk8;
arg0->unk14 = (f32) arg1->unkC;
arg0->unk0 = decodedStageLzPtr->unk10->unk8;
arg0->unk4 = (f32) decodedStageLzPtr->unk10->unk4;
temp_r3 = decodedStageLzPtr->unk10;
arg0->unk8 = (f32) *temp_r3;
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2((bitwise f32) temp_r3, sp10, sp18) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
arg0->unk1E = 0x20;
}
f32 func_8001CBB0(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
sp1C = arg0->unk0;
sp20 = arg0->unk4;
sp24 = arg0->unk8;
sp10 = arg0->unkC;
sp14 = arg0->unk10;
sp18 = arg0->unk14;
temp_f1 = arg0->unkC;
arg0->unkC = (f32) ((f64) temp_f1 + (0.25 * (f64) (arg1->unk4 - temp_f1)));
temp_f1_2 = arg0->unk10;
arg0->unk10 = (f32) ((f64) temp_f1_2 + (0.25 * (f64) (arg1->unk8 - temp_f1_2)));
temp_f1_3 = arg0->unk14;
arg0->unk14 = (f32) ((f64) temp_f1_3 + (0.25 * (f64) (arg1->unkC - temp_f1_3)));
arg0->unk94 = 0.0f;
arg0->unk98 = 0.0f;
arg0->unk9C = 0.0f;
arg0->unk0 = decodedStageLzPtr->unk10->unk8;
arg0->unk4 = (f32) decodedStageLzPtr->unk10->unk4;
temp_r3 = decodedStageLzPtr->unk10;
arg0->unk8 = (f32) *temp_r3;
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2((bitwise f32) temp_r3, sp28, sp30) - 0x8000);
arg0->unk18 = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0 * temp_f0) + (sp28 * sp28)));
arg0->unk1C = 0;
arg0->unkA0 = (f32) (arg0->unkC - sp10);
arg0->unkA4 = (f32) (arg0->unk10 - sp14);
temp_f1_4 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1_4 - sp18);
phi_f1 = temp_f1_4;
}
return phi_f1;
}
void func_8001CD4C(s32 *arg0, f32 *arg1) {
s32 sp24;
s32 sp20;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r4;
f32 temp_f0;
s32 temp_r31;
s32 temp_r3_2;
s32 phi_r31;
camera_clear();
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
temp_r31 = (modeCtrl - 0x1E) << 9;
phi_r31 = temp_r31;
if (temp_r31 < 0) {
phi_r31 = 0;
}
if (phi_r31 < 0x2000) {
} else {
sp24 = (phi_r31 - 0x2000) ^ 0x80000000;
sp20 = 0x43300000;
}
temp_r3 = &sp10;
temp_r4 = temp_r3;
sp10 = -arg1->unk4;
sp14 = 0.0f;
sp18 = -arg1->unkC;
mathutil_vec_set_len(temp_r3, temp_r4);
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_y((s16) phi_r31);
mathutil_mtxA_tf_vec(&sp10, &sp10);
temp_r3_2 = phi_r31 ^ 0x80000000;
sp24 = temp_r3_2;
sp20 = 0x43300000;
arg0->unk0 = sp10 + arg1->unk4;
arg0->unk4 = (f32) (2.0 + (f64) arg1->unk8 + (-3.0517578125e-05 * (f64) ((f32) (bitwise f64) sp20 - (f32) 4503601774854144.0)));
arg0->unk8 = (f32) (sp18 + arg1->unkC);
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2((bitwise f32) temp_r3_2, sp10, sp18, 2.0) - 0x8000);
arg0->unk18 = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
arg0->unk1C = 0;
arg0->unk1E = 0x22;
}
f32 func_8001CF28(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp44;
s32 sp40;
f32 sp3C;
f32 sp38;
f32 sp34;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r29;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f1_5;
f32 temp_f1_6;
f32 temp_f1_7;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f31;
s32 temp_r28;
s32 phi_r28;
f32 phi_f30;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
sp1C = arg0->unk0;
sp20 = arg0->unk4;
sp24 = arg0->unk8;
sp10 = arg0->unkC;
sp14 = arg0->unk10;
sp18 = arg0->unk14;
temp_f1 = arg0->unkC;
arg0->unkC = (f32) ((f64) temp_f1 + (0.5 * (f64) (arg1->unk4 - temp_f1)));
temp_f1_2 = arg0->unk10;
arg0->unk10 = (f32) ((f64) temp_f1_2 + (0.5 * ((0.5 + (f64) arg1->unk8) - (f64) temp_f1_2)));
temp_f1_3 = arg0->unk14;
arg0->unk14 = (f32) ((f64) temp_f1_3 + (0.5 * (f64) (arg1->unkC - temp_f1_3)));
temp_r28 = (modeCtrl - 0x1E) << 9;
phi_r28 = temp_r28;
if (temp_r28 < 0) {
phi_r28 = 0;
}
if (phi_r28 < 0x2000) {
phi_f30 = 3.0f;
} else {
sp44 = (phi_r28 - 0x2000) ^ 0x80000000;
sp40 = 0x43300000;
phi_f30 = (f32) (3.0 + (-3.487723214285714e-05 * (f64) ((f32) (bitwise f64) sp40 - (f32) 4503601774854144.0)));
}
temp_r29 = &sp34;
temp_f1_4 = -arg1->unk4;
sp34 = temp_f1_4;
sp38 = 0.0f;
temp_f0 = -arg1->unkC;
sp3C = temp_f0;
temp_f31 = mathutil_sqrt((temp_f0 * temp_f0) + ((sp38 * sp38) + (temp_f1_4 * temp_f1_4)), sp38);
mathutil_vec_set_len(temp_r29, temp_r29, phi_f30);
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_y((s16) phi_r28);
mathutil_mtxA_tf_vec(temp_r29, temp_r29);
sp44 = phi_r28 ^ 0x80000000;
sp40 = 0x43300000;
sp28 = sp34 + arg1->unk4;
sp2C = (f32) ((-3.0517578125e-05 * (f64) ((f32) (bitwise f64) sp40 - (f32) 4503601774854144.0)) + ((f64) arg1->unk8 + (2.0 * ((f64) temp_f31 / 10.0))));
sp30 = sp3C + arg1->unkC;
if (modeCtrl > 0xF) {
temp_f1_5 = arg0->unk94;
arg0->unk94 = (f32) ((f64) temp_f1_5 + (0.4 * ((0.15 * (f64) (sp28 - arg0->unk0)) - (f64) temp_f1_5)));
temp_f2 = arg0->unk98;
arg0->unk98 = (f32) ((f64) temp_f2 + (0.4 * ((0.15 * (f64) (sp2C - arg0->unk4)) - (f64) temp_f2)));
temp_f2_2 = arg0->unk9C;
arg0->unk9C = (f32) ((f64) temp_f2_2 + (0.4 * ((0.15 * (f64) (sp30 - arg0->unk8)) - (f64) temp_f2_2)));
} else {
temp_f1_6 = arg0->unk94;
arg0->unk94 = (f32) ((f64) temp_f1_6 + (0.8 * ((0.3 * (f64) (sp28 - arg0->unk0)) - (f64) temp_f1_6)));
temp_f2_3 = arg0->unk98;
arg0->unk98 = (f32) ((f64) temp_f2_3 + (0.8 * ((0.3 * (f64) (sp2C - arg0->unk4)) - (f64) temp_f2_3)));
temp_f2_4 = arg0->unk9C;
arg0->unk9C = (f32) ((f64) temp_f2_4 + (0.8 * ((0.3 * (f64) (sp30 - arg0->unk8)) - (f64) temp_f2_4)));
}
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
sp34 = arg0->unkC - arg0->unk0;
sp38 = arg0->unk10 - arg0->unk4;
temp_f0_2 = arg0->unk14 - arg0->unk8;
sp3C = temp_f0_2;
arg0->unk1A = (s16) (mathutil_atan2(sp34, sp3C) - 0x8000);
arg0->unk18 = mathutil_atan2(sp38, mathutil_sqrt((temp_f0_2 * temp_f0_2) + (sp34 * sp34)));
arg0->unk1C = 0;
arg0->unkA0 = (f32) (arg0->unkC - sp10);
arg0->unkA4 = (f32) (arg0->unk10 - sp14);
temp_f1_7 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1_7 - sp18);
phi_f1 = temp_f1_7;
}
return phi_f1;
}
void func_8001D32C(s32 *arg0, f32 *arg1) {
arg0->unk1E = 0x24;
camera_sub_36();
}
f32 camera_sub_36(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r31;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f30;
f32 temp_f31;
f32 temp_f31_2;
f32 temp_f3;
f32 temp_r3;
s32 temp_cr0_lt;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r31 = &sp28;
sp1C = arg0->unk0;
sp20 = arg0->unk4;
sp24 = arg0->unk8;
temp_r3 = arg0->unkC;
sp10 = temp_r3;
sp14 = arg0->unk10;
sp18 = arg0->unk14;
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
temp_f1 = -arg1->unk4;
sp28 = temp_f1;
sp2C = 0.0f;
temp_f0 = -arg1->unkC;
sp30 = temp_f0;
temp_f31 = mathutil_sqrt(temp_r3, (temp_f0 * temp_f0) + ((sp2C * sp2C) + (temp_f1 * temp_f1)), sp2C);
mathutil_vec_set_len(temp_r31, temp_r31, 3.0f);
sp28 = temp_f1 + arg1->unk4;
sp30 += arg1->unkC;
sp28 = (f32) ((f64) sp28 + (0.95 * (f64) (arg0->unk0 - sp28)));
sp30 = (f32) ((f64) sp30 + (0.95 * (f64) (arg0->unk8 - sp30)));
sp28 -= arg1->unk4;
temp_f2 = sp30;
sp30 = temp_f2 - arg1->unkC;
mathutil_vec_set_len(temp_r31, temp_r31, 3.0f, temp_f2, 0.95);
temp_f0_2 = (f32) ((f64) arg1->unk8 + (2.0 * ((f64) temp_f31 / 10.0)));
sp2C = temp_f0_2;
arg0->unk0 = sp28 + arg1->unk4;
temp_f2_2 = arg0->unk4;
arg0->unk4 = (f32) ((f64) temp_f2_2 + (0.1 * (f64) (temp_f0_2 - temp_f2_2)));
arg0->unk8 = (f32) (sp30 + arg1->unkC);
temp_f3 = arg0->unk0;
temp_f2_3 = arg0->unk8;
temp_f31_2 = (arg1->unkC * temp_f2_3) + ((0.0f * 0.0f) + (arg1->unk4 * temp_f3));
if ((((temp_f3 * temp_f3) + (temp_f2_3 * temp_f2_3)) < 4.0f) || (temp_f31_2 < 0.0f)) {
temp_f30 = mathutil_sqrt();
temp_cr0_lt = temp_f30 < 1.0f;
sp28 = (0.2f * arg1->unk4) + sp1C;
sp2C = 0.0f;
sp30 = (0.2f * arg1->unkC) + sp24;
if ((temp_cr0_lt != 0) || (temp_f31_2 < 0.0f)) {
mathutil_vec_set_len(&sp28, &sp28, 1.0f);
arg0->unk0 = sp28;
arg0->unk8 = sp30;
} else {
mathutil_vec_set_len(&sp28, &sp28);
temp_f1_2 = arg0->unk0;
temp_f2_4 = 2.0f - temp_f30;
arg0->unk0 = temp_f1_2 + (temp_f2_4 * (sp28 - temp_f1_2));
temp_f1_3 = arg0->unk8;
arg0->unk8 = (f32) (temp_f1_3 + (temp_f2_4 * (sp30 - temp_f1_3)));
}
}
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0_3 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0_3;
arg0->unk1A = (s16) (mathutil_atan2(sp28, sp30) - 0x8000);
arg0->unk18 = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0_3 * temp_f0_3) + (sp28 * sp28)));
arg0->unk1C = 0;
arg0->unk94 = (f32) (arg0->unk0 - sp1C);
arg0->unk98 = (f32) (arg0->unk4 - sp20);
arg0->unk9C = (f32) (arg0->unk8 - sp24);
arg0->unkA0 = (f32) (arg0->unkC - sp10);
arg0->unkA4 = (f32) (arg0->unk10 - sp14);
temp_f1_4 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1_4 - sp18);
phi_f1 = temp_f1_4;
}
return phi_f1;
}
f32 func_8001D708(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 *temp_r3;
f32 *temp_r3_2;
f32 *temp_r4;
f32 *temp_r4_2;
f32 temp_f0;
f32 temp_f1;
f32 temp_f2;
f32 temp_f2_2;
void *temp_r5;
void *temp_r6;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r3 = &sp28;
temp_r4 = temp_r3;
sp1C = arg0->unk0;
sp20 = arg0->unk4;
sp24 = arg0->unk8;
sp10 = arg0->unkC;
sp14 = arg0->unk10;
sp18 = arg0->unk14;
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.5 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
temp_r6 = decodedStageLzPtr;
temp_f2 = -temp_r6->unk1C->unk0;
sp28 = temp_f2;
sp2C = 0.0f;
temp_r5 = temp_r6->unk1C;
sp30 = -temp_r5->unk8;
mathutil_vec_set_len(temp_r3, temp_r4, (bitwise f32) temp_r5, (bitwise f32) temp_r6, (f64) 3.0f, temp_f2);
temp_r3_2 = &sp28;
temp_r4_2 = temp_r3_2;
sp28 += arg1->unk4;
sp30 += arg1->unkC;
sp28 = (f32) ((f64) sp28 + (0.95 * (f64) (arg0->unk0 - sp28)));
sp30 = (f32) ((f64) sp30 + (0.95 * (f64) (arg0->unk8 - sp30)));
sp28 -= arg1->unk4;
temp_f2_2 = sp30;
sp30 = temp_f2_2 - arg1->unkC;
mathutil_vec_set_len(temp_r3_2, temp_r4_2, 3.0f, temp_f2_2, 0.95);
arg0->unk0 = sp28 + arg1->unk4;
arg0->unk4 = (f32) (2.0 + (f64) arg1->unk8);
arg0->unk8 = (f32) (sp30 + arg1->unkC);
sp28 = arg0->unkC - arg0->unk0;
sp2C = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp30 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp28, sp30) - 0x8000);
arg0->unk18 = mathutil_atan2(sp2C, mathutil_sqrt((temp_f0 * temp_f0) + (sp28 * sp28)));
arg0->unk1C = 0;
arg0->unk94 = (f32) (arg0->unk0 - sp1C);
arg0->unk98 = (f32) (arg0->unk4 - sp20);
arg0->unk9C = (f32) (arg0->unk8 - sp24);
arg0->unkA0 = (f32) (arg0->unkC - sp10);
arg0->unkA4 = (f32) (arg0->unk10 - sp14);
temp_f1 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1 - sp18);
phi_f1 = temp_f1;
}
return phi_f1;
}
s32 *func_8001D968(s32 *arg0) {
return arg0;
}
s32 *func_8001D96C(s32 *arg0) {
return arg0;
}
void func_8001D970(f32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk50 = 0;
arg0->unk26 = 6;
camera_sub_42(arg0, arg1);
arg0->unk1E = 0x2A;
}
f32 camera_sub_42(f32 *arg0, f32 *arg1, f32 arg8) {
s32 sp34;
s32 sp30;
f64 sp28; /* compiler-managed */
f32 sp24;
f32 sp20;
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
f32 (**temp_r3_2)(s32 *, f32 *, ? *, s16);
f32 (**temp_r4)(s32 *, f32 *, ? *, s16);
f32 (**temp_r4_2)(s32 *, f32 *, ? *, s16);
f32 temp_f0;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f2_2;
f32 temp_f3;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f4_3;
f32 temp_f4_4;
f32 temp_f6;
f32 temp_f6_2;
f64 temp_f2;
s16 temp_r3;
s16 temp_ret;
void *temp_r5;
f64 phi_f3;
f32 phi_f1;
temp_r5 = lbl_802F1C28;
phi_f1 = arg8;
if (((lbl_802F1EE0 & 0xA) == 0) || ((s32) arg0->unk1E != 0x2A)) {
temp_r3 = arg0->unk50;
if ((s32) temp_r3 < 0x1E0) {
sp34 = temp_r3 ^ 0x80000000;
temp_r3_2 = lbl_80176200 + 0x1064;
sp30 = 0x43300000;
temp_r4 = lbl_80176200 + 0x1070;
temp_f6 = ((f32) (bitwise f64) sp30 - (f32) 4503601774854144.0) / 480.0f;
temp_f6_2 = (f32) ((3.0 + (-2.0 * (f64) temp_f6)) * (f64) (temp_f6 * temp_f6));
temp_f2 = 1.0 - (f64) temp_f6_2;
arg0->unk0 = (f32) (((f64) lbl_80176200->unk1064 * temp_f2) + (f64) (lbl_80176200->unk1070 * temp_f6_2));
arg0->unk4 = (f32) (((f64) temp_r3_2->unk4 * temp_f2) + (f64) (temp_r4->unk4 * temp_f6_2));
arg0->unk8 = (f32) (((f64) temp_r3_2->unk8 * temp_f2) + (f64) (temp_r4->unk8 * temp_f6_2));
arg0->unkC = (f32) temp_r5->unk30;
arg0->unk10 = (f32) ((0.4 + (f64) temp_r5->unk34 + (f64) arg0->unk4) - 0.4);
arg0->unk14 = (f32) temp_r5->unk38;
} else if ((s32) temp_r3 < 0x258) {
arg0->unk0 = lbl_80176200->unk1070;
arg0->unk4 = (f32) lbl_80176200->unk1074;
arg0->unk8 = (f32) lbl_80176200->unk1078;
arg0->unkC = (f32) temp_r5->unk30;
arg0->unk10 = (f32) (0.4 + (f64) temp_r5->unk34);
arg0->unk14 = (f32) temp_r5->unk38;
} else if ((s32) temp_r3 < 0x474) {
sp34 = (temp_r3 - 0x258) ^ 0x80000000;
sp30 = 0x43300000;
temp_r4_2 = lbl_80176200 + 0x107C;
arg0->unk0 = lbl_80176200->unk107C;
arg0->unk4 = (f32) temp_r4_2->unk4;
arg0->unk8 = (f32) temp_r4_2->unk8;
arg0->unkC = (f32) temp_r5->unk30;
arg0->unk10 = (f32) (0.4 + (f64) temp_r5->unk34);
arg0->unk14 = (f32) temp_r5->unk38;
temp_f4 = arg0->unk0;
temp_f3 = temp_f4 - arg0->unkC;
sp1C = temp_f3;
temp_f2_2 = arg0->unk4;
sp20 = temp_f2_2 - arg0->unk10;
sp28 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
temp_f1_2 = arg0->unk8;
sp24 = temp_f1_2 - arg0->unk14;
mathutil_mtxA_from_translate(arg0 + 0xC, (bitwise f64) temp_r4_2, (f64) temp_f1_2, (f64) temp_f2_2, (f64) temp_f3, temp_f4, (f32) 4503601774854144.0);
mathutil_mtxA_rotate_y((s16) unksp2C);
mathutil_mtxA_tf_point(&sp1C, arg0);
} else if ((s32) temp_r3 < 0x4B0) {
arg0->unk0 = lbl_80176200->unk1094;
arg0->unk4 = (f32) lbl_80176200->unk1098;
arg0->unk8 = (f32) lbl_80176200->unk109C;
arg0->unkC = (f32) temp_r5->unk30;
arg0->unk10 = (f32) (0.4 + (f64) temp_r5->unk34);
arg0->unk14 = (f32) temp_r5->unk38;
} else {
unksp2C = (temp_r3 - 0x4B0) ^ 0x80000000;
sp28 = 0x43300000;
temp_f4_2 = ((f32) (bitwise f64) sp28 - (f32) 4503601774854144.0) / 165.0f;
phi_f3 = 0.0;
if (temp_f4_2 < (f32) 0.0) {
} else {
phi_f3 = 1.0;
if (temp_f4_2 > (f32) 1.0) {
} else {
phi_f3 = (f64) temp_f4_2;
}
}
temp_f4_3 = (f32) phi_f3;
arg0->unk0 = lbl_80176200->unk1094;
arg0->unk4 = (f32) lbl_80176200->unk1098;
temp_f4_4 = (f32) (((f64) temp_f4_3 * (-2.0 * (f64) temp_f4_3 * (f64) temp_f4_3)) + (3.0 * (f64) temp_f4_3 * (f64) temp_f4_3));
arg0->unk8 = (f32) ((f64) lbl_80176200->unk109C - (2.6 * (f64) temp_f4_4));
arg0->unkC = (f32) temp_r5->unk30;
arg0->unk10 = (f32) (0.4 + (15.0 * (f64) temp_f4_4));
arg0->unk14 = (f32) temp_r5->unk38;
}
sp10 = arg0->unkC - arg0->unk0;
sp14 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp18 = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp10, sp18) - 0x8000);
temp_ret = mathutil_atan2(sp14, mathutil_sqrt((temp_f0 * temp_f0) + (sp10 * sp10)));
temp_f1 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
if ((lbl_801F3D88 & 0x100) != 0) {
arg0->unk50 = (s16) (arg0->unk50 + 2);
return temp_f1;
}
arg0->unk50 = (s16) (arg0->unk50 + 1);
phi_f1 = temp_f1;
/* Duplicate return node #19. Try simplifying control flow for better match */
return phi_f1;
}
return phi_f1;
}
f32 func_8001DDF0(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp50;
f32 sp30;
f32 sp10;
f32 temp_f1;
f32 temp_f31;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f5;
f32 temp_f5_2;
f32 temp_r4_2;
s32 temp_r31;
s32 temp_r4;
s32 temp_r5;
s32 temp_r5_2;
s32 temp_r5_3;
void *temp_r30;
s32 phi_r31;
s32 phi_r31_2;
s32 phi_r31_3;
s32 phi_r4;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk50 = 0;
temp_r5 = arg0->unk204;
temp_r30 = &lbl_801EFB94 + (temp_r5 << 5);
temp_f31 = func_8004964C(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &lbl_801EFB94, temp_r5);
g_get_replay_info(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), temp_r30 + 8);
(&sp50)[0] = 7e-45.0f;
phi_r31 = 1;
if (((temp_r30->unk8 & 1) != 0) && (lbl_80250A68.unk10 > (temp_f31 - 240.0f))) {
(&sp50)[1] = 2.2e-44f;
phi_r31 = 2;
}
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, lbl_80250A68.unk10);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp30, 0.0f);
temp_f5 = sp10 - sp30;
temp_f4 = sp14 - sp34;
temp_f3 = sp18 - sp38;
phi_r31_2 = phi_r31;
if (mathutil_sqrt((temp_f3 * temp_f3) + ((temp_f4 * temp_f4) + (temp_f5 * temp_f5)), sp30, temp_f3, temp_f4, temp_f5) < (f32) 16.0) {
(&sp50)[phi_r31] = 1e-44.0f;
phi_r31_2 = phi_r31 + 1;
}
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp30, (f32) ((f64) lbl_80250A68.unk10 - 60.0));
temp_f5_2 = sp10 - sp30;
temp_f4_2 = sp14 - sp34;
temp_f3_2 = sp18 - sp38;
phi_r31_3 = phi_r31_2;
if ((mathutil_sqrt((temp_f3_2 * temp_f3_2) + ((temp_f4_2 * temp_f4_2) + (temp_f5_2 * temp_f5_2)), sp30, temp_f3_2, temp_f4_2, temp_f5_2) > (f32) 1.0) && (lbl_80250A68.unk10 > (f32) 240.0)) {
(&sp50)[phi_r31_2] = 6.4e-44f;
phi_r31_3 = phi_r31_2 + 1;
}
(&sp50)[phi_r31_3] = 6.7e-44f;
temp_r31 = phi_r31_3 + 1;
temp_r4 = rand(6.7e-44f) & 0x7FFF;
temp_r5_2 = temp_r4 - ((temp_r4 / temp_r31) * temp_r31);
temp_r4_2 = (&sp50)[temp_r5_2];
phi_r4 = (bitwise s32) temp_r4_2;
if ((bitwise s32) temp_r4_2 == temp_r30->unk4) {
temp_r5_3 = temp_r5_2 + 1;
phi_r4 = (bitwise s32) (&sp50)[temp_r5_3 - ((temp_r5_3 / temp_r31) * temp_r31)];
}
temp_r30->unk4 = phi_r4;
arg0->unk1E = (s8) phi_r4;
temp_f1 = lbl_80176200[phi_r4](arg0, arg1);
temp_r30->unk0 = (s32) (s8) (u8) arg0->unk1E;
arg0->unk1E = 0x2D;
phi_f1 = temp_f1;
}
return phi_f1;
}
f32 func_8001E0A8(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp10;
f32 (**temp_r5)(s32 *, f32 *, ?, s16);
f32 *temp_r3;
f32 *temp_r3_2;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f2;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f5;
f32 temp_f5_2;
s16 temp_r0_2;
s16 temp_r6;
s32 *temp_r31;
s8 temp_r0;
u32 phi_r31;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk50 = (s16) (arg0->unk50 + 1);
temp_r6 = arg0->unk204 << 5;
temp_r31 = &lbl_801EFB94 + temp_r6;
temp_r5 = &lbl_80176200[*temp_r31];
temp_f1 = *temp_r5(arg0, arg1, temp_r5, temp_r6);
temp_r0 = (s8) arg0->unk1E;
phi_f1 = temp_f1;
phi_f1 = temp_f1;
if ((s32) temp_r0 != 0x2D) {
*temp_r31 = (s32) temp_r0;
arg0->unk1E = 0x2DU;
arg0->unk50 = 0;
}
phi_r31 = 0U;
phi_r31 = 0U;
if ((u32) (*temp_r31 - 8) <= 0x29U) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
if ((arg0->unk50 & 0x1F) == 0) {
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, (f32) ((f64) lbl_80250A68.unk10 - 60.0));
temp_r3 = arg1 + 4;
temp_f5 = temp_r3->unk0 - sp10;
temp_f4 = temp_r3->unk4 - sp14;
temp_f3 = temp_r3->unk8 - sp18;
temp_f1_2 = mathutil_sqrt((bitwise f32) temp_r3, (temp_f3 * temp_f3) + ((temp_f4 * temp_f4) + (temp_f5 * temp_f5)), sp10, temp_f3, temp_f4, temp_f5);
phi_f1 = temp_f1_2;
if (temp_f1_2 < (f32) 0.5) {
phi_r31 = 1U;
}
}
temp_r0_2 = arg0->unk50;
if (((s32) temp_r0_2 > 0x78) && ((temp_r0_2 & 0x3F) == 0)) {
temp_r3_2 = arg1 + 4;
temp_f2 = (bitwise f32) arg0->unk0;
temp_f5_2 = temp_r3_2->unk0 - temp_f2;
temp_f4_2 = temp_r3_2->unk4 - arg0->unk4;
temp_f3_2 = temp_r3_2->unk8 - arg0->unk8;
temp_f1_3 = mathutil_sqrt((bitwise f32) temp_r3_2, (temp_f3_2 * temp_f3_2) + ((temp_f4_2 * temp_f4_2) + (temp_f5_2 * temp_f5_2)), temp_f2, temp_f3_2, temp_f4_2, temp_f5_2);
phi_f1 = temp_f1_3;
if (temp_f1_3 > (f32) 16.0) {
phi_r31 = 1U;
}
}
if ((s32) arg0->unk50 > 0x168) {
phi_r31 = 1U;
}
}
if ((phi_r31 != 0U) && ((s32) arg1->unk3 == 0xA)) {
arg0->unk1E = 0x2CU;
}
}
return phi_f1;
}
f32 func_8001E2E8(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp3C;
s32 sp38;
s32 sp34;
s32 sp30;
f32 sp10;
f32 (**temp_r5)(s32 *, f32 *, ?, s16);
f32 *temp_r28;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f4;
f64 temp_f1;
s32 temp_r6;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk26 = 0;
temp_r28 = &lbl_80250A68 + 0x10;
arg0->unk24 = (s16) (arg0->unk24 | 4);
if (lbl_80250A68.unk10 > (f32) 180.0) {
sp3C = rand() ^ 0x80000000;
sp38 = 0x43300000;
arg0->unk60 = (f32) ((f64) *temp_r28 - (60.0 * (0.5 + (1.5 * (f64) (((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0) / 32767.0f)))));
} else {
sp3C = rand() ^ 0x80000000;
sp38 = 0x43300000;
arg0->unk60 = (f32) ((f64) *temp_r28 * (0.5 + (0.5 * (f64) (((f32) (bitwise f64) sp38 - (f32) 4503601774854144.0) / 32767.0f))));
}
sp3C = rand() ^ 0x80000000;
sp38 = 0x43300000;
temp_f3 = (f32) (bitwise f64) sp38 - (f32) 4503601774854144.0;
temp_f2 = temp_f3 / 32767.0f;
temp_f1 = 2.0 * (f64) temp_f2;
arg0->unk64 = (f32) (0.3 + temp_f1);
sp34 = rand((f32) temp_f1, temp_f2, (f64) temp_f3, 4503601774854144.0) ^ 0x80000000;
sp30 = 0x43300000;
temp_f4 = (f32) (bitwise f64) sp30 - (f32) 4503601774854144.0;
temp_f3_2 = temp_f4 / 32767.0f;
arg0->unk80 = (f32) ((f64) arg0->unk60 * (0.2 + (0.5 * (f64) temp_f3_2)));
temp_f2_2 = arg0->unk80;
arg0->unk80 = (f32) ((temp_f2_2 - arg0->unk60) / *temp_r28);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, arg0->unk60, (f64) temp_f2_2, temp_f3_2, temp_f4);
arg0->unk54 = sp10;
arg0->unk58 = sp14;
arg0->unk5C = sp18;
arg0->unk0 = (bitwise s32) sp10;
arg0->unk4 = sp14;
arg0->unk8 = sp18;
arg0->unk74 = 0.0f;
arg0->unk78 = 0.0f;
arg0->unk7C = 0.0f;
temp_r6 = arg1->unk4;
arg0->unkC = temp_r6;
arg0->unk10 = (s32) arg1->unk8;
temp_r5 = arg1->unkC;
arg0->unk14 = temp_r5;
arg0->unk1E = 0x2F;
phi_f1 = camera_sub_47(arg0, arg1, temp_r5, temp_r6);
}
return phi_f1;
}
f32 camera_sub_47(s32 *arg0, f32 *arg1, f32 arg8) {
f32 sp44;
f32 sp40;
f32 sp3C;
f32 sp38;
f32 sp34;
f32 sp30;
f32 sp10;
f32 *temp_r3_2;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f1_5;
f32 temp_f1_6;
f32 temp_f1_7;
f32 temp_f2;
f32 temp_f31;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f4;
f32 temp_f5;
void *temp_r3;
f64 phi_f31;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk60 = (f32) (arg0->unk60 + arg0->unk80);
func_800496BC(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp10, arg0->unk60);
temp_r3 = arg1 + 4;
temp_f2 = arg0->unk0;
temp_f5 = temp_r3->unk0 - temp_f2;
temp_f4 = temp_r3->unk4 - arg0->unk4;
temp_f3 = temp_r3->unk8 - arg0->unk8;
temp_f31 = (f32) (2.0 - (0.125 * mathutil_sqrt((bitwise f32) temp_r3, (temp_f3 * temp_f3) + ((temp_f4 * temp_f4) + (temp_f5 * temp_f5)), temp_f2, temp_f3, temp_f4, temp_f5)));
phi_f31 = (f64) temp_f31;
if (temp_f31 < (f32) 0.0) {
phi_f31 = (f64) 0.0f;
}
temp_r3_2 = &sp30;
sp30 = arg1->unk24;
sp34 = 0.0f;
sp38 = arg1->unk1C;
temp_f0 = arg0->unk0 - arg1->unk4;
sp3C = temp_f0;
sp40 = 0.0f;
temp_f1 = arg0->unk8;
sp44 = temp_f1 - arg1->unkC;
mathutil_vec_normalize_len(temp_r3_2, (bitwise void *) temp_f1, 0.0f);
mathutil_vec_normalize_len(&sp3C);
if (((sp30 * temp_f0) + (sp38 * sp44)) < (f32) -0.1) {
sp30 = -sp30;
sp38 = -sp38;
}
if (((f32) 0.0 == sp30) && ((f32) 0.0 == sp38)) {
sp30 = sp3C;
sp38 = sp44;
}
mathutil_vec_set_len(&sp30, &sp30, (f32) (2.0 * (f64) arg0->unk64 * phi_f31));
temp_f1_2 = arg0->unk74;
arg0->unk74 = (f32) ((f64) temp_f1_2 + (0.05 * (f64) (sp30 - temp_f1_2)));
temp_f1_3 = arg0->unk7C;
arg0->unk7C = (f32) ((f64) temp_f1_3 + (0.05 * (f64) (sp38 - temp_f1_3)));
arg0->unk54 = sp10;
arg0->unk58 = sp14;
arg0->unk5C = sp18;
arg0->unk94 = (f32) (0.1 * (f64) ((sp10 + arg0->unk74) - arg0->unk0));
arg0->unk98 = (f32) (0.1 * (f64) ((sp14 + arg0->unk64) - arg0->unk4));
arg0->unk9C = (f32) (0.1 * (f64) ((sp18 + arg0->unk7C) - arg0->unk8));
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
temp_f1_4 = (f32) (((f64) arg1->unk4 + (6.0 * (f64) arg1->unk1C)) - (f64) arg0->unkC);
sp3C = temp_f1_4;
temp_f1_5 = (f32) (((f64) arg1->unk8 + (6.0 * (f64) arg1->unk20)) - (f64) arg0->unk10);
sp40 = temp_f1_5;
temp_f3_2 = arg1->unkC;
temp_f1_6 = (f32) (((f64) temp_f3_2 + (6.0 * (f64) arg1->unk24)) - (f64) arg0->unk14);
sp44 = temp_f1_6;
arg0->unkA0 = (f32) (0.1 * (f64) temp_f1_4);
arg0->unkA4 = (f32) (0.1 * (f64) temp_f1_5);
arg0->unkA8 = (f32) (0.1 * (f64) temp_f1_6);
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
sp3C = arg0->unkC - arg0->unk0;
sp40 = arg0->unk10 - arg0->unk4;
temp_f0_2 = arg0->unk14 - arg0->unk8;
sp44 = temp_f0_2;
arg0->unk1A = (s16) (mathutil_atan2(sp3C, sp44, temp_f3_2, 6.0) - 0x8000);
arg0->unk18 = mathutil_atan2(sp40, mathutil_sqrt((temp_f0_2 * temp_f0_2) + (sp3C * sp3C)));
arg0->unk1C = 0;
temp_f1_7 = lbl_80250A68.unk10;
phi_f1 = temp_f1_7;
if (temp_f1_7 < 60.0f) {
arg0->unk1E = 0xE;
}
}
return phi_f1;
}
f32 func_8001E924(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp94;
s32 sp90;
s32 sp8C;
s32 sp88;
s32 sp84;
s32 sp80;
f64 sp78;
s32 sp74;
s32 sp70; /* compiler-managed */
f64 sp68; /* compiler-managed */
f32 sp60;
f32 sp5C;
f32 sp58;
f32 sp54;
f32 sp50;
f32 sp4C;
u16 sp34;
f32 sp28;
f32 sp1C;
f32 sp10;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f1_5;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f2_4;
f32 temp_f2_5;
f32 temp_f2_6;
f32 temp_f2_7;
f32 temp_f2_8;
f32 temp_f2_9;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f3_3;
f32 temp_f3_4;
f32 temp_f3_5;
f32 temp_f3_6;
f32 temp_f4;
f32 temp_f5;
f32 temp_f5_2;
f32 temp_r4_2;
f32 temp_r4_4;
s16 temp_r0;
s16 temp_r0_2;
s16 temp_r0_3;
s16 temp_r0_4;
s16 temp_r3;
s16 temp_r4_3;
s16 temp_r4_5;
s32 temp_r3_2;
void *temp_r4;
void *temp_r5;
f32 phi_f31;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
camera_clear(arg0);
arg0->unk24 = (s16) (arg0->unk24 | 4);
g_get_replay_info(*(&lbl_80250A68 + ((s8) arg1->unk2E * 4)), &sp34);
if (((sp34 & 1) == 0) || (temp_r4 = decodedStageLzPtr, (((s32) lbl_801F3A58.unkC < temp_r4->unk18) == 0)) || (temp_r3 = lbl_801F3A58.unkE, (((s32) temp_r3 < temp_r4->unk8) == 0))) {
arg0->unk10E = 0;
arg0->unk110 = -1;
sp94 = rand() ^ 0x80000000;
sp90 = 0x43300000;
temp_f3_4 = (f32) (bitwise f64) sp90 - (f32) 4503601774854144.0;
temp_f2_3 = temp_f3_4 / 32767.0f;
temp_f1_3 = (f32) ((f64) temp_f2_3 - 0.5);
sp58 = temp_f1_3;
sp5C = 0.25f;
sp8C = rand(temp_f1_3, temp_f2_3, (f64) temp_f3_4, 4503601774854144.0) ^ 0x80000000;
sp88 = 0x43300000;
temp_f2_4 = (f32) (bitwise f64) sp88 - (f32) 4503601774854144.0;
temp_f1_4 = temp_f2_4 / 32767.0f;
sp60 = (f32) ((f64) temp_f1_4 - 0.5);
sp84 = rand(temp_f1_4, temp_f2_4, 4503601774854144.0) ^ 0x80000000;
sp80 = 0x43300000;
temp_f2_5 = (f32) (bitwise f64) sp80 - (f32) 4503601774854144.0;
mathutil_vec_set_len(&sp58, &sp58, (f32) (20.0 + (20.0 * (f64) (temp_f2_5 / 32767.0f))), temp_f2_5, 4503601774854144.0);
} else {
arg0->unk10E = temp_r3;
arg0->unk110 = (s16) lbl_801F3A58.unkC;
temp_r5 = decodedStageLzPtr->unk1C + (arg0->unk110 * 0x14);
temp_r4_2 = temp_r5->unk0;
sp58 = temp_r4_2;
sp5C = temp_r5->unk4;
sp60 = temp_r5->unk8;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (arg0->unk10E * 0x84) + 0x24, temp_r4_2, (bitwise f64) temp_r5);
mathutil_mtxA_rigid_inv_tf_point(arg1 + 4, &sp28);
temp_f5 = sp58 - sp28;
temp_f4 = sp5C - sp2C;
temp_f3 = sp60 - sp30;
temp_f1 = mathutil_sqrt((temp_f3 * temp_f3) + ((temp_f4 * temp_f4) + (temp_f5 * temp_f5)), sp28, temp_f3, temp_f4, temp_f5);
phi_f31 = temp_f1;
if (temp_f1 > (f32) 60.0) {
phi_f31 = 60.0f;
} else if (temp_f1 < (f32) 20.0) {
phi_f31 = 20.0f;
}
sp84 = rand() ^ 0x80000000;
sp80 = 0x43300000;
temp_f3_2 = (f32) (bitwise f64) sp80 - (f32) 4503601774854144.0;
temp_f2 = temp_f3_2 / 32767.0f;
temp_f1_2 = (f32) ((f64) temp_f2 - 0.5);
sp4C = temp_f1_2;
sp50 = 0.0001f;
sp8C = rand(temp_f1_2, temp_f2, (f64) temp_f3_2, 4503601774854144.0) ^ 0x80000000;
sp88 = 0x43300000;
temp_f3_3 = (f32) (bitwise f64) sp88 - (f32) 4503601774854144.0;
temp_f2_2 = temp_f3_3 / 32767.0f;
sp54 = (f32) ((f64) temp_f2_2 - 0.5);
mathutil_vec_set_len(&sp4C, &sp4C, phi_f31, temp_f2_2, (f64) temp_f3_3, (f32) 4503601774854144.0);
sp94 = rand() ^ 0x80000000;
sp90 = 0x43300000;
sp50 = (f32) ((f64) phi_f31 * (0.5 + (0.5 * (f64) (((f32) (bitwise f64) sp90 - (f32) 4503601774854144.0) / 32767.0f))));
if ((s32) arg0->unk10E != 0) {
sp58 = sp4C;
sp5C = sp50;
sp60 = sp54;
} else {
sp58 = (f32) (((f64) sp4C + (0.5 * (f64) (sp58 + sp28))) - (f64) sp58);
sp5C = (f32) (((f64) sp50 + (0.5 * (f64) (sp5C + sp2C))) - (f64) sp5C);
sp60 = (f32) (((f64) sp54 + (0.5 * (f64) (sp60 + sp30))) - (f64) sp60);
}
}
arg0->unk114 = sp58;
arg0->unk118 = sp5C;
arg0->unk11C = sp60;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (arg0->unk10E * 0x84) + 0x24, sp5C, (f64) sp58);
temp_r0 = arg0->unk110;
if ((s32) temp_r0 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0 * 0x14));
mathutil_mtxA_sq_from_identity();
}
temp_r3_2 = rand() ^ 0x80000000;
sp84 = temp_r3_2;
sp80 = 0x43300000;
sp8C = arg0->unk32 ^ 0x80000000;
sp88 = 0x43300000;
temp_f2_6 = ((f32) (bitwise f64) sp80 - (f32) 4503601774854144.0) / 32767.0f;
sp94 = rand((bitwise f32) temp_r3_2, 0.1f + temp_f2_6, (f64) temp_f2_6, 4503601774854144.0) ^ 0x80000000;
sp90 = 0x43300000;
temp_f2_7 = (f32) (bitwise f64) sp90 - (f32) 4503601774854144.0;
sp78 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
mathutil_mtxA_rotate_y((s16) unksp7C, temp_f2_7 / 32767.0f, temp_f2_7, 4503601774854144.0);
sp74 = rand() ^ 0x80000000;
sp70 = 0x43300000;
temp_f2_8 = (f32) (bitwise f64) sp70 - (f32) 4503601774854144.0;
sp68 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
mathutil_mtxA_rotate_x((s32) (s16) unksp6C, temp_f2_8 / 32767.0f, temp_f2_8, 4503601774854144.0);
mathutil_mtxA_rigid_inv_tf_point(arg1 + 4, (f32 *) (arg0 + 0x12C));
mathutil_mtxA_rigid_inv_tf_vec(arg1 + 0x1C, arg0 + 0x138);
temp_r4_3 = arg0->unk10E;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (temp_r4_3 * 0x84) + 0x24, (bitwise f32) temp_r4_3);
temp_r0_2 = arg0->unk110;
if ((s32) temp_r0_2 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0_2 * 0x14));
mathutil_mtxA_sq_from_identity();
}
mathutil_mtxA_tf_point((f32 *) (arg0 + 0x114), (f32 *) arg0);
mathutil_mtxA_tf_point((f32 *) (arg0 + 0x12C), (f32 *) (arg0 + 0xC));
unksp6C = rand() ^ 0x80000000;
sp68 = 0x43300000;
temp_f3_5 = (f32) (bitwise f64) sp68 - (f32) 4503601774854144.0;
temp_f2_9 = temp_f3_5 / 32767.0f;
sp70 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk6C = sp74;
temp_r4_4 = arg0->unk114;
sp4C = temp_r4_4;
sp50 = arg0->unk118;
sp54 = arg0->unk11C;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (arg0->unk10E * 0x84) + 0x24, temp_r4_4, (f64) (0.5f + temp_f2_9), (f64) temp_f2_9, (f64) temp_f3_5, (f32) 4503601774854144.0);
temp_r0_3 = arg0->unk110;
if ((s32) temp_r0_3 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0_3 * 0x14));
mathutil_mtxA_sq_from_identity();
}
mathutil_mtxA_tf_point(&sp4C, &sp1C);
temp_r4_5 = arg0->unk10E;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (temp_r4_5 * 0x84) + 0x54, (bitwise f32) temp_r4_5);
temp_r0_4 = arg0->unk110;
if ((s32) temp_r0_4 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0_4 * 0x14));
mathutil_mtxA_sq_from_identity();
}
mathutil_mtxA_tf_point(&sp4C, &sp10);
temp_f5_2 = sp1C - sp10;
temp_f3_6 = sp20 - sp14;
sp4C = temp_f5_2;
temp_f1_5 = sp24 - sp18;
sp50 = temp_f3_6;
sp54 = temp_f1_5;
sp68 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f31);
arg0->unk94 = sp4C;
arg0->unk98 = sp50;
arg0->unk9C = sp54;
arg0->unk54 = sp4C;
arg0->unk58 = sp50;
arg0->unk5C = sp54;
arg0->unk68 = 1;
arg0->unk1E = 0x31;
arg0->unk26 = 5;
arg0->unk30 = (s16) unksp6C;
phi_f1 = camera_sub_49(arg0, arg1, 5, 0x31, 1, sp54, sp4C, temp_f1_5, sp24, temp_f3_6, sp20, temp_f5_2);
}
return phi_f1;
}
f32 camera_sub_49(f32 *arg0, f32 *arg1, f32 arg8) {
f32 sp3C;
f32 sp38;
f32 sp34;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp1C;
f32 sp10;
f32 *temp_r3;
f32 temp_f0;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_r5;
f32 temp_r5_2;
s16 temp_r0;
s16 temp_r0_2;
s16 temp_r4;
s16 temp_r4_2;
s16 temp_ret;
s32 temp_r3_2;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r4 = arg0->unk10E;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (temp_r4 * 0x84) + 0x24, (bitwise f32) temp_r4);
temp_r0 = arg0->unk110;
if ((s32) temp_r0 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0 * 0x14));
mathutil_mtxA_sq_from_identity();
}
if (arg0->unk68 != 0) {
temp_r5 = arg0->unk0;
sp34 = temp_r5;
sp38 = arg0->unk4;
sp3C = arg0->unk8;
mathutil_mtxA_tf_point(arg0 + 0x114, arg0, temp_r5);
temp_r3 = &sp34;
arg0->unk94 = (f32) (arg0->unk0 - sp34);
arg0->unk98 = (f32) (arg0->unk4 - sp38);
arg0->unk9C = (f32) (arg0->unk8 - sp3C);
arg0->unk138 = (f32) ((f64) arg0->unk138 * 0.92);
arg0->unk13C = (f32) ((f64) arg0->unk13C * 0.92);
arg0->unk140 = (f32) ((f64) arg0->unk140 * 0.92);
sp34 = (f32) ((f64) arg1->unk4 + (12.0 * (f64) arg1->unk1C));
sp38 = (f32) ((f64) arg1->unk8 + (12.0 * (f64) arg1->unk20));
temp_f1 = arg1->unkC;
sp3C = (f32) ((f64) temp_f1 + (12.0 * (f64) arg1->unk24));
mathutil_mtxA_rigid_inv_tf_point((s32 *) temp_r3, &sp28, temp_f1, 12.0);
temp_f2 = arg0->unk138;
arg0->unk138 = (f32) ((f64) temp_f2 + (0.01 * (f64) ((sp28 - arg0->unk12C) - temp_f2)));
arg0->unk13C = (f32) ((f64) arg0->unk13C + (0.01 * (f64) ((sp2C - arg0->unk130) - arg0->unk138)));
temp_f2_2 = arg0->unk140;
arg0->unk140 = (f32) ((f64) temp_f2_2 + (0.01 * (f64) ((sp30 - arg0->unk134) - arg0->unk138)));
arg0->unk12C = (f32) (arg0->unk12C + arg0->unk138);
arg0->unk130 = (f32) (arg0->unk130 + arg0->unk13C);
temp_f1_2 = arg0->unk134;
arg0->unk134 = (f32) (temp_f1_2 + arg0->unk140);
temp_r5_2 = arg0->unkC;
sp34 = temp_r5_2;
sp38 = arg0->unk10;
sp3C = arg0->unk14;
mathutil_mtxA_tf_point(arg0 + 0x12C, arg0 + 0xC, temp_r5_2, temp_f1_2, temp_f2_2, 0.01);
arg0->unkA0 = (f32) (arg0->unkC - sp34);
arg0->unkA4 = (f32) (arg0->unk10 - sp38);
temp_f1_3 = arg0->unk14;
arg0->unkA8 = (f32) (temp_f1_3 - sp3C);
mathutil_mtxA_push(temp_f1_3);
mathutil_mtxA_tf_point(arg0 + 0x114, &sp1C);
temp_r4_2 = arg0->unk10E;
mathutil_mtxA_from_mtx(&lbl_80206E48 + (temp_r4_2 * 0x84) + 0x54, (bitwise f32) temp_r4_2);
temp_r0_2 = arg0->unk110;
if ((s32) temp_r0_2 >= 0) {
mathutil_mtxA_translate(decodedStageLzPtr->unk1C + (temp_r0_2 * 0x14));
mathutil_mtxA_sq_from_identity();
}
mathutil_mtxA_tf_point(arg0 + 0x114, &sp10);
sp34 = sp1C - sp10;
sp38 = sp20 - sp14;
sp3C = sp24 - sp18;
temp_r3_2 = arg0->unk6C;
if (temp_r3_2 > 0) {
arg0->unk6C = (s32) (temp_r3_2 - 1);
arg0->unk54 = sp34;
arg0->unk58 = sp38;
arg0->unk5C = sp3C;
} else if (mathutil_vec_dot_normalized_safe(&sp34, arg0 + 0x54) < 0.4f) {
arg0->unk68 = 0;
}
mathutil_mtxA_pop();
} else {
arg0->unk94 = (f32) (arg0->unk94 * 0.96f);
arg0->unk98 = (f32) (arg0->unk98 * 0.92f);
arg0->unk9C = (f32) (arg0->unk9C * 0.96f);
arg0->unk0 += arg0->unk94;
arg0->unk4 = (f32) (arg0->unk4 + arg0->unk98);
arg0->unk8 = (f32) (arg0->unk8 + arg0->unk9C);
arg0->unkA0 = (f32) ((f64) arg0->unkA0 * 0.92);
arg0->unkA4 = (f32) ((f64) arg0->unkA4 * 0.92);
arg0->unkA8 = (f32) ((f64) arg0->unkA8 * 0.92);
sp28 = (f32) ((f64) arg1->unk4 + (12.0 * (f64) arg1->unk1C));
sp2C = (f32) ((f64) arg1->unk8 + (12.0 * (f64) arg1->unk20));
sp30 = (f32) ((f64) arg1->unkC + (12.0 * (f64) arg1->unk24));
temp_f2_3 = arg0->unkA0;
arg0->unkA0 = (f32) ((f64) temp_f2_3 + (0.01 * (f64) ((sp28 - arg0->unkC) - temp_f2_3)));
arg0->unkA4 = (f32) ((f64) arg0->unkA4 + (0.01 * (f64) ((sp2C - arg0->unk10) - arg0->unkA0)));
arg0->unkA8 = (f32) ((f64) arg0->unkA8 + (0.01 * (f64) ((sp30 - arg0->unk14) - arg0->unkA0)));
arg0->unkC = (f32) (arg0->unkC + arg0->unkA0);
arg0->unk10 = (f32) (arg0->unk10 + arg0->unkA4);
arg0->unk14 = (f32) (arg0->unk14 + arg0->unkA8);
}
sp34 = arg0->unkC - arg0->unk0;
sp38 = arg0->unk10 - arg0->unk4;
temp_f0 = arg0->unk14 - arg0->unk8;
sp3C = temp_f0;
arg0->unk1A = (s16) (mathutil_atan2(sp34, sp3C) - 0x8000);
temp_ret = mathutil_atan2(sp38, mathutil_sqrt((temp_f0 * temp_f0) + (sp34 * sp34)));
temp_f1_4 = (bitwise f32) temp_ret;
arg0->unk18 = temp_ret;
arg0->unk1C = 0;
phi_f1 = temp_f1_4;
}
return phi_f1;
}
void func_8001F524(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk50 = 0;
arg0->unk1E = 0x33;
}
f32 func_8001F560(s32 *arg0, f32 *arg1, f32 arg8) {
f64 sp20;
f32 sp18;
f32 sp14;
f32 sp10;
f32 temp_f0;
f32 temp_f1_2;
f64 temp_f1;
f32 phi_f1;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk50 = (s16) (arg0->unk50 + 1);
arg0->unk1A = (s16) (arg0->unk50 << 8);
mathutil_sin((arg0->unk50 << 7) + 0x4000);
sp20 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk18 = (s16) unksp24;
arg0->unk1C = 0;
arg0->unkC = (f32) arg1->unk4;
arg0->unk10 = (f32) (0.4 + (f64) arg1->unk8);
arg0->unk14 = (f32) arg1->unkC;
sp10 = 0.0f;
sp14 = 0.0f;
temp_f1 = 1.5 * mathutil_sin((arg0->unk50 << 7) + 0x4000, 0.4);
temp_f0 = (f32) (3.5 + temp_f1);
sp18 = temp_f0;
mathutil_mtxA_from_rotate_y(arg0->unk1A, temp_f1, 1.5);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
mathutil_mtxA_rotate_z((s32) arg0->unk1C);
mathutil_mtxA_tf_vec(&sp10, &sp10);
arg0->unk0 = arg0->unkC + 0.0f;
arg0->unk4 = (f32) (arg0->unk10 + 0.0f);
temp_f1_2 = arg0->unk14;
arg0->unk8 = (f32) (temp_f1_2 + temp_f0);
phi_f1 = temp_f1_2;
}
return phi_f1;
}
void func_8001F698(f32 *arg0, f32 *arg1) {
s32 sp34;
s32 sp30;
s32 sp2C;
s32 sp28;
s32 sp24;
s32 sp20;
s32 sp18;
s32 sp14;
s32 *sp10;
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f2;
f32 temp_f2_2;
f32 temp_f2_3;
f32 temp_f3;
f32 temp_f3_2;
f32 temp_f3_3;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f4_3;
s16 temp_r0;
s16 temp_r3;
s32 *temp_r5;
temp_r5 = lbl_8011023C.unk0;
sp10 = temp_r5;
sp14 = lbl_8011023C.unk4;
sp18 = lbl_8011023C.unk8;
camera_clear(temp_r5, &lbl_8011023C);
sp34 = rand() ^ 0x80000000;
sp30 = 0x43300000;
temp_f4 = (f32) (bitwise f64) sp30 - (f32) 4503601774854144.0;
temp_f3 = temp_f4 / 32767.0f;
temp_f2 = temp_f3 - 0.5f;
temp_f1 = 15.0f * temp_f2;
arg0->unk0 = arg1->unk4 + temp_f1;
sp2C = rand(temp_f1, temp_f2, (f64) temp_f3, (f64) temp_f4) ^ 0x80000000;
sp28 = 0x43300000;
temp_f4_2 = (f32) (bitwise f64) sp28 - (f32) 4503601774854144.0;
temp_f3_2 = temp_f4_2 / 32767.0f;
temp_f2_2 = 5.0f * temp_f3_2;
temp_f1_2 = arg1->unk8 + temp_f2_2;
arg0->unk4 = (f32) (1.0f + temp_f1_2);
sp24 = rand(temp_f1_2, temp_f2_2, (f64) temp_f3_2, (f64) temp_f4_2) ^ 0x80000000;
sp20 = 0x43300000;
temp_f4_3 = (f32) (bitwise f64) sp20 - (f32) 4503601774854144.0;
temp_f3_3 = temp_f4_3 / 32767.0f;
temp_f2_3 = temp_f3_3 - 0.5f;
temp_f1_3 = 15.0f * temp_f2_3;
arg0->unk8 = (f32) (arg1->unkC + temp_f1_3);
temp_r0 = (s16) rlwinm(rand(temp_f1_3, temp_f2_3, (f64) temp_f3_3, (f64) temp_f4_3), 1, 0x10, 0x1E);
arg0->unk1A = temp_r0;
arg0->unk6C = (s32) temp_r0;
temp_r3 = (s16) rlwinm(rand(), 0x1E, 0x13, 0x1F);
arg0->unk18 = temp_r3;
arg0->unk68 = (s32) temp_r3;
arg0->unk1C = 0;
arg0->unk70 = (s32) 0;
arg0->unk8C = (s32) ((arg1->unk2A + 0x10000) - 0x8000);
if (arg1->unkFC->unk10 == 2) {
arg0->unk88 = -0xCC1;
arg0->unk90 = 0;
mathutil_mtxA_from_translate(arg0);
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
mathutil_mtxA_tf_point((f32 *) &sp10, arg0 + 0xC);
arg0->unk50 = 0x5A;
arg0->unk52 = 0x5A;
arg0->unk1E = 0x39;
return;
}
arg0->unk88 = -0x6D9;
arg0->unk90 = 0;
mathutil_mtxA_from_translate(arg0);
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
mathutil_mtxA_tf_point((f32 *) &sp10, arg0 + 0xC);
arg0->unk50 = 0x5A;
arg0->unk52 = 0x5A;
arg0->unk1E = 0x39;
}
f32 func_8001F864(f32 *arg0, f32 *arg1, f32 arg8) {
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
s32 sp54;
s32 sp50;
s32 sp4C;
s32 sp48;
f64 sp40;
s32 sp3C;
s32 sp38;
s32 sp34;
s32 sp30;
f64 sp28;
f32 sp24;
f32 sp20;
f32 sp1C;
s32 sp18;
s32 sp14;
f32 sp10;
f32 temp_f1_2;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f3;
f64 temp_f1;
s16 temp_r3;
s32 temp_r4;
s32 temp_r5_2;
s32 temp_r6;
s32 temp_r6_2;
void *temp_r5;
f32 phi_f1;
sp1C = lbl_80110248.unk0;
sp20 = lbl_80110248.unk4;
sp24 = lbl_80110248.unk8;
temp_r5 = &lbl_80110004 + 0x254;
sp10 = lbl_80110004.unk254;
sp14 = temp_r5->unk0;
sp18 = temp_r5->unk8;
phi_f1 = arg8;
if ((lbl_802F1EE0 & 0xA) == 0) {
temp_r3 = arg0->unk50;
if ((s32) temp_r3 > 0) {
arg0->unk50 = (s16) (temp_r3 - 1);
}
temp_r4 = arg0->unk50 ^ 0x80000000;
sp64 = temp_r4;
sp5C = arg0->unk52 ^ 0x80000000;
sp60 = 0x43300000;
sp58 = 0x43300000;
temp_f3 = ((f32) (bitwise f64) sp60 - (f32) 4503601774854144.0) / ((f32) (bitwise f64) sp58 - (f32) 4503601774854144.0);
temp_f1 = 3.0 + (-2.0 * (f64) temp_f3);
mathutil_mtxA_from_translate(arg1 + 4, (bitwise f64) temp_r4, temp_f1, 3.0, (f64) temp_f3, (f32) 4503601774854144.0);
mathutil_mtxA_rotate_y(arg1->unk2A);
mathutil_mtxA_tf_point(&sp1C, &sp1C);
temp_f1_2 = arg0->unk0;
arg0->unk0 = (f32) ((f64) temp_f1_2 + (0.05 * (f64) (sp1C - temp_f1_2)));
temp_f1_3 = arg0->unk4;
arg0->unk4 = (f32) ((f64) temp_f1_3 + (0.05 * (f64) (sp20 - temp_f1_3)));
temp_f1_4 = arg0->unk8;
arg0->unk8 = (f32) ((f64) temp_f1_4 + (0.05 * (f64) (sp24 - temp_f1_4)));
temp_r6 = arg0->unk6C;
sp54 = temp_r6 ^ 0x80000000;
sp4C = (arg0->unk8C - temp_r6) ^ 0x80000000;
sp48 = 0x43300000;
sp50 = 0x43300000;
sp40 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk1A = (s16) unksp44;
temp_r6_2 = arg0->unk68;
temp_r5_2 = temp_r6_2 ^ 0x80000000;
sp3C = temp_r5_2;
sp38 = 0x43300000;
sp34 = (s16) (arg0->unk88 - temp_r6_2) ^ 0x80000000;
sp30 = 0x43300000;
sp28 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk18 = (s16) unksp2C;
arg0->unk1C = 0;
mathutil_mtxA_from_translate(arg0, (bitwise f64) unksp2C, (bitwise f64) temp_r5_2, (bitwise f64) temp_r6_2, (bitwise f64) sp38 - 4503601774854144.0, (f32) 4503601774854144.0, (f32) (1.0 - (f64) (f32) (temp_f1 * (f64) (temp_f3 * temp_f3))));
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
phi_f1 = mathutil_mtxA_tf_point(&sp10, arg0 + 0xC);
}
return phi_f1;
}
f32 func_8001FAA4(s32 *arg0, f32 arg8) {
if ((lbl_802F1EE0 & 0xA) == 0) {
arg0->unk4 = 1.097f;
arg0->unk8 = 2.793f;
arg0->unkC = 0.0f;
arg0->unk10 = 1.51f;
arg0->unk14 = -0.876f;
return arg8;
}
return arg8;
}
void func_8001FADC(s32 *arg0) {
arg0->unk0 = 0.0f;
arg0->unk4 = 1.0f;
arg0->unk8 = 0.0f;
arg0->unk14 = 0.0f;
arg0->unk10 = 0.0f;
arg0->unkC = 0.0f;
arg0->unk1A = 0;
arg0->unk18 = -0x4000;
arg0->unk1C = 0;
}
void func_8001FB14(s32 *arg0, f32 *arg1) {
f32 sp24;
f32 sp18;
s16 sp14;
s16 sp12;
s16 sp10;
func_8001FF2C(&sp24, &sp18, &sp14, &sp12, &sp10, NULL);
arg0->unk0 = sp24;
arg0->unk4 = sp28;
arg0->unk8 = sp2C;
arg0->unkC = sp18;
arg0->unk10 = sp1C;
arg0->unk14 = sp20;
arg0->unk18 = sp14;
arg0->unk1A = sp12;
arg0->unk1C = sp10;
arg0->unk1E = 0x45;
}
void func_8001FBA8(f32 *arg0, f32 *arg1) {
s32 sp8C;
s32 sp88;
s32 sp84;
s32 sp80;
s32 sp7C;
s32 sp78;
s32 sp74;
s32 sp70;
f64 sp68;
s32 sp64;
s32 sp60;
s32 sp5C;
s32 sp58;
f64 sp50;
s32 sp4C;
s32 sp48;
s32 sp44;
s32 sp40;
f64 sp38;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp20;
f32 sp1C;
s16 sp18;
s16 sp16;
s16 sp14;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f2;
f32 temp_f7;
f64 temp_f1;
s8 temp_r0;
s32 phi_r3;
temp_r0 = (s8) cameraInfo.unk1E;
phi_r3 = 1;
if (((s32) temp_r0 != 0xA) && ((s32) temp_r0 != 0xB)) {
phi_r3 = 0;
}
if (phi_r3 != 0) {
func_80020334(arg0, arg1, &sp28, &sp1C, &sp18, &sp16, &sp14);
func_8001FF2C(arg0, arg1, (s16 *) arg0, (s16 *) (arg0 + 0xC), (s16 *) (arg0 + 0x18), arg0 + 0x1A, arg0 + 0x1C, 0);
sp8C = cameraInfo.unk50 ^ 0x80000000;
sp84 = cameraInfo.unk52 ^ 0x80000000;
sp88 = 0x43300000;
sp80 = 0x43300000;
temp_f7 = ((f32) (bitwise f64) sp88 - (f32) 4503601774854144.0) / ((f32) (bitwise f64) sp80 - (f32) 4503601774854144.0);
temp_f2 = (f32) ((3.0 + (-2.0 * (f64) temp_f7)) * (f64) (temp_f7 * temp_f7));
temp_f1 = 1.0 - (f64) temp_f2;
arg0->unk0 = (f32) (((f64) arg0->unk0 * temp_f1) + (f64) (sp28 * temp_f2));
arg0->unk4 = (f32) (((f64) arg0->unk4 * temp_f1) + (f64) (sp2C * temp_f2));
arg0->unk8 = (f32) (((f64) arg0->unk8 * temp_f1) + (f64) (sp30 * temp_f2));
arg0->unkC = (f32) (((f64) arg0->unkC * temp_f1) + (f64) (sp1C * temp_f2));
arg0->unk10 = (f32) (((f64) arg0->unk10 * temp_f1) + (f64) (sp20 * temp_f2));
arg0->unk14 = (f32) (((f64) arg0->unk14 * temp_f1) + (f64) (sp24 * temp_f2));
sp7C = sp18 ^ 0x80000000;
sp78 = 0x43300000;
sp74 = (s16) (arg0->unk18 - sp18) ^ 0x80000000;
sp70 = 0x43300000;
sp68 = MIPS2C_ERROR(unknown instruction: fctiwz $f2, $f2);
arg0->unk18 = (s16) unksp6C;
sp64 = sp16 ^ 0x80000000;
sp60 = 0x43300000;
sp5C = (s16) (arg0->unk1A - sp16) ^ 0x80000000;
sp58 = 0x43300000;
sp50 = MIPS2C_ERROR(unknown instruction: fctiwz $f2, $f2);
arg0->unk1A = (s16) unksp54;
sp4C = sp14 ^ 0x80000000;
sp48 = 0x43300000;
sp44 = (s16) (arg0->unk1C - sp14) ^ 0x80000000;
sp40 = 0x43300000;
sp38 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
arg0->unk1C = (s16) unksp3C;
return;
}
func_8001FF2C(arg0, arg1, (s16 *) &sp28, (s16 *) &sp1C, (s16 *) (arg0 + 0x18), arg0 + 0x1A, arg0 + 0x1C, 0);
temp_f0 = sp28 - arg0->unk0;
sp28 = temp_f0;
temp_f0_2 = sp2C - arg0->unk4;
sp2C = temp_f0_2;
temp_f0_3 = sp30 - arg0->unk8;
sp30 = temp_f0_3;
arg0->unk0 = (f32) ((f64) arg0->unk0 + (0.2 * (f64) temp_f0));
arg0->unk4 = (f32) ((f64) arg0->unk4 + (0.2 * (f64) temp_f0_2));
arg0->unk8 = (f32) ((f64) arg0->unk8 + (0.2 * (f64) temp_f0_3));
temp_f0_4 = sp20 - arg0->unk10;
sp20 = temp_f0_4;
arg0->unkC = (f32) arg0->unk0;
arg0->unk10 = (f32) ((f64) arg0->unk10 + (0.2 * (f64) temp_f0_4));
arg0->unk14 = (f32) arg0->unk8;
}
void func_8001FF2C(f32 *arg0, f32 *arg1, s16 *arg2, f32 *arg3, s16 *arg4, s16 *arg5, f32 *arg6, s32 arg7) {
s32 sp74;
s32 sp70;
f32 sp4C;
f32 sp48;
f32 sp44;
f32 sp40;
f32 sp3C;
f32 sp38;
f32 sp34;
f32 sp30;
f32 sp2C;
f32 sp28;
f32 temp_f0;
f32 temp_f0_2;
f32 temp_f0_3;
f32 temp_f0_4;
f32 temp_f0_5;
f32 temp_f0_6;
f32 temp_f1;
f32 temp_f2;
f32 temp_f31;
f32 temp_f6;
f64 temp_f5;
f32 phi_f31;
f32 phi_f31_2;
f32 phi_f31_3;
f32 phi_f31_4;
MIPS2C_ERROR(unknown instruction: mtctr $r0);
if ((lbl_80205E60.unk94 & 0x1800) != 0) {
sp28 = lbl_80205E60.unk150;
sp2C = lbl_80205E60.unk154;
sp30 = lbl_80205E60.unk158;
} else {
sp74 = lbl_80205E60.unk14E ^ 0x80000000;
sp70 = 0x43300000;
temp_f6 = ((f32) (bitwise f64) sp70 - (f32) 4503601774854144.0) / 30.0f;
temp_f5 = 1.0 - (f64) temp_f6;
sp28 = (f32) (((f64) lbl_80205E60.unk4 * temp_f5) + (f64) (lbl_80205E60.unk150 * temp_f6));
sp2C = (f32) (((f64) lbl_80205E60.unk8 * temp_f5) + (f64) (lbl_80205E60.unk154 * temp_f6));
sp30 = (f32) (((f64) lbl_80205E60.unkC * temp_f5) + (f64) (lbl_80205E60.unk158 * temp_f6));
}
if (0 == 0) {
sp34 = sp28;
sp40 = sp28;
sp38 = sp2C;
sp44 = sp2C;
sp3C = sp30;
sp48 = sp30;
} else {
if (sp28 > sp40) {
sp40 = sp28;
}
if (sp2C > sp44) {
sp44 = sp2C;
}
if (sp30 > sp48) {
sp48 = sp30;
}
if (sp28 < sp34) {
sp34 = sp28;
}
if (sp2C < sp38) {
sp38 = sp2C;
}
if (sp30 < sp3C) {
sp3C = sp30;
}
}
sp4C.unk0 = sp28;
sp4C.unk4 = sp2C;
sp4C.unk8 = sp30;
MIPS2C_ERROR(unknown instruction: bdnz lbl_8001FF84);
sp28 = (f32) (0.5 * (f64) (sp40 + sp34));
sp2C = sp44;
sp30 = (f32) (0.5 * (f64) (sp48 + sp3C));
if (arg7 == 1) {
sp28 -= arg0->unkC;
sp2C -= arg0->unk10;
sp30 -= arg0->unk14;
arg3->unk0 = (f32) ((0.2 * (f64) sp28) + (f64) arg0->unkC);
arg3->unk4 = (f32) ((0.2 * (f64) sp2C) + (f64) arg0->unk10);
arg3->unk8 = (f32) ((0.2 * (f64) sp30) + (f64) arg0->unk14);
} else {
arg3->unk0 = sp28;
arg3->unk4 = sp2C;
arg3->unk8 = sp30;
}
temp_f0 = arg3->unk0 - sp4C;
sp28 = temp_f0;
sp30 = arg3->unk8 - sp54;
temp_f0_2 = (sp30 * sp30) + (temp_f0 * temp_f0);
phi_f31 = 0.0f;
if (temp_f0_2 > 0.0f) {
phi_f31 = temp_f0_2;
}
temp_f0_3 = arg3->unk0 - sp58;
sp28 = temp_f0_3;
sp30 = arg3->unk8 - sp60;
temp_f0_4 = (sp30 * sp30) + (temp_f0_3 * temp_f0_3);
phi_f31_2 = phi_f31;
if (temp_f0_4 > phi_f31) {
phi_f31_2 = temp_f0_4;
}
temp_f0_5 = arg3->unk0 - sp64;
sp28 = temp_f0_5;
sp30 = arg3->unk8 - sp6C;
temp_f0_6 = (sp30 * sp30) + (temp_f0_5 * temp_f0_5);
phi_f31_3 = phi_f31_2;
if (temp_f0_6 > phi_f31_2) {
phi_f31_3 = temp_f0_6;
}
temp_f31 = (f32) (2.3 * mathutil_sqrt(phi_f31_3));
phi_f31_4 = temp_f31;
if (temp_f31 < (f32) 15.0) {
phi_f31_4 = 15.0f;
}
mathutil_mtxA_from_translate(arg3);
mathutil_mtxA_rotate_y(decodedStageLzPtr->unk10->unkE + 0x4000);
mathutil_mtxA_rotate_x(-0x4000);
mathutil_mtxA_translate_xyz(0.0f, 0.0f, phi_f31_4);
temp_f2 = *(f32 *)0xE0000000;
temp_f1 = *(f32 *)0xE000001C;
*arg2 = temp_f2;
*(arg2 + 4) = temp_f1;
*(arg2 + 8) = *(f32 *)0xE000002C;
mathutil_mtxA_to_euler_yxz(arg5, arg4, arg6, temp_f1, temp_f2);
}
void func_80020334(f32 *arg1, f32 *arg2, f32 *arg3, s16 *arg4, s16 *arg5, f32 *arg6) {
f32 sp30;
f32 sp2C;
f32 sp28;
f32 sp24;
f32 temp_f1;
f32 temp_f2;
? *phi_r4;
phi_r4 = &lbl_80177214;
loop_4:
if (phi_r4->unk0 <= 0) {
sp24 = lbl_8020ADD4.unk0;
sp28 = lbl_8020ADD4.unk4;
sp2C = lbl_8020ADD4.unk8;
sp30 = lbl_8020ADD4.unkC;
if (sp30 < (f32) 31.25) {
sp30 = 31.25f;
}
} else if (phi_r4->unk0 == (s32) currStageId) {
sp24 = phi_r4->unk4;
sp28 = phi_r4->unk8;
sp2C = phi_r4->unkC;
sp30 = phi_r4->unk10;
} else {
phi_r4 += 0x14;
goto loop_4;
}
arg3->unk0 = sp24;
arg3->unk4 = sp28;
arg3->unk8 = sp2C;
mathutil_mtxA_from_translate(arg3);
mathutil_mtxA_rotate_y(decodedStageLzPtr->unk10->unkE + 0x4000);
mathutil_mtxA_rotate_x(-0x4000);
mathutil_mtxA_translate_xyz(0.0f, 0.0f, (f32) (1.2 * (f64) sp30));
temp_f2 = *(f32 *)0xE0000000;
temp_f1 = *(f32 *)0xE000001C;
*arg2 = temp_f2;
*(arg2 + 4) = temp_f1;
*(arg2 + 8) = *(f32 *)0xE000002C;
mathutil_mtxA_to_euler_yxz(arg5, arg4, arg6, temp_f1, temp_f2);
}
void func_8002049C(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk26 = 0;
arg0->unk28 = 0.0f;
arg0->unk2C = 0.0f;
arg0->unk30 = 0x2AAA;
if (func_8009D7CC() == 0) {
arg0->unk50 = (s16) (func_8009D7E8() * 0x110);
}
camera_sub_71(arg0, arg1);
arg0->unk1E = 0x47;
}
f32 camera_sub_71(s32 *arg0, f32 *arg1, f32 arg8) {
s32 sp24;
s32 sp20;
f32 sp10;
f32 temp_f1_3;
f32 temp_f1_4;
f32 temp_f2;
f32 temp_f5;
f32 temp_f5_2;
f32 temp_f5_3;
f64 temp_f1;
f64 temp_f1_2;
s16 temp_r3_3;
s16 temp_r4;
s32 temp_r0;
s32 temp_r0_3;
s32 temp_r29;
s32 temp_r29_2;
s32 temp_r29_3;
s32 temp_r31;
s32 temp_r3;
s32 temp_r3_2;
s32 temp_ret;
s8 temp_r0_2;
f64 phi_f5;
s32 phi_r3;
u8 *phi_r8;
s32 phi_r9;
f32 phi_f1;
phi_f1 = arg8;
if (((lbl_802F1EE0 & 0xA) == 0) || ((s32) arg0->unk1E != 0x47)) {
temp_ret = func_8009D7E8();
temp_r3 = temp_ret;
temp_r31 = temp_r3 | temp_r3;
phi_f1 = (bitwise f32) temp_ret;
if (temp_r31 > 0) {
temp_r29 = temp_r31 * 0x110;
temp_r4 = arg0->unk50;
if ((s32) temp_r4 < temp_r29) {
temp_r0 = (s32) MULT_HI(0x78780000, temp_r4) >> 7;
temp_r3_2 = temp_r0 + ((u32) temp_r0 >> 1U);
temp_r29_2 = temp_r4 - (temp_r3_2 * 0x110);
if (temp_r31 > 2) {
if (temp_r3_2 != 2) {
if (temp_r3_2 < 2) {
if (temp_r3_2 != 0) {
if (temp_r3_2 < 0) {
} else {
func_8009D7FC(0, &sp10);
}
} else {
func_8009D7FC(1, &sp10);
}
} else if (temp_r3_2 < 4) {
func_8009D7FC(3, &sp10);
}
} else {
func_8009D7FC(2, &sp10);
}
} else {
func_8009D7FC();
}
if (temp_r29_2 >= 0xCC) {
arg0->unk0 = (f32) sp10;
arg0->unk4 = (f32) (0.3 + (f64) sp14);
arg0->unk8 = (f32) ((f64) sp18 - 1.2);
arg0->unk18 = 0;
arg0->unk1A = -0x8000;
arg0->unk1C = 0;
} else {
sp24 = temp_r29_2 ^ 0x80000000;
sp20 = 0x43300000;
arg0->unk0 = (f32) sp10;
temp_f5 = ((f32) (bitwise f64) sp20 - (f32) 4503601774854144.0) / 204.0f;
temp_f5_2 = (f32) ((3.0 + (-2.0 * (f64) temp_f5)) * (f64) (temp_f5 * temp_f5));
temp_f1 = 1.0 - (f64) temp_f5_2;
arg0->unk4 = (f32) ((0.3 * (f64) temp_f5_2) + ((f64) sp14 - (0.75 * (f64) sp14 * temp_f1)));
arg0->unk8 = (f32) (((f64) sp18 - (1.2 * temp_f1)) - (1.2 * (f64) temp_f5_2));
arg0->unk18 = 0;
arg0->unk1A = -0x8000;
arg0->unk1C = 0;
}
} else {
func_8009D98C(&sp10);
arg0->unkC = sp10;
arg0->unk10 = (f32) (0.7 + (f64) sp14);
arg0->unk14 = sp18;
temp_r29_3 = arg0->unk50 - temp_r29;
if (temp_r29_3 < 8) {
sp24 = temp_r29_3 ^ 0x80000000;
sp20 = 0x43300000;
phi_f5 = (f64) (f32) ((f64) ((f32) (bitwise f64) sp20 - (f32) 4503601774854144.0) * 0.125);
} else {
phi_f5 = (f64) 1.0f;
}
temp_f1_2 = 1.0 - phi_f5;
arg0->unk0 = arg0->unkC;
arg0->unk4 = (f32) arg0->unk10;
temp_f5_3 = (f32) (1.0 - (temp_f1_2 * temp_f1_2));
arg0->unk8 = (f32) (((f64) arg0->unk14 - (1.0 - (f64) temp_f5_3)) - (3.0 * (f64) temp_f5_3));
arg0->unk18 = 0;
arg0->unk1A = -0x8000;
arg0->unk1C = 0;
}
func_8009DB6C(mathutilData);
mathutil_mtxA_translate(arg0);
mathutil_mtxA_rotate_y(arg0->unk1A);
mathutil_mtxA_rotate_x((s32) arg0->unk18);
mathutil_mtxA_rotate_z((s32) arg0->unk1C);
temp_f2 = *(f32 *)0xE0000000;
temp_f1_3 = *(f32 *)0xE000001C;
arg0->unk0 = temp_f2;
*(arg0 + 4) = temp_f1_3;
*(arg0 + 8) = *(f32 *)0xE000002C;
mathutil_mtxA_to_euler_yxz(arg0 + 0x1A, (s16 *) (arg0 + 0x18), (f32 *) (arg0 + 0x1C), temp_f1_3, temp_f2);
temp_f1_4 = mathutil_mtxA_tf_point_xyz(arg0 + 0xC, 0.0f, 0.0f, -1.0f);
arg0->unk50 = (s16) (arg0->unk50 + 1);
phi_r3 = 0;
phi_r8 = spritePoolInfo.unkC;
phi_r9 = 0;
loop_29:
if (phi_r3 < spritePoolInfo.unk8) {
temp_r0_2 = (s8) *phi_r8;
if (((s32) temp_r0_2 == 2) || ((s32) temp_r0_2 == 4)) {
MIPS2C_ERROR(unknown instruction: addic $r0, $r5, -0x1);
phi_r9 |= MIPS2C_ERROR(unknown instruction: subfe $r0, $r0, $r5);
}
phi_r3 += 1;
phi_r8 += 1;
goto loop_29;
}
if (phi_r9 != 0) {
temp_r3_3 = arg0->unk50;
if ((s32) temp_r3_3 > 8) {
temp_r0_3 = temp_r31 * 0x110;
if ((s32) temp_r3_3 < temp_r0_3) {
arg0->unk50 = (s16) temp_r0_3;
}
}
}
phi_f1 = temp_f1_4;
if ((s32) arg0->unk50 > 0x880) {
arg0->unk50 = 0x880;
phi_f1 = temp_f1_4;
}
}
}
return phi_f1;
}
void func_80020910(s32 *arg0, f32 *arg1) {
camera_clear();
arg0->unk26 = 0;
arg0->unk28 = 0.0f;
arg0->unk2C = 0.0f;
arg0->unk30 = 0xB60;
camera_sub_73(arg0, arg1);
arg0->unk1E = 0x49;
}
void camera_sub_73(s32 *arg0, f32 *arg1) {
f32 sp1C;
f32 sp18;
f32 sp14;
f32 sp10;
? *phi_r4;
phi_r4 = &lbl_80177214;
loop_4:
if (phi_r4->unk0 <= 0) {
sp10 = lbl_8020ADD4.unk0;
sp14 = lbl_8020ADD4.unk4;
sp18 = lbl_8020ADD4.unk8;
sp1C = lbl_8020ADD4.unkC;
if (sp1C < (f32) 31.25) {
sp1C = 31.25f;
}
} else if (phi_r4->unk0 == (s32) currStageId) {
sp10 = phi_r4->unk4;
sp14 = phi_r4->unk8;
sp18 = phi_r4->unkC;
sp1C = phi_r4->unk10;
} else {
phi_r4 += 0x14;
goto loop_4;
}
arg0->unkC = sp10;
arg0->unk10 = sp14;
arg0->unk14 = sp18;
arg0->unk0 = sp10;
arg0->unk4 = (f32) ((f64) sp14 - (5.0 * (f64) sp1C));
arg0->unk8 = sp18;
mathutil_mtxA_from_identity(5.0, sp14, sp18);
mathutil_mtxA_rotate_x(0x4000);
mathutil_mtxA_to_euler_yxz(arg0 + 0x1A, arg0 + 0x18, arg0 + 0x1C);
}
s32 *func_80020A88(s32 *arg0, f32 *arg1) {
u32 temp_r12;
temp_r12 = minigameRelCameraCallback;
if (temp_r12 != 0U) {
((? (*)()) temp_r12)();
}
return arg0;
}
void func_80020AB8(f32 *arg0, s32 *arg1, f32 arg8, f32 arg9, f32 argA, f32 argB) {
f64 sp30;
f32 sp20;
f64 temp_f27;
s16 temp_r26;
s32 temp_r30;
f64 phi_f28;
s16 phi_r26;
s16 phi_r25;
s16 phi_r30;
s16 phi_r29;
f32 phi_f27;
lbl_801EFC18.unk0 = (s32) arg0->unk0;
lbl_801EFC18.unk4 = (s32) arg0->unk4;
lbl_801EFC18.unk8 = (s32) arg0->unk8;
phi_f27 = saved_reg_f27;
if (argB == 0.0f) {
sp30 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
phi_r30 = (s16) MIPS2C_ERROR(unknown instruction: addze $r3, $r3);
phi_r29 = (s16) MIPS2C_ERROR(unknown instruction: addze $r0, $r0);
} else {
sp30 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
temp_f27 = mathutil_tan((s32) (s16) unksp34, 182.04445f);
temp_r30 = -mathutil_atan((f32) (temp_f27 * (1.0 - (f64) argB)));
phi_r30 = (s16) temp_r30;
phi_r29 = mathutil_atan((f32) (temp_f27 * (1.0 + (f64) argB)));
phi_f27 = (f32) temp_f27;
}
if (argA == 0.0f) {
sp30 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
mathutil_atan(arg9 * mathutil_tan((s32) (s16) unksp34, (f32) 182.04444885253906));
phi_r26 = (s16) MIPS2C_ERROR(unknown instruction: addze $r3, $r3);
phi_r25 = (s16) MIPS2C_ERROR(unknown instruction: addze $r0, $r0);
} else {
if (argB == 0.0f) {
sp30 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
phi_f28 = (f64) (arg9 * mathutil_tan((s32) (s16) unksp34, 182.04445f));
} else {
phi_f28 = (f64) (phi_f27 * arg9);
}
temp_r26 = mathutil_atan((f32) (phi_f28 * (1.0 + (f64) argA)));
phi_r26 = temp_r26;
phi_r25 = (s16) -mathutil_atan((f32) (phi_f28 * (1.0 - (f64) argA)));
}
mathutil_mtxA_from_translate(arg0);
mathutil_mtxA_rotate_y(arg1->unk2);
mathutil_mtxA_rotate_x((s32) arg1->unk0);
mathutil_mtxA_rotate_z((s32) arg1->unk4);
mathutil_sin_cos_v((s16) phi_r26 - 0x4000, &sp20);
lbl_801EFC18.unk3C = (f32) -sp20;
lbl_801EFC18.unk40 = 0.0f;
lbl_801EFC18.unk44 = (f32) -sp24;
mathutil_mtxA_tf_vec(&lbl_801EFC18 + 0x3C, &lbl_801EFC18 + 0xC);
mathutil_sin_cos_v((s16) phi_r25 + 0x4000, &sp20);
lbl_801EFC18.unk48 = (f32) -sp20;
lbl_801EFC18.unk4C = 0.0f;
lbl_801EFC18.unk50 = (f32) -sp24;
mathutil_mtxA_tf_vec(&lbl_801EFC18 + 0x48, &lbl_801EFC18 + 0x18);
mathutil_sin_cos_v((s16) phi_r30 + 0x4000, &sp20);
lbl_801EFC18.unk54 = 0.0f;
lbl_801EFC18.unk58 = (f32) -sp20;
lbl_801EFC18.unk5C = (f32) -sp24;
mathutil_mtxA_tf_vec(&lbl_801EFC18 + 0x54, &lbl_801EFC18 + 0x24);
mathutil_sin_cos_v((s16) phi_r29 - 0x4000, &sp20);
lbl_801EFC18.unk60 = 0.0f;
lbl_801EFC18.unk64 = (f32) -sp20;
lbl_801EFC18.unk68 = (f32) -sp24;
mathutil_mtxA_tf_vec(&lbl_801EFC18 + 0x60, &lbl_801EFC18 + 0x30);
}
? func_80020DB4(void *arg0, f32 arg8) {
f32 temp_f3;
f32 temp_f5;
f32 temp_f6;
f32 temp_f7;
void *temp_r5;
void *temp_r5_2;
void *temp_r5_3;
temp_f7 = -arg8;
temp_r5 = &lbl_801EFC18 + 0xC;
temp_f5 = arg0->unk0 - lbl_801EFC18.unk0;
temp_f6 = arg0->unk4 - lbl_801EFC18.unk4;
temp_f3 = arg0->unk8 - lbl_801EFC18.unk8;
if (((temp_f3 * lbl_801EFC18.unk14) + ((temp_f5 * lbl_801EFC18.unkC) + (temp_f6 * lbl_801EFC18.unk10))) < temp_f7) {
return 0;
}
temp_r5_2 = temp_r5 + 0xC;
if (((temp_f3 * temp_r5->unk14) + ((temp_f5 * temp_r5->unkC) + (temp_f6 * temp_r5->unk10))) < temp_f7) {
return 0;
}
temp_r5_3 = temp_r5_2 + 0xC;
if (((temp_f3 * temp_r5_2->unk14) + ((temp_f5 * temp_r5_2->unkC) + (temp_f6 * temp_r5_2->unk10))) < temp_f7) {
return 0;
}
if (((temp_f3 * temp_r5_3->unk14) + ((temp_f5 * temp_r5_3->unkC) + (temp_f6 * temp_r5_3->unk10))) < temp_f7) {
return 0;
}
return 1;
}
? func_80020EB4(s32 arg1, f32 arg8) {
f32 sp10;
f32 temp_f31;
void *temp_r3;
void *temp_r3_2;
mathutil_mtxA_tf_point(&sp10);
if (sp18 > arg8) {
return 0;
}
temp_f31 = -arg8;
if (((sp18 * lbl_801EFC54.unk8) + ((sp10 * lbl_801EFC54.unk0) + (sp14 * lbl_801EFC54.unk4))) < temp_f31) {
return 0;
}
temp_r3 = &lbl_801EFC54 + 0xC;
if (((sp18 * temp_r3->unk8) + ((sp10 * lbl_801EFC54.unkC) + (sp14 * temp_r3->unk4))) < temp_f31) {
return 0;
}
temp_r3_2 = temp_r3 + 0xC;
if (((sp18 * temp_r3->unk14) + ((sp10 * temp_r3->unkC) + (sp14 * temp_r3->unk10))) < temp_f31) {
return 0;
}
if (((sp18 * temp_r3_2->unk14) + ((sp10 * temp_r3_2->unkC) + (sp14 * temp_r3_2->unk10))) < temp_f31) {
return 0;
}
return 1;
}
? func_80020FD0(s32 arg1, f32 arg8, f32 arg9) {
f32 sp14;
f32 temp_f30;
f32 temp_f30_2;
void *temp_r3;
void *temp_r3_2;
mathutil_mtxA_tf_point(&sp14);
temp_f30 = arg8 * arg9;
if (sp1C > temp_f30) {
return 0;
}
temp_f30_2 = -temp_f30;
if (((sp1C * lbl_801EFC54.unk8) + ((sp14 * lbl_801EFC54.unk0) + (sp18 * lbl_801EFC54.unk4))) < temp_f30_2) {
return 0;
}
temp_r3 = &lbl_801EFC54 + 0xC;
if (((sp1C * temp_r3->unk8) + ((sp14 * lbl_801EFC54.unkC) + (sp18 * temp_r3->unk4))) < temp_f30_2) {
return 0;
}
temp_r3_2 = temp_r3 + 0xC;
if (((sp1C * temp_r3->unk14) + ((sp14 * temp_r3->unkC) + (sp18 * temp_r3->unk10))) < temp_f30_2) {
return 0;
}
if (((sp1C * temp_r3_2->unk14) + ((sp14 * temp_r3_2->unkC) + (sp18 * temp_r3_2->unk10))) < temp_f30_2) {
return 0;
}
return 1;
}
f32 func_800210FC(s32 arg0, s32 arg1, f32 arg8) {
? *phi_r31;
phi_r31 = &lbl_8017748C;
loop_4:
if ((s32) (s8) phi_r31->unk0 != -1) {
if ((s32) phi_r31->unk8 == arg0) {
func_80022140(phi_r31);
}
phi_r31 += 0x4C;
goto loop_4;
}
return arg8;
}
s8 func_80021164(s32 arg0, s32 arg1, s32 arg2) {
void *temp_r3;
void *temp_r3_2;
void *temp_r3_3;
void *temp_r3_4;
void *temp_r3_5;
MIPS2C_ERROR(unknown instruction: mtctr $r7);
if (lbl_802F1C48 > 0) {
if (((s32) (s8) lbl_801EFC94.unk1 == arg1) && ((s32) lbl_801EFC94.unk2 == arg2)) {
return (s8) 0;
}
MIPS2C_ERROR(unknown instruction: bdnz lbl_80021184);
goto block_5;
}
block_5:
if (arg0 == 1) {
return -1;
}
MIPS2C_ERROR(unknown instruction: mtctr $r0);
if ((s8) lbl_801EFC94.unk0 == 0) {
return (s8) 0;
}
temp_r3 = &lbl_801EFC94 + 0x4C;
if ((s8) lbl_801EFC94.unk4C == 0) {
return (s8) 1;
}
temp_r3_2 = temp_r3 + 0x4C;
if ((s8) temp_r3->unk4C == 0) {
return (s8) 2;
}
temp_r3_3 = temp_r3_2 + 0x4C;
if ((s8) temp_r3_2->unk4C == 0) {
return (s8) 3;
}
temp_r3_4 = temp_r3_3 + 0x4C;
if ((s8) temp_r3_3->unk4C == 0) {
return (s8) 4;
}
temp_r3_5 = temp_r3_4 + 0x4C;
if ((s8) temp_r3_4->unk4C == 0) {
return (s8) 5;
}
if ((s8) temp_r3_5->unk4C == 0) {
return (s8) 6;
}
if ((s8) (temp_r3_5 + 0x4C)->unk4C == 0) {
return (s8) 7;
}
MIPS2C_ERROR(unknown instruction: bdnz lbl_800211D8);
return -1;
}
f32 func_800212A8(u8 *arg0, s32 arg1, f32 arg8) {
f32 *temp_r3;
f32 phi_f1;
phi_f1 = arg8;
if ((u32) (s8) arg0->unk4 <= 8U) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
arg0->unk30 = 0.0f;
arg0->unk2C = 0.0f;
arg0->unk34 = -1.0f;
mathutil_mtxA_from_identity();
mathutil_mtxA_rotate_y(arg0->unk26);
mathutil_mtxA_rotate_x((s32) arg0->unk24);
temp_r3 = arg0 + 0x2C;
mathutil_mtxA_tf_vec(temp_r3, temp_r3);
arg0->unk2C = (f32) (arg0->unk2C * 10000.0f);
arg0->unk30 = (f32) (arg0->unk30 * 10000.0f);
arg0->unk34 = (f32) (arg0->unk34 * 10000.0f);
phi_f1 = 10000.0f;
}
return phi_f1;
}
void func_80021398(s16 *arg0, s32 arg1, void *arg2) {
f64 sp80;
f64 sp78;
f64 sp70;
f32 sp68;
f32 sp64;
f32 sp60;
s8 sp5B;
s8 sp5A;
s8 sp59;
s8 sp58;
? sp18;
s32 sp14;
f32 temp_f3;
f32 temp_f4;
f32 temp_f4_2;
f32 temp_f4_3;
f32 temp_f6;
s32 *temp_r4;
s8 temp_r0;
u8 temp_r3;
f32 phi_f3;
f64 phi_f0;
sp80 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
sp58 = (s8) unksp84;
sp78 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
sp59 = (s8) unksp7C;
sp70 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
sp5A = (s8) unksp74;
sp5B = 0xFF;
if ((u32) (s8) arg2->unk4 <= 8U) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
GXInitLightSpot(&sp18, 0, 0.0f);
}
if (lbl_802F1C98 != 3) {
phi_f3 = arg2->unk38;
} else {
phi_f3 = arg2->unk38 * lbl_802F1C54;
}
temp_r3 = arg2->unk4;
temp_r0 = (s8) temp_r3;
if ((s32) temp_r0 < 5) {
if ((s32) temp_r0 < 3) {
if ((s32) temp_r0 < 0) {
} else {
if ((s8) temp_r3 == 0) {
} else {
sp70 = MIPS2C_ERROR(unknown instruction: fctiwz $f0, $f0);
}
GXInitLightDistAttn(&sp18, phi_f3 * arg2->unk3C, 0.05f + arg2->unk40);
}
} else {
temp_f3 = phi_f3 * phi_f3;
temp_f4 = 1.0f / temp_f3;
temp_f6 = arg2->unk3C;
GXInitLightAttnK(&sp18, temp_f6 * (-85.0f * temp_f4), arg2->unk40, arg2->unk44 + (0.95f / (0.05f * temp_f3)), temp_f4, -85.0f, temp_f6);
}
} else if ((s32) temp_r0 < 9) {
if ((s32) temp_r0 < 7) {
temp_f4_2 = -0.1f + arg2->unk44;
GXInitLightAttnK(&sp18, arg2->unk3C, arg2->unk40, temp_f4_2 * (0.95f / (0.05f * (phi_f3 * phi_f3))), temp_f4_2);
} else {
temp_f4_3 = arg2->unk3C;
GXInitLightAttnK(&sp18, -1.0f + temp_f4_3, arg2->unk40, (-0.1f + arg2->unk44) * (0.95f / (0.05f * (phi_f3 * phi_f3))), temp_f4_3, -1.0f);
}
}
temp_r4 = &sp14;
sp14 = (s32) sp58;
GXInitLightColor(&sp18, temp_r4);
if (lbl_802F1C98 != 3) {
phi_f0 = 0.0;
} else {
phi_f0 = (f64) (2.05f * ((1.0f / lbl_802F1C54) - 1.0f));
}
sp60 = arg2->unk18;
sp64 = arg2->unk1C + (f32) phi_f0;
sp68 = arg2->unk20;
if ((u32) (s8) arg2->unk4 <= 8U) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
mathutil_mtxA_tf_point(arg2 + 0x2C, &sp60);
GXInitLightPos(&sp18, sp60, sp64, sp68);
}
GXLoadLightObjImm(&sp18, 1 << arg1);
memcpy(arg0 + ((arg1 << 6) + 0x14), &sp18, 0x40);
}
void func_8002170C(s32 arg0, s32 arg1) {
s16 sp32;
s16 sp30;
f32 sp20;
f32 sp1C;
f32 sp18;
s8 sp10;
s16 spE;
s8 spD;
? spC;
s16 temp_r6;
void *temp_r4;
void *temp_r5;
s32 phi_r0;
s16 phi_r0_2;
temp_r6 = backgroundInfo;
phi_r0 = 1;
if (((s16) temp_r6 >= 0) && (arg0 != 0)) {
phi_r0 = 0;
}
if (phi_r0 != 0) {
phi_r0_2 = 0;
} else {
phi_r0_2 = temp_r6;
}
MIPS2C_ERROR(unknown instruction: mtctr $r0);
temp_r5 = &lbl_801EFC88 + 0x984;
temp_r4 = (&lbl_80180F64 + (phi_r0_2 * 0x48)) - 8;
temp_r5->unk8 = (s32) temp_r4->unk8;
(temp_r5 + 8)->unk4 = (s32) (temp_r4 + 8)->unk4;
MIPS2C_ERROR(unknown instruction: bdnz lbl_80021784);
if (((f32) 0.0 != lbl_801EFC88.unk9C0) || ((f32) 0.0 != lbl_801EFC88.unk9C4) || ((f32) 0.0 != lbl_801EFC88.unk9C8)) {
if (arg0 != 0) {
if ((arg0 == 0x63) && ((lbl_801EED2C.unk4 & 0x100) != 0)) {
lbl_801EFC88.unk9CE = 0x2000;
}
if ((u32) (s16) (gameSubmode - 0x41) <= 1U) {
lbl_801EFC88.unk9CC = 0;
lbl_801EFC88.unk9CE = 0x4000;
}
if (((s32) temp_r6 == 0xE) && (modeCtrl.unk30 > 1)) {
func_800225FC(0.4f, 0.6f, 0.9f);
}
if ((u32) (arg0 - 0x83) <= 0xEU) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
func_800225FC(0.4f, 0.35f, 0.5f);
}
if ((s32) backgroundInfo == 0x1B) {
if (modeCtrl.unk4 != 0) {
} else {
lbl_801EFC88.unk9CE = (s16) ((lbl_801EFC88.unk9CE + 0x10000) - 0x5000);
}
}
}
memset(&spC, 0, 0x4C);
spD = 1;
spE = 0;
sp10 = (s8) 0;
sp18 = *(&lbl_801EFC88 + 0x9C0);
sp1C = lbl_801EFC88.unk9C4;
sp20 = lbl_801EFC88.unk9C8;
sp30 = lbl_801EFC88.unk9CC;
sp32 = lbl_801EFC88.unk9CE;
func_80022140(&spC);
}
}
void func_80021958(s32 arg1) {
s16 *temp_r4;
s32 *temp_r28;
s32 temp_r25;
s32 temp_r26;
s32 temp_r26_2;
s32 temp_r31;
s32 temp_r6;
s32 temp_r6_2;
s8 temp_r3_2;
s8 temp_r3_3;
s8 temp_r3_4;
s8 temp_r3_5;
u8 temp_r0;
u8 temp_r0_2;
u8 temp_r0_3;
u8 temp_r0_4;
void *temp_r3;
void *temp_r7;
void *temp_r7_2;
void *temp_r7_3;
s16 *phi_r4;
s32 phi_r6;
s16 *phi_r4_2;
s32 phi_r6_2;
s16 *phi_r4_3;
s32 phi_r6_3;
void *phi_r30;
struct _struct_lbl_80110260_0x8 *phi_r25;
s32 phi_r26;
s32 phi_r26_2;
s32 phi_r30_2;
s16 *phi_r29;
s32 phi_r25_2;
s16 *phi_r27;
MIPS2C_ERROR(unknown instruction: mtctr $r0);
temp_r3 = &lbl_801EFC88 + 0x9D4;
temp_r3->unk0 = -1;
temp_r3->unk2 = -1;
temp_r3->unk4 = -1;
temp_r3->unk6 = -1;
temp_r3->unk8 = -1;
temp_r3->unkA = -1;
temp_r3->unkC = -1;
temp_r3->unkE = -1;
temp_r3->unk218 = (f32) lbl_801EFC88.unk990;
temp_r3->unk21C = (f32) lbl_801EFC88.unk994;
temp_r3->unk220 = (f32) lbl_801EFC88.unk998;
temp_r3->unk258 = -1;
temp_r3->unk25A = -1;
temp_r3->unk25C = -1;
temp_r3->unk25E = -1;
temp_r3->unk260 = -1;
temp_r3->unk262 = -1;
temp_r3->unk264 = -1;
temp_r3->unk266 = -1;
temp_r3->unk470 = (f32) lbl_801EFC88.unk990;
temp_r3->unk474 = (f32) lbl_801EFC88.unk994;
(temp_r3 + 0x258)->unk220 = (f32) lbl_801EFC88.unk998;
MIPS2C_ERROR(unknown instruction: bdnz lbl_8002197C);
MIPS2C_ERROR(unknown instruction: mtctr $r0);
temp_r7 = &lbl_801EFC88 + 0xC;
temp_r4 = &lbl_801EFC88 + 0x9D4;
phi_r4 = temp_r4;
phi_r6 = 0;
if ((((s8) temp_r7->unk0 == 0) || ((temp_r0 = temp_r7->unk1, temp_r3_2 = (s8) temp_r0, (((s32) temp_r3_2 == 1) == 0)) && ((s8) temp_r0 != 0) && ((s32) temp_r3_2 != 3)) || (*temp_r4 = (s16) 0, phi_r4 = temp_r4 + 2, phi_r6 = 1, ((1 == 8) == 0))) && ((temp_r7_2 = temp_r7 + 0x4C, phi_r4_2 = phi_r4, phi_r6_2 = phi_r6, (((s8) temp_r7->unk4C == 0) != 0)) || ((temp_r0_2 = temp_r7_2->unk1, temp_r3_3 = (s8) temp_r0_2, (((s32) temp_r3_3 == 1) == 0)) && ((s8) temp_r0_2 != 0) && ((s32) temp_r3_3 != 3)) || (temp_r6 = phi_r6 + 1, *phi_r4 = (s16) 1, phi_r4_2 = phi_r4 + 2, phi_r6_2 = temp_r6, ((temp_r6 == 8) == 0))) && ((temp_r7_3 = temp_r7_2 + 0x4C, phi_r4_3 = phi_r4_2, phi_r6_3 = phi_r6_2, (((s8) temp_r7_2->unk4C == 0) != 0)) || ((temp_r0_3 = temp_r7_3->unk1, temp_r3_4 = (s8) temp_r0_3, (((s32) temp_r3_4 == 1) == 0)) && ((s8) temp_r0_3 != 0) && ((s32) temp_r3_4 != 3)) || (temp_r6_2 = phi_r6_2 + 1, *phi_r4_2 = (s16) 2, phi_r4_3 = phi_r4_2 + 2, phi_r6_3 = temp_r6_2, ((temp_r6_2 == 8) == 0))) && (((s8) temp_r7_3->unk4C == 0) || ((temp_r0_4 = (temp_r7_3 + 0x4C)->unk1, temp_r3_5 = (s8) temp_r0_4, (((s32) temp_r3_5 == 1) == 0)) && ((s8) temp_r0_4 != 0) && ((s32) temp_r3_5 != 3)) || (*phi_r4_3 = (s16) 3, (((phi_r6_3 + 1) == 8) == 0)))) {
MIPS2C_ERROR(unknown instruction: bdnz lbl_80021A14);
}
if ((s8) lbl_801EFC88.unkC != 0) {
lbl_801EFC88.unkC2C = 0;
}
phi_r30 = &lbl_801EFC88 + (2 * 0x258) + 0x9D4;
phi_r25 = lbl_80110260 + 0x10;
phi_r26 = 2;
do {
memcpy(phi_r30, &lbl_801EFC88 + (phi_r25->unk0 * 0x258) + 0x9D4, 0x258);
temp_r26 = phi_r26 + 1;
phi_r30 += 0x258;
phi_r25 += 8;
phi_r26 = temp_r26;
} while (temp_r26 < 6);
temp_r28 = &lbl_801EFC88 + 0x9D0;
if ((u32) lbl_801EFC88.unk9D0 != 0U) {
phi_r26_2 = 7;
phi_r27 = &lbl_801EFC88 + 0x1A3C;
loop_27:
temp_r31 = (phi_r26_2 - 7) * 4;
if ((u32) *(*temp_r28 + temp_r31) != 0U) {
phi_r30_2 = 0;
phi_r29 = phi_r27;
phi_r25_2 = 0;
loop_29:
if ((s32) (s8) (*(temp_r31 + *temp_r28) + phi_r30_2)->unk0 != -1) {
temp_r25 = phi_r25_2 + 1;
*phi_r29 = (s16) (s8) func_80021164(1);
phi_r30_2 += 2;
phi_r29 += 2;
phi_r25_2 = temp_r25;
if (temp_r25 < 8) {
goto loop_29;
}
}
temp_r26_2 = phi_r26_2 + 1;
phi_r26_2 = temp_r26_2;
phi_r27 += 0x258;
if (temp_r26_2 < 0x16) {
goto loop_27;
}
}
}
}
void func_80021C44(s16 *arg0, s32 arg1) {
s32 sp3C;
f32 sp38;
s32 sp34;
f32 sp30;
s32 sp2C;
f32 sp28;
? sp24;
? sp20;
f32 sp1C;
u8 sp18;
s32 sp14;
s32 sp10;
f32 spC;
f32 temp_f4;
f32 temp_r3_2;
s16 temp_r0;
void *temp_r3;
s32 phi_r5;
temp_r0 = *arg0;
phi_r5 = 1;
if ((s32) temp_r0 == -1) {
phi_r5 = 0;
} else {
temp_r3 = &lbl_801EFC94 + (temp_r0 * 0x4C);
if (((s8) temp_r3->unk0 == 0) || ((s8) temp_r3->unk4 != 0)) {
phi_r5 = 0;
}
}
if (phi_r5 != 0) {
GXGetLightPos(arg0 + 0x14, &sp1C, &sp20, &sp24);
GXGetLightColor(arg0 + 0x14, &sp18);
func_8008E574(&sp1C);
sp3C = (s32) sp18;
sp34 = (s32) sp19;
sp2C = (s32) sp1A;
sp38 = 176.0f;
sp30 = 176.0f;
sp28 = 176.0f;
temp_f4 = (f32) (f64) sp38 - (f32) 4503599627370496.0;
func_8008E5B8(sp19, 176.0f, sp18, temp_f4 / 255.0f, ((f32) (f64) sp30 - (f32) 4503599627370496.0) / 255.0f, ((f32) (f64) sp28 - (f32) 4503599627370496.0) / 255.0f, temp_f4, 4503599627370496.0);
return;
}
if (func_8009D5D8() != 0) {
temp_r3_2 = lbl_80110310.unk0;
spC = temp_r3_2;
sp10 = lbl_80110310.unk4;
sp14 = lbl_80110310.unk8;
mathutil_mtxA_push(temp_r3_2, &lbl_80110310);
mathutil_mtxA_from_rotate_y(currentCameraStructPtr->unk1A);
mathutil_mtxA_tf_vec(&spC, &spC);
mathutil_mtxA_pop();
func_8008E574(&spC);
func_8008E5B8((bitwise u8) 1.0f, 1.0f, (bitwise u8) 1.0f);
return;
}
func_8008E5B8((bitwise u8) 0.0f, 0.0f, (bitwise u8) 0.0f);
}
void func_80021DB4(s32 arg0, s32 arg1) {
s32 temp_r28;
? *phi_r27;
s32 phi_r28;
? *phi_r29;
phi_r27 = &lbl_801EFC94;
phi_r28 = 0;
do {
memset(phi_r27, 0, 0x4C);
phi_r27->unk0 = 0;
temp_r28 = phi_r28 + 1;
phi_r27->unk1 = 0;
phi_r27->unk2 = (s16) 0;
phi_r27->unk4 = 1;
phi_r27->unk38 = 2.0f;
phi_r27->unk3C = 1.0f;
phi_r27->unk40 = 0.0f;
phi_r27->unk44 = 0.0f;
phi_r27->unk6 = 3;
phi_r27->unk48 = 45.0f;
phi_r27 += 0x4C;
phi_r28 = temp_r28;
} while (temp_r28 < 0x20);
lbl_802F1C48 = 0;
func_8002170C(arg0);
phi_r29 = &lbl_8017748C;
loop_6:
if ((s32) (s8) phi_r29->unk0 != -1) {
if ((s32) phi_r29->unk8 == arg0) {
func_80022140(phi_r29);
}
phi_r29 += 0x4C;
goto loop_6;
}
if (arg0 == 0) {
lbl_802F1C7C = (s32) currStageId;
return;
}
lbl_802F1C7C = arg0;
}
void func_80021ECC(s32 arg1) {
s32 temp_r29;
void *temp_r29_2;
u8 *phi_r28;
s32 phi_r29;
lbl_802F1C58 = 0;
func_8000E428((s32 (*)[]) lbl_80177358, lbl_801EFC88.unk9A0, lbl_801EFC88.unk9A4, lbl_801EFC88.unk9A8);
func_8000E3BC();
lbl_802F1C48 = 0;
phi_r28 = &lbl_801EFC88 + 0xC;
phi_r29 = 0;
do {
if ((s8) *phi_r28 != 0) {
func_800212A8(phi_r28);
lbl_802F1C48 = phi_r29 + 1;
}
temp_r29 = phi_r29 + 1;
phi_r28 += 0x4C;
phi_r29 = temp_r29;
} while (temp_r29 < 0x20);
lbl_802F1C98 = -1;
lbl_802F1C4C = -1;
lbl_801EFC88.unk0 = -1;
lbl_801EFC88.unk4 = -1;
lbl_801EFC88.unk8 = -1;
lbl_802F1C50 = 0;
lbl_802F1C54 = 1.0f;
lbl_802F1C68 = (s32) 0U;
lbl_802F1C64 = (s32) 0U;
lbl_802F1C60 = (s32) 0U;
lbl_802F1C5C = (s32) 0U;
if (lbl_802F1C78 == 0) {
func_80021958();
}
mathutil_mtxA_from_mtxB();
func_80022274(0);
if (lbl_802F1C88 != 0) {
temp_r29_2 = &lbl_801EFC88 + (lbl_802F1C94 * 0x4C) + 0xC;
printf(&lbl_802F03EC);
printf((lbl_80177358 + 0x10000) - 0x66CC, (s8) temp_r29_2->unk0, lbl_80177358[(s8) temp_r29_2->unk1].unk98, lbl_802F1C94);
printf((lbl_80177358 + 0x10000) - 0x66B8, (s8) lbl_80177358[(s8) temp_r29_2->unk4].unk5C, (bitwise f32) temp_r29_2->unk6, (s32) currStageId);
printf((lbl_80177358 + 0x10000) - 0x66A4, (bitwise s8) temp_r29_2->unkC, temp_r29_2->unk10, (bitwise s32) temp_r29_2->unk14);
printf((lbl_80177358 + 0x10000) - 0x66A4, (bitwise s8) temp_r29_2->unk18, temp_r29_2->unk1C, (bitwise s32) temp_r29_2->unk20);
printf((lbl_80177358 + 0x10000) - 0x6690, (s8) temp_r29_2->unk24, (bitwise f32) temp_r29_2->unk26, (s32) temp_r29_2->unk28, temp_r29_2->unk2C, temp_r29_2->unk30, temp_r29_2->unk34);
printf((lbl_80177358 + 0x10000) - 0x666C, (bitwise s8) temp_r29_2->unk38, temp_r29_2->unk3C, (bitwise s32) temp_r29_2->unk40);
printf((lbl_80177358 + 0x10000) - 0x665C, (bitwise s8) temp_r29_2->unk44, temp_r29_2->unk48);
printf(&lbl_802F03F0);
lbl_802F1C88 = 0;
}
if (lbl_802F1C84 != 0) {
if (lbl_802F1C7C == (s32) currStageId) {
memcpy(&lbl_801EFC88 + (lbl_802F1C94 * 0x4C) + 0xC, &lbl_801EFC88 + (lbl_802F1C80 * 0x4C) + 0xC, 0x4C);
} else {
func_800210FC();
}
lbl_802F1C84 = 0;
}
}
? func_80022140(? *arg0, s32 arg1) {
f32 temp_f1;
f32 temp_f1_2;
f32 temp_f1_3;
s8 temp_r31;
void *temp_r30;
f32 phi_f1;
f32 phi_f0;
f32 phi_f0_2;
temp_r31 = (s8) func_80021164(0, (s32) (s8) arg0->unk1, (s32) arg0->unk2);
if ((s32) temp_r31 == -1) {
return 0;
}
temp_r30 = &lbl_801EFC94 + (temp_r31 * 0x4C);
memcpy(temp_r30, arg0, 0x4C);
temp_r30->unk0 = 1;
temp_f1 = arg0->unk3C;
phi_f1 = temp_f1;
phi_f0 = 0.0f;
phi_f0_2 = 0.0f;
if (temp_f1 == 0.0f) {
phi_f1 = 1.0f;
}
temp_r30->unk3C = phi_f1;
temp_f1_2 = arg0->unk40;
if (temp_f1_2 == 0.0f) {
} else {
phi_f0 = temp_f1_2;
}
temp_r30->unk40 = phi_f0;
temp_f1_3 = arg0->unk44;
if (temp_f1_3 == 0.0f) {
} else {
phi_f0_2 = temp_f1_3;
}
temp_r30->unk44 = phi_f0_2;
lbl_802F1C48 = temp_r31 + 1;
return 1;
}
void func_80022274(s32 arg0, s32 arg1) {
s16 *temp_r30;
s16 temp_r0;
s32 temp_r27;
s32 temp_r5;
struct _struct_lbl_80110260_0x8 *temp_r31;
s16 *phi_r28;
s32 phi_r27;
perf_init_timer(0);
temp_r5 = lbl_802F1C68;
lbl_802F1C98 = arg0;
lbl_802F1C68 = temp_r5 + 1;
temp_r30 = &lbl_801F065C + (arg0 * 0x258);
temp_r31 = &lbl_80110260[arg0];
mathutil_mtxA_to_mtx(temp_r30 + 0x224, arg0 * 8, temp_r5);
if ((temp_r31->unk0 != lbl_802F1C4C) || ((temp_r31->unk4 & 1) != 0)) {
temp_r30->unk214 = 0;
phi_r28 = temp_r30;
phi_r27 = 0;
do {
temp_r0 = *phi_r28;
if (((s32) temp_r0 != -1) && ((s8) *(&lbl_801EFC94 + (temp_r0 * 0x4C)) != 0)) {
func_80021398(temp_r30, phi_r27);
temp_r30->unk214 = (s32) (temp_r30->unk214 | (1 << phi_r27));
lbl_802F1C64 += 1;
}
temp_r27 = phi_r27 + 1;
phi_r28 += 2;
phi_r27 = temp_r27;
} while (temp_r27 < 8);
func_80033B34(temp_r30->unk214);
func_8008E56C(temp_r30->unk214);
}
if ((temp_r31->unk0 != lbl_802F1C4C) || ((temp_r31->unk4 & 2) != 0)) {
func_80022614(temp_r30->unk218, temp_r30->unk21C, temp_r30->unk220);
}
func_80021C44(temp_r30);
lbl_802F1C4C = temp_r31->unk0;
lbl_802F1C58 += perf_stop_timer(0);
}
s32 func_800223D0(void) {
return lbl_802F1C98;
}
void func_800223D8(s32 arg0, s32 arg1) {
s16 *temp_r27;
s32 temp_r28;
struct _struct_lbl_80110260_0x8 *temp_r29;
s32 phi_r28;
void *phi_r30;
perf_init_timer(0);
lbl_802F1C98 = arg0;
lbl_802F1C60 += 1;
temp_r29 = &lbl_80110260[arg0];
temp_r27 = &lbl_801F065C + (arg0 * 0x258);
if ((temp_r29->unk0 != lbl_802F1C4C) || ((temp_r29->unk4 & 1) != 0)) {
phi_r28 = 0;
phi_r30 = temp_r27 + (0 << 6);
do {
if ((temp_r27->unk214 & (1 << phi_r28)) != 0) {
GXLoadLightObjImm(phi_r30 + 0x14);
lbl_802F1C5C += 1;
}
temp_r28 = phi_r28 + 1;
phi_r28 = temp_r28;
phi_r30 += 0x40;
} while (temp_r28 < 8);
func_80033B34(temp_r27->unk214);
func_8008E56C(temp_r27->unk214);
}
func_80021C44(temp_r27);
lbl_802F1C4C = temp_r29->unk0;
lbl_802F1C58 += perf_stop_timer(0);
}
f32 func_800224CC(s32 arg1, f32 arg8) {
s8 temp_r0;
temp_r0 = (s8) lbl_802F1C50;
if ((s32) temp_r0 == 3) {
return printf(&lbl_80180DB0);
}
*(&lbl_801EFC88 + (temp_r0 * 4)) = lbl_802F1C98;
lbl_802F1C50 += 1;
return arg8;
}
void func_80022530(s32 arg1) {
u8 temp_r3;
temp_r3 = lbl_802F1C50;
if ((s8) temp_r3 == 0) {
printf(&lbl_80180DE0);
return;
}
lbl_802F1C50 = temp_r3 - 1;
mathutil_mtxA_push();
mathutil_mtxA_from_mtx(&lbl_801EFC88 + (*(&lbl_801EFC88 + ((s8) lbl_802F1C50 * 4)) * 0x258) + 0xBF8);
func_80022274(*(&lbl_801EFC88 + ((s8) lbl_802F1C50 * 4)));
mathutil_mtxA_pop();
}
void func_800225C0(s32 arg1) {
lbl_802F1C98 = -1;
lbl_802F1C4C = -1;
mathutil_mtxA_from_mtxB();
func_80022274(0);
}
s32 func_800225F4(s32 arg0, f32 arg8) {
lbl_802F1C54 = arg8;
return arg0;
}
void func_800225FC(f32 arg8, f32 arg9, f32 argA) {
lbl_801EFC88.unk990 = arg8;
lbl_801EFC88.unk994 = arg9;
lbl_801EFC88.unk998 = argA;
}
void func_80022614(f32 arg1, f32 arg8, f32 arg9, f32 argA) {
func_80033B3C();
func_8008E428(arg8, arg9, argA);
}
f32 func_80022668(void *arg0, f32 arg8) {
void *temp_r5;
temp_r5 = &lbl_801F065C + (lbl_802F1C98 * 0x258);
arg0->unk0 = (s32) temp_r5->unk218;
arg0->unk4 = (s32) temp_r5->unk21C;
arg0->unk8 = (s32) temp_r5->unk220;
return arg8;
}
void func_80022698(s32 arg1) {
s32 temp_r4;
void *temp_r31;
void *temp_r3;
temp_r4 = lbl_802F1C98;
temp_r3 = &lbl_801F065C + (temp_r4 * 0x258);
temp_r31 = temp_r3 + 0x218;
func_80033B3C(temp_r3, temp_r4, temp_r3->unk218, temp_r3->unk21C, temp_r3->unk220);
func_8008E428(temp_r31->unk0, temp_r31->unk4, temp_r31->unk8);
}
s32 func_800226F4(s32 arg0, s32 arg1) {
s32 temp_r3;
void *temp_r31;
void *temp_r3_2;
s32 phi_r3;
phi_r3 = arg0;
if (lbl_802F1C8C != 0) {
temp_r3 = lbl_802F1C94 * 0x4C;
temp_r31 = &lbl_801EFC94 + temp_r3;
phi_r3 = temp_r3;
if ((u32) (s8) temp_r31->unk4 <= 8U) {
MIPS2C_ERROR(unknown instruction: mtctr $r0);
MIPS2C_ERROR(unknown instruction: bctr );
temp_r3_2 = lbl_802F1B04->unk8 + 0x18;
temp_r3_2->unk30 = 1.0f;
temp_r3_2->unk34 = 0.0f;
temp_r3_2->unk38 = 0.0f;
mathutil_mtxA_from_mtxB(temp_r3_2);
mathutil_mtxA_translate(temp_r31 + 0x18);
mathutil_mtxA_scale_s((f32) (2.0 * (f64) temp_r31->unk38));
func_80030BA8((f32) (2.0 * (f64) temp_r31->unk38));
func_800314B8(lbl_802F1B04->unk8, 0.5f);
mathutil_mtxA_from_mtxB();
mathutil_mtxA_translate(temp_r31 + 0x18);
phi_r3 = func_80031210(lbl_802F1B04->unk8);
}
}
return phi_r3;
}
void func_800228A8(s32 arg1) {
f32 temp_f0;
func_8002170C((s32) &lbl_801EFC88);
lbl_801EFC88.unk3D64 = (f32) lbl_801EFC88.unk99C;
lbl_801EFC88.unk3D68 = (f32) lbl_801EFC88.unk9A0;
lbl_801EFC88.unk3D6C = (f32) lbl_801EFC88.unk9A4;
lbl_801EFC88.unk3D70 = (f32) lbl_801EFC88.unk9A8;
lbl_801EFC88.unk99C = 0.0f;
temp_f0 = lbl_802F2FD0;
lbl_801EFC88.unk9A0 = temp_f0;
lbl_801EFC88.unk9A4 = temp_f0;
lbl_801EFC88.unk9A8 = temp_f0;
}
void func_80022910(s32 arg1) {
func_8002170C((s32) &lbl_801EFC88);
lbl_801EFC88.unk3D64 = (f32) lbl_801EFC88.unk99C;
lbl_801EFC88.unk3D68 = (f32) lbl_801EFC88.unk9A0;
lbl_801EFC88.unk3D6C = (f32) lbl_801EFC88.unk9A4;
lbl_801EFC88.unk3D70 = (f32) lbl_801EFC88.unk9A8;
lbl_801EFC88.unk99C = 0.0f;
lbl_801EFC88.unk9A0 = 0.5f;
lbl_801EFC88.unk9A4 = 0.5f;
lbl_801EFC88.unk9A8 = 0.5f;
}
void setup_vtx_attrib_fmt(s32 arg1) {
GXClearVtxDesc();
func_8009A9A8();
GXSetVtxAttrFmt(0, 9, 1, 4, 0);
GXSetVtxAttrFmt(0, 0xA, 0, 4, 0);
GXSetVtxAttrFmt(0, 0xB, 1, 5, 0);
GXSetVtxAttrFmt(0, 0xD, 1, 4, 0);
GXSetVtxAttrFmt(0, 0xE, 1, 4, 0);
GXSetVtxAttrFmt(0, 0xF, 1, 4, 0);
GXSetVtxAttrFmt(0, 0x10, 1, 4, 0);
GXSetVtxAttrFmt(0, 0x11, 1, 4, 0);
GXSetVtxAttrFmt(0, 0x12, 1, 4, 0);
GXSetVtxAttrFmt(0, 0x13, 1, 4, 0);
GXSetVtxAttrFmt(0, 0x14, 1, 4, 0);
GXSetVtxAttrFmt(1, 9, 1, 3, 0xD);
GXSetVtxAttrFmt(1, 0xA, 0, 3, 0xE);
GXSetVtxAttrFmt(1, 0xB, 1, 5, 0);
GXSetVtxAttrFmt(1, 0xD, 1, 3, 0xD);
GXSetVtxAttrFmt(1, 0xE, 1, 3, 0xD);
GXSetVtxAttrFmt(1, 0xF, 1, 3, 0xD);
GXSetVtxAttrFmt(1, 0x10, 1, 4, 0);
GXSetVtxAttrFmt(1, 0x11, 1, 4, 0);
GXSetVtxAttrFmt(1, 0x12, 1, 4, 0);
GXSetVtxAttrFmt(1, 0x13, 1, 4, 0);
GXSetVtxAttrFmt(1, 0x14, 1, 4, 0);
GXSetVtxAttrFmt(7, 9, 1, 4, 0);
GXSetVtxAttrFmt(7, 0xD, 1, 4, 0);
}
This file has been truncated, but you can view the full file.
.include "macros.inc"
.section .text, "ax" # 0x800065A0 - 0x8010F860
.global camera_init
camera_init:
/* 80017780 000136A0 7C 08 02 A6 */ mflr r0
/* 80017784 000136A4 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80017788 000136A8 90 01 00 04 */ stw r0, 4(r1)
/* 8001778C 000136AC 38 C3 EF 00 */ addi r6, r3, cameraInfo@l
/* 80017790 000136B0 39 06 02 84 */ addi r8, r6, 0x284
/* 80017794 000136B4 94 21 FF F8 */ stwu r1, -8(r1)
/* 80017798 000136B8 38 00 FF FF */ li r0, -1
/* 8001779C 000136BC 38 E0 00 00 */ li r7, 0
/* 800177A0 000136C0 C0 42 84 18 */ lfs f2, lbl_802F2C18@sda21(r2)
/* 800177A4 000136C4 38 A0 00 03 */ li r5, 3
/* 800177A8 000136C8 C0 22 84 1C */ lfs f1, lbl_802F2C1C@sda21(r2)
/* 800177AC 000136CC 38 80 00 00 */ li r4, 0
/* 800177B0 000136D0 90 CD 9A 5C */ stw r6, currentCameraStructPtr@sda21(r13)
/* 800177B4 000136D4 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 800177B8 000136D8 39 08 02 84 */ addi r8, r8, 0x284
/* 800177BC 000136DC 90 0D 9A 60 */ stw r0, lbl_802F1C40@sda21(r13)
/* 800177C0 000136E0 38 60 00 00 */ li r3, 0
/* 800177C4 000136E4 90 0D 9A 54 */ stw r0, lbl_802F1C34@sda21(r13)
/* 800177C8 000136E8 38 00 2A AA */ li r0, 0x2aaa
/* 800177CC 000136EC 90 E6 02 04 */ stw r7, 0x204(r6)
/* 800177D0 000136F0 38 E0 00 01 */ li r7, 1
/* 800177D4 000136F4 98 A6 00 1E */ stb r5, 0x1e(r6)
/* 800177D8 000136F8 98 A6 02 08 */ stb r5, 0x208(r6)
/* 800177DC 000136FC 98 86 00 26 */ stb r4, 0x26(r6)
/* 800177E0 00013700 D0 46 00 28 */ stfs f2, 0x28(r6)
/* 800177E4 00013704 D0 46 00 2C */ stfs f2, 0x2c(r6)
/* 800177E8 00013708 B0 06 00 30 */ sth r0, 0x30(r6)
/* 800177EC 0001370C B0 06 00 32 */ sth r0, 0x32(r6)
/* 800177F0 00013710 D0 26 00 34 */ stfs f1, 0x34(r6)
/* 800177F4 00013714 D0 46 00 40 */ stfs f2, 0x40(r6)
/* 800177F8 00013718 D0 46 00 44 */ stfs f2, 0x44(r6)
/* 800177FC 0001371C D0 06 00 48 */ stfs f0, 0x48(r6)
/* 80017800 00013720 D0 06 00 4C */ stfs f0, 0x4c(r6)
/* 80017804 00013724 90 E6 04 88 */ stw r7, 0x488(r6)
/* 80017808 00013728 38 E0 00 02 */ li r7, 2
/* 8001780C 0001372C 98 A6 02 A2 */ stb r5, 0x2a2(r6)
/* 80017810 00013730 98 A6 04 8C */ stb r5, 0x48c(r6)
/* 80017814 00013734 98 86 02 AA */ stb r4, 0x2aa(r6)
/* 80017818 00013738 D0 46 02 AC */ stfs f2, 0x2ac(r6)
/* 8001781C 0001373C D0 46 02 B0 */ stfs f2, 0x2b0(r6)
/* 80017820 00013740 B0 06 02 B4 */ sth r0, 0x2b4(r6)
/* 80017824 00013744 B0 06 02 B6 */ sth r0, 0x2b6(r6)
/* 80017828 00013748 D0 26 02 B8 */ stfs f1, 0x2b8(r6)
/* 8001782C 0001374C D0 46 02 C4 */ stfs f2, 0x2c4(r6)
/* 80017830 00013750 D0 46 02 C8 */ stfs f2, 0x2c8(r6)
/* 80017834 00013754 D0 06 02 CC */ stfs f0, 0x2cc(r6)
/* 80017838 00013758 D0 06 02 D0 */ stfs f0, 0x2d0(r6)
/* 8001783C 0001375C 90 E6 07 0C */ stw r7, 0x70c(r6)
/* 80017840 00013760 38 E0 00 03 */ li r7, 3
/* 80017844 00013764 98 A6 05 26 */ stb r5, 0x526(r6)
/* 80017848 00013768 98 A6 07 10 */ stb r5, 0x710(r6)
/* 8001784C 0001376C 98 86 05 2E */ stb r4, 0x52e(r6)
/* 80017850 00013770 D0 48 00 28 */ stfs f2, 0x28(r8)
/* 80017854 00013774 D0 48 00 2C */ stfs f2, 0x2c(r8)
/* 80017858 00013778 B0 08 00 30 */ sth r0, 0x30(r8)
/* 8001785C 0001377C B0 08 00 32 */ sth r0, 0x32(r8)
/* 80017860 00013780 D0 28 00 34 */ stfs f1, 0x34(r8)
/* 80017864 00013784 D0 48 00 40 */ stfs f2, 0x40(r8)
/* 80017868 00013788 D0 48 00 44 */ stfs f2, 0x44(r8)
/* 8001786C 0001378C D0 08 00 48 */ stfs f0, 0x48(r8)
/* 80017870 00013790 D0 08 00 4C */ stfs f0, 0x4c(r8)
/* 80017874 00013794 90 E8 04 88 */ stw r7, 0x488(r8)
/* 80017878 00013798 38 E0 00 04 */ li r7, 4
/* 8001787C 0001379C 98 A8 02 A2 */ stb r5, 0x2a2(r8)
/* 80017880 000137A0 98 A8 04 8C */ stb r5, 0x48c(r8)
/* 80017884 000137A4 98 88 02 AA */ stb r4, 0x2aa(r8)
/* 80017888 000137A8 39 08 02 84 */ addi r8, r8, 0x284
/* 8001788C 000137AC D0 48 00 28 */ stfs f2, 0x28(r8)
/* 80017890 000137B0 D0 48 00 2C */ stfs f2, 0x2c(r8)
/* 80017894 000137B4 B0 08 00 30 */ sth r0, 0x30(r8)
/* 80017898 000137B8 B0 08 00 32 */ sth r0, 0x32(r8)
/* 8001789C 000137BC D0 28 00 34 */ stfs f1, 0x34(r8)
/* 800178A0 000137C0 D0 48 00 40 */ stfs f2, 0x40(r8)
/* 800178A4 000137C4 D0 48 00 44 */ stfs f2, 0x44(r8)
/* 800178A8 000137C8 D0 08 00 48 */ stfs f0, 0x48(r8)
/* 800178AC 000137CC D0 08 00 4C */ stfs f0, 0x4c(r8)
/* 800178B0 000137D0 90 E8 04 88 */ stw r7, 0x488(r8)
/* 800178B4 000137D4 98 A8 02 A2 */ stb r5, 0x2a2(r8)
/* 800178B8 000137D8 98 A8 04 8C */ stb r5, 0x48c(r8)
/* 800178BC 000137DC 98 88 02 AA */ stb r4, 0x2aa(r8)
/* 800178C0 000137E0 39 08 02 84 */ addi r8, r8, 0x284
/* 800178C4 000137E4 D0 48 00 28 */ stfs f2, 0x28(r8)
/* 800178C8 000137E8 D0 48 00 2C */ stfs f2, 0x2c(r8)
/* 800178CC 000137EC B0 08 00 30 */ sth r0, 0x30(r8)
/* 800178D0 000137F0 B0 08 00 32 */ sth r0, 0x32(r8)
/* 800178D4 000137F4 D0 28 00 34 */ stfs f1, 0x34(r8)
/* 800178D8 000137F8 D0 48 00 40 */ stfs f2, 0x40(r8)
/* 800178DC 000137FC D0 48 00 44 */ stfs f2, 0x44(r8)
/* 800178E0 00013800 D0 08 00 48 */ stfs f0, 0x48(r8)
/* 800178E4 00013804 D0 08 00 4C */ stfs f0, 0x4c(r8)
/* 800178E8 00013808 48 00 0A 49 */ bl func_80018330
/* 800178EC 0001380C 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800178F0 00013810 38 21 00 08 */ addi r1, r1, 8
/* 800178F4 00013814 7C 08 03 A6 */ mtlr r0
/* 800178F8 00013818 4E 80 00 20 */ blr
.global ev_camera_init
ev_camera_init:
/* 800178FC 0001381C 7C 08 02 A6 */ mflr r0
/* 80017900 00013820 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80017904 00013824 90 01 00 04 */ stw r0, 4(r1)
/* 80017908 00013828 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 8001790C 0001382C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80017910 00013830 DB E1 00 18 */ stfd f31, 0x18(r1)
/* 80017914 00013834 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80017918 00013838 3B E0 2A AA */ li r31, 0x2aaa
/* 8001791C 0001383C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80017920 00013840 3B C0 00 00 */ li r30, 0
/* 80017924 00013844 93 A1 00 0C */ stw r29, 0xc(r1)
/* 80017928 00013848 3B A0 00 00 */ li r29, 0
/* 8001792C 0001384C 93 81 00 08 */ stw r28, 8(r1)
/* 80017930 00013850 7C 1C 03 78 */ mr r28, r0
/* 80017934 00013854 C3 E2 84 18 */ lfs f31, lbl_802F2C18@sda21(r2)
lbl_80017938:
/* 80017938 00013858 B3 DC 00 24 */ sth r30, 0x24(r28)
/* 8001793C 0001385C 7F 83 E3 78 */ mr r3, r28
/* 80017940 00013860 48 00 11 B1 */ bl camera_clear
/* 80017944 00013864 9B DC 00 26 */ stb r30, 0x26(r28)
/* 80017948 00013868 3B BD 00 01 */ addi r29, r29, 1
/* 8001794C 0001386C 2C 1D 00 04 */ cmpwi r29, 4
/* 80017950 00013870 D3 FC 00 28 */ stfs f31, 0x28(r28)
/* 80017954 00013874 D3 FC 00 2C */ stfs f31, 0x2c(r28)
/* 80017958 00013878 B3 FC 00 30 */ sth r31, 0x30(r28)
/* 8001795C 0001387C 3B 9C 02 84 */ addi r28, r28, 0x284
/* 80017960 00013880 41 80 FF D8 */ blt lbl_80017938
/* 80017964 00013884 38 60 00 00 */ li r3, 0
/* 80017968 00013888 48 00 09 C9 */ bl func_80018330
/* 8001796C 0001388C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80017970 00013890 CB E1 00 18 */ lfd f31, 0x18(r1)
/* 80017974 00013894 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80017978 00013898 7C 08 03 A6 */ mtlr r0
/* 8001797C 0001389C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80017980 000138A0 83 A1 00 0C */ lwz r29, 0xc(r1)
/* 80017984 000138A4 83 81 00 08 */ lwz r28, 8(r1)
/* 80017988 000138A8 38 21 00 20 */ addi r1, r1, 0x20
/* 8001798C 000138AC 4E 80 00 20 */ blr
.global ev_camera_main
ev_camera_main:
/* 80017990 000138B0 7C 08 02 A6 */ mflr r0
/* 80017994 000138B4 90 01 00 04 */ stw r0, 4(r1)
/* 80017998 000138B8 94 21 FF 40 */ stwu r1, -0xc0(r1)
/* 8001799C 000138BC DB E1 00 B8 */ stfd f31, 0xb8(r1)
/* 800179A0 000138C0 DB C1 00 B0 */ stfd f30, 0xb0(r1)
/* 800179A4 000138C4 DB A1 00 A8 */ stfd f29, 0xa8(r1)
/* 800179A8 000138C8 DB 81 00 A0 */ stfd f28, 0xa0(r1)
/* 800179AC 000138CC DB 61 00 98 */ stfd f27, 0x98(r1)
/* 800179B0 000138D0 DB 41 00 90 */ stfd f26, 0x90(r1)
/* 800179B4 000138D4 DB 21 00 88 */ stfd f25, 0x88(r1)
/* 800179B8 000138D8 DB 01 00 80 */ stfd f24, 0x80(r1)
/* 800179BC 000138DC DA E1 00 78 */ stfd f23, 0x78(r1)
/* 800179C0 000138E0 DA C1 00 70 */ stfd f22, 0x70(r1)
/* 800179C4 000138E4 DA A1 00 68 */ stfd f21, 0x68(r1)
/* 800179C8 000138E8 BE 81 00 38 */ stmw r20, 0x38(r1)
/* 800179CC 000138EC 80 8D 9C FC */ lwz r4, dipSwitches@sda21(r13)
/* 800179D0 000138F0 54 80 07 FF */ clrlwi. r0, r4, 0x1f
/* 800179D4 000138F4 41 82 00 7C */ beq lbl_80017A50
/* 800179D8 000138F8 54 80 04 E7 */ rlwinm. r0, r4, 0, 0x13, 0x13
/* 800179DC 000138FC 41 82 00 20 */ beq lbl_800179FC
/* 800179E0 00013900 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 800179E4 00013904 38 63 3B 70 */ addi r3, r3, lbl_801F3B70@l
/* 800179E8 00013908 A0 03 00 18 */ lhz r0, 0x18(r3)
/* 800179EC 0001390C 54 00 05 29 */ rlwinm. r0, r0, 0, 0x14, 0x14
/* 800179F0 00013910 41 82 00 0C */ beq lbl_800179FC
/* 800179F4 00013914 68 80 20 00 */ xori r0, r4, 0x2000
/* 800179F8 00013918 90 0D 9C FC */ stw r0, dipSwitches@sda21(r13)
lbl_800179FC:
/* 800179FC 0001391C 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 80017A00 00013920 A4 03 3B 70 */ lhzu r0, lbl_801F3B70@l(r3)
/* 80017A04 00013924 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 80017A08 00013928 41 82 00 48 */ beq lbl_80017A50
/* 80017A0C 0001392C A0 03 00 18 */ lhz r0, 0x18(r3)
/* 80017A10 00013930 54 00 05 29 */ rlwinm. r0, r0, 0, 0x14, 0x14
/* 80017A14 00013934 41 82 00 3C */ beq lbl_80017A50
/* 80017A18 00013938 80 6D 9C FC */ lwz r3, dipSwitches@sda21(r13)
/* 80017A1C 0001393C 54 60 04 E7 */ rlwinm. r0, r3, 0, 0x13, 0x13
/* 80017A20 00013940 41 82 00 10 */ beq lbl_80017A30
/* 80017A24 00013944 54 60 05 24 */ rlwinm r0, r3, 0, 0x14, 0x12
/* 80017A28 00013948 90 0D 9C FC */ stw r0, dipSwitches@sda21(r13)
/* 80017A2C 0001394C 48 00 00 24 */ b lbl_80017A50
lbl_80017A30:
/* 80017A30 00013950 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 80017A34 00013954 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 80017A38 00013958 41 82 00 18 */ beq lbl_80017A50
/* 80017A3C 0001395C 60 60 10 00 */ ori r0, r3, 0x1000
/* 80017A40 00013960 90 0D 9C FC */ stw r0, dipSwitches@sda21(r13)
/* 80017A44 00013964 80 0D 9C FC */ lwz r0, dipSwitches@sda21(r13)
/* 80017A48 00013968 54 00 04 E2 */ rlwinm r0, r0, 0, 0x13, 0x11
/* 80017A4C 0001396C 90 0D 9C FC */ stw r0, dipSwitches@sda21(r13)
lbl_80017A50:
/* 80017A50 00013970 3C 60 80 20 */ lis r3, spritePoolInfo@ha
/* 80017A54 00013974 C3 82 84 18 */ lfs f28, lbl_802F2C18@sda21(r2)
/* 80017A58 00013978 38 63 59 88 */ addi r3, r3, spritePoolInfo@l
/* 80017A5C 0001397C C3 A2 84 50 */ lfs f29, lbl_802F2C50@sda21(r2)
/* 80017A60 00013980 3C 80 80 1F */ lis r4, cameraInfo@ha
/* 80017A64 00013984 82 C3 00 0C */ lwz r22, 0xc(r3)
/* 80017A68 00013988 3C 60 80 20 */ lis r3, lbl_80205E60@ha
/* 80017A6C 0001398C CB 62 84 48 */ lfd f27, lbl_802F2C48@sda21(r2)
/* 80017A70 00013990 39 04 EF 00 */ addi r8, r4, cameraInfo@l
/* 80017A74 00013994 CB 42 84 30 */ lfd f26, lbl_802F2C30@sda21(r2)
/* 80017A78 00013998 38 03 5E 60 */ addi r0, r3, lbl_80205E60@l
/* 80017A7C 0001399C CB 02 84 38 */ lfd f24, lbl_802F2C38@sda21(r2)
/* 80017A80 000139A0 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 80017A84 000139A4 CA C2 84 28 */ lfd f22, lbl_802F2C28@sda21(r2)
/* 80017A88 000139A8 3C A0 80 20 */ lis r5, lbl_80206BF0@ha
/* 80017A8C 000139AC CA E2 84 68 */ lfd f23, lbl_802F2C68@sda21(r2)
/* 80017A90 000139B0 3C E0 80 17 */ lis r7, lbl_80176200@ha
/* 80017A94 000139B4 C3 22 84 40 */ lfs f25, lbl_802F2C40@sda21(r2)
/* 80017A98 000139B8 3C C0 80 17 */ lis r6, eventInfo@ha
/* 80017A9C 000139BC C3 C2 84 54 */ lfs f30, lbl_802F2C54@sda21(r2)
/* 80017AA0 000139C0 3C 80 80 17 */ lis r4, lbl_8017632C@ha
/* 80017AA4 000139C4 C3 E2 84 58 */ lfs f31, lbl_802F2C58@sda21(r2)
/* 80017AA8 000139C8 CA A2 84 60 */ lfd f21, lbl_802F2C60@sda21(r2)
/* 80017AAC 000139CC 3B 08 00 00 */ addi r24, r8, 0
/* 80017AB0 000139D0 7C 17 03 78 */ mr r23, r0
/* 80017AB4 000139D4 3B E3 EC 20 */ addi r31, r3, modeCtrl@l
/* 80017AB8 000139D8 3B A5 6B F0 */ addi r29, r5, lbl_80206BF0@l
/* 80017ABC 000139DC 3B 47 62 00 */ addi r26, r7, lbl_80176200@l
/* 80017AC0 000139E0 3B 66 3C C8 */ addi r27, r6, eventInfo@l
/* 80017AC4 000139E4 3B C4 63 2C */ addi r30, r4, lbl_8017632C@l
/* 80017AC8 000139E8 3B 20 00 00 */ li r25, 0
/* 80017ACC 000139EC 3A A0 00 00 */ li r21, 0
/* 80017AD0 000139F0 3F 80 43 30 */ lis r28, 0x4330
lbl_80017AD4:
/* 80017AD4 000139F4 88 76 00 00 */ lbz r3, 0(r22)
/* 80017AD8 000139F8 7C 60 07 75 */ extsb. r0, r3
/* 80017ADC 000139FC 41 82 00 10 */ beq lbl_80017AEC
/* 80017AE0 00013A00 7C 60 07 74 */ extsb r0, r3
/* 80017AE4 00013A04 2C 00 00 04 */ cmpwi r0, 4
/* 80017AE8 00013A08 40 82 00 18 */ bne lbl_80017B00
lbl_80017AEC:
/* 80017AEC 00013A0C A8 78 00 24 */ lha r3, 0x24(r24)
/* 80017AF0 00013A10 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b
/* 80017AF4 00013A14 40 82 00 0C */ bne lbl_80017B00
/* 80017AF8 00013A18 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18
/* 80017AFC 00013A1C 41 82 04 68 */ beq lbl_80017F64
lbl_80017B00:
/* 80017B00 00013A20 A8 18 00 24 */ lha r0, 0x24(r24)
/* 80017B04 00013A24 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e
/* 80017B08 00013A28 B0 18 00 24 */ sth r0, 0x24(r24)
/* 80017B0C 00013A2C 80 0D 9C FC */ lwz r0, dipSwitches@sda21(r13)
/* 80017B10 00013A30 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13
/* 80017B14 00013A34 41 82 00 1C */ beq lbl_80017B30
/* 80017B18 00013A38 81 9A 00 08 */ lwz r12, 8(r26)
/* 80017B1C 00013A3C 38 78 00 00 */ addi r3, r24, 0
/* 80017B20 00013A40 38 97 00 00 */ addi r4, r23, 0
/* 80017B24 00013A44 7D 88 03 A6 */ mtlr r12
/* 80017B28 00013A48 4E 80 00 21 */ blrl
/* 80017B2C 00013A4C 48 00 00 28 */ b lbl_80017B54
lbl_80017B30:
/* 80017B30 00013A50 88 18 00 1E */ lbz r0, 0x1e(r24)
/* 80017B34 00013A54 38 78 00 00 */ addi r3, r24, 0
/* 80017B38 00013A58 38 97 00 00 */ addi r4, r23, 0
/* 80017B3C 00013A5C 7C 00 07 74 */ extsb r0, r0
/* 80017B40 00013A60 54 00 10 3A */ slwi r0, r0, 2
/* 80017B44 00013A64 7C BA 02 14 */ add r5, r26, r0
/* 80017B48 00013A68 81 85 00 00 */ lwz r12, 0(r5)
/* 80017B4C 00013A6C 7D 88 03 A6 */ mtlr r12
/* 80017B50 00013A70 4E 80 00 21 */ blrl
lbl_80017B54:
/* 80017B54 00013A74 38 77 00 04 */ addi r3, r23, 4
/* 80017B58 00013A78 4B FE FA 65 */ bl mathutil_mtxA_from_translate
/* 80017B5C 00013A7C A8 78 00 1A */ lha r3, 0x1a(r24)
/* 80017B60 00013A80 4B FF 04 9D */ bl mathutil_mtxA_rotate_y
/* 80017B64 00013A84 38 78 00 00 */ addi r3, r24, 0
/* 80017B68 00013A88 38 98 00 BC */ addi r4, r24, 0xbc
/* 80017B6C 00013A8C 4B FF 03 61 */ bl mathutil_mtxA_rigid_inv_tf_point
/* 80017B70 00013A90 38 78 00 0C */ addi r3, r24, 0xc
/* 80017B74 00013A94 38 98 00 C8 */ addi r4, r24, 0xc8
/* 80017B78 00013A98 4B FF 03 55 */ bl mathutil_mtxA_rigid_inv_tf_point
/* 80017B7C 00013A9C 38 78 01 44 */ addi r3, r24, 0x144
/* 80017B80 00013AA0 38 98 01 74 */ addi r4, r24, 0x174
/* 80017B84 00013AA4 4B FE FE 99 */ bl mathutil_mtx_copy
/* 80017B88 00013AA8 38 78 01 A4 */ addi r3, r24, 0x1a4
/* 80017B8C 00013AAC 38 98 01 D4 */ addi r4, r24, 0x1d4
/* 80017B90 00013AB0 4B FE FE 8D */ bl mathutil_mtx_copy
/* 80017B94 00013AB4 4B FE F9 D1 */ bl mathutil_mtxA_from_identity
/* 80017B98 00013AB8 A8 18 00 1C */ lha r0, 0x1c(r24)
/* 80017B9C 00013ABC 7C 60 00 D0 */ neg r3, r0
/* 80017BA0 00013AC0 4B FF 04 E9 */ bl mathutil_mtxA_rotate_z
/* 80017BA4 00013AC4 A8 18 00 18 */ lha r0, 0x18(r24)
/* 80017BA8 00013AC8 7C 60 00 D0 */ neg r3, r0
/* 80017BAC 00013ACC 4B FF 03 DD */ bl mathutil_mtxA_rotate_x
/* 80017BB0 00013AD0 A8 18 00 1A */ lha r0, 0x1a(r24)
/* 80017BB4 00013AD4 7C 60 00 D0 */ neg r3, r0
/* 80017BB8 00013AD8 4B FF 04 45 */ bl mathutil_mtxA_rotate_y
/* 80017BBC 00013ADC 7F 03 C3 78 */ mr r3, r24
/* 80017BC0 00013AE0 4B FF 01 85 */ bl mathutil_mtxA_translate_neg
/* 80017BC4 00013AE4 A8 18 00 24 */ lha r0, 0x24(r24)
/* 80017BC8 00013AE8 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 80017BCC 00013AEC 40 82 00 9C */ bne lbl_80017C68
/* 80017BD0 00013AF0 38 78 01 A4 */ addi r3, r24, 0x1a4
/* 80017BD4 00013AF4 4B FE FC A5 */ bl mathutil_mtxA_to_mtx
/* 80017BD8 00013AF8 88 1B 00 30 */ lbz r0, 0x30(r27)
/* 80017BDC 00013AFC 2C 00 00 02 */ cmpwi r0, 2
/* 80017BE0 00013B00 40 82 00 7C */ bne lbl_80017C5C
/* 80017BE4 00013B04 A8 18 00 24 */ lha r0, 0x24(r24)
/* 80017BE8 00013B08 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
/* 80017BEC 00013B0C 40 82 00 70 */ bne lbl_80017C5C
/* 80017BF0 00013B10 38 77 00 04 */ addi r3, r23, 4
/* 80017BF4 00013B14 4B FF 01 2D */ bl mathutil_mtxA_translate
/* 80017BF8 00013B18 7E 9D AA 14 */ add r20, r29, r21
/* 80017BFC 00013B1C A8 14 00 00 */ lha r0, 0(r20)
/* 80017C00 00013B20 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80017C04 00013B24 90 01 00 34 */ stw r0, 0x34(r1)
/* 80017C08 00013B28 93 81 00 30 */ stw r28, 0x30(r1)
/* 80017C0C 00013B2C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 80017C10 00013B30 FC 00 B8 28 */ fsub f0, f0, f23
/* 80017C14 00013B34 FC 16 00 32 */ fmul f0, f22, f0
/* 80017C18 00013B38 FC 00 00 1E */ fctiwz f0, f0
/* 80017C1C 00013B3C D8 01 00 28 */ stfd f0, 0x28(r1)
/* 80017C20 00013B40 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 80017C24 00013B44 4B FF 03 65 */ bl mathutil_mtxA_rotate_x
/* 80017C28 00013B48 A8 14 00 02 */ lha r0, 2(r20)
/* 80017C2C 00013B4C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80017C30 00013B50 90 01 00 24 */ stw r0, 0x24(r1)
/* 80017C34 00013B54 93 81 00 20 */ stw r28, 0x20(r1)
/* 80017C38 00013B58 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 80017C3C 00013B5C FC 00 B8 28 */ fsub f0, f0, f23
/* 80017C40 00013B60 FC 16 00 32 */ fmul f0, f22, f0
/* 80017C44 00013B64 FC 00 00 1E */ fctiwz f0, f0
/* 80017C48 00013B68 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80017C4C 00013B6C 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 80017C50 00013B70 4B FF 04 39 */ bl mathutil_mtxA_rotate_z
/* 80017C54 00013B74 38 77 00 04 */ addi r3, r23, 4
/* 80017C58 00013B78 4B FF 00 ED */ bl mathutil_mtxA_translate_neg
lbl_80017C5C:
/* 80017C5C 00013B7C 38 78 01 44 */ addi r3, r24, 0x144
/* 80017C60 00013B80 4B FE FC 19 */ bl mathutil_mtxA_to_mtx
/* 80017C64 00013B84 48 00 00 78 */ b lbl_80017CDC
lbl_80017C68:
/* 80017C68 00013B88 4B FE FB 89 */ bl mathutil_mtxA_push
/* 80017C6C 00013B8C 38 77 00 04 */ addi r3, r23, 4
/* 80017C70 00013B90 4B FF 00 B1 */ bl mathutil_mtxA_translate
/* 80017C74 00013B94 7E 9D AA 14 */ add r20, r29, r21
/* 80017C78 00013B98 A8 14 00 02 */ lha r0, 2(r20)
/* 80017C7C 00013B9C 7C 00 00 D0 */ neg r0, r0
/* 80017C80 00013BA0 7C 03 0E 70 */ srawi r3, r0, 1
/* 80017C84 00013BA4 4B FF 04 05 */ bl mathutil_mtxA_rotate_z
/* 80017C88 00013BA8 A8 14 00 00 */ lha r0, 0(r20)
/* 80017C8C 00013BAC 7C 00 00 D0 */ neg r0, r0
/* 80017C90 00013BB0 7C 03 0E 70 */ srawi r3, r0, 1
/* 80017C94 00013BB4 4B FF 02 F5 */ bl mathutil_mtxA_rotate_x
/* 80017C98 00013BB8 38 77 00 04 */ addi r3, r23, 4
/* 80017C9C 00013BBC 4B FF 00 A9 */ bl mathutil_mtxA_translate_neg
/* 80017CA0 00013BC0 38 78 01 A4 */ addi r3, r24, 0x1a4
/* 80017CA4 00013BC4 4B FE FB D5 */ bl mathutil_mtxA_to_mtx
/* 80017CA8 00013BC8 4B FE FB 8D */ bl mathutil_mtxA_pop
/* 80017CAC 00013BCC 38 77 00 04 */ addi r3, r23, 4
/* 80017CB0 00013BD0 4B FF 00 71 */ bl mathutil_mtxA_translate
/* 80017CB4 00013BD4 A8 14 00 00 */ lha r0, 0(r20)
/* 80017CB8 00013BD8 7C 03 0E 70 */ srawi r3, r0, 1
/* 80017CBC 00013BDC 4B FF 02 CD */ bl mathutil_mtxA_rotate_x
/* 80017CC0 00013BE0 A8 14 00 02 */ lha r0, 2(r20)
/* 80017CC4 00013BE4 7C 03 0E 70 */ srawi r3, r0, 1
/* 80017CC8 00013BE8 4B FF 03 C1 */ bl mathutil_mtxA_rotate_z
/* 80017CCC 00013BEC 38 77 00 04 */ addi r3, r23, 4
/* 80017CD0 00013BF0 4B FF 00 75 */ bl mathutil_mtxA_translate_neg
/* 80017CD4 00013BF4 38 78 01 44 */ addi r3, r24, 0x144
/* 80017CD8 00013BF8 4B FE FB A1 */ bl mathutil_mtxA_to_mtx
lbl_80017CDC:
/* 80017CDC 00013BFC 88 18 00 26 */ lbz r0, 0x26(r24)
/* 80017CE0 00013C00 7C 00 07 74 */ extsb r0, r0
/* 80017CE4 00013C04 28 00 00 0C */ cmplwi r0, 0xc
/* 80017CE8 00013C08 41 81 02 54 */ bgt lbl_80017F3C
/* 80017CEC 00013C0C 54 00 10 3A */ slwi r0, r0, 2
/* 80017CF0 00013C10 7C 1E 00 2E */ lwzx r0, r30, r0
/* 80017CF4 00013C14 7C 09 03 A6 */ mtctr r0
/* 80017CF8 00013C18 4E 80 04 20 */ bctr
.global lbl_80017CFC
lbl_80017CFC:
/* 80017CFC 00013C1C D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017D00 00013C20 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017D04 00013C24 48 00 02 38 */ b lbl_80017F3C
.global lbl_80017D08
lbl_80017D08:
/* 80017D08 00013C28 C0 18 00 28 */ lfs f0, 0x28(r24)
/* 80017D0C 00013C2C FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D10 00013C30 40 80 00 24 */ bge lbl_80017D34
/* 80017D14 00013C34 FC 00 C0 2A */ fadd f0, f0, f24
/* 80017D18 00013C38 FC 00 00 18 */ frsp f0, f0
/* 80017D1C 00013C3C D0 18 00 28 */ stfs f0, 0x28(r24)
/* 80017D20 00013C40 C0 18 00 28 */ lfs f0, 0x28(r24)
/* 80017D24 00013C44 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D28 00013C48 40 81 00 2C */ ble lbl_80017D54
/* 80017D2C 00013C4C D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017D30 00013C50 48 00 00 24 */ b lbl_80017D54
lbl_80017D34:
/* 80017D34 00013C54 40 81 00 20 */ ble lbl_80017D54
/* 80017D38 00013C58 FC 00 C0 28 */ fsub f0, f0, f24
/* 80017D3C 00013C5C FC 00 00 18 */ frsp f0, f0
/* 80017D40 00013C60 D0 18 00 28 */ stfs f0, 0x28(r24)
/* 80017D44 00013C64 C0 18 00 28 */ lfs f0, 0x28(r24)
/* 80017D48 00013C68 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D4C 00013C6C 40 80 00 08 */ bge lbl_80017D54
/* 80017D50 00013C70 D3 98 00 28 */ stfs f28, 0x28(r24)
lbl_80017D54:
/* 80017D54 00013C74 C0 18 00 2C */ lfs f0, 0x2c(r24)
/* 80017D58 00013C78 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D5C 00013C7C 40 80 00 24 */ bge lbl_80017D80
/* 80017D60 00013C80 FC 00 C0 2A */ fadd f0, f0, f24
/* 80017D64 00013C84 FC 00 00 18 */ frsp f0, f0
/* 80017D68 00013C88 D0 18 00 2C */ stfs f0, 0x2c(r24)
/* 80017D6C 00013C8C C0 18 00 2C */ lfs f0, 0x2c(r24)
/* 80017D70 00013C90 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D74 00013C94 40 81 01 C8 */ ble lbl_80017F3C
/* 80017D78 00013C98 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017D7C 00013C9C 48 00 01 C0 */ b lbl_80017F3C
lbl_80017D80:
/* 80017D80 00013CA0 40 81 01 BC */ ble lbl_80017F3C
/* 80017D84 00013CA4 FC 00 C0 28 */ fsub f0, f0, f24
/* 80017D88 00013CA8 FC 00 00 18 */ frsp f0, f0
/* 80017D8C 00013CAC D0 18 00 2C */ stfs f0, 0x2c(r24)
/* 80017D90 00013CB0 C0 18 00 2C */ lfs f0, 0x2c(r24)
/* 80017D94 00013CB4 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017D98 00013CB8 40 80 01 A4 */ bge lbl_80017F3C
/* 80017D9C 00013CBC D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017DA0 00013CC0 48 00 01 9C */ b lbl_80017F3C
.global lbl_80017DA4
lbl_80017DA4:
/* 80017DA4 00013CC4 D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017DA8 00013CC8 D3 38 00 2C */ stfs f25, 0x2c(r24)
/* 80017DAC 00013CCC 48 00 01 90 */ b lbl_80017F3C
.global lbl_80017DB0
lbl_80017DB0:
/* 80017DB0 00013CD0 D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017DB4 00013CD4 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017DB8 00013CD8 48 00 01 84 */ b lbl_80017F3C
.global lbl_80017DBC
lbl_80017DBC:
/* 80017DBC 00013CDC D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017DC0 00013CE0 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017DC4 00013CE4 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 80017DC8 00013CE8 70 00 00 0A */ andi. r0, r0, 0xa
/* 80017DCC 00013CEC 40 82 01 70 */ bne lbl_80017F3C
/* 80017DD0 00013CF0 38 78 01 44 */ addi r3, r24, 0x144
/* 80017DD4 00013CF4 4B FE FA DD */ bl mathutil_mtxA_from_mtx
/* 80017DD8 00013CF8 38 77 00 04 */ addi r3, r23, 4
/* 80017DDC 00013CFC 38 81 00 08 */ addi r4, r1, 8
/* 80017DE0 00013D00 4B FF 00 4D */ bl mathutil_mtxA_tf_point
/* 80017DE4 00013D04 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80017DE8 00013D08 FC 00 D0 40 */ fcmpo cr0, f0, f26
/* 80017DEC 00013D0C 40 81 00 10 */ ble lbl_80017DFC
/* 80017DF0 00013D10 38 00 55 55 */ li r0, 0x5555
/* 80017DF4 00013D14 B0 18 00 30 */ sth r0, 0x30(r24)
/* 80017DF8 00013D18 48 00 01 44 */ b lbl_80017F3C
lbl_80017DFC:
/* 80017DFC 00013D1C C0 01 00 0C */ lfs f0, 0xc(r1)
/* 80017E00 00013D20 C0 21 00 08 */ lfs f1, 8(r1)
/* 80017E04 00013D24 EC 21 00 72 */ fmuls f1, f1, f1
/* 80017E08 00013D28 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80017E0C 00013D2C 4B FE F2 ED */ bl mathutil_sqrt
/* 80017E10 00013D30 C0 57 00 68 */ lfs f2, 0x68(r23)
/* 80017E14 00013D34 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80017E18 00013D38 FC 7B 00 B2 */ fmul f3, f27, f2
/* 80017E1C 00013D3C FC 40 00 50 */ fneg f2, f0
/* 80017E20 00013D40 FC 23 08 2A */ fadd f1, f3, f1
/* 80017E24 00013D44 FC 20 08 18 */ frsp f1, f1
/* 80017E28 00013D48 4B FE F4 7D */ bl mathutil_atan2
/* 80017E2C 00013D4C 7C 60 07 34 */ extsh r0, r3
/* 80017E30 00013D50 54 00 08 3C */ slwi r0, r0, 1
/* 80017E34 00013D54 7C 00 07 34 */ extsh r0, r0
/* 80017E38 00013D58 2C 00 55 55 */ cmpwi r0, 0x5555
/* 80017E3C 00013D5C 40 81 00 0C */ ble lbl_80017E48
/* 80017E40 00013D60 38 00 55 55 */ li r0, 0x5555
/* 80017E44 00013D64 48 00 00 10 */ b lbl_80017E54
lbl_80017E48:
/* 80017E48 00013D68 2C 00 04 FA */ cmpwi r0, 0x4fa
/* 80017E4C 00013D6C 40 80 00 08 */ bge lbl_80017E54
/* 80017E50 00013D70 38 00 04 FA */ li r0, 0x4fa
lbl_80017E54:
/* 80017E54 00013D74 A8 78 00 30 */ lha r3, 0x30(r24)
/* 80017E58 00013D78 7C 00 07 34 */ extsh r0, r0
/* 80017E5C 00013D7C 7C 03 00 50 */ subf r0, r3, r0
/* 80017E60 00013D80 7C 00 2E 70 */ srawi r0, r0, 5
/* 80017E64 00013D84 7C 03 02 14 */ add r0, r3, r0
/* 80017E68 00013D88 B0 18 00 30 */ sth r0, 0x30(r24)
/* 80017E6C 00013D8C 48 00 00 D0 */ b lbl_80017F3C
.global lbl_80017E70
lbl_80017E70:
/* 80017E70 00013D90 80 1F 00 04 */ lwz r0, 4(r31)
/* 80017E74 00013D94 2C 00 00 00 */ cmpwi r0, 0
/* 80017E78 00013D98 41 82 00 08 */ beq lbl_80017E80
/* 80017E7C 00013D9C 48 00 00 28 */ b lbl_80017EA4
lbl_80017E80:
/* 80017E80 00013DA0 A8 18 00 50 */ lha r0, 0x50(r24)
/* 80017E84 00013DA4 2C 00 04 74 */ cmpwi r0, 0x474
/* 80017E88 00013DA8 41 81 00 10 */ bgt lbl_80017E98
/* 80017E8C 00013DAC D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017E90 00013DB0 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017E94 00013DB4 48 00 00 30 */ b lbl_80017EC4
lbl_80017E98:
/* 80017E98 00013DB8 D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017E9C 00013DBC D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017EA0 00013DC0 48 00 00 24 */ b lbl_80017EC4
lbl_80017EA4:
/* 80017EA4 00013DC4 A8 18 00 50 */ lha r0, 0x50(r24)
/* 80017EA8 00013DC8 2C 00 04 74 */ cmpwi r0, 0x474
/* 80017EAC 00013DCC 41 81 00 10 */ bgt lbl_80017EBC
/* 80017EB0 00013DD0 D3 B8 00 28 */ stfs f29, 0x28(r24)
/* 80017EB4 00013DD4 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017EB8 00013DD8 48 00 00 0C */ b lbl_80017EC4
lbl_80017EBC:
/* 80017EBC 00013DDC D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017EC0 00013DE0 D3 98 00 2C */ stfs f28, 0x2c(r24)
lbl_80017EC4:
/* 80017EC4 00013DE4 38 00 15 55 */ li r0, 0x1555
/* 80017EC8 00013DE8 B0 18 00 30 */ sth r0, 0x30(r24)
/* 80017ECC 00013DEC 48 00 00 70 */ b lbl_80017F3C
.global lbl_80017ED0
lbl_80017ED0:
/* 80017ED0 00013DF0 D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017ED4 00013DF4 D3 D8 00 2C */ stfs f30, 0x2c(r24)
/* 80017ED8 00013DF8 48 00 00 64 */ b lbl_80017F3C
.global lbl_80017EDC
lbl_80017EDC:
/* 80017EDC 00013DFC D3 98 00 28 */ stfs f28, 0x28(r24)
/* 80017EE0 00013E00 D3 98 00 2C */ stfs f28, 0x2c(r24)
/* 80017EE4 00013E04 48 00 00 58 */ b lbl_80017F3C
.global lbl_80017EE8
lbl_80017EE8:
/* 80017EE8 00013E08 2C 19 00 00 */ cmpwi r25, 0
/* 80017EEC 00013E0C 40 82 00 10 */ bne lbl_80017EFC
/* 80017EF0 00013E10 A8 0D 9A 50 */ lha r0, lbl_802F1C30@sda21(r13)
/* 80017EF4 00013E14 B0 18 00 30 */ sth r0, 0x30(r24)
/* 80017EF8 00013E18 48 00 00 44 */ b lbl_80017F3C
lbl_80017EFC:
/* 80017EFC 00013E1C 38 00 10 00 */ li r0, 0x1000
/* 80017F00 00013E20 B0 18 00 30 */ sth r0, 0x30(r24)
/* 80017F04 00013E24 48 00 00 38 */ b lbl_80017F3C
.global lbl_80017F08
lbl_80017F08:
/* 80017F08 00013E28 80 0D A0 08 */ lwz r0, lbl_802F21E8@sda21(r13)
/* 80017F0C 00013E2C 2C 00 00 00 */ cmpwi r0, 0
/* 80017F10 00013E30 41 82 00 2C */ beq lbl_80017F3C
/* 80017F14 00013E34 C0 0D A0 0C */ lfs f0, lbl_802F21EC@sda21(r13)
/* 80017F18 00013E38 D0 18 00 28 */ stfs f0, 0x28(r24)
/* 80017F1C 00013E3C C0 0D A0 10 */ lfs f0, lbl_802F21F0@sda21(r13)
/* 80017F20 00013E40 D0 18 00 2C */ stfs f0, 0x2c(r24)
/* 80017F24 00013E44 C0 0D 94 D8 */ lfs f0, lbl_802F16B8@sda21(r13)
/* 80017F28 00013E48 EC 1F 00 32 */ fmuls f0, f31, f0
/* 80017F2C 00013E4C FC 00 00 1E */ fctiwz f0, f0
/* 80017F30 00013E50 D8 01 00 18 */ stfd f0, 0x18(r1)
/* 80017F34 00013E54 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80017F38 00013E58 B0 18 00 30 */ sth r0, 0x30(r24)
lbl_80017F3C:
.global lbl_80017F3C
/* 80017F3C 00013E5C A8 18 00 30 */ lha r0, 0x30(r24)
/* 80017F40 00013E60 7C 03 0E 70 */ srawi r3, r0, 1
/* 80017F44 00013E64 4B FE F3 31 */ bl mathutil_tan
/* 80017F48 00013E68 D0 38 00 38 */ stfs f1, 0x38(r24)
/* 80017F4C 00013E6C 7F 03 C3 78 */ mr r3, r24
/* 80017F50 00013E70 C0 18 00 38 */ lfs f0, 0x38(r24)
/* 80017F54 00013E74 FC 15 00 24 */ fdiv f0, f21, f0
/* 80017F58 00013E78 FC 00 00 18 */ frsp f0, f0
/* 80017F5C 00013E7C D0 18 00 3C */ stfs f0, 0x3c(r24)
/* 80017F60 00013E80 48 00 0C F9 */ bl func_80018C58
lbl_80017F64:
/* 80017F64 00013E84 3B 39 00 01 */ addi r25, r25, 1
/* 80017F68 00013E88 2C 19 00 04 */ cmpwi r25, 4
/* 80017F6C 00013E8C 3A B5 00 40 */ addi r21, r21, 0x40
/* 80017F70 00013E90 3B 18 02 84 */ addi r24, r24, 0x284
/* 80017F74 00013E94 3A F7 01 A4 */ addi r23, r23, 0x1a4
/* 80017F78 00013E98 3A D6 00 01 */ addi r22, r22, 1
/* 80017F7C 00013E9C 41 80 FB 58 */ blt lbl_80017AD4
/* 80017F80 00013EA0 38 60 00 00 */ li r3, 0
/* 80017F84 00013EA4 48 00 03 AD */ bl func_80018330
/* 80017F88 00013EA8 BA 81 00 38 */ lmw r20, 0x38(r1)
/* 80017F8C 00013EAC 80 01 00 C4 */ lwz r0, 0xc4(r1)
/* 80017F90 00013EB0 CB E1 00 B8 */ lfd f31, 0xb8(r1)
/* 80017F94 00013EB4 CB C1 00 B0 */ lfd f30, 0xb0(r1)
/* 80017F98 00013EB8 7C 08 03 A6 */ mtlr r0
/* 80017F9C 00013EBC CB A1 00 A8 */ lfd f29, 0xa8(r1)
/* 80017FA0 00013EC0 CB 81 00 A0 */ lfd f28, 0xa0(r1)
/* 80017FA4 00013EC4 CB 61 00 98 */ lfd f27, 0x98(r1)
/* 80017FA8 00013EC8 CB 41 00 90 */ lfd f26, 0x90(r1)
/* 80017FAC 00013ECC CB 21 00 88 */ lfd f25, 0x88(r1)
/* 80017FB0 00013ED0 CB 01 00 80 */ lfd f24, 0x80(r1)
/* 80017FB4 00013ED4 CA E1 00 78 */ lfd f23, 0x78(r1)
/* 80017FB8 00013ED8 CA C1 00 70 */ lfd f22, 0x70(r1)
/* 80017FBC 00013EDC CA A1 00 68 */ lfd f21, 0x68(r1)
/* 80017FC0 00013EE0 38 21 00 C0 */ addi r1, r1, 0xc0
/* 80017FC4 00013EE4 4E 80 00 20 */ blr
.global ev_camera_dest
ev_camera_dest:
/* 80017FC8 00013EE8 4E 80 00 20 */ blr
.global func_80017FCC
func_80017FCC:
/* 80017FCC 00013EEC 7C 08 02 A6 */ mflr r0
/* 80017FD0 00013EF0 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80017FD4 00013EF4 90 01 00 04 */ stw r0, 4(r1)
/* 80017FD8 00013EF8 38 00 00 04 */ li r0, 4
/* 80017FDC 00013EFC 94 21 FF 88 */ stwu r1, -0x78(r1)
/* 80017FE0 00013F00 93 E1 00 74 */ stw r31, 0x74(r1)
/* 80017FE4 00013F04 3B E3 EF 00 */ addi r31, r3, cameraInfo@l
/* 80017FE8 00013F08 38 7F 01 44 */ addi r3, r31, 0x144
/* 80017FEC 00013F0C 80 8D 99 80 */ lwz r4, mathutilData@sda21(r13)
/* 80017FF0 00013F10 93 ED 9A 5C */ stw r31, currentCameraStructPtr@sda21(r13)
/* 80017FF4 00013F14 38 84 00 30 */ addi r4, r4, 0x30
/* 80017FF8 00013F18 90 0D 9A 60 */ stw r0, lbl_802F1C40@sda21(r13)
/* 80017FFC 00013F1C 90 0D 9A 54 */ stw r0, lbl_802F1C34@sda21(r13)
/* 80018000 00013F20 4B FE FA 1D */ bl mathutil_mtx_copy
/* 80018004 00013F24 80 6D 99 80 */ lwz r3, mathutilData@sda21(r13)
/* 80018008 00013F28 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 8001800C 00013F2C 38 63 00 30 */ addi r3, r3, 0x30
/* 80018010 00013F30 38 84 00 60 */ addi r4, r4, 0x60
/* 80018014 00013F34 4B FE FA 09 */ bl mathutil_mtx_copy
/* 80018018 00013F38 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 8001801C 00013F3C 38 7F 01 74 */ addi r3, r31, 0x174
/* 80018020 00013F40 38 84 00 90 */ addi r4, r4, 0x90
/* 80018024 00013F44 4B FE F9 F9 */ bl mathutil_mtx_copy
/* 80018028 00013F48 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 8001802C 00013F4C 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 80018030 00013F50 4B FE F9 ED */ bl mathutil_mtx_copy
/* 80018034 00013F54 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 80018038 00013F58 38 7F 01 D4 */ addi r3, r31, 0x1d4
/* 8001803C 00013F5C 38 84 00 C0 */ addi r4, r4, 0xc0
/* 80018040 00013F60 4B FE F9 DD */ bl mathutil_mtx_copy
/* 80018044 00013F64 C0 22 84 78 */ lfs f1, lbl_802F2C78@sda21(r2)
/* 80018048 00013F68 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001804C 00013F6C C0 42 84 1C */ lfs f2, lbl_802F2C1C@sda21(r2)
/* 80018050 00013F70 C0 62 84 7C */ lfs f3, lbl_802F2C7C@sda21(r2)
/* 80018054 00013F74 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 80018058 00013F78 48 0B 26 99 */ bl C_MTXPerspective
/* 8001805C 00013F7C 38 61 00 1C */ addi r3, r1, 0x1c
/* 80018060 00013F80 38 80 00 00 */ li r4, 0
/* 80018064 00013F84 48 0C C3 45 */ bl GXSetProjection
/* 80018068 00013F88 80 AD 99 50 */ lwz r5, currRenderMode@sda21(r13)
/* 8001806C 00013F8C 3C 60 43 30 */ lis r3, 0x4330
/* 80018070 00013F90 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80018074 00013F94 A0 85 00 04 */ lhz r4, 4(r5)
/* 80018078 00013F98 A0 05 00 08 */ lhz r0, 8(r5)
/* 8001807C 00013F9C FC 40 08 90 */ fmr f2, f1
/* 80018080 00013FA0 90 81 00 6C */ stw r4, 0x6c(r1)
/* 80018084 00013FA4 FC A0 08 90 */ fmr f5, f1
/* 80018088 00013FA8 C8 82 84 88 */ lfd f4, lbl_802F2C88@sda21(r2)
/* 8001808C 00013FAC 90 01 00 64 */ stw r0, 0x64(r1)
/* 80018090 00013FB0 C0 C2 84 20 */ lfs f6, lbl_802F2C20@sda21(r2)
/* 80018094 00013FB4 90 61 00 68 */ stw r3, 0x68(r1)
/* 80018098 00013FB8 90 61 00 60 */ stw r3, 0x60(r1)
/* 8001809C 00013FBC C8 61 00 68 */ lfd f3, 0x68(r1)
/* 800180A0 00013FC0 C8 01 00 60 */ lfd f0, 0x60(r1)
/* 800180A4 00013FC4 EC 63 20 28 */ fsubs f3, f3, f4
/* 800180A8 00013FC8 EC 80 20 28 */ fsubs f4, f0, f4
/* 800180AC 00013FCC 48 0C C7 2D */ bl GXSetViewport
/* 800180B0 00013FD0 80 CD 99 50 */ lwz r6, currRenderMode@sda21(r13)
/* 800180B4 00013FD4 38 60 00 00 */ li r3, 0
/* 800180B8 00013FD8 38 80 00 00 */ li r4, 0
/* 800180BC 00013FDC A0 A6 00 04 */ lhz r5, 4(r6)
/* 800180C0 00013FE0 A0 C6 00 08 */ lhz r6, 8(r6)
/* 800180C4 00013FE4 48 0C C7 39 */ bl GXSetScissor
/* 800180C8 00013FE8 80 02 84 70 */ lwz r0, lbl_802F2C70@sda21(r2)
/* 800180CC 00013FEC 3C A0 80 11 */ lis r5, lbl_80110230@ha
/* 800180D0 00013FF0 C0 62 84 18 */ lfs f3, lbl_802F2C18@sda21(r2)
/* 800180D4 00013FF4 38 C5 02 30 */ addi r6, r5, lbl_80110230@l
/* 800180D8 00013FF8 90 01 00 08 */ stw r0, 8(r1)
/* 800180DC 00013FFC A0 02 84 74 */ lhz r0, lbl_802F2C74@sda21(r2)
/* 800180E0 00014000 FC 80 18 90 */ fmr f4, f3
/* 800180E4 00014004 C0 22 84 78 */ lfs f1, lbl_802F2C78@sda21(r2)
/* 800180E8 00014008 38 81 00 08 */ addi r4, r1, 8
/* 800180EC 0001400C B0 01 00 0C */ sth r0, 0xc(r1)
/* 800180F0 00014010 C0 42 84 1C */ lfs f2, lbl_802F2C1C@sda21(r2)
/* 800180F4 00014014 80 A6 00 00 */ lwz r5, 0(r6)
/* 800180F8 00014018 38 61 00 10 */ addi r3, r1, 0x10
/* 800180FC 0001401C 80 06 00 04 */ lwz r0, 4(r6)
/* 80018100 00014020 90 A1 00 10 */ stw r5, 0x10(r1)
/* 80018104 00014024 90 01 00 14 */ stw r0, 0x14(r1)
/* 80018108 00014028 80 06 00 08 */ lwz r0, 8(r6)
/* 8001810C 0001402C 90 01 00 18 */ stw r0, 0x18(r1)
/* 80018110 00014030 48 00 89 A9 */ bl func_80020AB8
/* 80018114 00014034 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 80018118 00014038 83 E1 00 74 */ lwz r31, 0x74(r1)
/* 8001811C 0001403C 38 21 00 78 */ addi r1, r1, 0x78
/* 80018120 00014040 7C 08 03 A6 */ mtlr r0
/* 80018124 00014044 4E 80 00 20 */ blr
.global func_80018128
func_80018128:
/* 80018128 00014048 7C 08 02 A6 */ mflr r0
/* 8001812C 0001404C 90 01 00 04 */ stw r0, 4(r1)
/* 80018130 00014050 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80018134 00014054 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 80018138 00014058 FF E0 20 90 */ fmr f31, f4
/* 8001813C 0001405C 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80018140 00014060 93 C1 00 20 */ stw r30, 0x20(r1)
/* 80018144 00014064 7C 7E 1B 78 */ mr r30, r3
/* 80018148 00014068 1C 9E 02 84 */ mulli r4, r30, 0x284
/* 8001814C 0001406C 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80018150 00014070 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 80018154 00014074 7F E0 22 14 */ add r31, r0, r4
/* 80018158 00014078 D0 3F 00 40 */ stfs f1, 0x40(r31)
/* 8001815C 0001407C D0 5F 00 44 */ stfs f2, 0x44(r31)
/* 80018160 00014080 D0 7F 00 48 */ stfs f3, 0x48(r31)
/* 80018164 00014084 D3 FF 00 4C */ stfs f31, 0x4c(r31)
/* 80018168 00014088 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001816C 0001408C FC 03 00 40 */ fcmpo cr0, f3, f0
/* 80018170 00014090 40 81 00 6C */ ble lbl_800181DC
/* 80018174 00014094 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80018178 00014098 40 81 00 64 */ ble lbl_800181DC
/* 8001817C 0001409C EC 03 F8 24 */ fdivs f0, f3, f31
/* 80018180 000140A0 C0 22 84 1C */ lfs f1, lbl_802F2C1C@sda21(r2)
/* 80018184 000140A4 EC 01 00 32 */ fmuls f0, f1, f0
/* 80018188 000140A8 D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 8001818C 000140AC C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 80018190 000140B0 FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 80018194 000140B4 40 82 00 10 */ bne lbl_800181A4
/* 80018198 000140B8 38 00 2A AA */ li r0, 0x2aaa
/* 8001819C 000140BC B0 1F 00 32 */ sth r0, 0x32(r31)
/* 800181A0 000140C0 48 00 00 3C */ b lbl_800181DC
lbl_800181A4:
/* 800181A4 000140C4 38 60 15 55 */ li r3, 0x1555
/* 800181A8 000140C8 4B FE F0 CD */ bl mathutil_tan
/* 800181AC 000140CC C0 62 84 90 */ lfs f3, lbl_802F2C90@sda21(r2)
/* 800181B0 000140D0 C0 42 84 20 */ lfs f2, lbl_802F2C20@sda21(r2)
/* 800181B4 000140D4 EC 03 07 F2 */ fmuls f0, f3, f31
/* 800181B8 000140D8 EC 03 00 2A */ fadds f0, f3, f0
/* 800181BC 000140DC EC 20 00 72 */ fmuls f1, f0, f1
/* 800181C0 000140E0 4B FE F0 E5 */ bl mathutil_atan2
/* 800181C4 000140E4 7C 60 07 34 */ extsh r0, r3
/* 800181C8 000140E8 54 00 08 3C */ slwi r0, r0, 1
/* 800181CC 000140EC 7C 00 07 34 */ extsh r0, r0
/* 800181D0 000140F0 B0 1F 00 32 */ sth r0, 0x32(r31)
/* 800181D4 000140F4 A8 1F 00 32 */ lha r0, 0x32(r31)
/* 800181D8 000140F8 B0 1F 00 30 */ sth r0, 0x30(r31)
lbl_800181DC:
/* 800181DC 000140FC 80 0D 9A 60 */ lwz r0, lbl_802F1C40@sda21(r13)
/* 800181E0 00014100 7C 00 F0 00 */ cmpw r0, r30
/* 800181E4 00014104 40 82 00 0C */ bne lbl_800181F0
/* 800181E8 00014108 7F C3 F3 78 */ mr r3, r30
/* 800181EC 0001410C 48 00 01 45 */ bl func_80018330
lbl_800181F0:
/* 800181F0 00014110 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800181F4 00014114 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 800181F8 00014118 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 800181FC 0001411C 7C 08 03 A6 */ mtlr r0
/* 80018200 00014120 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 80018204 00014124 38 21 00 30 */ addi r1, r1, 0x30
/* 80018208 00014128 4E 80 00 20 */ blr
.global func_8001820C
func_8001820C:
/* 8001820C 0001412C 7C 08 02 A6 */ mflr r0
/* 80018210 00014130 90 01 00 04 */ stw r0, 4(r1)
/* 80018214 00014134 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80018218 00014138 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8001821C 0001413C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80018220 00014140 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80018224 00014144 3B A3 00 00 */ addi r29, r3, 0
/* 80018228 00014148 2C 1D 00 01 */ cmpwi r29, 1
/* 8001822C 0001414C 3C 60 80 17 */ lis r3, lbl_80176200@ha
/* 80018230 00014150 3B E3 62 00 */ addi r31, r3, lbl_80176200@l
/* 80018234 00014154 41 80 00 0C */ blt lbl_80018240
/* 80018238 00014158 2C 1D 00 04 */ cmpwi r29, 4
/* 8001823C 0001415C 40 81 00 18 */ ble lbl_80018254
lbl_80018240:
/* 80018240 00014160 38 7F 02 10 */ addi r3, r31, 0x210
/* 80018244 00014164 4C C6 31 82 */ crclr 6
/* 80018248 00014168 38 BF 02 1C */ addi r5, r31, 0x21c
/* 8001824C 0001416C 38 80 02 56 */ li r4, 0x256
/* 80018250 00014170 48 0A BA 51 */ bl OSPanic
lbl_80018254:
/* 80018254 00014174 57 A0 10 3A */ slwi r0, r29, 2
/* 80018258 00014178 7C 7F 02 14 */ add r3, r31, r0
/* 8001825C 0001417C 83 C3 01 FC */ lwz r30, 0x1fc(r3)
/* 80018260 00014180 3B E0 00 00 */ li r31, 0
lbl_80018264:
/* 80018264 00014184 7C 1F E8 00 */ cmpw r31, r29
/* 80018268 00014188 41 80 00 20 */ blt lbl_80018288
/* 8001826C 0001418C C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80018270 00014190 7F E3 FB 78 */ mr r3, r31
/* 80018274 00014194 FC 40 08 90 */ fmr f2, f1
/* 80018278 00014198 FC 60 08 90 */ fmr f3, f1
/* 8001827C 0001419C FC 80 08 90 */ fmr f4, f1
/* 80018280 000141A0 4B FF FE A9 */ bl func_80018128
/* 80018284 000141A4 48 00 00 20 */ b lbl_800182A4
lbl_80018288:
/* 80018288 000141A8 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001828C 000141AC 7F E3 FB 78 */ mr r3, r31
/* 80018290 000141B0 C0 5E 00 04 */ lfs f2, 4(r30)
/* 80018294 000141B4 C0 7E 00 08 */ lfs f3, 8(r30)
/* 80018298 000141B8 C0 9E 00 0C */ lfs f4, 0xc(r30)
/* 8001829C 000141BC 4B FF FE 8D */ bl func_80018128
/* 800182A0 000141C0 3B DE 00 10 */ addi r30, r30, 0x10
lbl_800182A4:
/* 800182A4 000141C4 3B FF 00 01 */ addi r31, r31, 1
/* 800182A8 000141C8 2C 1F 00 04 */ cmpwi r31, 4
/* 800182AC 000141CC 41 80 FF B8 */ blt lbl_80018264
/* 800182B0 000141D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800182B4 000141D4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 800182B8 000141D8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 800182BC 000141DC 7C 08 03 A6 */ mtlr r0
/* 800182C0 000141E0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 800182C4 000141E4 38 21 00 20 */ addi r1, r1, 0x20
/* 800182C8 000141E8 4E 80 00 20 */ blr
.global func_800182CC
func_800182CC:
/* 800182CC 000141EC 7C 08 02 A6 */ mflr r0
/* 800182D0 000141F0 90 01 00 04 */ stw r0, 4(r1)
/* 800182D4 000141F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800182D8 000141F8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800182DC 000141FC 3B E0 00 00 */ li r31, 0
lbl_800182E0:
/* 800182E0 00014200 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 800182E4 00014204 7F E3 FB 78 */ mr r3, r31
/* 800182E8 00014208 FC 40 08 90 */ fmr f2, f1
/* 800182EC 0001420C FC 60 08 90 */ fmr f3, f1
/* 800182F0 00014210 FC 80 08 90 */ fmr f4, f1
/* 800182F4 00014214 4B FF FE 35 */ bl func_80018128
/* 800182F8 00014218 3B FF 00 01 */ addi r31, r31, 1
/* 800182FC 0001421C 2C 1F 00 04 */ cmpwi r31, 4
/* 80018300 00014220 41 80 FF E0 */ blt lbl_800182E0
/* 80018304 00014224 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80018308 00014228 38 60 00 00 */ li r3, 0
/* 8001830C 0001422C C0 62 84 20 */ lfs f3, lbl_802F2C20@sda21(r2)
/* 80018310 00014230 FC 40 08 90 */ fmr f2, f1
/* 80018314 00014234 FC 80 18 90 */ fmr f4, f3
/* 80018318 00014238 4B FF FE 11 */ bl func_80018128
/* 8001831C 0001423C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80018320 00014240 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80018324 00014244 38 21 00 10 */ addi r1, r1, 0x10
/* 80018328 00014248 7C 08 03 A6 */ mtlr r0
/* 8001832C 0001424C 4E 80 00 20 */ blr
.global func_80018330
func_80018330:
/* 80018330 00014250 7C 08 02 A6 */ mflr r0
/* 80018334 00014254 90 01 00 04 */ stw r0, 4(r1)
/* 80018338 00014258 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 8001833C 0001425C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 80018340 00014260 DB C1 00 88 */ stfd f30, 0x88(r1)
/* 80018344 00014264 DB A1 00 80 */ stfd f29, 0x80(r1)
/* 80018348 00014268 DB 81 00 78 */ stfd f28, 0x78(r1)
/* 8001834C 0001426C 93 E1 00 74 */ stw r31, 0x74(r1)
/* 80018350 00014270 93 C1 00 70 */ stw r30, 0x70(r1)
/* 80018354 00014274 93 A1 00 6C */ stw r29, 0x6c(r1)
/* 80018358 00014278 93 81 00 68 */ stw r28, 0x68(r1)
/* 8001835C 0001427C 7C 7C 1B 78 */ mr r28, r3
/* 80018360 00014280 1C BC 02 84 */ mulli r5, r28, 0x284
/* 80018364 00014284 80 8D 99 80 */ lwz r4, mathutilData@sda21(r13)
/* 80018368 00014288 93 8D 9A 60 */ stw r28, lbl_802F1C40@sda21(r13)
/* 8001836C 0001428C 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80018370 00014290 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 80018374 00014294 93 8D 9A 54 */ stw r28, lbl_802F1C34@sda21(r13)
/* 80018378 00014298 7F E0 2A 14 */ add r31, r0, r5
/* 8001837C 0001429C 93 ED 9A 5C */ stw r31, currentCameraStructPtr@sda21(r13)
/* 80018380 000142A0 38 7F 01 44 */ addi r3, r31, 0x144
/* 80018384 000142A4 38 84 00 30 */ addi r4, r4, 0x30
/* 80018388 000142A8 4B FE F6 95 */ bl mathutil_mtx_copy
/* 8001838C 000142AC 80 6D 99 80 */ lwz r3, mathutilData@sda21(r13)
/* 80018390 000142B0 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 80018394 000142B4 38 63 00 30 */ addi r3, r3, 0x30
/* 80018398 000142B8 38 84 00 60 */ addi r4, r4, 0x60
/* 8001839C 000142BC 4B FE F6 81 */ bl mathutil_mtx_copy
/* 800183A0 000142C0 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800183A4 000142C4 38 7F 01 74 */ addi r3, r31, 0x174
/* 800183A8 000142C8 38 84 00 90 */ addi r4, r4, 0x90
/* 800183AC 000142CC 4B FE F6 71 */ bl mathutil_mtx_copy
/* 800183B0 000142D0 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 800183B4 000142D4 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800183B8 000142D8 4B FE F6 65 */ bl mathutil_mtx_copy
/* 800183BC 000142DC 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800183C0 000142E0 38 7F 01 D4 */ addi r3, r31, 0x1d4
/* 800183C4 000142E4 38 84 00 C0 */ addi r4, r4, 0xc0
/* 800183C8 000142E8 4B FE F6 55 */ bl mathutil_mtx_copy
/* 800183CC 000142EC 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 800183D0 000142F0 38 83 00 30 */ addi r4, r3, 0x30
/* 800183D4 000142F4 4B FE F6 49 */ bl mathutil_mtx_copy
/* 800183D8 000142F8 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 800183DC 000142FC 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 800183E0 00014300 D0 23 00 3C */ stfs f1, 0x3c(r3)
/* 800183E4 00014304 C0 1F 00 04 */ lfs f0, 4(r31)
/* 800183E8 00014308 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 800183EC 0001430C FC 00 00 50 */ fneg f0, f0
/* 800183F0 00014310 D0 03 00 4C */ stfs f0, 0x4c(r3)
/* 800183F4 00014314 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 800183F8 00014318 D0 23 00 5C */ stfs f1, 0x5c(r3)
/* 800183FC 0001431C A8 0D 99 B2 */ lha r0, gameMode@sda21(r13)
/* 80018400 00014320 2C 00 00 04 */ cmpwi r0, 4
/* 80018404 00014324 40 82 00 60 */ bne lbl_80018464
/* 80018408 00014328 A8 0D 99 AE */ lha r0, gameSubmode@sda21(r13)
/* 8001840C 0001432C 2C 00 00 9D */ cmpwi r0, 0x9d
/* 80018410 00014330 40 82 00 54 */ bne lbl_80018464
/* 80018414 00014334 2C 1C 00 00 */ cmpwi r28, 0
/* 80018418 00014338 40 82 00 4C */ bne lbl_80018464
/* 8001841C 0001433C C0 22 84 A0 */ lfs f1, lbl_802F2CA0@sda21(r2)
/* 80018420 00014340 3C 00 43 30 */ lis r0, 0x4330
/* 80018424 00014344 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 80018428 00014348 38 61 00 14 */ addi r3, r1, 0x14
/* 8001842C 0001434C A8 9F 00 30 */ lha r4, 0x30(r31)
/* 80018430 00014350 EC 61 00 24 */ fdivs f3, f1, f0
/* 80018434 00014354 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 80018438 00014358 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 8001843C 0001435C C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 80018440 00014360 90 81 00 64 */ stw r4, 0x64(r1)
/* 80018444 00014364 90 01 00 60 */ stw r0, 0x60(r1)
/* 80018448 00014368 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 8001844C 0001436C C8 01 00 60 */ lfd f0, 0x60(r1)
/* 80018450 00014370 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 80018454 00014374 EC 00 08 28 */ fsubs f0, f0, f1
/* 80018458 00014378 EC 25 00 32 */ fmuls f1, f5, f0
/* 8001845C 0001437C 48 0B 22 95 */ bl C_MTXPerspective
/* 80018460 00014380 48 00 00 40 */ b lbl_800184A0
lbl_80018464:
/* 80018464 00014384 A8 9F 00 30 */ lha r4, 0x30(r31)
/* 80018468 00014388 3C 00 43 30 */ lis r0, 0x4330
/* 8001846C 0001438C C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 80018470 00014390 38 61 00 14 */ addi r3, r1, 0x14
/* 80018474 00014394 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 80018478 00014398 90 81 00 64 */ stw r4, 0x64(r1)
/* 8001847C 0001439C C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 80018480 000143A0 90 01 00 60 */ stw r0, 0x60(r1)
/* 80018484 000143A4 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 80018488 000143A8 C8 01 00 60 */ lfd f0, 0x60(r1)
/* 8001848C 000143AC C0 62 84 7C */ lfs f3, lbl_802F2C7C@sda21(r2)
/* 80018490 000143B0 EC 00 08 28 */ fsubs f0, f0, f1
/* 80018494 000143B4 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 80018498 000143B8 EC 25 00 32 */ fmuls f1, f5, f0
/* 8001849C 000143BC 48 0B 22 55 */ bl C_MTXPerspective
lbl_800184A0:
/* 800184A0 000143C0 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 800184A4 000143C4 38 61 00 14 */ addi r3, r1, 0x14
/* 800184A8 000143C8 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 800184AC 000143CC 38 80 00 00 */ li r4, 0
/* 800184B0 000143D0 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 800184B4 000143D4 EC 01 00 32 */ fmuls f0, f1, f0
/* 800184B8 000143D8 C0 3F 00 38 */ lfs f1, 0x38(r31)
/* 800184BC 000143DC C0 61 00 1C */ lfs f3, 0x1c(r1)
/* 800184C0 000143E0 EC 02 00 32 */ fmuls f0, f2, f0
/* 800184C4 000143E4 EC 01 00 32 */ fmuls f0, f1, f0
/* 800184C8 000143E8 EC 03 00 28 */ fsubs f0, f3, f0
/* 800184CC 000143EC D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 800184D0 000143F0 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 800184D4 000143F4 C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 800184D8 000143F8 C0 5F 00 38 */ lfs f2, 0x38(r31)
/* 800184DC 000143FC EC 01 00 32 */ fmuls f0, f1, f0
/* 800184E0 00014400 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 800184E4 00014404 EC 02 00 32 */ fmuls f0, f2, f0
/* 800184E8 00014408 EC 01 00 28 */ fsubs f0, f1, f0
/* 800184EC 0001440C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 800184F0 00014410 48 0C BE B9 */ bl GXSetProjection
/* 800184F4 00014414 C0 FF 00 48 */ lfs f7, 0x48(r31)
/* 800184F8 00014418 C0 A2 84 18 */ lfs f5, lbl_802F2C18@sda21(r2)
/* 800184FC 0001441C FC 07 28 40 */ fcmpo cr0, f7, f5
/* 80018500 00014420 40 81 00 B0 */ ble lbl_800185B0
/* 80018504 00014424 C1 1F 00 4C */ lfs f8, 0x4c(r31)
/* 80018508 00014428 FC 08 28 40 */ fcmpo cr0, f8, f5
/* 8001850C 0001442C 40 81 00 A4 */ ble lbl_800185B0
/* 80018510 00014430 80 AD 99 50 */ lwz r5, currRenderMode@sda21(r13)
/* 80018514 00014434 3C 60 43 30 */ lis r3, 0x4330
/* 80018518 00014438 C8 82 84 88 */ lfd f4, lbl_802F2C88@sda21(r2)
/* 8001851C 0001443C A0 85 00 04 */ lhz r4, 4(r5)
/* 80018520 00014440 A0 05 00 08 */ lhz r0, 8(r5)
/* 80018524 00014444 90 81 00 64 */ stw r4, 0x64(r1)
/* 80018528 00014448 C0 3F 00 40 */ lfs f1, 0x40(r31)
/* 8001852C 0001444C 90 01 00 5C */ stw r0, 0x5c(r1)
/* 80018530 00014450 C0 1F 00 44 */ lfs f0, 0x44(r31)
/* 80018534 00014454 90 61 00 60 */ stw r3, 0x60(r1)
/* 80018538 00014458 C0 C2 84 20 */ lfs f6, lbl_802F2C20@sda21(r2)
/* 8001853C 0001445C 90 61 00 58 */ stw r3, 0x58(r1)
/* 80018540 00014460 C8 61 00 60 */ lfd f3, 0x60(r1)
/* 80018544 00014464 C8 41 00 58 */ lfd f2, 0x58(r1)
/* 80018548 00014468 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001854C 0001446C EC 42 20 28 */ fsubs f2, f2, f4
/* 80018550 00014470 EF E3 00 72 */ fmuls f31, f3, f1
/* 80018554 00014474 EF A3 01 F2 */ fmuls f29, f3, f7
/* 80018558 00014478 EF 82 02 32 */ fmuls f28, f2, f8
/* 8001855C 0001447C EF C2 00 32 */ fmuls f30, f2, f0
/* 80018560 00014480 FC 20 F8 90 */ fmr f1, f31
/* 80018564 00014484 FC 60 E8 90 */ fmr f3, f29
/* 80018568 00014488 FC 40 F0 90 */ fmr f2, f30
/* 8001856C 0001448C FC 80 E0 90 */ fmr f4, f28
/* 80018570 00014490 48 0C C2 69 */ bl GXSetViewport
/* 80018574 00014494 FC 20 E0 90 */ fmr f1, f28
/* 80018578 00014498 48 0E AF F5 */ bl __cvt_fp2unsigned
/* 8001857C 0001449C 7C 7C 1B 78 */ mr r28, r3
/* 80018580 000144A0 FC 20 E8 90 */ fmr f1, f29
/* 80018584 000144A4 48 0E AF E9 */ bl __cvt_fp2unsigned
/* 80018588 000144A8 7C 7D 1B 78 */ mr r29, r3
/* 8001858C 000144AC FC 20 F0 90 */ fmr f1, f30
/* 80018590 000144B0 48 0E AF DD */ bl __cvt_fp2unsigned
/* 80018594 000144B4 7C 7E 1B 78 */ mr r30, r3
/* 80018598 000144B8 FC 20 F8 90 */ fmr f1, f31
/* 8001859C 000144BC 48 0E AF D1 */ bl __cvt_fp2unsigned
/* 800185A0 000144C0 38 9E 00 00 */ addi r4, r30, 0
/* 800185A4 000144C4 38 BD 00 00 */ addi r5, r29, 0
/* 800185A8 000144C8 38 DC 00 00 */ addi r6, r28, 0
/* 800185AC 000144CC 48 0C C2 51 */ bl GXSetScissor
lbl_800185B0:
/* 800185B0 000144D0 80 62 84 94 */ lwz r3, lbl_802F2C94@sda21(r2)
/* 800185B4 000144D4 3C 00 43 30 */ lis r0, 0x4330
/* 800185B8 000144D8 A0 A2 84 98 */ lhz r5, lbl_802F2C98@sda21(r2)
/* 800185BC 000144DC 38 81 00 0C */ addi r4, r1, 0xc
/* 800185C0 000144E0 90 61 00 0C */ stw r3, 0xc(r1)
/* 800185C4 000144E4 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 800185C8 000144E8 7F E3 FB 78 */ mr r3, r31
/* 800185CC 000144EC B0 A1 00 10 */ sth r5, 0x10(r1)
/* 800185D0 000144F0 C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 800185D4 000144F4 A8 BF 00 18 */ lha r5, 0x18(r31)
/* 800185D8 000144F8 B0 A1 00 0C */ sth r5, 0xc(r1)
/* 800185DC 000144FC A8 BF 00 1A */ lha r5, 0x1a(r31)
/* 800185E0 00014500 B0 A1 00 0E */ sth r5, 0xe(r1)
/* 800185E4 00014504 A8 BF 00 1C */ lha r5, 0x1c(r31)
/* 800185E8 00014508 B0 A1 00 10 */ sth r5, 0x10(r1)
/* 800185EC 0001450C A8 BF 00 30 */ lha r5, 0x30(r31)
/* 800185F0 00014510 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 800185F4 00014514 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 800185F8 00014518 C0 7F 00 28 */ lfs f3, 0x28(r31)
/* 800185FC 0001451C 90 A1 00 5C */ stw r5, 0x5c(r1)
/* 80018600 00014520 C0 9F 00 2C */ lfs f4, 0x2c(r31)
/* 80018604 00014524 90 01 00 58 */ stw r0, 0x58(r1)
/* 80018608 00014528 C8 01 00 58 */ lfd f0, 0x58(r1)
/* 8001860C 0001452C EC 00 08 28 */ fsubs f0, f0, f1
/* 80018610 00014530 EC 25 00 32 */ fmuls f1, f5, f0
/* 80018614 00014534 48 00 84 A5 */ bl func_80020AB8
/* 80018618 00014538 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 8001861C 0001453C CB E1 00 90 */ lfd f31, 0x90(r1)
/* 80018620 00014540 CB C1 00 88 */ lfd f30, 0x88(r1)
/* 80018624 00014544 7C 08 03 A6 */ mtlr r0
/* 80018628 00014548 CB A1 00 80 */ lfd f29, 0x80(r1)
/* 8001862C 0001454C CB 81 00 78 */ lfd f28, 0x78(r1)
/* 80018630 00014550 83 E1 00 74 */ lwz r31, 0x74(r1)
/* 80018634 00014554 83 C1 00 70 */ lwz r30, 0x70(r1)
/* 80018638 00014558 83 A1 00 6C */ lwz r29, 0x6c(r1)
/* 8001863C 0001455C 83 81 00 68 */ lwz r28, 0x68(r1)
/* 80018640 00014560 38 21 00 98 */ addi r1, r1, 0x98
/* 80018644 00014564 4E 80 00 20 */ blr
.global func_80018648
func_80018648:
/* 80018648 00014568 7C 08 02 A6 */ mflr r0
/* 8001864C 0001456C 90 01 00 04 */ stw r0, 4(r1)
/* 80018650 00014570 94 21 FF F8 */ stwu r1, -8(r1)
/* 80018654 00014574 80 0D 9A 60 */ lwz r0, lbl_802F1C40@sda21(r13)
/* 80018658 00014578 7C 00 18 00 */ cmpw r0, r3
/* 8001865C 0001457C 40 82 00 10 */ bne lbl_8001866C
/* 80018660 00014580 80 0D 9A 54 */ lwz r0, lbl_802F1C34@sda21(r13)
/* 80018664 00014584 7C 00 18 00 */ cmpw r0, r3
/* 80018668 00014588 41 82 00 08 */ beq lbl_80018670
lbl_8001866C:
/* 8001866C 0001458C 4B FF FC C5 */ bl func_80018330
lbl_80018670:
/* 80018670 00014590 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80018674 00014594 38 21 00 08 */ addi r1, r1, 8
/* 80018678 00014598 7C 08 03 A6 */ mtlr r0
/* 8001867C 0001459C 4E 80 00 20 */ blr
.global func_80018680
func_80018680:
/* 80018680 000145A0 7C 08 02 A6 */ mflr r0
/* 80018684 000145A4 90 01 00 04 */ stw r0, 4(r1)
/* 80018688 000145A8 94 21 FF 98 */ stwu r1, -0x68(r1)
/* 8001868C 000145AC 93 E1 00 64 */ stw r31, 0x64(r1)
/* 80018690 000145B0 93 C1 00 60 */ stw r30, 0x60(r1)
/* 80018694 000145B4 7C 7E 1B 78 */ mr r30, r3
/* 80018698 000145B8 1C BE 02 84 */ mulli r5, r30, 0x284
/* 8001869C 000145BC 80 8D 99 80 */ lwz r4, mathutilData@sda21(r13)
/* 800186A0 000145C0 93 CD 9A 60 */ stw r30, lbl_802F1C40@sda21(r13)
/* 800186A4 000145C4 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 800186A8 000145C8 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 800186AC 000145CC 7F E0 2A 14 */ add r31, r0, r5
/* 800186B0 000145D0 93 ED 9A 5C */ stw r31, currentCameraStructPtr@sda21(r13)
/* 800186B4 000145D4 38 7F 01 44 */ addi r3, r31, 0x144
/* 800186B8 000145D8 38 84 00 30 */ addi r4, r4, 0x30
/* 800186BC 000145DC 4B FE F3 61 */ bl mathutil_mtx_copy
/* 800186C0 000145E0 80 6D 99 80 */ lwz r3, mathutilData@sda21(r13)
/* 800186C4 000145E4 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800186C8 000145E8 38 63 00 30 */ addi r3, r3, 0x30
/* 800186CC 000145EC 38 84 00 60 */ addi r4, r4, 0x60
/* 800186D0 000145F0 4B FE F3 4D */ bl mathutil_mtx_copy
/* 800186D4 000145F4 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800186D8 000145F8 38 7F 01 74 */ addi r3, r31, 0x174
/* 800186DC 000145FC 38 84 00 90 */ addi r4, r4, 0x90
/* 800186E0 00014600 4B FE F3 3D */ bl mathutil_mtx_copy
/* 800186E4 00014604 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 800186E8 00014608 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800186EC 0001460C 4B FE F3 31 */ bl mathutil_mtx_copy
/* 800186F0 00014610 80 8D 99 5C */ lwz r4, lbl_802F1B3C@sda21(r13)
/* 800186F4 00014614 38 7F 01 D4 */ addi r3, r31, 0x1d4
/* 800186F8 00014618 38 84 00 C0 */ addi r4, r4, 0xc0
/* 800186FC 0001461C 4B FE F3 21 */ bl mathutil_mtx_copy
/* 80018700 00014620 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 80018704 00014624 38 83 00 30 */ addi r4, r3, 0x30
/* 80018708 00014628 4B FE F3 15 */ bl mathutil_mtx_copy
/* 8001870C 0001462C C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80018710 00014630 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 80018714 00014634 D0 23 00 3C */ stfs f1, 0x3c(r3)
/* 80018718 00014638 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001871C 0001463C 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 80018720 00014640 FC 00 00 50 */ fneg f0, f0
/* 80018724 00014644 D0 03 00 4C */ stfs f0, 0x4c(r3)
/* 80018728 00014648 80 6D 99 5C */ lwz r3, lbl_802F1B3C@sda21(r13)
/* 8001872C 0001464C D0 23 00 5C */ stfs f1, 0x5c(r3)
/* 80018730 00014650 A8 0D 99 B2 */ lha r0, gameMode@sda21(r13)
/* 80018734 00014654 2C 00 00 04 */ cmpwi r0, 4
/* 80018738 00014658 40 82 00 60 */ bne lbl_80018798
/* 8001873C 0001465C A8 0D 99 AE */ lha r0, gameSubmode@sda21(r13)
/* 80018740 00014660 2C 00 00 9D */ cmpwi r0, 0x9d
/* 80018744 00014664 40 82 00 54 */ bne lbl_80018798
/* 80018748 00014668 2C 1E 00 00 */ cmpwi r30, 0
/* 8001874C 0001466C 40 82 00 4C */ bne lbl_80018798
/* 80018750 00014670 C0 22 84 A0 */ lfs f1, lbl_802F2CA0@sda21(r2)
/* 80018754 00014674 3C 00 43 30 */ lis r0, 0x4330
/* 80018758 00014678 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 8001875C 0001467C 38 61 00 14 */ addi r3, r1, 0x14
/* 80018760 00014680 A8 9F 00 30 */ lha r4, 0x30(r31)
/* 80018764 00014684 EC 61 00 24 */ fdivs f3, f1, f0
/* 80018768 00014688 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001876C 0001468C 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 80018770 00014690 C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 80018774 00014694 90 81 00 5C */ stw r4, 0x5c(r1)
/* 80018778 00014698 90 01 00 58 */ stw r0, 0x58(r1)
/* 8001877C 0001469C C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 80018780 000146A0 C8 01 00 58 */ lfd f0, 0x58(r1)
/* 80018784 000146A4 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 80018788 000146A8 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001878C 000146AC EC 25 00 32 */ fmuls f1, f5, f0
/* 80018790 000146B0 48 0B 1F 61 */ bl C_MTXPerspective
/* 80018794 000146B4 48 00 00 40 */ b lbl_800187D4
lbl_80018798:
/* 80018798 000146B8 A8 9F 00 30 */ lha r4, 0x30(r31)
/* 8001879C 000146BC 3C 00 43 30 */ lis r0, 0x4330
/* 800187A0 000146C0 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 800187A4 000146C4 38 61 00 14 */ addi r3, r1, 0x14
/* 800187A8 000146C8 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 800187AC 000146CC 90 81 00 5C */ stw r4, 0x5c(r1)
/* 800187B0 000146D0 C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 800187B4 000146D4 90 01 00 58 */ stw r0, 0x58(r1)
/* 800187B8 000146D8 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 800187BC 000146DC C8 01 00 58 */ lfd f0, 0x58(r1)
/* 800187C0 000146E0 C0 62 84 7C */ lfs f3, lbl_802F2C7C@sda21(r2)
/* 800187C4 000146E4 EC 00 08 28 */ fsubs f0, f0, f1
/* 800187C8 000146E8 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 800187CC 000146EC EC 25 00 32 */ fmuls f1, f5, f0
/* 800187D0 000146F0 48 0B 1F 21 */ bl C_MTXPerspective
lbl_800187D4:
/* 800187D4 000146F4 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 800187D8 000146F8 38 61 00 14 */ addi r3, r1, 0x14
/* 800187DC 000146FC C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 800187E0 00014700 38 80 00 00 */ li r4, 0
/* 800187E4 00014704 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 800187E8 00014708 EC 01 00 32 */ fmuls f0, f1, f0
/* 800187EC 0001470C C0 3F 00 38 */ lfs f1, 0x38(r31)
/* 800187F0 00014710 C0 61 00 1C */ lfs f3, 0x1c(r1)
/* 800187F4 00014714 EC 02 00 32 */ fmuls f0, f2, f0
/* 800187F8 00014718 EC 01 00 32 */ fmuls f0, f1, f0
/* 800187FC 0001471C EC 03 00 28 */ fsubs f0, f3, f0
/* 80018800 00014720 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80018804 00014724 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80018808 00014728 C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 8001880C 0001472C C0 5F 00 38 */ lfs f2, 0x38(r31)
/* 80018810 00014730 EC 01 00 32 */ fmuls f0, f1, f0
/* 80018814 00014734 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 80018818 00014738 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001881C 0001473C EC 01 00 28 */ fsubs f0, f1, f0
/* 80018820 00014740 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80018824 00014744 48 0C BB 85 */ bl GXSetProjection
/* 80018828 00014748 80 62 84 A4 */ lwz r3, lbl_802F2CA4@sda21(r2)
/* 8001882C 0001474C 3C 00 43 30 */ lis r0, 0x4330
/* 80018830 00014750 A0 A2 84 A8 */ lhz r5, lbl_802F2CA8@sda21(r2)
/* 80018834 00014754 38 81 00 0C */ addi r4, r1, 0xc
/* 80018838 00014758 90 61 00 0C */ stw r3, 0xc(r1)
/* 8001883C 0001475C C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 80018840 00014760 7F E3 FB 78 */ mr r3, r31
/* 80018844 00014764 B0 A1 00 10 */ sth r5, 0x10(r1)
/* 80018848 00014768 C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 8001884C 0001476C A8 BF 00 18 */ lha r5, 0x18(r31)
/* 80018850 00014770 B0 A1 00 0C */ sth r5, 0xc(r1)
/* 80018854 00014774 A8 BF 00 1A */ lha r5, 0x1a(r31)
/* 80018858 00014778 B0 A1 00 0E */ sth r5, 0xe(r1)
/* 8001885C 0001477C A8 BF 00 1C */ lha r5, 0x1c(r31)
/* 80018860 00014780 B0 A1 00 10 */ sth r5, 0x10(r1)
/* 80018864 00014784 A8 BF 00 30 */ lha r5, 0x30(r31)
/* 80018868 00014788 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 8001886C 0001478C 6C A5 80 00 */ xoris r5, r5, 0x8000
/* 80018870 00014790 C0 7F 00 28 */ lfs f3, 0x28(r31)
/* 80018874 00014794 90 A1 00 5C */ stw r5, 0x5c(r1)
/* 80018878 00014798 C0 9F 00 2C */ lfs f4, 0x2c(r31)
/* 8001887C 0001479C 90 01 00 58 */ stw r0, 0x58(r1)
/* 80018880 000147A0 C8 01 00 58 */ lfd f0, 0x58(r1)
/* 80018884 000147A4 EC 00 08 28 */ fsubs f0, f0, f1
/* 80018888 000147A8 EC 25 00 32 */ fmuls f1, f5, f0
/* 8001888C 000147AC 48 00 82 2D */ bl func_80020AB8
/* 80018890 000147B0 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 80018894 000147B4 83 E1 00 64 */ lwz r31, 0x64(r1)
/* 80018898 000147B8 83 C1 00 60 */ lwz r30, 0x60(r1)
/* 8001889C 000147BC 7C 08 03 A6 */ mtlr r0
/* 800188A0 000147C0 38 21 00 68 */ addi r1, r1, 0x68
/* 800188A4 000147C4 4E 80 00 20 */ blr
.global func_800188A8
func_800188A8:
/* 800188A8 000147C8 7C 08 02 A6 */ mflr r0
/* 800188AC 000147CC 90 01 00 04 */ stw r0, 4(r1)
/* 800188B0 000147D0 94 21 FF F8 */ stwu r1, -8(r1)
/* 800188B4 000147D4 80 0D 9A 60 */ lwz r0, lbl_802F1C40@sda21(r13)
/* 800188B8 000147D8 7C 00 18 00 */ cmpw r0, r3
/* 800188BC 000147DC 41 82 00 08 */ beq lbl_800188C4
/* 800188C0 000147E0 4B FF FD C1 */ bl func_80018680
lbl_800188C4:
/* 800188C4 000147E4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800188C8 000147E8 38 21 00 08 */ addi r1, r1, 8
/* 800188CC 000147EC 7C 08 03 A6 */ mtlr r0
/* 800188D0 000147F0 4E 80 00 20 */ blr
.global func_800188D4
func_800188D4:
/* 800188D4 000147F4 7C 08 02 A6 */ mflr r0
/* 800188D8 000147F8 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 800188DC 000147FC 90 01 00 04 */ stw r0, 4(r1)
/* 800188E0 00014800 3C 00 43 30 */ lis r0, 0x4330
/* 800188E4 00014804 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 800188E8 00014808 93 E1 00 54 */ stw r31, 0x54(r1)
/* 800188EC 0001480C 3B E3 EF 00 */ addi r31, r3, cameraInfo@l
/* 800188F0 00014810 38 61 00 08 */ addi r3, r1, 8
/* 800188F4 00014814 A8 9F 00 30 */ lha r4, 0x30(r31)
/* 800188F8 00014818 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 800188FC 0001481C 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 80018900 00014820 C0 A2 84 9C */ lfs f5, lbl_802F2C9C@sda21(r2)
/* 80018904 00014824 90 81 00 4C */ stw r4, 0x4c(r1)
/* 80018908 00014828 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 8001890C 0001482C 90 01 00 48 */ stw r0, 0x48(r1)
/* 80018910 00014830 C0 62 84 7C */ lfs f3, lbl_802F2C7C@sda21(r2)
/* 80018914 00014834 C8 01 00 48 */ lfd f0, 0x48(r1)
/* 80018918 00014838 C0 82 84 80 */ lfs f4, lbl_802F2C80@sda21(r2)
/* 8001891C 0001483C EC 00 08 28 */ fsubs f0, f0, f1
/* 80018920 00014840 EC 25 00 32 */ fmuls f1, f5, f0
/* 80018924 00014844 48 0B 1D CD */ bl C_MTXPerspective
/* 80018928 00014848 C0 21 00 08 */ lfs f1, 8(r1)
/* 8001892C 0001484C 38 61 00 08 */ addi r3, r1, 8
/* 80018930 00014850 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 80018934 00014854 38 80 00 00 */ li r4, 0
/* 80018938 00014858 C0 5F 00 34 */ lfs f2, 0x34(r31)
/* 8001893C 0001485C EC 01 00 32 */ fmuls f0, f1, f0
/* 80018940 00014860 C0 7F 00 38 */ lfs f3, 0x38(r31)
/* 80018944 00014864 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80018948 00014868 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001894C 0001486C EC 03 00 32 */ fmuls f0, f3, f0
/* 80018950 00014870 EC 01 00 28 */ fsubs f0, f1, f0
/* 80018954 00014874 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80018958 00014878 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001895C 0001487C C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 80018960 00014880 C0 41 00 20 */ lfs f2, 0x20(r1)
/* 80018964 00014884 EC 01 00 32 */ fmuls f0, f1, f0
/* 80018968 00014888 EC 03 00 32 */ fmuls f0, f3, f0
/* 8001896C 0001488C EC 02 00 28 */ fsubs f0, f2, f0
/* 80018970 00014890 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 80018974 00014894 48 0C BA 35 */ bl GXSetProjection
/* 80018978 00014898 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 8001897C 0001489C 83 E1 00 54 */ lwz r31, 0x54(r1)
/* 80018980 000148A0 38 21 00 58 */ addi r1, r1, 0x58
/* 80018984 000148A4 7C 08 03 A6 */ mtlr r0
/* 80018988 000148A8 4E 80 00 20 */ blr
.global func_8001898C
func_8001898C:
/* 8001898C 000148AC 1C C3 02 84 */ mulli r6, r3, 0x284
/* 80018990 000148B0 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80018994 000148B4 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 80018998 000148B8 7C 60 32 14 */ add r3, r0, r6
/* 8001899C 000148BC 38 00 00 01 */ li r0, 1
/* 800189A0 000148C0 90 03 00 EC */ stw r0, 0xec(r3)
/* 800189A4 000148C4 2C 04 00 00 */ cmpwi r4, 0
/* 800189A8 000148C8 C0 23 01 00 */ lfs f1, 0x100(r3)
/* 800189AC 000148CC C0 05 00 00 */ lfs f0, 0(r5)
/* 800189B0 000148D0 EC 01 00 2A */ fadds f0, f1, f0
/* 800189B4 000148D4 D0 03 01 00 */ stfs f0, 0x100(r3)
/* 800189B8 000148D8 C0 23 01 04 */ lfs f1, 0x104(r3)
/* 800189BC 000148DC C0 05 00 04 */ lfs f0, 4(r5)
/* 800189C0 000148E0 EC 01 00 2A */ fadds f0, f1, f0
/* 800189C4 000148E4 D0 03 01 04 */ stfs f0, 0x104(r3)
/* 800189C8 000148E8 C0 23 01 08 */ lfs f1, 0x108(r3)
/* 800189CC 000148EC C0 05 00 08 */ lfs f0, 8(r5)
/* 800189D0 000148F0 EC 01 00 2A */ fadds f0, f1, f0
/* 800189D4 000148F4 D0 03 01 08 */ stfs f0, 0x108(r3)
/* 800189D8 000148F8 41 80 00 10 */ blt lbl_800189E8
/* 800189DC 000148FC 80 03 00 F0 */ lwz r0, 0xf0(r3)
/* 800189E0 00014900 2C 00 00 00 */ cmpwi r0, 0
/* 800189E4 00014904 40 80 00 10 */ bge lbl_800189F4
lbl_800189E8:
/* 800189E8 00014908 38 00 FF FF */ li r0, -1
/* 800189EC 0001490C 90 03 00 F0 */ stw r0, 0xf0(r3)
/* 800189F0 00014910 4E 80 00 20 */ blr
lbl_800189F4:
/* 800189F4 00014914 7C 00 20 00 */ cmpw r0, r4
/* 800189F8 00014918 4C 80 00 20 */ bgelr
/* 800189FC 0001491C 90 83 00 F0 */ stw r4, 0xf0(r3)
/* 80018A00 00014920 4E 80 00 20 */ blr
.global func_80018A04
func_80018A04:
/* 80018A04 00014924 3C 80 80 1F */ lis r4, cameraInfo@ha
/* 80018A08 00014928 38 A4 EF 00 */ addi r5, r4, cameraInfo@l
/* 80018A0C 0001492C A8 85 00 24 */ lha r4, 0x24(r5)
/* 80018A10 00014930 7C 63 07 74 */ extsb r3, r3
/* 80018A14 00014934 38 00 00 00 */ li r0, 0
/* 80018A18 00014938 54 84 06 B5 */ rlwinm. r4, r4, 0, 0x1a, 0x1a
/* 80018A1C 0001493C 40 82 00 0C */ bne lbl_80018A28
/* 80018A20 00014940 98 65 00 1E */ stb r3, 0x1e(r5)
/* 80018A24 00014944 98 05 00 1F */ stb r0, 0x1f(r5)
lbl_80018A28:
/* 80018A28 00014948 38 A5 02 84 */ addi r5, r5, 0x284
/* 80018A2C 0001494C A8 85 00 24 */ lha r4, 0x24(r5)
/* 80018A30 00014950 54 84 06 B5 */ rlwinm. r4, r4, 0, 0x1a, 0x1a
/* 80018A34 00014954 40 82 00 0C */ bne lbl_80018A40
/* 80018A38 00014958 98 65 00 1E */ stb r3, 0x1e(r5)
/* 80018A3C 0001495C 98 05 00 1F */ stb r0, 0x1f(r5)
lbl_80018A40:
/* 80018A40 00014960 A8 85 02 A8 */ lha r4, 0x2a8(r5)
/* 80018A44 00014964 38 A5 02 84 */ addi r5, r5, 0x284
/* 80018A48 00014968 54 84 06 B5 */ rlwinm. r4, r4, 0, 0x1a, 0x1a
/* 80018A4C 0001496C 40 82 00 0C */ bne lbl_80018A58
/* 80018A50 00014970 98 65 00 1E */ stb r3, 0x1e(r5)
/* 80018A54 00014974 98 05 00 1F */ stb r0, 0x1f(r5)
lbl_80018A58:
/* 80018A58 00014978 A8 85 02 A8 */ lha r4, 0x2a8(r5)
/* 80018A5C 0001497C 38 A5 02 84 */ addi r5, r5, 0x284
/* 80018A60 00014980 54 84 06 B5 */ rlwinm. r4, r4, 0, 0x1a, 0x1a
/* 80018A64 00014984 4C 82 00 20 */ bnelr
/* 80018A68 00014988 98 65 00 1E */ stb r3, 0x1e(r5)
/* 80018A6C 0001498C 98 05 00 1F */ stb r0, 0x1f(r5)
/* 80018A70 00014990 4E 80 00 20 */ blr
.global func_80018A74
func_80018A74:
/* 80018A74 00014994 2C 04 00 00 */ cmpwi r4, 0
/* 80018A78 00014998 3C 80 80 1F */ lis r4, cameraInfo@ha
/* 80018A7C 0001499C 38 84 EF 00 */ addi r4, r4, cameraInfo@l
/* 80018A80 000149A0 41 82 00 38 */ beq lbl_80018AB8
/* 80018A84 000149A4 A8 04 00 24 */ lha r0, 0x24(r4)
/* 80018A88 000149A8 7C 00 1B 78 */ or r0, r0, r3
/* 80018A8C 000149AC B0 04 00 24 */ sth r0, 0x24(r4)
/* 80018A90 000149B0 A8 04 02 A8 */ lha r0, 0x2a8(r4)
/* 80018A94 000149B4 7C 00 1B 78 */ or r0, r0, r3
/* 80018A98 000149B8 B0 04 02 A8 */ sth r0, 0x2a8(r4)
/* 80018A9C 000149BC A8 04 05 2C */ lha r0, 0x52c(r4)
/* 80018AA0 000149C0 7C 00 1B 78 */ or r0, r0, r3
/* 80018AA4 000149C4 B0 04 05 2C */ sth r0, 0x52c(r4)
/* 80018AA8 000149C8 A8 04 07 B0 */ lha r0, 0x7b0(r4)
/* 80018AAC 000149CC 7C 00 1B 78 */ or r0, r0, r3
/* 80018AB0 000149D0 B0 04 07 B0 */ sth r0, 0x7b0(r4)
/* 80018AB4 000149D4 4E 80 00 20 */ blr
lbl_80018AB8:
/* 80018AB8 000149D8 A8 04 00 24 */ lha r0, 0x24(r4)
/* 80018ABC 000149DC 7C 63 18 F8 */ nor r3, r3, r3
/* 80018AC0 000149E0 7C 00 18 38 */ and r0, r0, r3
/* 80018AC4 000149E4 B0 04 00 24 */ sth r0, 0x24(r4)
/* 80018AC8 000149E8 A8 04 02 A8 */ lha r0, 0x2a8(r4)
/* 80018ACC 000149EC 7C 00 18 38 */ and r0, r0, r3
/* 80018AD0 000149F0 B0 04 02 A8 */ sth r0, 0x2a8(r4)
/* 80018AD4 000149F4 A8 04 05 2C */ lha r0, 0x52c(r4)
/* 80018AD8 000149F8 7C 00 18 38 */ and r0, r0, r3
/* 80018ADC 000149FC B0 04 05 2C */ sth r0, 0x52c(r4)
/* 80018AE0 00014A00 A8 04 07 B0 */ lha r0, 0x7b0(r4)
/* 80018AE4 00014A04 7C 00 18 38 */ and r0, r0, r3
/* 80018AE8 00014A08 B0 04 07 B0 */ sth r0, 0x7b0(r4)
/* 80018AEC 00014A0C 4E 80 00 20 */ blr
.global camera_clear
camera_clear:
/* 80018AF0 00014A10 7C 08 02 A6 */ mflr r0
/* 80018AF4 00014A14 38 A0 02 84 */ li r5, 0x284
/* 80018AF8 00014A18 90 01 00 04 */ stw r0, 4(r1)
/* 80018AFC 00014A1C 94 21 FD 50 */ stwu r1, -0x2b0(r1)
/* 80018B00 00014A20 BF 61 02 9C */ stmw r27, 0x29c(r1)
/* 80018B04 00014A24 7C 7D 1B 78 */ mr r29, r3
/* 80018B08 00014A28 A8 03 00 24 */ lha r0, 0x24(r3)
/* 80018B0C 00014A2C 83 9D 02 04 */ lwz r28, 0x204(r29)
/* 80018B10 00014A30 70 1B 00 50 */ andi. r27, r0, 0x50
/* 80018B14 00014A34 8B FD 00 1E */ lbz r31, 0x1e(r29)
/* 80018B18 00014A38 8B DD 00 26 */ lbz r30, 0x26(r29)
/* 80018B1C 00014A3C 80 9D 00 28 */ lwz r4, 0x28(r29)
/* 80018B20 00014A40 80 1D 00 2C */ lwz r0, 0x2c(r29)
/* 80018B24 00014A44 90 81 00 38 */ stw r4, 0x38(r1)
/* 80018B28 00014A48 38 80 00 00 */ li r4, 0
/* 80018B2C 00014A4C 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80018B30 00014A50 80 DD 00 30 */ lwz r6, 0x30(r29)
/* 80018B34 00014A54 80 1D 00 34 */ lwz r0, 0x34(r29)
/* 80018B38 00014A58 90 C1 00 40 */ stw r6, 0x40(r1)
/* 80018B3C 00014A5C 90 01 00 44 */ stw r0, 0x44(r1)
/* 80018B40 00014A60 80 DD 00 38 */ lwz r6, 0x38(r29)
/* 80018B44 00014A64 80 1D 00 3C */ lwz r0, 0x3c(r29)
/* 80018B48 00014A68 90 C1 00 48 */ stw r6, 0x48(r1)
/* 80018B4C 00014A6C 90 01 00 4C */ stw r0, 0x4c(r1)
/* 80018B50 00014A70 80 DD 00 40 */ lwz r6, 0x40(r29)
/* 80018B54 00014A74 80 1D 00 44 */ lwz r0, 0x44(r29)
/* 80018B58 00014A78 90 C1 00 50 */ stw r6, 0x50(r1)
/* 80018B5C 00014A7C 90 01 00 54 */ stw r0, 0x54(r1)
/* 80018B60 00014A80 80 DD 00 48 */ lwz r6, 0x48(r29)
/* 80018B64 00014A84 80 1D 00 4C */ lwz r0, 0x4c(r29)
/* 80018B68 00014A88 90 C1 00 58 */ stw r6, 0x58(r1)
/* 80018B6C 00014A8C 90 01 00 5C */ stw r0, 0x5c(r1)
/* 80018B70 00014A90 88 1D 00 1F */ lbz r0, 0x1f(r29)
/* 80018B74 00014A94 98 01 00 2F */ stb r0, 0x2f(r1)
/* 80018B78 00014A98 4B FE A7 A9 */ bl memset
/* 80018B7C 00014A9C 93 9D 02 04 */ stw r28, 0x204(r29)
/* 80018B80 00014AA0 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80018B84 00014AA4 63 64 00 01 */ ori r4, r27, 1
/* 80018B88 00014AA8 9B FD 00 1E */ stb r31, 0x1e(r29)
/* 80018B8C 00014AAC 38 63 EF 00 */ addi r3, r3, cameraInfo@l
/* 80018B90 00014AB0 38 00 00 00 */ li r0, 0
/* 80018B94 00014AB4 A8 BD 00 24 */ lha r5, 0x24(r29)
/* 80018B98 00014AB8 7C A4 23 78 */ or r4, r5, r4
/* 80018B9C 00014ABC B0 9D 00 24 */ sth r4, 0x24(r29)
/* 80018BA0 00014AC0 9B DD 00 26 */ stb r30, 0x26(r29)
/* 80018BA4 00014AC4 80 A1 00 38 */ lwz r5, 0x38(r1)
/* 80018BA8 00014AC8 80 81 00 3C */ lwz r4, 0x3c(r1)
/* 80018BAC 00014ACC 90 BD 00 28 */ stw r5, 0x28(r29)
/* 80018BB0 00014AD0 90 9D 00 2C */ stw r4, 0x2c(r29)
/* 80018BB4 00014AD4 80 A1 00 40 */ lwz r5, 0x40(r1)
/* 80018BB8 00014AD8 80 81 00 44 */ lwz r4, 0x44(r1)
/* 80018BBC 00014ADC 90 BD 00 30 */ stw r5, 0x30(r29)
/* 80018BC0 00014AE0 90 9D 00 34 */ stw r4, 0x34(r29)
/* 80018BC4 00014AE4 80 A1 00 48 */ lwz r5, 0x48(r1)
/* 80018BC8 00014AE8 80 81 00 4C */ lwz r4, 0x4c(r1)
/* 80018BCC 00014AEC 90 BD 00 38 */ stw r5, 0x38(r29)
/* 80018BD0 00014AF0 90 9D 00 3C */ stw r4, 0x3c(r29)
/* 80018BD4 00014AF4 80 A1 00 50 */ lwz r5, 0x50(r1)
/* 80018BD8 00014AF8 80 81 00 54 */ lwz r4, 0x54(r1)
/* 80018BDC 00014AFC 90 BD 00 40 */ stw r5, 0x40(r29)
/* 80018BE0 00014B00 90 9D 00 44 */ stw r4, 0x44(r29)
/* 80018BE4 00014B04 80 A1 00 58 */ lwz r5, 0x58(r1)
/* 80018BE8 00014B08 80 81 00 5C */ lwz r4, 0x5c(r1)
/* 80018BEC 00014B0C 90 BD 00 48 */ stw r5, 0x48(r29)
/* 80018BF0 00014B10 90 9D 00 4C */ stw r4, 0x4c(r29)
/* 80018BF4 00014B14 88 81 00 2F */ lbz r4, 0x2f(r1)
/* 80018BF8 00014B18 98 9D 00 1F */ stb r4, 0x1f(r29)
/* 80018BFC 00014B1C C0 02 84 AC */ lfs f0, lbl_802F2CAC@sda21(r2)
/* 80018C00 00014B20 D0 1D 00 08 */ stfs f0, 8(r29)
/* 80018C04 00014B24 A8 9D 00 32 */ lha r4, 0x32(r29)
/* 80018C08 00014B28 B0 9D 00 30 */ sth r4, 0x30(r29)
/* 80018C0C 00014B2C C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 80018C10 00014B30 D0 1D 00 20 */ stfs f0, 0x20(r29)
/* 80018C14 00014B34 80 9D 02 04 */ lwz r4, 0x204(r29)
/* 80018C18 00014B38 1C 84 02 84 */ mulli r4, r4, 0x284
/* 80018C1C 00014B3C 7C 63 22 14 */ add r3, r3, r4
/* 80018C20 00014B40 90 03 00 EC */ stw r0, 0xec(r3)
/* 80018C24 00014B44 90 03 00 F0 */ stw r0, 0xf0(r3)
/* 80018C28 00014B48 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80018C2C 00014B4C D0 03 00 F4 */ stfs f0, 0xf4(r3)
/* 80018C30 00014B50 D0 03 00 F8 */ stfs f0, 0xf8(r3)
/* 80018C34 00014B54 D0 03 00 FC */ stfs f0, 0xfc(r3)
/* 80018C38 00014B58 D0 03 01 00 */ stfs f0, 0x100(r3)
/* 80018C3C 00014B5C D0 03 01 04 */ stfs f0, 0x104(r3)
/* 80018C40 00014B60 D0 03 01 08 */ stfs f0, 0x108(r3)
/* 80018C44 00014B64 80 01 02 B4 */ lwz r0, 0x2b4(r1)
/* 80018C48 00014B68 BB 61 02 9C */ lmw r27, 0x29c(r1)
/* 80018C4C 00014B6C 38 21 02 B0 */ addi r1, r1, 0x2b0
/* 80018C50 00014B70 7C 08 03 A6 */ mtlr r0
/* 80018C54 00014B74 4E 80 00 20 */ blr
.global func_80018C58
func_80018C58:
/* 80018C58 00014B78 7C 08 02 A6 */ mflr r0
/* 80018C5C 00014B7C 90 01 00 04 */ stw r0, 4(r1)
/* 80018C60 00014B80 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80018C64 00014B84 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80018C68 00014B88 7C 7F 1B 78 */ mr r31, r3
/* 80018C6C 00014B8C 80 03 00 EC */ lwz r0, 0xec(r3)
/* 80018C70 00014B90 28 00 00 00 */ cmplwi r0, 0
/* 80018C74 00014B94 41 82 01 40 */ beq lbl_80018DB4
/* 80018C78 00014B98 C8 42 84 B0 */ lfd f2, lbl_802F2CB0@sda21(r2)
/* 80018C7C 00014B9C 38 7F 01 44 */ addi r3, r31, 0x144
/* 80018C80 00014BA0 C0 1F 00 F4 */ lfs f0, 0xf4(r31)
/* 80018C84 00014BA4 C0 3F 01 00 */ lfs f1, 0x100(r31)
/* 80018C88 00014BA8 FC 02 00 32 */ fmul f0, f2, f0
/* 80018C8C 00014BAC FC 01 00 28 */ fsub f0, f1, f0
/* 80018C90 00014BB0 FC 00 00 18 */ frsp f0, f0
/* 80018C94 00014BB4 D0 1F 01 00 */ stfs f0, 0x100(r31)
/* 80018C98 00014BB8 C0 1F 00 F8 */ lfs f0, 0xf8(r31)
/* 80018C9C 00014BBC C0 3F 01 04 */ lfs f1, 0x104(r31)
/* 80018CA0 00014BC0 FC 02 00 32 */ fmul f0, f2, f0
/* 80018CA4 00014BC4 FC 01 00 28 */ fsub f0, f1, f0
/* 80018CA8 00014BC8 FC 00 00 18 */ frsp f0, f0
/* 80018CAC 00014BCC D0 1F 01 04 */ stfs f0, 0x104(r31)
/* 80018CB0 00014BD0 C0 1F 00 FC */ lfs f0, 0xfc(r31)
/* 80018CB4 00014BD4 C0 3F 01 08 */ lfs f1, 0x108(r31)
/* 80018CB8 00014BD8 FC 02 00 32 */ fmul f0, f2, f0
/* 80018CBC 00014BDC FC 01 00 28 */ fsub f0, f1, f0
/* 80018CC0 00014BE0 FC 00 00 18 */ frsp f0, f0
/* 80018CC4 00014BE4 D0 1F 01 08 */ stfs f0, 0x108(r31)
/* 80018CC8 00014BE8 C0 1F 01 00 */ lfs f0, 0x100(r31)
/* 80018CCC 00014BEC C8 22 84 B8 */ lfd f1, lbl_802F2CB8@sda21(r2)
/* 80018CD0 00014BF0 FC 00 00 72 */ fmul f0, f0, f1
/* 80018CD4 00014BF4 FC 00 00 18 */ frsp f0, f0
/* 80018CD8 00014BF8 D0 1F 01 00 */ stfs f0, 0x100(r31)
/* 80018CDC 00014BFC C0 1F 01 04 */ lfs f0, 0x104(r31)
/* 80018CE0 00014C00 FC 00 00 72 */ fmul f0, f0, f1
/* 80018CE4 00014C04 FC 00 00 18 */ frsp f0, f0
/* 80018CE8 00014C08 D0 1F 01 04 */ stfs f0, 0x104(r31)
/* 80018CEC 00014C0C C0 1F 01 08 */ lfs f0, 0x108(r31)
/* 80018CF0 00014C10 FC 00 00 72 */ fmul f0, f0, f1
/* 80018CF4 00014C14 FC 00 00 18 */ frsp f0, f0
/* 80018CF8 00014C18 D0 1F 01 08 */ stfs f0, 0x108(r31)
/* 80018CFC 00014C1C C0 3F 00 F4 */ lfs f1, 0xf4(r31)
/* 80018D00 00014C20 C0 1F 01 00 */ lfs f0, 0x100(r31)
/* 80018D04 00014C24 EC 01 00 2A */ fadds f0, f1, f0
/* 80018D08 00014C28 D0 1F 00 F4 */ stfs f0, 0xf4(r31)
/* 80018D0C 00014C2C C0 3F 00 F8 */ lfs f1, 0xf8(r31)
/* 80018D10 00014C30 C0 1F 01 04 */ lfs f0, 0x104(r31)
/* 80018D14 00014C34 EC 01 00 2A */ fadds f0, f1, f0
/* 80018D18 00014C38 D0 1F 00 F8 */ stfs f0, 0xf8(r31)
/* 80018D1C 00014C3C C0 3F 00 FC */ lfs f1, 0xfc(r31)
/* 80018D20 00014C40 C0 1F 01 08 */ lfs f0, 0x108(r31)
/* 80018D24 00014C44 EC 01 00 2A */ fadds f0, f1, f0
/* 80018D28 00014C48 D0 1F 00 FC */ stfs f0, 0xfc(r31)
/* 80018D2C 00014C4C 4B FE EB 85 */ bl mathutil_mtxA_from_mtx
/* 80018D30 00014C50 38 7F 00 F4 */ addi r3, r31, 0xf4
/* 80018D34 00014C54 4B FE EF ED */ bl mathutil_mtxA_translate
/* 80018D38 00014C58 38 7F 01 44 */ addi r3, r31, 0x144
/* 80018D3C 00014C5C 4B FE EB 3D */ bl mathutil_mtxA_to_mtx
/* 80018D40 00014C60 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 80018D44 00014C64 4B FE EB 6D */ bl mathutil_mtxA_from_mtx
/* 80018D48 00014C68 38 7F 00 F4 */ addi r3, r31, 0xf4
/* 80018D4C 00014C6C 4B FE EF D5 */ bl mathutil_mtxA_translate
/* 80018D50 00014C70 38 7F 01 A4 */ addi r3, r31, 0x1a4
/* 80018D54 00014C74 4B FE EB 25 */ bl mathutil_mtxA_to_mtx
/* 80018D58 00014C78 80 7F 00 F0 */ lwz r3, 0xf0(r31)
/* 80018D5C 00014C7C 2C 03 00 00 */ cmpwi r3, 0
/* 80018D60 00014C80 40 81 00 54 */ ble lbl_80018DB4
/* 80018D64 00014C84 38 03 FF FF */ addi r0, r3, -1
/* 80018D68 00014C88 90 1F 00 F0 */ stw r0, 0xf0(r31)
/* 80018D6C 00014C8C 80 1F 00 F0 */ lwz r0, 0xf0(r31)
/* 80018D70 00014C90 2C 00 00 00 */ cmpwi r0, 0
/* 80018D74 00014C94 40 82 00 40 */ bne lbl_80018DB4
/* 80018D78 00014C98 80 9F 02 04 */ lwz r4, 0x204(r31)
/* 80018D7C 00014C9C 3C 60 80 1F */ lis r3, cameraInfo@ha
/* 80018D80 00014CA0 38 03 EF 00 */ addi r0, r3, cameraInfo@l
/* 80018D84 00014CA4 1C 64 02 84 */ mulli r3, r4, 0x284
/* 80018D88 00014CA8 7C 60 1A 14 */ add r3, r0, r3
/* 80018D8C 00014CAC 38 00 00 00 */ li r0, 0
/* 80018D90 00014CB0 90 03 00 EC */ stw r0, 0xec(r3)
/* 80018D94 00014CB4 90 03 00 F0 */ stw r0, 0xf0(r3)
/* 80018D98 00014CB8 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80018D9C 00014CBC D0 03 00 F4 */ stfs f0, 0xf4(r3)
/* 80018DA0 00014CC0 D0 03 00 F8 */ stfs f0, 0xf8(r3)
/* 80018DA4 00014CC4 D0 03 00 FC */ stfs f0, 0xfc(r3)
/* 80018DA8 00014CC8 D0 03 01 00 */ stfs f0, 0x100(r3)
/* 80018DAC 00014CCC D0 03 01 04 */ stfs f0, 0x104(r3)
/* 80018DB0 00014CD0 D0 03 01 08 */ stfs f0, 0x108(r3)
lbl_80018DB4:
/* 80018DB4 00014CD4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80018DB8 00014CD8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80018DBC 00014CDC 38 21 00 18 */ addi r1, r1, 0x18
/* 80018DC0 00014CE0 7C 08 03 A6 */ mtlr r0
/* 80018DC4 00014CE4 4E 80 00 20 */ blr
.global func_80018DC8
func_80018DC8:
/* 80018DC8 00014CE8 7C 08 02 A6 */ mflr r0
/* 80018DCC 00014CEC 90 01 00 04 */ stw r0, 4(r1)
/* 80018DD0 00014CF0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80018DD4 00014CF4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80018DD8 00014CF8 7C 7F 1B 78 */ mr r31, r3
/* 80018DDC 00014CFC 4B FF FD 15 */ bl camera_clear
/* 80018DE0 00014D00 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80018DE4 00014D04 38 80 00 B6 */ li r4, 0xb6
/* 80018DE8 00014D08 38 60 00 00 */ li r3, 0
/* 80018DEC 00014D0C D0 3F 00 00 */ stfs f1, 0(r31)
/* 80018DF0 00014D10 38 00 00 1C */ li r0, 0x1c
/* 80018DF4 00014D14 D0 3F 00 04 */ stfs f1, 4(r31)
/* 80018DF8 00014D18 C0 02 84 C0 */ lfs f0, lbl_802F2CC0@sda21(r2)
/* 80018DFC 00014D1C D0 1F 00 08 */ stfs f0, 8(r31)
/* 80018E00 00014D20 D0 3F 00 0C */ stfs f1, 0xc(r31)
/* 80018E04 00014D24 D0 3F 00 10 */ stfs f1, 0x10(r31)
/* 80018E08 00014D28 D0 3F 00 14 */ stfs f1, 0x14(r31)
/* 80018E0C 00014D2C B0 9F 00 30 */ sth r4, 0x30(r31)
/* 80018E10 00014D30 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 80018E14 00014D34 B0 7F 00 1A */ sth r3, 0x1a(r31)
/* 80018E18 00014D38 B0 7F 00 1C */ sth r3, 0x1c(r31)
/* 80018E1C 00014D3C 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 80018E20 00014D40 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80018E24 00014D44 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80018E28 00014D48 38 21 00 18 */ addi r1, r1, 0x18
/* 80018E2C 00014D4C 7C 08 03 A6 */ mtlr r0
/* 80018E30 00014D50 4E 80 00 20 */ blr
.global func_80018E34
func_80018E34:
/* 80018E34 00014D54 4E 80 00 20 */ blr
.global func_80018E38
func_80018E38:
/* 80018E38 00014D58 7C 08 02 A6 */ mflr r0
/* 80018E3C 00014D5C 90 01 00 04 */ stw r0, 4(r1)
/* 80018E40 00014D60 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80018E44 00014D64 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80018E48 00014D68 7C 7F 1B 78 */ mr r31, r3
/* 80018E4C 00014D6C 4B FF FC A5 */ bl camera_clear
/* 80018E50 00014D70 38 00 00 1E */ li r0, 0x1e
/* 80018E54 00014D74 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 80018E58 00014D78 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80018E5C 00014D7C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80018E60 00014D80 38 21 00 18 */ addi r1, r1, 0x18
/* 80018E64 00014D84 7C 08 03 A6 */ mtlr r0
/* 80018E68 00014D88 4E 80 00 20 */ blr
.global func_80018E6C
func_80018E6C:
/* 80018E6C 00014D8C 7C 08 02 A6 */ mflr r0
/* 80018E70 00014D90 3C 80 80 1F */ lis r4, lbl_801EED2C@ha
/* 80018E74 00014D94 90 01 00 04 */ stw r0, 4(r1)
/* 80018E78 00014D98 38 84 ED 2C */ addi r4, r4, lbl_801EED2C@l
/* 80018E7C 00014D9C 3C 00 43 30 */ lis r0, 0x4330
/* 80018E80 00014DA0 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80018E84 00014DA4 3C A0 80 17 */ lis r5, lbl_80176200@ha
/* 80018E88 00014DA8 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 80018E8C 00014DAC 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80018E90 00014DB0 3B E5 62 00 */ addi r31, r5, lbl_80176200@l
/* 80018E94 00014DB4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80018E98 00014DB8 3B C3 00 00 */ addi r30, r3, 0
/* 80018E9C 00014DBC 38 7F 02 34 */ addi r3, r31, 0x234
/* 80018EA0 00014DC0 80 84 00 08 */ lwz r4, 8(r4)
/* 80018EA4 00014DC4 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 80018EA8 00014DC8 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 80018EAC 00014DCC 90 81 00 24 */ stw r4, 0x24(r1)
/* 80018EB0 00014DD0 90 01 00 20 */ stw r0, 0x20(r1)
/* 80018EB4 00014DD4 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 80018EB8 00014DD8 EF E0 08 28 */ fsubs f31, f0, f1
/* 80018EBC 00014DDC FC 20 F8 90 */ fmr f1, f31
/* 80018EC0 00014DE0 48 07 3F 01 */ bl func_8008CDC0
/* 80018EC4 00014DE4 D0 3E 00 00 */ stfs f1, 0(r30)
/* 80018EC8 00014DE8 FC 20 F8 90 */ fmr f1, f31
/* 80018ECC 00014DEC 38 7F 03 34 */ addi r3, r31, 0x334
/* 80018ED0 00014DF0 48 07 3E F1 */ bl func_8008CDC0
/* 80018ED4 00014DF4 D0 3E 00 04 */ stfs f1, 4(r30)
/* 80018ED8 00014DF8 FC 20 F8 90 */ fmr f1, f31
/* 80018EDC 00014DFC 38 7F 04 34 */ addi r3, r31, 0x434
/* 80018EE0 00014E00 48 07 3E E1 */ bl func_8008CDC0
/* 80018EE4 00014E04 D0 3E 00 08 */ stfs f1, 8(r30)
/* 80018EE8 00014E08 FC 20 F8 90 */ fmr f1, f31
/* 80018EEC 00014E0C 38 7F 05 34 */ addi r3, r31, 0x534
/* 80018EF0 00014E10 48 07 3E D1 */ bl func_8008CDC0
/* 80018EF4 00014E14 D0 3E 00 0C */ stfs f1, 0xc(r30)
/* 80018EF8 00014E18 FC 20 F8 90 */ fmr f1, f31
/* 80018EFC 00014E1C 38 7F 06 34 */ addi r3, r31, 0x634
/* 80018F00 00014E20 48 07 3E C1 */ bl func_8008CDC0
/* 80018F04 00014E24 D0 3E 00 10 */ stfs f1, 0x10(r30)
/* 80018F08 00014E28 FC 20 F8 90 */ fmr f1, f31
/* 80018F0C 00014E2C 38 7F 07 34 */ addi r3, r31, 0x734
/* 80018F10 00014E30 48 07 3E B1 */ bl func_8008CDC0
/* 80018F14 00014E34 D0 3E 00 14 */ stfs f1, 0x14(r30)
/* 80018F18 00014E38 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 80018F1C 00014E3C C0 1E 00 00 */ lfs f0, 0(r30)
/* 80018F20 00014E40 EC 01 00 28 */ fsubs f0, f1, f0
/* 80018F24 00014E44 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80018F28 00014E48 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 80018F2C 00014E4C C0 1E 00 04 */ lfs f0, 4(r30)
/* 80018F30 00014E50 EC 01 00 28 */ fsubs f0, f1, f0
/* 80018F34 00014E54 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80018F38 00014E58 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 80018F3C 00014E5C C0 1E 00 08 */ lfs f0, 8(r30)
/* 80018F40 00014E60 EC 01 00 28 */ fsubs f0, f1, f0
/* 80018F44 00014E64 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80018F48 00014E68 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80018F4C 00014E6C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80018F50 00014E70 4B FE E3 55 */ bl mathutil_atan2
/* 80018F54 00014E74 38 03 80 00 */ addi r0, r3, -32768
/* 80018F58 00014E78 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 80018F5C 00014E7C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80018F60 00014E80 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80018F64 00014E84 EC 21 00 72 */ fmuls f1, f1, f1
/* 80018F68 00014E88 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80018F6C 00014E8C 4B FE E1 8D */ bl mathutil_sqrt
/* 80018F70 00014E90 FC 40 08 90 */ fmr f2, f1
/* 80018F74 00014E94 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 80018F78 00014E98 4B FE E3 2D */ bl mathutil_atan2
/* 80018F7C 00014E9C B0 7E 00 18 */ sth r3, 0x18(r30)
/* 80018F80 00014EA0 38 00 00 00 */ li r0, 0
/* 80018F84 00014EA4 B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 80018F88 00014EA8 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80018F8C 00014EAC CB E1 00 30 */ lfd f31, 0x30(r1)
/* 80018F90 00014EB0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80018F94 00014EB4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80018F98 00014EB8 38 21 00 38 */ addi r1, r1, 0x38
/* 80018F9C 00014EBC 7C 08 03 A6 */ mtlr r0
/* 80018FA0 00014EC0 4E 80 00 20 */ blr
.global func_80018FA4
func_80018FA4:
/* 80018FA4 00014EC4 7C 08 02 A6 */ mflr r0
/* 80018FA8 00014EC8 90 01 00 04 */ stw r0, 4(r1)
/* 80018FAC 00014ECC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80018FB0 00014ED0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80018FB4 00014ED4 7C 7F 1B 78 */ mr r31, r3
/* 80018FB8 00014ED8 4B FF FB 39 */ bl camera_clear
/* 80018FBC 00014EDC A8 7F 00 24 */ lha r3, 0x24(r31)
/* 80018FC0 00014EE0 38 00 00 37 */ li r0, 0x37
/* 80018FC4 00014EE4 60 63 00 08 */ ori r3, r3, 8
/* 80018FC8 00014EE8 B0 7F 00 24 */ sth r3, 0x24(r31)
/* 80018FCC 00014EEC 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 80018FD0 00014EF0 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80018FD4 00014EF4 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80018FD8 00014EF8 38 21 00 18 */ addi r1, r1, 0x18
/* 80018FDC 00014EFC 7C 08 03 A6 */ mtlr r0
/* 80018FE0 00014F00 4E 80 00 20 */ blr
.global func_80018FE4
func_80018FE4:
/* 80018FE4 00014F04 7C 08 02 A6 */ mflr r0
/* 80018FE8 00014F08 3C 80 80 1F */ lis r4, lbl_801EED2C@ha
/* 80018FEC 00014F0C 90 01 00 04 */ stw r0, 4(r1)
/* 80018FF0 00014F10 38 84 ED 2C */ addi r4, r4, lbl_801EED2C@l
/* 80018FF4 00014F14 3C 00 43 30 */ lis r0, 0x4330
/* 80018FF8 00014F18 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80018FFC 00014F1C 3C A0 80 17 */ lis r5, lbl_80176200@ha
/* 80019000 00014F20 DB E1 00 38 */ stfd f31, 0x38(r1)
/* 80019004 00014F24 93 E1 00 34 */ stw r31, 0x34(r1)
/* 80019008 00014F28 93 C1 00 30 */ stw r30, 0x30(r1)
/* 8001900C 00014F2C 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 80019010 00014F30 3B A5 62 00 */ addi r29, r5, lbl_80176200@l
/* 80019014 00014F34 93 81 00 28 */ stw r28, 0x28(r1)
/* 80019018 00014F38 3B 83 00 00 */ addi r28, r3, 0
/* 8001901C 00014F3C 80 84 00 08 */ lwz r4, 8(r4)
/* 80019020 00014F40 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 80019024 00014F44 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 80019028 00014F48 C0 02 84 C4 */ lfs f0, lbl_802F2CC4@sda21(r2)
/* 8001902C 00014F4C 90 81 00 24 */ stw r4, 0x24(r1)
/* 80019030 00014F50 90 01 00 20 */ stw r0, 0x20(r1)
/* 80019034 00014F54 C8 21 00 20 */ lfd f1, 0x20(r1)
/* 80019038 00014F58 EF E1 10 28 */ fsubs f31, f1, f2
/* 8001903C 00014F5C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80019040 00014F60 4C 41 13 82 */ cror 2, 1, 2
/* 80019044 00014F64 40 82 00 10 */ bne lbl_80019054
/* 80019048 00014F68 C0 02 84 C8 */ lfs f0, lbl_802F2CC8@sda21(r2)
/* 8001904C 00014F6C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80019050 00014F70 41 80 00 3C */ blt lbl_8001908C
lbl_80019054:
/* 80019054 00014F74 C0 02 84 CC */ lfs f0, lbl_802F2CCC@sda21(r2)
/* 80019058 00014F78 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001905C 00014F7C 4C 41 13 82 */ cror 2, 1, 2
/* 80019060 00014F80 40 82 00 10 */ bne lbl_80019070
/* 80019064 00014F84 C0 02 84 D0 */ lfs f0, lbl_802F2CD0@sda21(r2)
/* 80019068 00014F88 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001906C 00014F8C 41 80 00 20 */ blt lbl_8001908C
lbl_80019070:
/* 80019070 00014F90 C0 02 84 D4 */ lfs f0, lbl_802F2CD4@sda21(r2)
/* 80019074 00014F94 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80019078 00014F98 4C 41 13 82 */ cror 2, 1, 2
/* 8001907C 00014F9C 40 82 00 74 */ bne lbl_800190F0
/* 80019080 00014FA0 C0 02 84 D8 */ lfs f0, lbl_802F2CD8@sda21(r2)
/* 80019084 00014FA4 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 80019088 00014FA8 40 80 00 68 */ bge lbl_800190F0
lbl_8001908C:
/* 8001908C 00014FAC FC 20 F8 90 */ fmr f1, f31
/* 80019090 00014FB0 38 7D 08 34 */ addi r3, r29, 0x834
/* 80019094 00014FB4 48 07 3D 2D */ bl func_8008CDC0
/* 80019098 00014FB8 D0 3C 00 00 */ stfs f1, 0(r28)
/* 8001909C 00014FBC FC 20 F8 90 */ fmr f1, f31
/* 800190A0 00014FC0 38 7D 09 84 */ addi r3, r29, 0x984
/* 800190A4 00014FC4 48 07 3D 1D */ bl func_8008CDC0
/* 800190A8 00014FC8 D0 3C 00 04 */ stfs f1, 4(r28)
/* 800190AC 00014FCC FC 20 F8 90 */ fmr f1, f31
/* 800190B0 00014FD0 38 7D 0A D4 */ addi r3, r29, 0xad4
/* 800190B4 00014FD4 48 07 3D 0D */ bl func_8008CDC0
/* 800190B8 00014FD8 D0 3C 00 08 */ stfs f1, 8(r28)
/* 800190BC 00014FDC FC 20 F8 90 */ fmr f1, f31
/* 800190C0 00014FE0 38 7D 0C 24 */ addi r3, r29, 0xc24
/* 800190C4 00014FE4 48 07 3C FD */ bl func_8008CDC0
/* 800190C8 00014FE8 D0 3C 00 0C */ stfs f1, 0xc(r28)
/* 800190CC 00014FEC FC 20 F8 90 */ fmr f1, f31
/* 800190D0 00014FF0 38 7D 0D 74 */ addi r3, r29, 0xd74
/* 800190D4 00014FF4 48 07 3C ED */ bl func_8008CDC0
/* 800190D8 00014FF8 D0 3C 00 10 */ stfs f1, 0x10(r28)
/* 800190DC 00014FFC FC 20 F8 90 */ fmr f1, f31
/* 800190E0 00015000 38 7D 0E C4 */ addi r3, r29, 0xec4
/* 800190E4 00015004 48 07 3C DD */ bl func_8008CDC0
/* 800190E8 00015008 D0 3C 00 14 */ stfs f1, 0x14(r28)
/* 800190EC 0001500C 48 00 01 04 */ b lbl_800191F0
lbl_800190F0:
/* 800190F0 00015010 FC 20 F8 90 */ fmr f1, f31
/* 800190F4 00015014 38 7D 08 34 */ addi r3, r29, 0x834
/* 800190F8 00015018 48 07 3C C9 */ bl func_8008CDC0
/* 800190FC 0001501C 3C 60 80 1F */ lis r3, lbl_801EED2C@ha
/* 80019100 00015020 3B E3 ED 2C */ addi r31, r3, lbl_801EED2C@l
/* 80019104 00015024 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80019108 00015028 3C 60 80 20 */ lis r3, lbl_80205E60@ha
/* 8001910C 0001502C 3B C3 5E 60 */ addi r30, r3, lbl_80205E60@l
/* 80019110 00015030 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 80019114 00015034 7C 7E 02 14 */ add r3, r30, r0
/* 80019118 00015038 80 83 00 FC */ lwz r4, 0xfc(r3)
/* 8001911C 0001503C 38 7D 09 84 */ addi r3, r29, 0x984
/* 80019120 00015040 C0 04 00 30 */ lfs f0, 0x30(r4)
/* 80019124 00015044 EC 00 08 2A */ fadds f0, f0, f1
/* 80019128 00015048 FC 20 F8 90 */ fmr f1, f31
/* 8001912C 0001504C D0 1C 00 00 */ stfs f0, 0(r28)
/* 80019130 00015050 48 07 3C 91 */ bl func_8008CDC0
/* 80019134 00015054 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80019138 00015058 38 7D 0A D4 */ addi r3, r29, 0xad4
/* 8001913C 0001505C 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 80019140 00015060 7C 9E 02 14 */ add r4, r30, r0
/* 80019144 00015064 80 84 00 FC */ lwz r4, 0xfc(r4)
/* 80019148 00015068 C0 04 00 34 */ lfs f0, 0x34(r4)
/* 8001914C 0001506C EC 00 08 2A */ fadds f0, f0, f1
/* 80019150 00015070 FC 20 F8 90 */ fmr f1, f31
/* 80019154 00015074 D0 1C 00 04 */ stfs f0, 4(r28)
/* 80019158 00015078 48 07 3C 69 */ bl func_8008CDC0
/* 8001915C 0001507C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80019160 00015080 38 7D 0C 24 */ addi r3, r29, 0xc24
/* 80019164 00015084 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 80019168 00015088 7C 9E 02 14 */ add r4, r30, r0
/* 8001916C 0001508C 80 84 00 FC */ lwz r4, 0xfc(r4)
/* 80019170 00015090 C0 04 00 38 */ lfs f0, 0x38(r4)
/* 80019174 00015094 EC 00 08 2A */ fadds f0, f0, f1
/* 80019178 00015098 FC 20 F8 90 */ fmr f1, f31
/* 8001917C 0001509C D0 1C 00 08 */ stfs f0, 8(r28)
/* 80019180 000150A0 48 07 3C 41 */ bl func_8008CDC0
/* 80019184 000150A4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 80019188 000150A8 38 7D 0D 74 */ addi r3, r29, 0xd74
/* 8001918C 000150AC 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 80019190 000150B0 7C 9E 02 14 */ add r4, r30, r0
/* 80019194 000150B4 80 84 00 FC */ lwz r4, 0xfc(r4)
/* 80019198 000150B8 C0 04 00 30 */ lfs f0, 0x30(r4)
/* 8001919C 000150BC EC 00 08 2A */ fadds f0, f0, f1
/* 800191A0 000150C0 FC 20 F8 90 */ fmr f1, f31
/* 800191A4 000150C4 D0 1C 00 0C */ stfs f0, 0xc(r28)
/* 800191A8 000150C8 48 07 3C 19 */ bl func_8008CDC0
/* 800191AC 000150CC 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800191B0 000150D0 38 7D 0E C4 */ addi r3, r29, 0xec4
/* 800191B4 000150D4 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 800191B8 000150D8 7C 9E 02 14 */ add r4, r30, r0
/* 800191BC 000150DC 80 84 00 FC */ lwz r4, 0xfc(r4)
/* 800191C0 000150E0 C0 04 00 34 */ lfs f0, 0x34(r4)
/* 800191C4 000150E4 EC 00 08 2A */ fadds f0, f0, f1
/* 800191C8 000150E8 FC 20 F8 90 */ fmr f1, f31
/* 800191CC 000150EC D0 1C 00 10 */ stfs f0, 0x10(r28)
/* 800191D0 000150F0 48 07 3B F1 */ bl func_8008CDC0
/* 800191D4 000150F4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800191D8 000150F8 1C 00 01 A4 */ mulli r0, r0, 0x1a4
/* 800191DC 000150FC 7C 7E 02 14 */ add r3, r30, r0
/* 800191E0 00015100 80 63 00 FC */ lwz r3, 0xfc(r3)
/* 800191E4 00015104 C0 03 00 38 */ lfs f0, 0x38(r3)
/* 800191E8 00015108 EC 00 08 2A */ fadds f0, f0, f1
/* 800191EC 0001510C D0 1C 00 14 */ stfs f0, 0x14(r28)
lbl_800191F0:
/* 800191F0 00015110 C0 3C 00 0C */ lfs f1, 0xc(r28)
/* 800191F4 00015114 C0 1C 00 00 */ lfs f0, 0(r28)
/* 800191F8 00015118 EC 01 00 28 */ fsubs f0, f1, f0
/* 800191FC 0001511C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019200 00015120 C0 3C 00 10 */ lfs f1, 0x10(r28)
/* 80019204 00015124 C0 1C 00 04 */ lfs f0, 4(r28)
/* 80019208 00015128 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001920C 0001512C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019210 00015130 C0 3C 00 14 */ lfs f1, 0x14(r28)
/* 80019214 00015134 C0 1C 00 08 */ lfs f0, 8(r28)
/* 80019218 00015138 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001921C 0001513C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019220 00015140 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019224 00015144 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80019228 00015148 4B FE E0 7D */ bl mathutil_atan2
/* 8001922C 0001514C 38 03 80 00 */ addi r0, r3, -32768
/* 80019230 00015150 B0 1C 00 1A */ sth r0, 0x1a(r28)
/* 80019234 00015154 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019238 00015158 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001923C 0001515C EC 21 00 72 */ fmuls f1, f1, f1
/* 80019240 00015160 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80019244 00015164 4B FE DE B5 */ bl mathutil_sqrt
/* 80019248 00015168 FC 40 08 90 */ fmr f2, f1
/* 8001924C 0001516C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 80019250 00015170 4B FE E0 55 */ bl mathutil_atan2
/* 80019254 00015174 B0 7C 00 18 */ sth r3, 0x18(r28)
/* 80019258 00015178 38 00 00 00 */ li r0, 0
/* 8001925C 0001517C B0 1C 00 1C */ sth r0, 0x1c(r28)
/* 80019260 00015180 80 01 00 44 */ lwz r0, 0x44(r1)
/* 80019264 00015184 CB E1 00 38 */ lfd f31, 0x38(r1)
/* 80019268 00015188 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8001926C 0001518C 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 80019270 00015190 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 80019274 00015194 83 81 00 28 */ lwz r28, 0x28(r1)
/* 80019278 00015198 38 21 00 40 */ addi r1, r1, 0x40
/* 8001927C 0001519C 7C 08 03 A6 */ mtlr r0
/* 80019280 000151A0 4E 80 00 20 */ blr
.global func_80019284
func_80019284:
/* 80019284 000151A4 7C 08 02 A6 */ mflr r0
/* 80019288 000151A8 90 01 00 04 */ stw r0, 4(r1)
/* 8001928C 000151AC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80019290 000151B0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80019294 000151B4 3B E4 00 00 */ addi r31, r4, 0
/* 80019298 000151B8 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8001929C 000151BC 3B C3 00 00 */ addi r30, r3, 0
/* 800192A0 000151C0 4B FF F8 51 */ bl camera_clear
/* 800192A4 000151C4 C0 1F 00 04 */ lfs f0, 4(r31)
/* 800192A8 000151C8 38 7E 00 0C */ addi r3, r30, 0xc
/* 800192AC 000151CC D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 800192B0 000151D0 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 800192B4 000151D4 C0 1F 00 08 */ lfs f0, 8(r31)
/* 800192B8 000151D8 FC 01 00 2A */ fadd f0, f1, f0
/* 800192BC 000151DC FC 00 00 18 */ frsp f0, f0
/* 800192C0 000151E0 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 800192C4 000151E4 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 800192C8 000151E8 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 800192CC 000151EC 4B FE E2 F1 */ bl mathutil_mtxA_from_translate
/* 800192D0 000151F0 38 60 00 00 */ li r3, 0
/* 800192D4 000151F4 4B FE ED 29 */ bl mathutil_mtxA_rotate_y
/* 800192D8 000151F8 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 800192DC 000151FC 7F C4 F3 78 */ mr r4, r30
/* 800192E0 00015200 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 800192E4 00015204 38 61 00 10 */ addi r3, r1, 0x10
/* 800192E8 00015208 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 800192EC 0001520C C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 800192F0 00015210 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 800192F4 00015214 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 800192F8 00015218 4B FE EB 35 */ bl mathutil_mtxA_tf_point
/* 800192FC 0001521C C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80019300 00015220 38 61 00 10 */ addi r3, r1, 0x10
/* 80019304 00015224 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 80019308 00015228 38 9E 00 AC */ addi r4, r30, 0xac
/* 8001930C 0001522C D0 21 00 10 */ stfs f1, 0x10(r1)
/* 80019310 00015230 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80019314 00015234 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019318 00015238 4B FE EB 15 */ bl mathutil_mtxA_tf_point
/* 8001931C 0001523C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 80019320 00015240 C0 1E 00 00 */ lfs f0, 0(r30)
/* 80019324 00015244 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019328 00015248 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001932C 0001524C C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 80019330 00015250 C0 1E 00 04 */ lfs f0, 4(r30)
/* 80019334 00015254 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019338 00015258 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001933C 0001525C C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 80019340 00015260 C0 1E 00 08 */ lfs f0, 8(r30)
/* 80019344 00015264 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019348 00015268 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001934C 0001526C C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019350 00015270 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80019354 00015274 4B FE DF 51 */ bl mathutil_atan2
/* 80019358 00015278 38 03 80 00 */ addi r0, r3, -32768
/* 8001935C 0001527C B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 80019360 00015280 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019364 00015284 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019368 00015288 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001936C 0001528C EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80019370 00015290 4B FE DD 89 */ bl mathutil_sqrt
/* 80019374 00015294 FC 40 08 90 */ fmr f2, f1
/* 80019378 00015298 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001937C 0001529C 4B FE DF 29 */ bl mathutil_atan2
/* 80019380 000152A0 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 80019384 000152A4 38 60 00 00 */ li r3, 0
/* 80019388 000152A8 38 00 00 01 */ li r0, 1
/* 8001938C 000152AC B0 7E 00 1C */ sth r3, 0x1c(r30)
/* 80019390 000152B0 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 80019394 000152B4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80019398 000152B8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001939C 000152BC 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 800193A0 000152C0 38 21 00 28 */ addi r1, r1, 0x28
/* 800193A4 000152C4 7C 08 03 A6 */ mtlr r0
/* 800193A8 000152C8 4E 80 00 20 */ blr
.global func_800193AC
func_800193AC:
/* 800193AC 000152CC 7C 08 02 A6 */ mflr r0
/* 800193B0 000152D0 90 01 00 04 */ stw r0, 4(r1)
/* 800193B4 000152D4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800193B8 000152D8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800193BC 000152DC 3B E4 00 00 */ addi r31, r4, 0
/* 800193C0 000152E0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800193C4 000152E4 3B C3 00 00 */ addi r30, r3, 0
/* 800193C8 000152E8 4B FF F7 29 */ bl camera_clear
/* 800193CC 000152EC 38 00 00 80 */ li r0, 0x80
/* 800193D0 000152F0 90 1E 00 8C */ stw r0, 0x8c(r30)
/* 800193D4 000152F4 38 00 00 00 */ li r0, 0
/* 800193D8 000152F8 38 7E 00 00 */ addi r3, r30, 0
/* 800193DC 000152FC 90 1E 00 6C */ stw r0, 0x6c(r30)
/* 800193E0 00015300 7F E4 FB 78 */ mr r4, r31
/* 800193E4 00015304 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 800193E8 00015308 D0 1E 00 80 */ stfs f0, 0x80(r30)
/* 800193EC 0001530C 48 00 00 25 */ bl camera_sub_13
/* 800193F0 00015310 38 00 00 0D */ li r0, 0xd
/* 800193F4 00015314 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 800193F8 00015318 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800193FC 0001531C 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80019400 00015320 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80019404 00015324 7C 08 03 A6 */ mtlr r0
/* 80019408 00015328 38 21 00 18 */ addi r1, r1, 0x18
/* 8001940C 0001532C 4E 80 00 20 */ blr
.global camera_sub_13
camera_sub_13:
/* 80019410 00015330 7C 08 02 A6 */ mflr r0
/* 80019414 00015334 90 01 00 04 */ stw r0, 4(r1)
/* 80019418 00015338 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8001941C 0001533C 93 E1 00 34 */ stw r31, 0x34(r1)
/* 80019420 00015340 3B E3 00 00 */ addi r31, r3, 0
/* 80019424 00015344 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 80019428 00015348 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001942C 0001534C 41 82 00 10 */ beq lbl_8001943C
/* 80019430 00015350 88 1F 00 1E */ lbz r0, 0x1e(r31)
/* 80019434 00015354 2C 00 00 0D */ cmpwi r0, 0xd
/* 80019438 00015358 41 82 02 9C */ beq lbl_800196D4
lbl_8001943C:
/* 8001943C 0001535C 38 61 00 1C */ addi r3, r1, 0x1c
/* 80019440 00015360 48 00 08 9D */ bl func_80019CDC
/* 80019444 00015364 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80019448 00015368 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001944C 0001536C C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80019450 00015370 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 80019454 00015374 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 80019458 00015378 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001945C 0001537C A8 1F 00 50 */ lha r0, 0x50(r31)
/* 80019460 00015380 2C 00 00 00 */ cmpwi r0, 0
/* 80019464 00015384 40 81 00 A8 */ ble lbl_8001950C
/* 80019468 00015388 3C A0 80 20 */ lis r5, lbl_80206BD0@ha
/* 8001946C 0001538C C8 62 84 F0 */ lfd f3, lbl_802F2CF0@sda21(r2)
/* 80019470 00015390 3C 80 80 1F */ lis r4, lbl_801F3D50@ha
/* 80019474 00015394 C8 42 84 F8 */ lfd f2, lbl_802F2CF8@sda21(r2)
/* 80019478 00015398 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 8001947C 0001539C C8 22 85 00 */ lfd f1, lbl_802F2D00@sda21(r2)
/* 80019480 000153A0 39 05 6B D0 */ addi r8, r5, lbl_80206BD0@l
/* 80019484 000153A4 38 E4 3D 50 */ addi r7, r4, lbl_801F3D50@l
/* 80019488 000153A8 38 A3 EC 20 */ addi r5, r3, modeCtrl@l
/* 8001948C 000153AC 38 60 00 00 */ li r3, 0
/* 80019490 000153B0 38 80 00 00 */ li r4, 0
/* 80019494 000153B4 48 00 00 6C */ b lbl_80019500
lbl_80019498:
/* 80019498 000153B8 C0 1F 00 80 */ lfs f0, 0x80(r31)
/* 8001949C 000153BC 7C C8 22 14 */ add r6, r8, r4
/* 800194A0 000153C0 81 46 00 00 */ lwz r10, 0(r6)
/* 800194A4 000153C4 FC 00 18 40 */ fcmpo cr0, f0, f3
/* 800194A8 000153C8 40 81 00 24 */ ble lbl_800194CC
/* 800194AC 000153CC 1C 0A 00 0A */ mulli r0, r10, 0xa
/* 800194B0 000153D0 7C C7 02 14 */ add r6, r7, r0
/* 800194B4 000153D4 A0 06 00 00 */ lhz r0, 0(r6)
/* 800194B8 000153D8 54 00 06 31 */ rlwinm. r0, r0, 0, 0x18, 0x18
/* 800194BC 000153DC 41 82 00 10 */ beq lbl_800194CC
/* 800194C0 000153E0 FC 00 10 28 */ fsub f0, f0, f2
/* 800194C4 000153E4 FC 00 00 18 */ frsp f0, f0
/* 800194C8 000153E8 D0 1F 00 80 */ stfs f0, 0x80(r31)
lbl_800194CC:
/* 800194CC 000153EC C0 1F 00 80 */ lfs f0, 0x80(r31)
/* 800194D0 000153F0 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 800194D4 000153F4 40 80 00 24 */ bge lbl_800194F8
/* 800194D8 000153F8 1C 0A 00 0A */ mulli r0, r10, 0xa
/* 800194DC 000153FC 7C C7 02 14 */ add r6, r7, r0
/* 800194E0 00015400 A0 06 00 00 */ lhz r0, 0(r6)
/* 800194E4 00015404 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 800194E8 00015408 41 82 00 10 */ beq lbl_800194F8
/* 800194EC 0001540C FC 00 10 2A */ fadd f0, f0, f2
/* 800194F0 00015410 FC 00 00 18 */ frsp f0, f0
/* 800194F4 00015414 D0 1F 00 80 */ stfs f0, 0x80(r31)
lbl_800194F8:
/* 800194F8 00015418 38 63 00 01 */ addi r3, r3, 1
/* 800194FC 0001541C 38 84 00 04 */ addi r4, r4, 4
lbl_80019500:
/* 80019500 00015420 80 05 00 24 */ lwz r0, 0x24(r5)
/* 80019504 00015424 7C 03 00 00 */ cmpw r3, r0
/* 80019508 00015428 41 80 FF 90 */ blt lbl_80019498
lbl_8001950C:
/* 8001950C 0001542C A8 0D 99 AE */ lha r0, gameSubmode@sda21(r13)
/* 80019510 00015430 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80019514 00015434 2C 00 00 4C */ cmpwi r0, 0x4c
/* 80019518 00015438 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001951C 0001543C 41 82 00 14 */ beq lbl_80019530
/* 80019520 00015440 2C 00 00 4D */ cmpwi r0, 0x4d
/* 80019524 00015444 41 82 00 0C */ beq lbl_80019530
/* 80019528 00015448 2C 00 00 4E */ cmpwi r0, 0x4e
/* 8001952C 0001544C 40 82 00 24 */ bne lbl_80019550
lbl_80019530:
/* 80019530 00015450 C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 80019534 00015454 C0 1F 00 80 */ lfs f0, 0x80(r31)
/* 80019538 00015458 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001953C 0001545C FC 01 00 2A */ fadd f0, f1, f0
/* 80019540 00015460 FC 02 00 32 */ fmul f0, f2, f0
/* 80019544 00015464 FC 00 00 18 */ frsp f0, f0
/* 80019548 00015468 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001954C 0001546C 48 00 00 20 */ b lbl_8001956C
lbl_80019550:
/* 80019550 00015470 C8 22 85 10 */ lfd f1, lbl_802F2D10@sda21(r2)
/* 80019554 00015474 C0 1F 00 80 */ lfs f0, 0x80(r31)
/* 80019558 00015478 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001955C 0001547C FC 01 00 2A */ fadd f0, f1, f0
/* 80019560 00015480 FC 02 00 32 */ fmul f0, f2, f0
/* 80019564 00015484 FC 00 00 18 */ frsp f0, f0
/* 80019568 00015488 D0 01 00 14 */ stfs f0, 0x14(r1)
lbl_8001956C:
/* 8001956C 0001548C C8 22 85 10 */ lfd f1, lbl_802F2D10@sda21(r2)
/* 80019570 00015490 3C A0 80 20 */ lis r5, lbl_80206BD0@ha
/* 80019574 00015494 C0 1F 00 80 */ lfs f0, 0x80(r31)
/* 80019578 00015498 3C 80 80 1F */ lis r4, lbl_801F3D50@ha
/* 8001957C 0001549C 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 80019580 000154A0 FC 01 00 2A */ fadd f0, f1, f0
/* 80019584 000154A4 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80019588 000154A8 39 25 6B D0 */ addi r9, r5, lbl_80206BD0@l
/* 8001958C 000154AC 39 04 3D 50 */ addi r8, r4, lbl_801F3D50@l
/* 80019590 000154B0 FC 01 00 32 */ fmul f0, f1, f0
/* 80019594 000154B4 38 A3 EC 20 */ addi r5, r3, modeCtrl@l
/* 80019598 000154B8 38 60 00 00 */ li r3, 0
/* 8001959C 000154BC 38 80 00 00 */ li r4, 0
/* 800195A0 000154C0 FC 00 00 18 */ frsp f0, f0
/* 800195A4 000154C4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 800195A8 000154C8 48 00 00 64 */ b lbl_8001960C
lbl_800195AC:
/* 800195AC 000154CC 80 FF 00 8C */ lwz r7, 0x8c(r31)
/* 800195B0 000154D0 7C C9 22 14 */ add r6, r9, r4
/* 800195B4 000154D4 81 46 00 00 */ lwz r10, 0(r6)
/* 800195B8 000154D8 2C 07 01 00 */ cmpwi r7, 0x100
/* 800195BC 000154DC 40 80 00 20 */ bge lbl_800195DC
/* 800195C0 000154E0 1C 0A 00 0A */ mulli r0, r10, 0xa
/* 800195C4 000154E4 7C C8 02 14 */ add r6, r8, r0
/* 800195C8 000154E8 A0 06 00 00 */ lhz r0, 0(r6)
/* 800195CC 000154EC 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 800195D0 000154F0 41 82 00 0C */ beq lbl_800195DC
/* 800195D4 000154F4 38 07 00 08 */ addi r0, r7, 8
/* 800195D8 000154F8 90 1F 00 8C */ stw r0, 0x8c(r31)
lbl_800195DC:
/* 800195DC 000154FC 80 FF 00 8C */ lwz r7, 0x8c(r31)
/* 800195E0 00015500 2C 07 FF 00 */ cmpwi r7, -256
/* 800195E4 00015504 40 81 00 20 */ ble lbl_80019604
/* 800195E8 00015508 1C 0A 00 0A */ mulli r0, r10, 0xa
/* 800195EC 0001550C 7C C8 02 14 */ add r6, r8, r0
/* 800195F0 00015510 A0 06 00 00 */ lhz r0, 0(r6)
/* 800195F4 00015514 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
/* 800195F8 00015518 41 82 00 0C */ beq lbl_80019604
/* 800195FC 0001551C 38 07 FF F8 */ addi r0, r7, -8
/* 80019600 00015520 90 1F 00 8C */ stw r0, 0x8c(r31)
lbl_80019604:
/* 80019604 00015524 38 63 00 01 */ addi r3, r3, 1
/* 80019608 00015528 38 84 00 04 */ addi r4, r4, 4
lbl_8001960C:
/* 8001960C 0001552C 80 05 00 24 */ lwz r0, 0x24(r5)
/* 80019610 00015530 7C 03 00 00 */ cmpw r3, r0
/* 80019614 00015534 41 80 FF 98 */ blt lbl_800195AC
/* 80019618 00015538 A8 1F 00 50 */ lha r0, 0x50(r31)
/* 8001961C 0001553C 2C 00 00 00 */ cmpwi r0, 0
/* 80019620 00015540 40 81 00 14 */ ble lbl_80019634
/* 80019624 00015544 80 7F 00 6C */ lwz r3, 0x6c(r31)
/* 80019628 00015548 80 1F 00 8C */ lwz r0, 0x8c(r31)
/* 8001962C 0001554C 7C 03 02 14 */ add r0, r3, r0
/* 80019630 00015550 90 1F 00 6C */ stw r0, 0x6c(r31)
lbl_80019634:
/* 80019634 00015554 38 7F 00 0C */ addi r3, r31, 0xc
/* 80019638 00015558 4B FE DF 85 */ bl mathutil_mtxA_from_translate
/* 8001963C 0001555C 80 7F 00 6C */ lwz r3, 0x6c(r31)
/* 80019640 00015560 4B FE E9 BD */ bl mathutil_mtxA_rotate_y
/* 80019644 00015564 38 61 00 10 */ addi r3, r1, 0x10
/* 80019648 00015568 38 9F 00 00 */ addi r4, r31, 0
/* 8001964C 0001556C 4B FE E7 E1 */ bl mathutil_mtxA_tf_point
/* 80019650 00015570 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 80019654 00015574 C0 1F 00 00 */ lfs f0, 0(r31)
/* 80019658 00015578 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001965C 0001557C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019660 00015580 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 80019664 00015584 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80019668 00015588 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001966C 0001558C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019670 00015590 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 80019674 00015594 C0 1F 00 08 */ lfs f0, 8(r31)
/* 80019678 00015598 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001967C 0001559C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019680 000155A0 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019684 000155A4 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80019688 000155A8 4B FE DC 1D */ bl mathutil_atan2
/* 8001968C 000155AC 38 03 80 00 */ addi r0, r3, -32768
/* 80019690 000155B0 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 80019694 000155B4 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019698 000155B8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001969C 000155BC EC 21 00 72 */ fmuls f1, f1, f1
/* 800196A0 000155C0 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 800196A4 000155C4 4B FE DA 55 */ bl mathutil_sqrt
/* 800196A8 000155C8 FC 40 08 90 */ fmr f2, f1
/* 800196AC 000155CC C0 21 00 14 */ lfs f1, 0x14(r1)
/* 800196B0 000155D0 4B FE DB F5 */ bl mathutil_atan2
/* 800196B4 000155D4 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 800196B8 000155D8 38 00 00 00 */ li r0, 0
/* 800196BC 000155DC B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 800196C0 000155E0 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 800196C4 000155E4 2C 03 00 3C */ cmpwi r3, 0x3c
/* 800196C8 000155E8 40 80 00 0C */ bge lbl_800196D4
/* 800196CC 000155EC 38 03 00 01 */ addi r0, r3, 1
/* 800196D0 000155F0 B0 1F 00 50 */ sth r0, 0x50(r31)
lbl_800196D4:
/* 800196D4 000155F4 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 800196D8 000155F8 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 800196DC 000155FC 38 21 00 38 */ addi r1, r1, 0x38
/* 800196E0 00015600 7C 08 03 A6 */ mtlr r0
/* 800196E4 00015604 4E 80 00 20 */ blr
.global func_800196E8
func_800196E8:
/* 800196E8 00015608 7C 08 02 A6 */ mflr r0
/* 800196EC 0001560C 90 01 00 04 */ stw r0, 4(r1)
/* 800196F0 00015610 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 800196F4 00015614 93 E1 00 24 */ stw r31, 0x24(r1)
/* 800196F8 00015618 7C 7F 1B 78 */ mr r31, r3
/* 800196FC 0001561C 4B FF F3 F5 */ bl camera_clear
/* 80019700 00015620 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80019704 00015624 D0 3F 00 00 */ stfs f1, 0(r31)
/* 80019708 00015628 D0 3F 00 04 */ stfs f1, 4(r31)
/* 8001970C 0001562C C0 02 85 18 */ lfs f0, lbl_802F2D18@sda21(r2)
/* 80019710 00015630 D0 1F 00 08 */ stfs f0, 8(r31)
/* 80019714 00015634 D0 3F 00 0C */ stfs f1, 0xc(r31)
/* 80019718 00015638 D0 3F 00 10 */ stfs f1, 0x10(r31)
/* 8001971C 0001563C D0 3F 00 14 */ stfs f1, 0x14(r31)
/* 80019720 00015640 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 80019724 00015644 C0 1F 00 00 */ lfs f0, 0(r31)
/* 80019728 00015648 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001972C 0001564C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019730 00015650 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 80019734 00015654 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80019738 00015658 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001973C 0001565C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019740 00015660 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 80019744 00015664 C0 1F 00 08 */ lfs f0, 8(r31)
/* 80019748 00015668 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001974C 0001566C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019750 00015670 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019754 00015674 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80019758 00015678 4B FE DB 4D */ bl mathutil_atan2
/* 8001975C 0001567C 38 03 80 00 */ addi r0, r3, -32768
/* 80019760 00015680 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 80019764 00015684 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019768 00015688 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001976C 0001568C EC 21 00 72 */ fmuls f1, f1, f1
/* 80019770 00015690 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80019774 00015694 4B FE D9 85 */ bl mathutil_sqrt
/* 80019778 00015698 FC 40 08 90 */ fmr f2, f1
/* 8001977C 0001569C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 80019780 000156A0 4B FE DB 25 */ bl mathutil_atan2
/* 80019784 000156A4 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 80019788 000156A8 38 60 00 00 */ li r3, 0
/* 8001978C 000156AC 38 00 00 35 */ li r0, 0x35
/* 80019790 000156B0 B0 7F 00 1C */ sth r3, 0x1c(r31)
/* 80019794 000156B4 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 80019798 000156B8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001979C 000156BC 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 800197A0 000156C0 38 21 00 28 */ addi r1, r1, 0x28
/* 800197A4 000156C4 7C 08 03 A6 */ mtlr r0
/* 800197A8 000156C8 4E 80 00 20 */ blr
.global func_800197AC
func_800197AC:
/* 800197AC 000156CC 4E 80 00 20 */ blr
.global camera_sub_ready_init
camera_sub_ready_init:
/* 800197B0 000156D0 7C 08 02 A6 */ mflr r0
/* 800197B4 000156D4 90 01 00 04 */ stw r0, 4(r1)
/* 800197B8 000156D8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 800197BC 000156DC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 800197C0 000156E0 3B E4 00 00 */ addi r31, r4, 0
/* 800197C4 000156E4 93 C1 00 38 */ stw r30, 0x38(r1)
/* 800197C8 000156E8 3B C3 00 00 */ addi r30, r3, 0
/* 800197CC 000156EC 93 A1 00 34 */ stw r29, 0x34(r1)
/* 800197D0 000156F0 4B FF F3 21 */ bl camera_clear
/* 800197D4 000156F4 38 61 00 1C */ addi r3, r1, 0x1c
/* 800197D8 000156F8 48 00 05 05 */ bl func_80019CDC
/* 800197DC 000156FC C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 800197E0 00015700 38 7E 00 54 */ addi r3, r30, 0x54
/* 800197E4 00015704 D0 1E 00 54 */ stfs f0, 0x54(r30)
/* 800197E8 00015708 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 800197EC 0001570C D0 1E 00 58 */ stfs f0, 0x58(r30)
/* 800197F0 00015710 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 800197F4 00015714 D0 1E 00 5C */ stfs f0, 0x5c(r30)
/* 800197F8 00015718 C8 22 85 10 */ lfd f1, lbl_802F2D10@sda21(r2)
/* 800197FC 0001571C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80019800 00015720 FC 01 00 32 */ fmul f0, f1, f0
/* 80019804 00015724 FC 00 00 18 */ frsp f0, f0
/* 80019808 00015728 D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 8001980C 0001572C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80019810 00015730 FC 01 00 32 */ fmul f0, f1, f0
/* 80019814 00015734 FC 00 00 18 */ frsp f0, f0
/* 80019818 00015738 D0 1E 00 64 */ stfs f0, 0x64(r30)
/* 8001981C 0001573C 4B FE DD A1 */ bl mathutil_mtxA_from_translate
/* 80019820 00015740 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 80019824 00015744 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80019828 00015748 A8 63 00 0E */ lha r3, 0xe(r3)
/* 8001982C 0001574C 4B FE E7 D1 */ bl mathutil_mtxA_rotate_y
/* 80019830 00015750 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80019834 00015754 38 61 00 10 */ addi r3, r1, 0x10
/* 80019838 00015758 38 83 00 00 */ addi r4, r3, 0
/* 8001983C 0001575C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019840 00015760 C0 1E 00 64 */ lfs f0, 0x64(r30)
/* 80019844 00015764 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019848 00015768 C0 1E 00 60 */ lfs f0, 0x60(r30)
/* 8001984C 0001576C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019850 00015770 4B FE E5 DD */ bl mathutil_mtxA_tf_point
/* 80019854 00015774 C0 3E 00 54 */ lfs f1, 0x54(r30)
/* 80019858 00015778 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001985C 0001577C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019860 00015780 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019864 00015784 C0 3E 00 58 */ lfs f1, 0x58(r30)
/* 80019868 00015788 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001986C 0001578C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019870 00015790 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019874 00015794 C0 3E 00 5C */ lfs f1, 0x5c(r30)
/* 80019878 00015798 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001987C 0001579C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019880 000157A0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019884 000157A4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019888 000157A8 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001988C 000157AC 4B FE DA 19 */ bl mathutil_atan2
/* 80019890 000157B0 38 03 80 00 */ addi r0, r3, -32768
/* 80019894 000157B4 7C 00 07 34 */ extsh r0, r0
/* 80019898 000157B8 90 1E 00 6C */ stw r0, 0x6c(r30)
/* 8001989C 000157BC C0 01 00 18 */ lfs f0, 0x18(r1)
/* 800198A0 000157C0 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 800198A4 000157C4 EC 21 00 72 */ fmuls f1, f1, f1
/* 800198A8 000157C8 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 800198AC 000157CC 4B FE D8 4D */ bl mathutil_sqrt
/* 800198B0 000157D0 FC 40 08 90 */ fmr f2, f1
/* 800198B4 000157D4 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 800198B8 000157D8 4B FE D9 ED */ bl mathutil_atan2
/* 800198BC 000157DC 7C 60 07 34 */ extsh r0, r3
/* 800198C0 000157E0 90 1E 00 68 */ stw r0, 0x68(r30)
/* 800198C4 000157E4 3B A0 00 00 */ li r29, 0
/* 800198C8 000157E8 38 7E 00 74 */ addi r3, r30, 0x74
/* 800198CC 000157EC 93 BE 00 70 */ stw r29, 0x70(r30)
/* 800198D0 000157F0 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 800198D4 000157F4 80 84 00 10 */ lwz r4, 0x10(r4)
/* 800198D8 000157F8 C0 04 00 00 */ lfs f0, 0(r4)
/* 800198DC 000157FC D0 1E 00 74 */ stfs f0, 0x74(r30)
/* 800198E0 00015800 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 800198E4 00015804 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 800198E8 00015808 80 84 00 10 */ lwz r4, 0x10(r4)
/* 800198EC 0001580C C0 04 00 04 */ lfs f0, 4(r4)
/* 800198F0 00015810 FC 01 00 2A */ fadd f0, f1, f0
/* 800198F4 00015814 FC 00 00 18 */ frsp f0, f0
/* 800198F8 00015818 D0 1E 00 78 */ stfs f0, 0x78(r30)
/* 800198FC 0001581C 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 80019900 00015820 80 84 00 10 */ lwz r4, 0x10(r4)
/* 80019904 00015824 C0 04 00 08 */ lfs f0, 8(r4)
/* 80019908 00015828 D0 1E 00 7C */ stfs f0, 0x7c(r30)
/* 8001990C 0001582C 4B FE DC B1 */ bl mathutil_mtxA_from_translate
/* 80019910 00015830 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 80019914 00015834 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80019918 00015838 A8 63 00 0E */ lha r3, 0xe(r3)
/* 8001991C 0001583C 4B FE E6 E1 */ bl mathutil_mtxA_rotate_y
/* 80019920 00015840 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80019924 00015844 38 61 00 10 */ addi r3, r1, 0x10
/* 80019928 00015848 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 8001992C 0001584C 7C 64 1B 78 */ mr r4, r3
/* 80019930 00015850 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019934 00015854 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 80019938 00015858 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8001993C 0001585C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019940 00015860 4B FE E4 ED */ bl mathutil_mtxA_tf_point
/* 80019944 00015864 C0 3E 00 74 */ lfs f1, 0x74(r30)
/* 80019948 00015868 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001994C 0001586C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019950 00015870 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019954 00015874 C0 3E 00 78 */ lfs f1, 0x78(r30)
/* 80019958 00015878 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001995C 0001587C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019960 00015880 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019964 00015884 C0 3E 00 7C */ lfs f1, 0x7c(r30)
/* 80019968 00015888 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001996C 0001588C EC 01 00 28 */ fsubs f0, f1, f0
/* 80019970 00015890 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019974 00015894 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019978 00015898 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001997C 0001589C 4B FE D9 29 */ bl mathutil_atan2
/* 80019980 000158A0 38 03 80 00 */ addi r0, r3, -32768
/* 80019984 000158A4 7C 03 07 34 */ extsh r3, r0
/* 80019988 000158A8 3C 03 00 01 */ addis r0, r3, 1
/* 8001998C 000158AC 90 1E 00 8C */ stw r0, 0x8c(r30)
/* 80019990 000158B0 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019994 000158B4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019998 000158B8 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001999C 000158BC EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 800199A0 000158C0 4B FE D7 59 */ bl mathutil_sqrt
/* 800199A4 000158C4 FC 40 08 90 */ fmr f2, f1
/* 800199A8 000158C8 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 800199AC 000158CC 4B FE D8 F9 */ bl mathutil_atan2
/* 800199B0 000158D0 7C 60 07 34 */ extsh r0, r3
/* 800199B4 000158D4 90 1E 00 88 */ stw r0, 0x88(r30)
/* 800199B8 000158D8 38 A0 00 5A */ li r5, 0x5a
/* 800199BC 000158DC 38 00 00 01 */ li r0, 1
/* 800199C0 000158E0 93 BE 00 90 */ stw r29, 0x90(r30)
/* 800199C4 000158E4 38 7E 00 00 */ addi r3, r30, 0
/* 800199C8 000158E8 38 9F 00 00 */ addi r4, r31, 0
/* 800199CC 000158EC A8 DE 00 24 */ lha r6, 0x24(r30)
/* 800199D0 000158F0 60 C6 00 01 */ ori r6, r6, 1
/* 800199D4 000158F4 B0 DE 00 24 */ sth r6, 0x24(r30)
/* 800199D8 000158F8 B0 BE 00 50 */ sth r5, 0x50(r30)
/* 800199DC 000158FC B0 BE 00 52 */ sth r5, 0x52(r30)
/* 800199E0 00015900 98 1E 00 26 */ stb r0, 0x26(r30)
/* 800199E4 00015904 48 00 00 29 */ bl camera_sub_ready_main
/* 800199E8 00015908 38 00 00 0B */ li r0, 0xb
/* 800199EC 0001590C 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 800199F0 00015910 80 01 00 44 */ lwz r0, 0x44(r1)
/* 800199F4 00015914 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 800199F8 00015918 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 800199FC 0001591C 7C 08 03 A6 */ mtlr r0
/* 80019A00 00015920 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 80019A04 00015924 38 21 00 40 */ addi r1, r1, 0x40
/* 80019A08 00015928 4E 80 00 20 */ blr
.global camera_sub_ready_main
camera_sub_ready_main:
/* 80019A0C 0001592C 7C 08 02 A6 */ mflr r0
/* 80019A10 00015930 90 01 00 04 */ stw r0, 4(r1)
/* 80019A14 00015934 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80019A18 00015938 DB E1 00 88 */ stfd f31, 0x88(r1)
/* 80019A1C 0001593C DB C1 00 80 */ stfd f30, 0x80(r1)
/* 80019A20 00015940 93 E1 00 7C */ stw r31, 0x7c(r1)
/* 80019A24 00015944 3B E3 00 00 */ addi r31, r3, 0
/* 80019A28 00015948 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 80019A2C 0001594C 70 00 00 0A */ andi. r0, r0, 0xa
/* 80019A30 00015950 41 82 00 10 */ beq lbl_80019A40
/* 80019A34 00015954 88 1F 00 1E */ lbz r0, 0x1e(r31)
/* 80019A38 00015958 2C 00 00 0B */ cmpwi r0, 0xb
/* 80019A3C 0001595C 41 82 02 4C */ beq lbl_80019C88
lbl_80019A40:
/* 80019A40 00015960 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 80019A44 00015964 2C 03 00 00 */ cmpwi r3, 0
/* 80019A48 00015968 40 81 00 4C */ ble lbl_80019A94
/* 80019A4C 0001596C 38 03 FF FF */ addi r0, r3, -1
/* 80019A50 00015970 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 80019A54 00015974 B0 1F 00 50 */ sth r0, 0x50(r31)
/* 80019A58 00015978 38 63 3A 58 */ addi r3, r3, lbl_801F3A58@l
/* 80019A5C 0001597C A8 03 00 1E */ lha r0, 0x1e(r3)
/* 80019A60 00015980 2C 00 00 01 */ cmpwi r0, 1
/* 80019A64 00015984 40 82 00 30 */ bne lbl_80019A94
/* 80019A68 00015988 3C 60 80 1F */ lis r3, lbl_801F3D88@ha
/* 80019A6C 0001598C A0 03 3D 88 */ lhz r0, lbl_801F3D88@l(r3)
/* 80019A70 00015990 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 80019A74 00015994 41 82 00 20 */ beq lbl_80019A94
/* 80019A78 00015998 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 80019A7C 0001599C 80 03 EC 20 */ lwz r0, modeCtrl@l(r3)
/* 80019A80 000159A0 2C 00 00 78 */ cmpwi r0, 0x78
/* 80019A84 000159A4 40 81 00 10 */ ble lbl_80019A94
/* 80019A88 000159A8 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 80019A8C 000159AC 38 03 FF FF */ addi r0, r3, -1
/* 80019A90 000159B0 B0 1F 00 50 */ sth r0, 0x50(r31)
lbl_80019A94:
/* 80019A94 000159B4 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 80019A98 000159B8 3C 80 43 30 */ lis r4, 0x4330
/* 80019A9C 000159BC A8 1F 00 52 */ lha r0, 0x52(r31)
/* 80019AA0 000159C0 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 80019AA4 000159C4 C8 02 84 68 */ lfd f0, lbl_802F2C68@sda21(r2)
/* 80019AA8 000159C8 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80019AAC 000159CC 90 61 00 74 */ stw r3, 0x74(r1)
/* 80019AB0 000159D0 C8 82 85 28 */ lfd f4, lbl_802F2D28@sda21(r2)
/* 80019AB4 000159D4 90 01 00 6C */ stw r0, 0x6c(r1)
/* 80019AB8 000159D8 C8 C2 85 20 */ lfd f6, lbl_802F2D20@sda21(r2)
/* 80019ABC 000159DC 90 81 00 70 */ stw r4, 0x70(r1)
/* 80019AC0 000159E0 C8 42 84 60 */ lfd f2, lbl_802F2C60@sda21(r2)
/* 80019AC4 000159E4 90 81 00 68 */ stw r4, 0x68(r1)
/* 80019AC8 000159E8 C8 61 00 70 */ lfd f3, 0x70(r1)
/* 80019ACC 000159EC C8 21 00 68 */ lfd f1, 0x68(r1)
/* 80019AD0 000159F0 EC E3 00 28 */ fsubs f7, f3, f0
/* 80019AD4 000159F4 C0 7F 00 74 */ lfs f3, 0x74(r31)
/* 80019AD8 000159F8 EC A1 00 28 */ fsubs f5, f1, f0
/* 80019ADC 000159FC C0 3F 00 54 */ lfs f1, 0x54(r31)
/* 80019AE0 00015A00 EC E7 28 24 */ fdivs f7, f7, f5
/* 80019AE4 00015A04 FC A4 01 F2 */ fmul f5, f4, f7
/* 80019AE8 00015A08 EC 87 01 F2 */ fmuls f4, f7, f7
/* 80019AEC 00015A0C FC A6 28 2A */ fadd f5, f6, f5
/* 80019AF0 00015A10 FF C5 01 32 */ fmul f30, f5, f4
/* 80019AF4 00015A14 FF C0 F0 18 */ frsp f30, f30
/* 80019AF8 00015A18 FF E2 F0 28 */ fsub f31, f2, f30
/* 80019AFC 00015A1C EC 21 07 B2 */ fmuls f1, f1, f30
/* 80019B00 00015A20 FC 43 07 F2 */ fmul f2, f3, f31
/* 80019B04 00015A24 FC 22 08 2A */ fadd f1, f2, f1
/* 80019B08 00015A28 FC 20 08 18 */ frsp f1, f1
/* 80019B0C 00015A2C D0 3F 00 0C */ stfs f1, 0xc(r31)
/* 80019B10 00015A30 C0 5F 00 78 */ lfs f2, 0x78(r31)
/* 80019B14 00015A34 C0 3F 00 58 */ lfs f1, 0x58(r31)
/* 80019B18 00015A38 FC 42 07 F2 */ fmul f2, f2, f31
/* 80019B1C 00015A3C EC 21 07 B2 */ fmuls f1, f1, f30
/* 80019B20 00015A40 FC 22 08 2A */ fadd f1, f2, f1
/* 80019B24 00015A44 FC 20 08 18 */ frsp f1, f1
/* 80019B28 00015A48 D0 3F 00 10 */ stfs f1, 0x10(r31)
/* 80019B2C 00015A4C C0 5F 00 7C */ lfs f2, 0x7c(r31)
/* 80019B30 00015A50 C0 3F 00 5C */ lfs f1, 0x5c(r31)
/* 80019B34 00015A54 FC 42 07 F2 */ fmul f2, f2, f31
/* 80019B38 00015A58 EC 21 07 B2 */ fmuls f1, f1, f30
/* 80019B3C 00015A5C FC 22 08 2A */ fadd f1, f2, f1
/* 80019B40 00015A60 FC 20 08 18 */ frsp f1, f1
/* 80019B44 00015A64 D0 3F 00 14 */ stfs f1, 0x14(r31)
/* 80019B48 00015A68 80 BF 00 68 */ lwz r5, 0x68(r31)
/* 80019B4C 00015A6C 80 1F 00 88 */ lwz r0, 0x88(r31)
/* 80019B50 00015A70 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 80019B54 00015A74 7C 05 00 50 */ subf r0, r5, r0
/* 80019B58 00015A78 90 61 00 64 */ stw r3, 0x64(r1)
/* 80019B5C 00015A7C 7C 00 07 34 */ extsh r0, r0
/* 80019B60 00015A80 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80019B64 00015A84 90 81 00 60 */ stw r4, 0x60(r1)
/* 80019B68 00015A88 90 01 00 5C */ stw r0, 0x5c(r1)
/* 80019B6C 00015A8C C8 21 00 60 */ lfd f1, 0x60(r1)
/* 80019B70 00015A90 90 81 00 58 */ stw r4, 0x58(r1)
/* 80019B74 00015A94 FC 41 00 28 */ fsub f2, f1, f0
/* 80019B78 00015A98 C8 21 00 58 */ lfd f1, 0x58(r1)
/* 80019B7C 00015A9C FC 21 00 28 */ fsub f1, f1, f0
/* 80019B80 00015AA0 FC 3F 00 72 */ fmul f1, f31, f1
/* 80019B84 00015AA4 FC 22 08 2A */ fadd f1, f2, f1
/* 80019B88 00015AA8 FC 20 08 1E */ fctiwz f1, f1
/* 80019B8C 00015AAC D8 21 00 50 */ stfd f1, 0x50(r1)
/* 80019B90 00015AB0 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80019B94 00015AB4 B0 1F 00 18 */ sth r0, 0x18(r31)
/* 80019B98 00015AB8 80 BF 00 6C */ lwz r5, 0x6c(r31)
/* 80019B9C 00015ABC 80 1F 00 8C */ lwz r0, 0x8c(r31)
/* 80019BA0 00015AC0 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 80019BA4 00015AC4 7C 05 00 50 */ subf r0, r5, r0
/* 80019BA8 00015AC8 90 61 00 4C */ stw r3, 0x4c(r1)
/* 80019BAC 00015ACC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80019BB0 00015AD0 90 01 00 44 */ stw r0, 0x44(r1)
/* 80019BB4 00015AD4 90 81 00 40 */ stw r4, 0x40(r1)
/* 80019BB8 00015AD8 C8 21 00 40 */ lfd f1, 0x40(r1)
/* 80019BBC 00015ADC 90 81 00 48 */ stw r4, 0x48(r1)
/* 80019BC0 00015AE0 FC 21 00 28 */ fsub f1, f1, f0
/* 80019BC4 00015AE4 C8 41 00 48 */ lfd f2, 0x48(r1)
/* 80019BC8 00015AE8 FC 3F 00 72 */ fmul f1, f31, f1
/* 80019BCC 00015AEC FC 42 00 28 */ fsub f2, f2, f0
/* 80019BD0 00015AF0 FC 22 08 2A */ fadd f1, f2, f1
/* 80019BD4 00015AF4 FC 20 08 1E */ fctiwz f1, f1
/* 80019BD8 00015AF8 D8 21 00 38 */ stfd f1, 0x38(r1)
/* 80019BDC 00015AFC 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 80019BE0 00015B00 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 80019BE4 00015B04 80 BF 00 70 */ lwz r5, 0x70(r31)
/* 80019BE8 00015B08 80 1F 00 90 */ lwz r0, 0x90(r31)
/* 80019BEC 00015B0C 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 80019BF0 00015B10 7C 05 00 50 */ subf r0, r5, r0
/* 80019BF4 00015B14 90 61 00 34 */ stw r3, 0x34(r1)
/* 80019BF8 00015B18 7C 00 07 34 */ extsh r0, r0
/* 80019BFC 00015B1C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80019C00 00015B20 90 81 00 30 */ stw r4, 0x30(r1)
/* 80019C04 00015B24 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80019C08 00015B28 C8 21 00 30 */ lfd f1, 0x30(r1)
/* 80019C0C 00015B2C 90 81 00 28 */ stw r4, 0x28(r1)
/* 80019C10 00015B30 FC 41 00 28 */ fsub f2, f1, f0
/* 80019C14 00015B34 C8 21 00 28 */ lfd f1, 0x28(r1)
/* 80019C18 00015B38 FC 01 00 28 */ fsub f0, f1, f0
/* 80019C1C 00015B3C FC 1F 00 32 */ fmul f0, f31, f0
/* 80019C20 00015B40 FC 02 00 2A */ fadd f0, f2, f0
/* 80019C24 00015B44 FC 00 00 1E */ fctiwz f0, f0
/* 80019C28 00015B48 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 80019C2C 00015B4C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80019C30 00015B50 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 80019C34 00015B54 38 7F 00 0C */ addi r3, r31, 0xc
/* 80019C38 00015B58 4B FE D9 85 */ bl mathutil_mtxA_from_translate
/* 80019C3C 00015B5C A8 7F 00 1A */ lha r3, 0x1a(r31)
/* 80019C40 00015B60 4B FE E3 BD */ bl mathutil_mtxA_rotate_y
/* 80019C44 00015B64 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80019C48 00015B68 7F E4 FB 78 */ mr r4, r31
/* 80019C4C 00015B6C C8 02 85 20 */ lfd f0, lbl_802F2D20@sda21(r2)
/* 80019C50 00015B70 38 61 00 10 */ addi r3, r1, 0x10
/* 80019C54 00015B74 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 80019C58 00015B78 FC 20 07 F2 */ fmul f1, f0, f31
/* 80019C5C 00015B7C C0 1F 00 64 */ lfs f0, 0x64(r31)
/* 80019C60 00015B80 EC 00 07 B2 */ fmuls f0, f0, f30
/* 80019C64 00015B84 FC 1F 00 2A */ fadd f0, f31, f0
/* 80019C68 00015B88 FC 00 00 18 */ frsp f0, f0
/* 80019C6C 00015B8C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019C70 00015B90 C0 1F 00 60 */ lfs f0, 0x60(r31)
/* 80019C74 00015B94 EC 00 07 B2 */ fmuls f0, f0, f30
/* 80019C78 00015B98 FC 01 00 2A */ fadd f0, f1, f0
/* 80019C7C 00015B9C FC 00 00 18 */ frsp f0, f0
/* 80019C80 00015BA0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019C84 00015BA4 4B FE E1 A9 */ bl mathutil_mtxA_tf_point
lbl_80019C88:
/* 80019C88 00015BA8 80 01 00 94 */ lwz r0, 0x94(r1)
/* 80019C8C 00015BAC CB E1 00 88 */ lfd f31, 0x88(r1)
/* 80019C90 00015BB0 CB C1 00 80 */ lfd f30, 0x80(r1)
/* 80019C94 00015BB4 7C 08 03 A6 */ mtlr r0
/* 80019C98 00015BB8 83 E1 00 7C */ lwz r31, 0x7c(r1)
/* 80019C9C 00015BBC 38 21 00 90 */ addi r1, r1, 0x90
/* 80019CA0 00015BC0 4E 80 00 20 */ blr
.global func_80019CA4
func_80019CA4:
/* 80019CA4 00015BC4 7C 08 02 A6 */ mflr r0
/* 80019CA8 00015BC8 90 01 00 04 */ stw r0, 4(r1)
/* 80019CAC 00015BCC 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80019CB0 00015BD0 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80019CB4 00015BD4 7C 7F 1B 78 */ mr r31, r3
/* 80019CB8 00015BD8 4B FF FA F9 */ bl camera_sub_ready_init
/* 80019CBC 00015BDC 38 00 01 5E */ li r0, 0x15e
/* 80019CC0 00015BE0 B0 1F 00 50 */ sth r0, 0x50(r31)
/* 80019CC4 00015BE4 B0 1F 00 52 */ sth r0, 0x52(r31)
/* 80019CC8 00015BE8 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80019CCC 00015BEC 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80019CD0 00015BF0 38 21 00 18 */ addi r1, r1, 0x18
/* 80019CD4 00015BF4 7C 08 03 A6 */ mtlr r0
/* 80019CD8 00015BF8 4E 80 00 20 */ blr
.global func_80019CDC
func_80019CDC:
/* 80019CDC 00015BFC 3C 80 80 17 */ lis r4, lbl_80177214@ha
/* 80019CE0 00015C00 A8 AD 9D 78 */ lha r5, currStageId@sda21(r13)
/* 80019CE4 00015C04 38 04 72 14 */ addi r0, r4, lbl_80177214@l
/* 80019CE8 00015C08 7C 06 03 78 */ mr r6, r0
/* 80019CEC 00015C0C 48 00 00 38 */ b lbl_80019D24
lbl_80019CF0:
/* 80019CF0 00015C10 80 06 00 00 */ lwz r0, 0(r6)
/* 80019CF4 00015C14 7C 00 28 00 */ cmpw r0, r5
/* 80019CF8 00015C18 40 82 00 28 */ bne lbl_80019D20
/* 80019CFC 00015C1C 80 86 00 04 */ lwz r4, 4(r6)
/* 80019D00 00015C20 80 06 00 08 */ lwz r0, 8(r6)
/* 80019D04 00015C24 90 83 00 00 */ stw r4, 0(r3)
/* 80019D08 00015C28 90 03 00 04 */ stw r0, 4(r3)
/* 80019D0C 00015C2C 80 86 00 0C */ lwz r4, 0xc(r6)
/* 80019D10 00015C30 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80019D14 00015C34 90 83 00 08 */ stw r4, 8(r3)
/* 80019D18 00015C38 90 03 00 0C */ stw r0, 0xc(r3)
/* 80019D1C 00015C3C 4E 80 00 20 */ blr
lbl_80019D20:
/* 80019D20 00015C40 38 C6 00 14 */ addi r6, r6, 0x14
lbl_80019D24:
/* 80019D24 00015C44 80 06 00 00 */ lwz r0, 0(r6)
/* 80019D28 00015C48 2C 00 00 00 */ cmpwi r0, 0
/* 80019D2C 00015C4C 41 81 FF C4 */ bgt lbl_80019CF0
/* 80019D30 00015C50 3C 80 80 21 */ lis r4, lbl_8020ADD4@ha
/* 80019D34 00015C54 38 A4 AD D4 */ addi r5, r4, lbl_8020ADD4@l
/* 80019D38 00015C58 80 85 00 00 */ lwz r4, 0(r5)
/* 80019D3C 00015C5C 80 05 00 04 */ lwz r0, 4(r5)
/* 80019D40 00015C60 90 83 00 00 */ stw r4, 0(r3)
/* 80019D44 00015C64 90 03 00 04 */ stw r0, 4(r3)
/* 80019D48 00015C68 80 85 00 08 */ lwz r4, 8(r5)
/* 80019D4C 00015C6C 80 05 00 0C */ lwz r0, 0xc(r5)
/* 80019D50 00015C70 90 83 00 08 */ stw r4, 8(r3)
/* 80019D54 00015C74 90 03 00 0C */ stw r0, 0xc(r3)
/* 80019D58 00015C78 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80019D5C 00015C7C C8 02 85 30 */ lfd f0, lbl_802F2D30@sda21(r2)
/* 80019D60 00015C80 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80019D64 00015C84 4C 80 00 20 */ bgelr
/* 80019D68 00015C88 C0 02 85 38 */ lfs f0, lbl_802F2D38@sda21(r2)
/* 80019D6C 00015C8C D0 03 00 0C */ stfs f0, 0xc(r3)
/* 80019D70 00015C90 4E 80 00 20 */ blr
.global func_80019D74
func_80019D74:
/* 80019D74 00015C94 7C 08 02 A6 */ mflr r0
/* 80019D78 00015C98 90 01 00 04 */ stw r0, 4(r1)
/* 80019D7C 00015C9C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80019D80 00015CA0 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 80019D84 00015CA4 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80019D88 00015CA8 3B C4 00 00 */ addi r30, r4, 0
/* 80019D8C 00015CAC 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80019D90 00015CB0 3B A3 00 00 */ addi r29, r3, 0
/* 80019D94 00015CB4 4B FF ED 5D */ bl camera_clear
/* 80019D98 00015CB8 3B E0 00 00 */ li r31, 0
/* 80019D9C 00015CBC 9B FD 00 26 */ stb r31, 0x26(r29)
/* 80019DA0 00015CC0 38 7D 00 0C */ addi r3, r29, 0xc
/* 80019DA4 00015CC4 C0 1E 00 04 */ lfs f0, 4(r30)
/* 80019DA8 00015CC8 D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 80019DAC 00015CCC C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 80019DB0 00015CD0 C0 1E 00 08 */ lfs f0, 8(r30)
/* 80019DB4 00015CD4 FC 01 00 2A */ fadd f0, f1, f0
/* 80019DB8 00015CD8 FC 00 00 18 */ frsp f0, f0
/* 80019DBC 00015CDC D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 80019DC0 00015CE0 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 80019DC4 00015CE4 D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 80019DC8 00015CE8 4B FE D7 F5 */ bl mathutil_mtxA_from_translate
/* 80019DCC 00015CEC 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 80019DD0 00015CF0 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80019DD4 00015CF4 A8 63 00 0E */ lha r3, 0xe(r3)
/* 80019DD8 00015CF8 4B FE E2 25 */ bl mathutil_mtxA_rotate_y
/* 80019DDC 00015CFC C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80019DE0 00015D00 7F A4 EB 78 */ mr r4, r29
/* 80019DE4 00015D04 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 80019DE8 00015D08 38 61 00 10 */ addi r3, r1, 0x10
/* 80019DEC 00015D0C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019DF0 00015D10 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 80019DF4 00015D14 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80019DF8 00015D18 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019DFC 00015D1C 4B FE E0 31 */ bl mathutil_mtxA_tf_point
/* 80019E00 00015D20 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80019E04 00015D24 38 61 00 10 */ addi r3, r1, 0x10
/* 80019E08 00015D28 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 80019E0C 00015D2C 38 9D 00 AC */ addi r4, r29, 0xac
/* 80019E10 00015D30 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 80019E14 00015D34 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80019E18 00015D38 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019E1C 00015D3C 4B FE E0 11 */ bl mathutil_mtxA_tf_point
/* 80019E20 00015D40 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 80019E24 00015D44 C0 1D 00 00 */ lfs f0, 0(r29)
/* 80019E28 00015D48 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019E2C 00015D4C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019E30 00015D50 C0 3D 00 10 */ lfs f1, 0x10(r29)
/* 80019E34 00015D54 C0 1D 00 04 */ lfs f0, 4(r29)
/* 80019E38 00015D58 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019E3C 00015D5C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019E40 00015D60 C0 3D 00 14 */ lfs f1, 0x14(r29)
/* 80019E44 00015D64 C0 1D 00 08 */ lfs f0, 8(r29)
/* 80019E48 00015D68 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019E4C 00015D6C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019E50 00015D70 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019E54 00015D74 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80019E58 00015D78 4B FE D4 4D */ bl mathutil_atan2
/* 80019E5C 00015D7C 38 03 80 00 */ addi r0, r3, -32768
/* 80019E60 00015D80 B0 1D 00 1A */ sth r0, 0x1a(r29)
/* 80019E64 00015D84 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80019E68 00015D88 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 80019E6C 00015D8C EC 21 00 72 */ fmuls f1, f1, f1
/* 80019E70 00015D90 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80019E74 00015D94 4B FE D2 85 */ bl mathutil_sqrt
/* 80019E78 00015D98 FC 40 08 90 */ fmr f2, f1
/* 80019E7C 00015D9C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 80019E80 00015DA0 4B FE D4 25 */ bl mathutil_atan2
/* 80019E84 00015DA4 B0 7D 00 18 */ sth r3, 0x18(r29)
/* 80019E88 00015DA8 38 00 00 01 */ li r0, 1
/* 80019E8C 00015DAC B3 FD 00 1C */ sth r31, 0x1c(r29)
/* 80019E90 00015DB0 98 1D 00 1E */ stb r0, 0x1e(r29)
/* 80019E94 00015DB4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80019E98 00015DB8 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80019E9C 00015DBC 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 80019EA0 00015DC0 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80019EA4 00015DC4 38 21 00 30 */ addi r1, r1, 0x30
/* 80019EA8 00015DC8 7C 08 03 A6 */ mtlr r0
/* 80019EAC 00015DCC 4E 80 00 20 */ blr
.global func_80019EB0
func_80019EB0:
/* 80019EB0 00015DD0 7C 08 02 A6 */ mflr r0
/* 80019EB4 00015DD4 90 01 00 04 */ stw r0, 4(r1)
/* 80019EB8 00015DD8 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80019EBC 00015DDC 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 80019EC0 00015DE0 93 C1 00 58 */ stw r30, 0x58(r1)
/* 80019EC4 00015DE4 93 A1 00 54 */ stw r29, 0x54(r1)
/* 80019EC8 00015DE8 3B A4 00 00 */ addi r29, r4, 0
/* 80019ECC 00015DEC 93 81 00 50 */ stw r28, 0x50(r1)
/* 80019ED0 00015DF0 3B 83 00 00 */ addi r28, r3, 0
/* 80019ED4 00015DF4 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 80019ED8 00015DF8 70 00 00 0A */ andi. r0, r0, 0xa
/* 80019EDC 00015DFC 40 82 04 50 */ bne lbl_8001A32C
/* 80019EE0 00015E00 C0 1C 00 00 */ lfs f0, 0(r28)
/* 80019EE4 00015E04 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80019EE8 00015E08 C0 1C 00 04 */ lfs f0, 4(r28)
/* 80019EEC 00015E0C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 80019EF0 00015E10 C0 1C 00 08 */ lfs f0, 8(r28)
/* 80019EF4 00015E14 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 80019EF8 00015E18 C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 80019EFC 00015E1C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80019F00 00015E20 C0 1C 00 10 */ lfs f0, 0x10(r28)
/* 80019F04 00015E24 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 80019F08 00015E28 C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 80019F0C 00015E2C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80019F10 00015E30 C0 3C 00 AC */ lfs f1, 0xac(r28)
/* 80019F14 00015E34 C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 80019F18 00015E38 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019F1C 00015E3C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80019F20 00015E40 C0 3C 00 B0 */ lfs f1, 0xb0(r28)
/* 80019F24 00015E44 C0 1C 00 10 */ lfs f0, 0x10(r28)
/* 80019F28 00015E48 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019F2C 00015E4C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80019F30 00015E50 C0 3C 00 B4 */ lfs f1, 0xb4(r28)
/* 80019F34 00015E54 C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 80019F38 00015E58 EC 01 00 28 */ fsubs f0, f1, f0
/* 80019F3C 00015E5C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80019F40 00015E60 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 80019F44 00015E64 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 80019F48 00015E68 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80019F4C 00015E6C EC 21 00 72 */ fmuls f1, f1, f1
/* 80019F50 00015E70 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 80019F54 00015E74 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 80019F58 00015E78 C0 02 85 3C */ lfs f0, lbl_802F2D3C@sda21(r2)
/* 80019F5C 00015E7C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80019F60 00015E80 40 81 00 30 */ ble lbl_80019F90
/* 80019F64 00015E84 4B FE D1 D5 */ bl mathutil_rsqrt
/* 80019F68 00015E88 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80019F6C 00015E8C EC 00 00 72 */ fmuls f0, f0, f1
/* 80019F70 00015E90 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80019F74 00015E94 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 80019F78 00015E98 EC 00 00 72 */ fmuls f0, f0, f1
/* 80019F7C 00015E9C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80019F80 00015EA0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 80019F84 00015EA4 EC 00 00 72 */ fmuls f0, f0, f1
/* 80019F88 00015EA8 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80019F8C 00015EAC 48 00 00 18 */ b lbl_80019FA4
lbl_80019F90:
/* 80019F90 00015EB0 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 80019F94 00015EB4 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80019F98 00015EB8 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 80019F9C 00015EBC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80019FA0 00015EC0 D0 01 00 30 */ stfs f0, 0x30(r1)
lbl_80019FA4:
/* 80019FA4 00015EC4 C8 42 84 B0 */ lfd f2, lbl_802F2CB0@sda21(r2)
/* 80019FA8 00015EC8 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80019FAC 00015ECC C0 1C 00 0C */ lfs f0, 0xc(r28)
/* 80019FB0 00015ED0 FC 22 00 72 */ fmul f1, f2, f1
/* 80019FB4 00015ED4 FC 01 00 2A */ fadd f0, f1, f0
/* 80019FB8 00015ED8 FC 00 00 18 */ frsp f0, f0
/* 80019FBC 00015EDC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80019FC0 00015EE0 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 80019FC4 00015EE4 C0 1C 00 10 */ lfs f0, 0x10(r28)
/* 80019FC8 00015EE8 FC 22 00 72 */ fmul f1, f2, f1
/* 80019FCC 00015EEC FC 01 00 2A */ fadd f0, f1, f0
/* 80019FD0 00015EF0 FC 00 00 18 */ frsp f0, f0
/* 80019FD4 00015EF4 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80019FD8 00015EF8 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 80019FDC 00015EFC C0 1C 00 14 */ lfs f0, 0x14(r28)
/* 80019FE0 00015F00 FC 22 00 72 */ fmul f1, f2, f1
/* 80019FE4 00015F04 FC 01 00 2A */ fadd f0, f1, f0
/* 80019FE8 00015F08 FC 00 00 18 */ frsp f0, f0
/* 80019FEC 00015F0C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80019FF0 00015F10 C0 1D 00 04 */ lfs f0, 4(r29)
/* 80019FF4 00015F14 D0 1C 00 0C */ stfs f0, 0xc(r28)
/* 80019FF8 00015F18 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 80019FFC 00015F1C C0 1D 00 08 */ lfs f0, 8(r29)
/* 8001A000 00015F20 FC 01 00 2A */ fadd f0, f1, f0
/* 8001A004 00015F24 FC 00 00 18 */ frsp f0, f0
/* 8001A008 00015F28 D0 1C 00 10 */ stfs f0, 0x10(r28)
/* 8001A00C 00015F2C C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 8001A010 00015F30 D0 1C 00 14 */ stfs f0, 0x14(r28)
/* 8001A014 00015F34 C0 3C 00 0C */ lfs f1, 0xc(r28)
/* 8001A018 00015F38 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001A01C 00015F3C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A020 00015F40 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001A024 00015F44 C0 3C 00 10 */ lfs f1, 0x10(r28)
/* 8001A028 00015F48 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8001A02C 00015F4C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A030 00015F50 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001A034 00015F54 C0 3C 00 14 */ lfs f1, 0x14(r28)
/* 8001A038 00015F58 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001A03C 00015F5C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A040 00015F60 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001A044 00015F64 80 1D 00 80 */ lwz r0, 0x80(r29)
/* 8001A048 00015F68 2C 00 00 3C */ cmpwi r0, 0x3c
/* 8001A04C 00015F6C 40 80 00 0C */ bge lbl_8001A058
/* 8001A050 00015F70 3B E0 00 00 */ li r31, 0
/* 8001A054 00015F74 48 00 00 28 */ b lbl_8001A07C
lbl_8001A058:
/* 8001A058 00015F78 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001A05C 00015F7C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001A060 00015F80 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A064 00015F84 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A068 00015F88 4B FE D0 91 */ bl mathutil_sqrt
/* 8001A06C 00015F8C FC 40 08 90 */ fmr f2, f1
/* 8001A070 00015F90 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001A074 00015F94 4B FE D2 31 */ bl mathutil_atan2
/* 8001A078 00015F98 7C 7F 1B 78 */ mr r31, r3
lbl_8001A07C:
/* 8001A07C 00015F9C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001A080 00015FA0 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001A084 00015FA4 4B FE D2 21 */ bl mathutil_atan2
/* 8001A088 00015FA8 A8 1C 00 1A */ lha r0, 0x1a(r28)
/* 8001A08C 00015FAC 3B C3 80 00 */ addi r30, r3, -32768
/* 8001A090 00015FB0 7C 00 F0 50 */ subf r0, r0, r30
/* 8001A094 00015FB4 7C 03 07 34 */ extsh r3, r0
/* 8001A098 00015FB8 2C 03 FE 00 */ cmpwi r3, -512
/* 8001A09C 00015FBC 40 80 00 0C */ bge lbl_8001A0A8
/* 8001A0A0 00015FC0 38 80 FE 00 */ li r4, -512
/* 8001A0A4 00015FC4 48 00 00 18 */ b lbl_8001A0BC
lbl_8001A0A8:
/* 8001A0A8 00015FC8 2C 03 02 00 */ cmpwi r3, 0x200
/* 8001A0AC 00015FCC 40 81 00 0C */ ble lbl_8001A0B8
/* 8001A0B0 00015FD0 38 80 02 00 */ li r4, 0x200
/* 8001A0B4 00015FD4 48 00 00 08 */ b lbl_8001A0BC
lbl_8001A0B8:
/* 8001A0B8 00015FD8 7C 64 1B 78 */ mr r4, r3
lbl_8001A0BC:
/* 8001A0BC 00015FDC A8 1C 00 24 */ lha r0, 0x24(r28)
/* 8001A0C0 00015FE0 A8 7C 00 1A */ lha r3, 0x1a(r28)
/* 8001A0C4 00015FE4 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8001A0C8 00015FE8 7F C3 22 14 */ add r30, r3, r4
/* 8001A0CC 00015FEC 40 82 00 EC */ bne lbl_8001A1B8
/* 8001A0D0 00015FF0 80 1D 00 94 */ lwz r0, 0x94(r29)
/* 8001A0D4 00015FF4 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13
/* 8001A0D8 00015FF8 40 82 00 E0 */ bne lbl_8001A1B8
/* 8001A0DC 00015FFC A8 1D 00 92 */ lha r0, 0x92(r29)
/* 8001A0E0 00016000 7C 1E 00 50 */ subf r0, r30, r0
/* 8001A0E4 00016004 7C 03 07 34 */ extsh r3, r0
/* 8001A0E8 00016008 2C 03 08 00 */ cmpwi r3, 0x800
/* 8001A0EC 0001600C 40 81 00 0C */ ble lbl_8001A0F8
/* 8001A0F0 00016010 38 63 F8 00 */ addi r3, r3, -2048
/* 8001A0F4 00016014 48 00 00 18 */ b lbl_8001A10C
lbl_8001A0F8:
/* 8001A0F8 00016018 2C 03 F8 00 */ cmpwi r3, -2048
/* 8001A0FC 0001601C 40 80 00 0C */ bge lbl_8001A108
/* 8001A100 00016020 38 63 08 00 */ addi r3, r3, 0x800
/* 8001A104 00016024 48 00 00 08 */ b lbl_8001A10C
lbl_8001A108:
/* 8001A108 00016028 38 60 00 00 */ li r3, 0
lbl_8001A10C:
/* 8001A10C 0001602C 7C 63 3E 71 */ srawi. r3, r3, 7
/* 8001A110 00016030 A8 9C 01 0C */ lha r4, 0x10c(r28)
/* 8001A114 00016034 40 82 00 0C */ bne lbl_8001A120
/* 8001A118 00016038 38 80 00 00 */ li r4, 0
/* 8001A11C 0001603C 48 00 00 68 */ b lbl_8001A184
lbl_8001A120:
/* 8001A120 00016040 2C 04 00 00 */ cmpwi r4, 0
/* 8001A124 00016044 40 80 00 0C */ bge lbl_8001A130
/* 8001A128 00016048 2C 03 00 00 */ cmpwi r3, 0
/* 8001A12C 0001604C 41 81 00 14 */ bgt lbl_8001A140
lbl_8001A130:
/* 8001A130 00016050 2C 04 00 00 */ cmpwi r4, 0
/* 8001A134 00016054 40 81 00 14 */ ble lbl_8001A148
/* 8001A138 00016058 2C 03 00 00 */ cmpwi r3, 0
/* 8001A13C 0001605C 40 80 00 0C */ bge lbl_8001A148
lbl_8001A140:
/* 8001A140 00016060 38 80 00 00 */ li r4, 0
/* 8001A144 00016064 48 00 00 40 */ b lbl_8001A184
lbl_8001A148:
/* 8001A148 00016068 2C 03 00 00 */ cmpwi r3, 0
/* 8001A14C 0001606C 40 80 00 20 */ bge lbl_8001A16C
/* 8001A150 00016070 38 04 FF FC */ addi r0, r4, -4
/* 8001A154 00016074 7C 03 00 00 */ cmpw r3, r0
/* 8001A158 00016078 40 80 00 0C */ bge lbl_8001A164
/* 8001A15C 0001607C 38 84 FF FC */ addi r4, r4, -4
/* 8001A160 00016080 48 00 00 24 */ b lbl_8001A184
lbl_8001A164:
/* 8001A164 00016084 7C 64 1B 78 */ mr r4, r3
/* 8001A168 00016088 48 00 00 1C */ b lbl_8001A184
lbl_8001A16C:
/* 8001A16C 0001608C 38 04 00 04 */ addi r0, r4, 4
/* 8001A170 00016090 7C 03 00 00 */ cmpw r3, r0
/* 8001A174 00016094 40 81 00 0C */ ble lbl_8001A180
/* 8001A178 00016098 38 84 00 04 */ addi r4, r4, 4
/* 8001A17C 0001609C 48 00 00 08 */ b lbl_8001A184
lbl_8001A180:
/* 8001A180 000160A0 7C 64 1B 78 */ mr r4, r3
lbl_8001A184:
/* 8001A184 000160A4 A8 1C 00 1A */ lha r0, 0x1a(r28)
/* 8001A188 000160A8 7F DE 22 14 */ add r30, r30, r4
/* 8001A18C 000160AC 7C 00 F0 50 */ subf r0, r0, r30
/* 8001A190 000160B0 7C 03 07 34 */ extsh r3, r0
/* 8001A194 000160B4 2C 03 FD 00 */ cmpwi r3, -768
/* 8001A198 000160B8 40 80 00 0C */ bge lbl_8001A1A4
/* 8001A19C 000160BC 38 60 FD 00 */ li r3, -768
/* 8001A1A0 000160C0 48 00 00 10 */ b lbl_8001A1B0
lbl_8001A1A4:
/* 8001A1A4 000160C4 2C 03 03 00 */ cmpwi r3, 0x300
/* 8001A1A8 000160C8 40 81 00 08 */ ble lbl_8001A1B0
/* 8001A1AC 000160CC 38 60 03 00 */ li r3, 0x300
lbl_8001A1B0:
/* 8001A1B0 000160D0 A8 1C 00 1A */ lha r0, 0x1a(r28)
/* 8001A1B4 000160D4 7F C0 1A 14 */ add r30, r0, r3
lbl_8001A1B8:
/* 8001A1B8 000160D8 7F E0 07 34 */ extsh r0, r31
/* 8001A1BC 000160DC 2C 00 E8 00 */ cmpwi r0, -6144
/* 8001A1C0 000160E0 40 80 00 0C */ bge lbl_8001A1CC
/* 8001A1C4 000160E4 3B E0 E8 00 */ li r31, -6144
/* 8001A1C8 000160E8 48 00 00 10 */ b lbl_8001A1D8
lbl_8001A1CC:
/* 8001A1CC 000160EC 2C 00 18 00 */ cmpwi r0, 0x1800
/* 8001A1D0 000160F0 40 81 00 08 */ ble lbl_8001A1D8
/* 8001A1D4 000160F4 3B E0 18 00 */ li r31, 0x1800
lbl_8001A1D8:
/* 8001A1D8 000160F8 A8 7C 00 B8 */ lha r3, 0xb8(r28)
/* 8001A1DC 000160FC 7F E0 07 34 */ extsh r0, r31
/* 8001A1E0 00016100 3C 80 43 30 */ lis r4, 0x4330
/* 8001A1E4 00016104 C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001A1E8 00016108 7C 03 00 50 */ subf r0, r3, r0
/* 8001A1EC 0001610C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A1F0 00016110 C8 22 85 00 */ lfd f1, lbl_802F2D00@sda21(r2)
/* 8001A1F4 00016114 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001A1F8 00016118 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001A1FC 0001611C 38 7C 00 0C */ addi r3, r28, 0xc
/* 8001A200 00016120 90 81 00 40 */ stw r4, 0x40(r1)
/* 8001A204 00016124 90 01 00 4C */ stw r0, 0x4c(r1)
/* 8001A208 00016128 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8001A20C 0001612C 90 81 00 48 */ stw r4, 0x48(r1)
/* 8001A210 00016130 FC 00 18 28 */ fsub f0, f0, f3
/* 8001A214 00016134 C8 41 00 48 */ lfd f2, 0x48(r1)
/* 8001A218 00016138 FC 01 00 32 */ fmul f0, f1, f0
/* 8001A21C 0001613C FC 22 18 28 */ fsub f1, f2, f3
/* 8001A220 00016140 FC 01 00 2A */ fadd f0, f1, f0
/* 8001A224 00016144 FC 00 00 1E */ fctiwz f0, f0
/* 8001A228 00016148 D8 01 00 38 */ stfd f0, 0x38(r1)
/* 8001A22C 0001614C 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 8001A230 00016150 B3 BC 00 B8 */ sth r29, 0xb8(r28)
/* 8001A234 00016154 4B FE D3 89 */ bl mathutil_mtxA_from_translate
/* 8001A238 00016158 7F C3 07 34 */ extsh r3, r30
/* 8001A23C 0001615C 4B FE DD C1 */ bl mathutil_mtxA_rotate_y
/* 8001A240 00016160 7F A3 07 34 */ extsh r3, r29
/* 8001A244 00016164 4B FE DD 45 */ bl mathutil_mtxA_rotate_x
/* 8001A248 00016168 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001A24C 0001616C 38 61 00 28 */ addi r3, r1, 0x28
/* 8001A250 00016170 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 8001A254 00016174 38 9C 00 AC */ addi r4, r28, 0xac
/* 8001A258 00016178 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8001A25C 0001617C D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 8001A260 00016180 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001A264 00016184 4B FE DB C9 */ bl mathutil_mtxA_tf_point
/* 8001A268 00016188 A8 9C 00 1A */ lha r4, 0x1a(r28)
/* 8001A26C 0001618C 3C 7D 00 01 */ addis r3, r29, 1
/* 8001A270 00016190 38 03 F3 00 */ addi r0, r3, -3328
/* 8001A274 00016194 7C 64 F0 50 */ subf r3, r4, r30
/* 8001A278 00016198 B0 7C 01 0C */ sth r3, 0x10c(r28)
/* 8001A27C 0001619C 38 7C 00 0C */ addi r3, r28, 0xc
/* 8001A280 000161A0 B3 DC 00 1A */ sth r30, 0x1a(r28)
/* 8001A284 000161A4 B0 1C 00 18 */ sth r0, 0x18(r28)
/* 8001A288 000161A8 4B FE D3 35 */ bl mathutil_mtxA_from_translate
/* 8001A28C 000161AC A8 7C 00 1A */ lha r3, 0x1a(r28)
/* 8001A290 000161B0 4B FE DD 6D */ bl mathutil_mtxA_rotate_y
/* 8001A294 000161B4 A8 7C 00 18 */ lha r3, 0x18(r28)
/* 8001A298 000161B8 4B FE DC F1 */ bl mathutil_mtxA_rotate_x
/* 8001A29C 000161BC C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001A2A0 000161C0 C0 42 84 20 */ lfs f2, lbl_802F2C20@sda21(r2)
/* 8001A2A4 000161C4 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001A2A8 000161C8 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001A2AC 000161CC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001A2B0 000161D0 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A2B4 000161D4 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001A2B8 000161D8 4B FE CE 41 */ bl mathutil_sqrt
/* 8001A2BC 000161DC D0 21 00 30 */ stfs f1, 0x30(r1)
/* 8001A2C0 000161E0 38 9C 00 00 */ addi r4, r28, 0
/* 8001A2C4 000161E4 38 61 00 28 */ addi r3, r1, 0x28
/* 8001A2C8 000161E8 4B FE DB 65 */ bl mathutil_mtxA_tf_point
/* 8001A2CC 000161EC C0 3C 00 00 */ lfs f1, 0(r28)
/* 8001A2D0 000161F0 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001A2D4 000161F4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A2D8 000161F8 D0 1C 00 94 */ stfs f0, 0x94(r28)
/* 8001A2DC 000161FC C0 3C 00 04 */ lfs f1, 4(r28)
/* 8001A2E0 00016200 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001A2E4 00016204 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A2E8 00016208 D0 1C 00 98 */ stfs f0, 0x98(r28)
/* 8001A2EC 0001620C C0 3C 00 08 */ lfs f1, 8(r28)
/* 8001A2F0 00016210 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001A2F4 00016214 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A2F8 00016218 D0 1C 00 9C */ stfs f0, 0x9c(r28)
/* 8001A2FC 0001621C C0 3C 00 0C */ lfs f1, 0xc(r28)
/* 8001A300 00016220 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001A304 00016224 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A308 00016228 D0 1C 00 A0 */ stfs f0, 0xa0(r28)
/* 8001A30C 0001622C C0 3C 00 10 */ lfs f1, 0x10(r28)
/* 8001A310 00016230 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001A314 00016234 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A318 00016238 D0 1C 00 A4 */ stfs f0, 0xa4(r28)
/* 8001A31C 0001623C C0 3C 00 14 */ lfs f1, 0x14(r28)
/* 8001A320 00016240 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A324 00016244 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A328 00016248 D0 1C 00 A8 */ stfs f0, 0xa8(r28)
lbl_8001A32C:
/* 8001A32C 0001624C 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8001A330 00016250 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 8001A334 00016254 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 8001A338 00016258 7C 08 03 A6 */ mtlr r0
/* 8001A33C 0001625C 83 A1 00 54 */ lwz r29, 0x54(r1)
/* 8001A340 00016260 83 81 00 50 */ lwz r28, 0x50(r1)
/* 8001A344 00016264 38 21 00 60 */ addi r1, r1, 0x60
/* 8001A348 00016268 4E 80 00 20 */ blr
.global func_8001A34C
func_8001A34C:
/* 8001A34C 0001626C 7C 08 02 A6 */ mflr r0
/* 8001A350 00016270 90 01 00 04 */ stw r0, 4(r1)
/* 8001A354 00016274 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8001A358 00016278 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8001A35C 0001627C 7C 7F 1B 78 */ mr r31, r3
/* 8001A360 00016280 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 8001A364 00016284 C0 03 00 00 */ lfs f0, 0(r3)
/* 8001A368 00016288 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A36C 0001628C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A370 00016290 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001A374 00016294 C0 03 00 04 */ lfs f0, 4(r3)
/* 8001A378 00016298 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A37C 0001629C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A380 000162A0 C0 23 00 14 */ lfs f1, 0x14(r3)
/* 8001A384 000162A4 C0 03 00 08 */ lfs f0, 8(r3)
/* 8001A388 000162A8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A38C 000162AC D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A390 000162B0 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A394 000162B4 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001A398 000162B8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A39C 000162BC EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A3A0 000162C0 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A3A4 000162C4 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001A3A8 000162C8 4B FE CD 51 */ bl mathutil_sqrt
/* 8001A3AC 000162CC 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 8001A3B0 000162D0 C8 02 85 40 */ lfd f0, lbl_802F2D40@sda21(r2)
/* 8001A3B4 000162D4 38 A3 3B 70 */ addi r5, r3, lbl_801F3B70@l
/* 8001A3B8 000162D8 C8 62 84 88 */ lfd f3, lbl_802F2C88@sda21(r2)
/* 8001A3BC 000162DC 88 05 00 06 */ lbz r0, 6(r5)
/* 8001A3C0 000162E0 FC A0 00 72 */ fmul f5, f0, f1
/* 8001A3C4 000162E4 C0 42 84 18 */ lfs f2, lbl_802F2C18@sda21(r2)
/* 8001A3C8 000162E8 3C 80 43 30 */ lis r4, 0x4330
/* 8001A3CC 000162EC 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001A3D0 000162F0 C8 82 85 50 */ lfd f4, lbl_802F2D50@sda21(r2)
/* 8001A3D4 000162F4 90 81 00 40 */ stw r4, 0x40(r1)
/* 8001A3D8 000162F8 3C 60 80 1F */ lis r3, lbl_801F3D50@ha
/* 8001A3DC 000162FC C8 22 85 48 */ lfd f1, lbl_802F2D48@sda21(r2)
/* 8001A3E0 00016300 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8001A3E4 00016304 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8001A3E8 00016308 FC 60 18 28 */ fsub f3, f0, f3
/* 8001A3EC 0001630C FC 05 08 24 */ fdiv f0, f5, f1
/* 8001A3F0 00016310 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8001A3F4 00016314 C8 22 85 58 */ lfd f1, lbl_802F2D58@sda21(r2)
/* 8001A3F8 00016318 D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 8001A3FC 0001631C C8 A2 84 60 */ lfd f5, lbl_802F2C60@sda21(r2)
/* 8001A400 00016320 FC 64 00 F2 */ fmul f3, f4, f3
/* 8001A404 00016324 D0 41 00 20 */ stfs f2, 0x20(r1)
/* 8001A408 00016328 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001A40C 0001632C D0 41 00 30 */ stfs f2, 0x30(r1)
/* 8001A410 00016330 FC 00 00 18 */ frsp f0, f0
/* 8001A414 00016334 FC 23 08 24 */ fdiv f1, f3, f1
/* 8001A418 00016338 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 8001A41C 0001633C C8 62 85 60 */ lfd f3, lbl_802F2D60@sda21(r2)
/* 8001A420 00016340 88 05 00 02 */ lbz r0, 2(r5)
/* 8001A424 00016344 7C 00 07 74 */ extsb r0, r0
/* 8001A428 00016348 FC 25 08 2A */ fadd f1, f5, f1
/* 8001A42C 0001634C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A430 00016350 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A434 00016354 FC 00 00 72 */ fmul f0, f0, f1
/* 8001A438 00016358 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A43C 0001635C C8 21 00 38 */ lfd f1, 0x38(r1)
/* 8001A440 00016360 FC 00 00 18 */ frsp f0, f0
/* 8001A444 00016364 EC 21 20 28 */ fsubs f1, f1, f4
/* 8001A448 00016368 EC 20 00 72 */ fmuls f1, f0, f1
/* 8001A44C 0001636C FC 21 18 24 */ fdiv f1, f1, f3
/* 8001A450 00016370 FC 20 08 18 */ frsp f1, f1
/* 8001A454 00016374 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8001A458 00016378 A0 03 3D 50 */ lhz r0, lbl_801F3D50@l(r3)
/* 8001A45C 0001637C 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 8001A460 00016380 41 82 00 34 */ beq lbl_8001A494
/* 8001A464 00016384 88 05 00 03 */ lbz r0, 3(r5)
/* 8001A468 00016388 7C 00 07 74 */ extsb r0, r0
/* 8001A46C 0001638C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A470 00016390 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A474 00016394 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A478 00016398 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 8001A47C 0001639C EC 21 20 28 */ fsubs f1, f1, f4
/* 8001A480 000163A0 EC 20 00 72 */ fmuls f1, f0, f1
/* 8001A484 000163A4 FC 21 18 24 */ fdiv f1, f1, f3
/* 8001A488 000163A8 FC 20 08 18 */ frsp f1, f1
/* 8001A48C 000163AC D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 8001A490 000163B0 48 00 00 34 */ b lbl_8001A4C4
lbl_8001A494:
/* 8001A494 000163B4 88 05 00 03 */ lbz r0, 3(r5)
/* 8001A498 000163B8 FC 40 00 50 */ fneg f2, f0
/* 8001A49C 000163BC 7C 00 07 74 */ extsb r0, r0
/* 8001A4A0 000163C0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A4A4 000163C4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A4A8 000163C8 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A4AC 000163CC C8 21 00 38 */ lfd f1, 0x38(r1)
/* 8001A4B0 000163D0 EC 21 20 28 */ fsubs f1, f1, f4
/* 8001A4B4 000163D4 EC 22 00 72 */ fmuls f1, f2, f1
/* 8001A4B8 000163D8 FC 21 18 24 */ fdiv f1, f1, f3
/* 8001A4BC 000163DC FC 20 08 18 */ frsp f1, f1
/* 8001A4C0 000163E0 D0 21 00 30 */ stfs f1, 0x30(r1)
lbl_8001A4C4:
/* 8001A4C4 000163E4 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 8001A4C8 000163E8 C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001A4CC 000163EC 38 A3 3B 70 */ addi r5, r3, lbl_801F3B70@l
/* 8001A4D0 000163F0 C8 42 85 60 */ lfd f2, lbl_802F2D60@sda21(r2)
/* 8001A4D4 000163F4 88 05 00 04 */ lbz r0, 4(r5)
/* 8001A4D8 000163F8 3C 80 43 30 */ lis r4, 0x4330
/* 8001A4DC 000163FC 3C 60 80 1F */ lis r3, lbl_801F3D50@ha
/* 8001A4E0 00016400 7C 00 07 74 */ extsb r0, r0
/* 8001A4E4 00016404 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A4E8 00016408 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A4EC 0001640C 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A4F0 00016410 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 8001A4F4 00016414 EC 21 18 28 */ fsubs f1, f1, f3
/* 8001A4F8 00016418 EC 20 00 72 */ fmuls f1, f0, f1
/* 8001A4FC 0001641C FC 21 10 24 */ fdiv f1, f1, f2
/* 8001A500 00016420 FC 20 08 18 */ frsp f1, f1
/* 8001A504 00016424 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8001A508 00016428 A0 03 3D 50 */ lhz r0, lbl_801F3D50@l(r3)
/* 8001A50C 0001642C 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 8001A510 00016430 41 82 00 34 */ beq lbl_8001A544
/* 8001A514 00016434 88 05 00 05 */ lbz r0, 5(r5)
/* 8001A518 00016438 7C 00 07 74 */ extsb r0, r0
/* 8001A51C 0001643C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A520 00016440 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A524 00016444 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A528 00016448 C8 21 00 38 */ lfd f1, 0x38(r1)
/* 8001A52C 0001644C EC 21 18 28 */ fsubs f1, f1, f3
/* 8001A530 00016450 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001A534 00016454 FC 00 10 24 */ fdiv f0, f0, f2
/* 8001A538 00016458 FC 00 00 18 */ frsp f0, f0
/* 8001A53C 0001645C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001A540 00016460 48 00 00 34 */ b lbl_8001A574
lbl_8001A544:
/* 8001A544 00016464 88 05 00 05 */ lbz r0, 5(r5)
/* 8001A548 00016468 FC 20 00 50 */ fneg f1, f0
/* 8001A54C 0001646C 7C 00 07 74 */ extsb r0, r0
/* 8001A550 00016470 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001A554 00016474 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001A558 00016478 90 81 00 38 */ stw r4, 0x38(r1)
/* 8001A55C 0001647C C8 01 00 38 */ lfd f0, 0x38(r1)
/* 8001A560 00016480 EC 00 18 28 */ fsubs f0, f0, f3
/* 8001A564 00016484 EC 01 00 32 */ fmuls f0, f1, f0
/* 8001A568 00016488 FC 00 10 24 */ fdiv f0, f0, f2
/* 8001A56C 0001648C FC 00 00 18 */ frsp f0, f0
/* 8001A570 00016490 D0 01 00 24 */ stfs f0, 0x24(r1)
lbl_8001A574:
/* 8001A574 00016494 7F E3 FB 78 */ mr r3, r31
/* 8001A578 00016498 4B FE D0 45 */ bl mathutil_mtxA_from_translate
/* 8001A57C 0001649C A8 7F 00 1A */ lha r3, 0x1a(r31)
/* 8001A580 000164A0 4B FE DA 7D */ bl mathutil_mtxA_rotate_y
/* 8001A584 000164A4 A8 7F 00 18 */ lha r3, 0x18(r31)
/* 8001A588 000164A8 4B FE DA 01 */ bl mathutil_mtxA_rotate_x
/* 8001A58C 000164AC A8 7F 00 1C */ lha r3, 0x1c(r31)
/* 8001A590 000164B0 4B FE DA F9 */ bl mathutil_mtxA_rotate_z
/* 8001A594 000164B4 38 61 00 28 */ addi r3, r1, 0x28
/* 8001A598 000164B8 38 9F 00 00 */ addi r4, r31, 0
/* 8001A59C 000164BC 4B FE D8 91 */ bl mathutil_mtxA_tf_point
/* 8001A5A0 000164C0 38 7F 00 0C */ addi r3, r31, 0xc
/* 8001A5A4 000164C4 38 81 00 10 */ addi r4, r1, 0x10
/* 8001A5A8 000164C8 4B FE D9 25 */ bl mathutil_mtxA_rigid_inv_tf_point
/* 8001A5AC 000164CC C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8001A5B0 000164D0 38 61 00 10 */ addi r3, r1, 0x10
/* 8001A5B4 000164D4 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001A5B8 000164D8 38 9F 00 0C */ addi r4, r31, 0xc
/* 8001A5BC 000164DC C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001A5C0 000164E0 EC 42 00 2A */ fadds f2, f2, f0
/* 8001A5C4 000164E4 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001A5C8 000164E8 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8001A5CC 000164EC C0 41 00 14 */ lfs f2, 0x14(r1)
/* 8001A5D0 000164F0 EC 22 08 2A */ fadds f1, f2, f1
/* 8001A5D4 000164F4 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8001A5D8 000164F8 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001A5DC 000164FC EC 01 00 2A */ fadds f0, f1, f0
/* 8001A5E0 00016500 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A5E4 00016504 4B FE D8 49 */ bl mathutil_mtxA_tf_point
/* 8001A5E8 00016508 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001A5EC 0001650C C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001A5F0 00016510 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A5F4 00016514 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A5F8 00016518 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001A5FC 0001651C C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001A600 00016520 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A604 00016524 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A608 00016528 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001A60C 0001652C C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001A610 00016530 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A614 00016534 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A618 00016538 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A61C 0001653C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001A620 00016540 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A624 00016544 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A628 00016548 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A62C 0001654C EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001A630 00016550 C8 02 85 68 */ lfd f0, lbl_802F2D68@sda21(r2)
/* 8001A634 00016554 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001A638 00016558 40 80 00 50 */ bge lbl_8001A688
/* 8001A63C 0001655C 4B FE CA BD */ bl mathutil_sqrt
/* 8001A640 00016560 C8 42 85 70 */ lfd f2, lbl_802F2D70@sda21(r2)
/* 8001A644 00016564 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001A648 00016568 FC 42 08 24 */ fdiv f2, f2, f1
/* 8001A64C 0001656C C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001A650 00016570 FC 40 10 18 */ frsp f2, f2
/* 8001A654 00016574 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001A658 00016578 EC 01 00 2A */ fadds f0, f1, f0
/* 8001A65C 0001657C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001A660 00016580 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001A664 00016584 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001A668 00016588 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001A66C 0001658C EC 01 00 2A */ fadds f0, f1, f0
/* 8001A670 00016590 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001A674 00016594 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A678 00016598 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001A67C 0001659C EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001A680 000165A0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001A684 000165A4 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_8001A688:
/* 8001A688 000165A8 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001A68C 000165AC C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001A690 000165B0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A694 000165B4 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A698 000165B8 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001A69C 000165BC C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001A6A0 000165C0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A6A4 000165C4 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A6A8 000165C8 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001A6AC 000165CC C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001A6B0 000165D0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A6B4 000165D4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A6B8 000165D8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A6BC 000165DC C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A6C0 000165E0 4B FE CB E5 */ bl mathutil_atan2
/* 8001A6C4 000165E4 38 03 80 00 */ addi r0, r3, -32768
/* 8001A6C8 000165E8 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001A6CC 000165EC C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A6D0 000165F0 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A6D4 000165F4 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A6D8 000165F8 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A6DC 000165FC 4B FE CA 1D */ bl mathutil_sqrt
/* 8001A6E0 00016600 FC 40 08 90 */ fmr f2, f1
/* 8001A6E4 00016604 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001A6E8 00016608 4B FE CB BD */ bl mathutil_atan2
/* 8001A6EC 0001660C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001A6F0 00016610 38 00 00 00 */ li r0, 0
/* 8001A6F4 00016614 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001A6F8 00016618 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8001A6FC 0001661C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8001A700 00016620 38 21 00 50 */ addi r1, r1, 0x50
/* 8001A704 00016624 7C 08 03 A6 */ mtlr r0
/* 8001A708 00016628 4E 80 00 20 */ blr
.global func_8001A70C
func_8001A70C:
/* 8001A70C 0001662C 7C 08 02 A6 */ mflr r0
/* 8001A710 00016630 90 01 00 04 */ stw r0, 4(r1)
/* 8001A714 00016634 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001A718 00016638 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001A71C 0001663C 7C 7F 1B 78 */ mr r31, r3
/* 8001A720 00016640 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 8001A724 00016644 C0 03 00 00 */ lfs f0, 0(r3)
/* 8001A728 00016648 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A72C 0001664C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A730 00016650 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001A734 00016654 C0 03 00 04 */ lfs f0, 4(r3)
/* 8001A738 00016658 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A73C 0001665C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A740 00016660 C0 23 00 14 */ lfs f1, 0x14(r3)
/* 8001A744 00016664 C0 03 00 08 */ lfs f0, 8(r3)
/* 8001A748 00016668 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A74C 0001666C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A750 00016670 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A754 00016674 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A758 00016678 4B FE CB 4D */ bl mathutil_atan2
/* 8001A75C 0001667C 38 03 80 00 */ addi r0, r3, -32768
/* 8001A760 00016680 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001A764 00016684 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A768 00016688 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A76C 0001668C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A770 00016690 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A774 00016694 4B FE C9 85 */ bl mathutil_sqrt
/* 8001A778 00016698 FC 40 08 90 */ fmr f2, f1
/* 8001A77C 0001669C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001A780 000166A0 4B FE CB 25 */ bl mathutil_atan2
/* 8001A784 000166A4 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001A788 000166A8 38 00 00 00 */ li r0, 0
/* 8001A78C 000166AC B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001A790 000166B0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001A794 000166B4 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001A798 000166B8 38 21 00 28 */ addi r1, r1, 0x28
/* 8001A79C 000166BC 7C 08 03 A6 */ mtlr r0
/* 8001A7A0 000166C0 4E 80 00 20 */ blr
.global func_8001A7A4
func_8001A7A4:
/* 8001A7A4 000166C4 7C 08 02 A6 */ mflr r0
/* 8001A7A8 000166C8 90 01 00 04 */ stw r0, 4(r1)
/* 8001A7AC 000166CC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001A7B0 000166D0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001A7B4 000166D4 7C 7F 1B 78 */ mr r31, r3
/* 8001A7B8 000166D8 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 8001A7BC 000166DC C0 03 00 00 */ lfs f0, 0(r3)
/* 8001A7C0 000166E0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A7C4 000166E4 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A7C8 000166E8 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001A7CC 000166EC C0 03 00 04 */ lfs f0, 4(r3)
/* 8001A7D0 000166F0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A7D4 000166F4 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A7D8 000166F8 C0 23 00 14 */ lfs f1, 0x14(r3)
/* 8001A7DC 000166FC C0 03 00 08 */ lfs f0, 8(r3)
/* 8001A7E0 00016700 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A7E4 00016704 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A7E8 00016708 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A7EC 0001670C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A7F0 00016710 4B FE CA B5 */ bl mathutil_atan2
/* 8001A7F4 00016714 38 03 80 00 */ addi r0, r3, -32768
/* 8001A7F8 00016718 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001A7FC 0001671C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A800 00016720 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A804 00016724 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A808 00016728 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A80C 0001672C 4B FE C8 ED */ bl mathutil_sqrt
/* 8001A810 00016730 FC 40 08 90 */ fmr f2, f1
/* 8001A814 00016734 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001A818 00016738 4B FE CA 8D */ bl mathutil_atan2
/* 8001A81C 0001673C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001A820 00016740 80 6D 9A 5C */ lwz r3, currentCameraStructPtr@sda21(r13)
/* 8001A824 00016744 A8 03 00 1C */ lha r0, 0x1c(r3)
/* 8001A828 00016748 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001A82C 0001674C 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001A830 00016750 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001A834 00016754 38 21 00 28 */ addi r1, r1, 0x28
/* 8001A838 00016758 7C 08 03 A6 */ mtlr r0
/* 8001A83C 0001675C 4E 80 00 20 */ blr
.global func_8001A840
func_8001A840:
/* 8001A840 00016760 7C 08 02 A6 */ mflr r0
/* 8001A844 00016764 90 01 00 04 */ stw r0, 4(r1)
/* 8001A848 00016768 38 00 00 02 */ li r0, 2
/* 8001A84C 0001676C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001A850 00016770 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001A854 00016774 3B E3 00 00 */ addi r31, r3, 0
/* 8001A858 00016778 98 03 00 26 */ stb r0, 0x26(r3)
/* 8001A85C 0001677C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001A860 00016780 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001A864 00016784 40 82 00 F4 */ bne lbl_8001A958
/* 8001A868 00016788 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001A86C 0001678C C8 42 85 78 */ lfd f2, lbl_802F2D78@sda21(r2)
/* 8001A870 00016790 FC 00 00 B2 */ fmul f0, f0, f2
/* 8001A874 00016794 FC 00 00 18 */ frsp f0, f0
/* 8001A878 00016798 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001A87C 0001679C C0 3F 00 98 */ lfs f1, 0x98(r31)
/* 8001A880 000167A0 C8 02 85 80 */ lfd f0, lbl_802F2D80@sda21(r2)
/* 8001A884 000167A4 FC 01 00 32 */ fmul f0, f1, f0
/* 8001A888 000167A8 FC 00 00 18 */ frsp f0, f0
/* 8001A88C 000167AC D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001A890 000167B0 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001A894 000167B4 FC 00 00 B2 */ fmul f0, f0, f2
/* 8001A898 000167B8 FC 00 00 18 */ frsp f0, f0
/* 8001A89C 000167BC D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001A8A0 000167C0 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001A8A4 000167C4 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001A8A8 000167C8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001A8AC 000167CC D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001A8B0 000167D0 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001A8B4 000167D4 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001A8B8 000167D8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001A8BC 000167DC D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001A8C0 000167E0 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001A8C4 000167E4 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001A8C8 000167E8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001A8CC 000167EC D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001A8D0 000167F0 C0 04 00 04 */ lfs f0, 4(r4)
/* 8001A8D4 000167F4 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001A8D8 000167F8 C0 04 00 08 */ lfs f0, 8(r4)
/* 8001A8DC 000167FC D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001A8E0 00016800 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8001A8E4 00016804 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001A8E8 00016808 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001A8EC 0001680C C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001A8F0 00016810 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A8F4 00016814 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001A8F8 00016818 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001A8FC 0001681C C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001A900 00016820 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A904 00016824 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001A908 00016828 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001A90C 0001682C C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001A910 00016830 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001A914 00016834 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001A918 00016838 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A91C 0001683C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001A920 00016840 4B FE C9 85 */ bl mathutil_atan2
/* 8001A924 00016844 38 03 80 00 */ addi r0, r3, -32768
/* 8001A928 00016848 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001A92C 0001684C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001A930 00016850 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001A934 00016854 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001A938 00016858 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001A93C 0001685C 4B FE C7 BD */ bl mathutil_sqrt
/* 8001A940 00016860 FC 40 08 90 */ fmr f2, f1
/* 8001A944 00016864 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001A948 00016868 4B FE C9 5D */ bl mathutil_atan2
/* 8001A94C 0001686C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001A950 00016870 38 00 00 00 */ li r0, 0
/* 8001A954 00016874 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001A958:
/* 8001A958 00016878 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001A95C 0001687C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001A960 00016880 38 21 00 28 */ addi r1, r1, 0x28
/* 8001A964 00016884 7C 08 03 A6 */ mtlr r0
/* 8001A968 00016888 4E 80 00 20 */ blr
.global func_8001A96C
func_8001A96C:
/* 8001A96C 0001688C 7C 08 02 A6 */ mflr r0
/* 8001A970 00016890 90 01 00 04 */ stw r0, 4(r1)
/* 8001A974 00016894 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 8001A978 00016898 DB E1 00 58 */ stfd f31, 0x58(r1)
/* 8001A97C 0001689C 93 E1 00 54 */ stw r31, 0x54(r1)
/* 8001A980 000168A0 3B E4 00 00 */ addi r31, r4, 0
/* 8001A984 000168A4 93 C1 00 50 */ stw r30, 0x50(r1)
/* 8001A988 000168A8 3B C3 00 00 */ addi r30, r3, 0
/* 8001A98C 000168AC 93 A1 00 4C */ stw r29, 0x4c(r1)
/* 8001A990 000168B0 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001A994 000168B4 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001A998 000168B8 40 82 02 C8 */ bne lbl_8001AC60
/* 8001A99C 000168BC 7F C3 F3 78 */ mr r3, r30
/* 8001A9A0 000168C0 4B FF E1 51 */ bl camera_clear
/* 8001A9A4 000168C4 38 00 00 08 */ li r0, 8
/* 8001A9A8 000168C8 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001A9AC 000168CC 38 00 00 02 */ li r0, 2
/* 8001A9B0 000168D0 98 1E 00 26 */ stb r0, 0x26(r30)
/* 8001A9B4 000168D4 A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001A9B8 000168D8 60 00 00 04 */ ori r0, r0, 4
/* 8001A9BC 000168DC B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001A9C0 000168E0 C0 02 84 E8 */ lfs f0, lbl_802F2CE8@sda21(r2)
/* 8001A9C4 000168E4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001A9C8 000168E8 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8001A9CC 000168EC D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001A9D0 000168F0 4B FE CB 95 */ bl mathutil_mtxA_from_identity
/* 8001A9D4 000168F4 48 0E BE 91 */ bl rand
/* 8001A9D8 000168F8 54 63 04 7E */ clrlwi r3, r3, 0x11
/* 8001A9DC 000168FC 4B FE D6 21 */ bl mathutil_mtxA_rotate_y
/* 8001A9E0 00016900 38 61 00 30 */ addi r3, r1, 0x30
/* 8001A9E4 00016904 38 83 00 00 */ addi r4, r3, 0
/* 8001A9E8 00016908 4B FE D4 55 */ bl mathutil_mtxA_tf_vec
/* 8001A9EC 0001690C 48 0E BE 79 */ bl rand
/* 8001A9F0 00016910 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 8001A9F4 00016914 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001A9F8 00016918 90 61 00 44 */ stw r3, 0x44(r1)
/* 8001A9FC 0001691C 3C 80 43 30 */ lis r4, 0x4330
/* 8001AA00 00016920 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001AA04 00016924 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001AA08 00016928 90 81 00 40 */ stw r4, 0x40(r1)
/* 8001AA0C 0001692C 7C 00 07 74 */ extsb r0, r0
/* 8001AA10 00016930 C0 62 85 90 */ lfs f3, lbl_802F2D90@sda21(r2)
/* 8001AA14 00016934 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8001AA18 00016938 3B A3 0A 68 */ addi r29, r3, lbl_80250A68@l
/* 8001AA1C 0001693C 54 00 10 3A */ slwi r0, r0, 2
/* 8001AA20 00016940 C8 42 85 88 */ lfd f2, lbl_802F2D88@sda21(r2)
/* 8001AA24 00016944 EC 80 08 28 */ fsubs f4, f0, f1
/* 8001AA28 00016948 7C 7D 02 14 */ add r3, r29, r0
/* 8001AA2C 0001694C C8 22 84 B0 */ lfd f1, lbl_802F2CB0@sda21(r2)
/* 8001AA30 00016950 C0 1D 00 10 */ lfs f0, 0x10(r29)
/* 8001AA34 00016954 38 81 00 10 */ addi r4, r1, 0x10
/* 8001AA38 00016958 EC 64 18 24 */ fdivs f3, f4, f3
/* 8001AA3C 0001695C 80 63 00 00 */ lwz r3, 0(r3)
/* 8001AA40 00016960 FC 42 00 F2 */ fmul f2, f2, f3
/* 8001AA44 00016964 FC 21 10 2A */ fadd f1, f1, f2
/* 8001AA48 00016968 FC 00 00 72 */ fmul f0, f0, f1
/* 8001AA4C 0001696C FC 20 00 18 */ frsp f1, f0
/* 8001AA50 00016970 48 02 EC 6D */ bl func_800496BC
/* 8001AA54 00016974 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001AA58 00016978 38 81 00 10 */ addi r4, r1, 0x10
/* 8001AA5C 0001697C C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001AA60 00016980 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AA64 00016984 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001AA68 00016988 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001AA6C 0001698C C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8001AA70 00016990 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AA74 00016994 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001AA78 00016998 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001AA7C 0001699C C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001AA80 000169A0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AA84 000169A4 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001AA88 000169A8 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001AA8C 000169AC C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001AA90 000169B0 7C 00 07 74 */ extsb r0, r0
/* 8001AA94 000169B4 54 00 10 3A */ slwi r0, r0, 2
/* 8001AA98 000169B8 7C 7D 02 14 */ add r3, r29, r0
/* 8001AA9C 000169BC 80 63 00 00 */ lwz r3, 0(r3)
/* 8001AAA0 000169C0 48 02 EC 1D */ bl func_800496BC
/* 8001AAA4 000169C4 C0 5E 00 00 */ lfs f2, 0(r30)
/* 8001AAA8 000169C8 3B A1 00 30 */ addi r29, r1, 0x30
/* 8001AAAC 000169CC C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001AAB0 000169D0 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001AAB4 000169D4 EC 42 00 28 */ fsubs f2, f2, f0
/* 8001AAB8 000169D8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001AABC 000169DC D0 41 00 30 */ stfs f2, 0x30(r1)
/* 8001AAC0 000169E0 C0 5E 00 04 */ lfs f2, 4(r30)
/* 8001AAC4 000169E4 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001AAC8 000169E8 D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8001AACC 000169EC C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001AAD0 000169F0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AAD4 000169F4 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001AAD8 000169F8 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001AADC 000169FC C0 41 00 34 */ lfs f2, 0x34(r1)
/* 8001AAE0 00016A00 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001AAE4 00016A04 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001AAE8 00016A08 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001AAEC 00016A0C EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001AAF0 00016A10 4B FE C6 09 */ bl mathutil_sqrt
/* 8001AAF4 00016A14 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001AAF8 00016A18 C0 61 00 34 */ lfs f3, 0x34(r1)
/* 8001AAFC 00016A1C EC 20 08 24 */ fdivs f1, f0, f1
/* 8001AB00 00016A20 C8 02 85 98 */ lfd f0, lbl_802F2D98@sda21(r2)
/* 8001AB04 00016A24 EC 21 00 F2 */ fmuls f1, f1, f3
/* 8001AB08 00016A28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001AB0C 00016A2C 40 81 00 44 */ ble lbl_8001AB50
/* 8001AB10 00016A30 C8 02 85 A0 */ lfd f0, lbl_802F2DA0@sda21(r2)
/* 8001AB14 00016A34 7F A3 EB 78 */ mr r3, r29
/* 8001AB18 00016A38 C0 42 84 18 */ lfs f2, lbl_802F2C18@sda21(r2)
/* 8001AB1C 00016A3C 7F A4 EB 78 */ mr r4, r29
/* 8001AB20 00016A40 FC 20 00 F2 */ fmul f1, f0, f3
/* 8001AB24 00016A44 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 8001AB28 00016A48 FC 20 08 18 */ frsp f1, f1
/* 8001AB2C 00016A4C 4B FE D6 49 */ bl mathutil_vec_set_len
/* 8001AB30 00016A50 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001AB34 00016A54 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001AB38 00016A58 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AB3C 00016A5C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001AB40 00016A60 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001AB44 00016A64 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001AB48 00016A68 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AB4C 00016A6C D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8001AB50:
/* 8001AB50 00016A70 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001AB54 00016A74 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001AB58 00016A78 C8 22 85 88 */ lfd f1, lbl_802F2D88@sda21(r2)
/* 8001AB5C 00016A7C 38 63 0A 68 */ addi r3, r3, lbl_80250A68@l
/* 8001AB60 00016A80 FC 00 00 72 */ fmul f0, f0, f1
/* 8001AB64 00016A84 FC 00 00 18 */ frsp f0, f0
/* 8001AB68 00016A88 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001AB6C 00016A8C C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001AB70 00016A90 FC 00 00 72 */ fmul f0, f0, f1
/* 8001AB74 00016A94 FC 00 00 18 */ frsp f0, f0
/* 8001AB78 00016A98 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001AB7C 00016A9C C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001AB80 00016AA0 FC 00 00 72 */ fmul f0, f0, f1
/* 8001AB84 00016AA4 FC 00 00 18 */ frsp f0, f0
/* 8001AB88 00016AA8 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001AB8C 00016AAC C3 E3 00 10 */ lfs f31, 0x10(r3)
/* 8001AB90 00016AB0 C0 02 85 A8 */ lfs f0, lbl_802F2DA8@sda21(r2)
/* 8001AB94 00016AB4 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001AB98 00016AB8 40 80 00 08 */ bge lbl_8001ABA0
/* 8001AB9C 00016ABC 48 00 00 08 */ b lbl_8001ABA4
lbl_8001ABA0:
/* 8001ABA0 00016AC0 FF E0 00 90 */ fmr f31, f0
lbl_8001ABA4:
/* 8001ABA4 00016AC4 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001ABA8 00016AC8 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001ABAC 00016ACC 38 63 0A 68 */ addi r3, r3, lbl_80250A68@l
/* 8001ABB0 00016AD0 7C 00 07 74 */ extsb r0, r0
/* 8001ABB4 00016AD4 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 8001ABB8 00016AD8 54 00 10 3A */ slwi r0, r0, 2
/* 8001ABBC 00016ADC 7C 63 02 14 */ add r3, r3, r0
/* 8001ABC0 00016AE0 EC 20 F8 28 */ fsubs f1, f0, f31
/* 8001ABC4 00016AE4 80 63 00 00 */ lwz r3, 0(r3)
/* 8001ABC8 00016AE8 38 81 00 10 */ addi r4, r1, 0x10
/* 8001ABCC 00016AEC 48 02 EA F1 */ bl func_800496BC
/* 8001ABD0 00016AF0 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001ABD4 00016AF4 7F C3 F3 78 */ mr r3, r30
/* 8001ABD8 00016AF8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001ABDC 00016AFC 7F E4 FB 78 */ mr r4, r31
/* 8001ABE0 00016B00 FC 60 F8 24 */ fdiv f3, f0, f31
/* 8001ABE4 00016B04 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001ABE8 00016B08 C0 5E 00 94 */ lfs f2, 0x94(r30)
/* 8001ABEC 00016B0C FC 60 18 18 */ frsp f3, f3
/* 8001ABF0 00016B10 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001ABF4 00016B14 EC 03 00 32 */ fmuls f0, f3, f0
/* 8001ABF8 00016B18 EC 02 00 2A */ fadds f0, f2, f0
/* 8001ABFC 00016B1C D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001AC00 00016B20 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001AC04 00016B24 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001AC08 00016B28 C0 5E 00 98 */ lfs f2, 0x98(r30)
/* 8001AC0C 00016B2C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AC10 00016B30 EC 03 00 32 */ fmuls f0, f3, f0
/* 8001AC14 00016B34 EC 02 00 2A */ fadds f0, f2, f0
/* 8001AC18 00016B38 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001AC1C 00016B3C C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001AC20 00016B40 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001AC24 00016B44 C0 5E 00 9C */ lfs f2, 0x9c(r30)
/* 8001AC28 00016B48 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AC2C 00016B4C EC 03 00 32 */ fmuls f0, f3, f0
/* 8001AC30 00016B50 EC 02 00 2A */ fadds f0, f2, f0
/* 8001AC34 00016B54 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001AC38 00016B58 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001AC3C 00016B5C D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001AC40 00016B60 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001AC44 00016B64 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001AC48 00016B68 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001AC4C 00016B6C D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001AC50 00016B70 A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001AC54 00016B74 60 00 00 01 */ ori r0, r0, 1
/* 8001AC58 00016B78 B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001AC5C 00016B7C 48 00 03 41 */ bl camera_sub_ringout_main
lbl_8001AC60:
/* 8001AC60 00016B80 80 01 00 64 */ lwz r0, 0x64(r1)
/* 8001AC64 00016B84 CB E1 00 58 */ lfd f31, 0x58(r1)
/* 8001AC68 00016B88 83 E1 00 54 */ lwz r31, 0x54(r1)
/* 8001AC6C 00016B8C 7C 08 03 A6 */ mtlr r0
/* 8001AC70 00016B90 83 C1 00 50 */ lwz r30, 0x50(r1)
/* 8001AC74 00016B94 83 A1 00 4C */ lwz r29, 0x4c(r1)
/* 8001AC78 00016B98 38 21 00 60 */ addi r1, r1, 0x60
/* 8001AC7C 00016B9C 4E 80 00 20 */ blr
.global func_8001AC80
func_8001AC80:
/* 8001AC80 00016BA0 4E 80 00 20 */ blr
.global func_8001AC84
func_8001AC84:
/* 8001AC84 00016BA4 7C 08 02 A6 */ mflr r0
/* 8001AC88 00016BA8 90 01 00 04 */ stw r0, 4(r1)
/* 8001AC8C 00016BAC 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8001AC90 00016BB0 DB E1 00 78 */ stfd f31, 0x78(r1)
/* 8001AC94 00016BB4 93 E1 00 74 */ stw r31, 0x74(r1)
/* 8001AC98 00016BB8 3B E4 00 00 */ addi r31, r4, 0
/* 8001AC9C 00016BBC 93 C1 00 70 */ stw r30, 0x70(r1)
/* 8001ACA0 00016BC0 3B C3 00 00 */ addi r30, r3, 0
/* 8001ACA4 00016BC4 93 A1 00 6C */ stw r29, 0x6c(r1)
/* 8001ACA8 00016BC8 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001ACAC 00016BCC 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001ACB0 00016BD0 40 82 02 CC */ bne lbl_8001AF7C
/* 8001ACB4 00016BD4 7F C3 F3 78 */ mr r3, r30
/* 8001ACB8 00016BD8 4B FF DE 39 */ bl camera_clear
/* 8001ACBC 00016BDC 38 00 00 08 */ li r0, 8
/* 8001ACC0 00016BE0 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001ACC4 00016BE4 38 00 00 02 */ li r0, 2
/* 8001ACC8 00016BE8 98 1E 00 26 */ stb r0, 0x26(r30)
/* 8001ACCC 00016BEC A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001ACD0 00016BF0 60 00 00 04 */ ori r0, r0, 4
/* 8001ACD4 00016BF4 B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001ACD8 00016BF8 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001ACDC 00016BFC D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8001ACE0 00016C00 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 8001ACE4 00016C04 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8001ACE8 00016C08 4B FE C8 7D */ bl mathutil_mtxA_from_identity
/* 8001ACEC 00016C0C 48 0E BB 79 */ bl rand
/* 8001ACF0 00016C10 54 63 04 7E */ clrlwi r3, r3, 0x11
/* 8001ACF4 00016C14 4B FE D3 09 */ bl mathutil_mtxA_rotate_y
/* 8001ACF8 00016C18 38 61 00 50 */ addi r3, r1, 0x50
/* 8001ACFC 00016C1C 38 83 00 00 */ addi r4, r3, 0
/* 8001AD00 00016C20 4B FE D1 3D */ bl mathutil_mtxA_tf_vec
/* 8001AD04 00016C24 48 0E BB 61 */ bl rand
/* 8001AD08 00016C28 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 8001AD0C 00016C2C 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001AD10 00016C30 90 61 00 64 */ stw r3, 0x64(r1)
/* 8001AD14 00016C34 3C 80 43 30 */ lis r4, 0x4330
/* 8001AD18 00016C38 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001AD1C 00016C3C C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001AD20 00016C40 90 81 00 60 */ stw r4, 0x60(r1)
/* 8001AD24 00016C44 3B A3 0A 68 */ addi r29, r3, lbl_80250A68@l
/* 8001AD28 00016C48 C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001AD2C 00016C4C C8 01 00 60 */ lfd f0, 0x60(r1)
/* 8001AD30 00016C50 7C 00 07 74 */ extsb r0, r0
/* 8001AD34 00016C54 54 00 10 3A */ slwi r0, r0, 2
/* 8001AD38 00016C58 C8 22 85 88 */ lfd f1, lbl_802F2D88@sda21(r2)
/* 8001AD3C 00016C5C EC 60 18 28 */ fsubs f3, f0, f3
/* 8001AD40 00016C60 7C 7D 02 14 */ add r3, r29, r0
/* 8001AD44 00016C64 C0 1D 00 10 */ lfs f0, 0x10(r29)
/* 8001AD48 00016C68 80 63 00 00 */ lwz r3, 0(r3)
/* 8001AD4C 00016C6C 38 81 00 30 */ addi r4, r1, 0x30
/* 8001AD50 00016C70 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001AD54 00016C74 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001AD58 00016C78 FF E0 00 72 */ fmul f31, f0, f1
/* 8001AD5C 00016C7C FF E0 F8 18 */ frsp f31, f31
/* 8001AD60 00016C80 FC 20 F8 90 */ fmr f1, f31
/* 8001AD64 00016C84 48 02 E9 59 */ bl func_800496BC
/* 8001AD68 00016C88 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001AD6C 00016C8C 38 81 00 30 */ addi r4, r1, 0x30
/* 8001AD70 00016C90 C0 01 00 50 */ lfs f0, 0x50(r1)
/* 8001AD74 00016C94 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AD78 00016C98 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001AD7C 00016C9C C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001AD80 00016CA0 C0 01 00 54 */ lfs f0, 0x54(r1)
/* 8001AD84 00016CA4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AD88 00016CA8 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001AD8C 00016CAC C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001AD90 00016CB0 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8001AD94 00016CB4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001AD98 00016CB8 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001AD9C 00016CBC 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001ADA0 00016CC0 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001ADA4 00016CC4 7C 00 07 74 */ extsb r0, r0
/* 8001ADA8 00016CC8 54 00 10 3A */ slwi r0, r0, 2
/* 8001ADAC 00016CCC 7C 7D 02 14 */ add r3, r29, r0
/* 8001ADB0 00016CD0 80 63 00 00 */ lwz r3, 0(r3)
/* 8001ADB4 00016CD4 48 02 E9 09 */ bl func_800496BC
/* 8001ADB8 00016CD8 C0 5E 00 00 */ lfs f2, 0(r30)
/* 8001ADBC 00016CDC 3B A1 00 50 */ addi r29, r1, 0x50
/* 8001ADC0 00016CE0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001ADC4 00016CE4 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001ADC8 00016CE8 EC 42 00 28 */ fsubs f2, f2, f0
/* 8001ADCC 00016CEC C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001ADD0 00016CF0 D0 41 00 50 */ stfs f2, 0x50(r1)
/* 8001ADD4 00016CF4 C0 5E 00 04 */ lfs f2, 4(r30)
/* 8001ADD8 00016CF8 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001ADDC 00016CFC D0 21 00 54 */ stfs f1, 0x54(r1)
/* 8001ADE0 00016D00 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001ADE4 00016D04 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001ADE8 00016D08 D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8001ADEC 00016D0C C0 21 00 50 */ lfs f1, 0x50(r1)
/* 8001ADF0 00016D10 C0 41 00 54 */ lfs f2, 0x54(r1)
/* 8001ADF4 00016D14 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8001ADF8 00016D18 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001ADFC 00016D1C EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001AE00 00016D20 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001AE04 00016D24 4B FE C2 F5 */ bl mathutil_sqrt
/* 8001AE08 00016D28 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001AE0C 00016D2C C0 61 00 54 */ lfs f3, 0x54(r1)
/* 8001AE10 00016D30 EC 20 08 24 */ fdivs f1, f0, f1
/* 8001AE14 00016D34 C8 02 85 98 */ lfd f0, lbl_802F2D98@sda21(r2)
/* 8001AE18 00016D38 EC 21 00 F2 */ fmuls f1, f1, f3
/* 8001AE1C 00016D3C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001AE20 00016D40 40 81 00 44 */ ble lbl_8001AE64
/* 8001AE24 00016D44 C8 02 85 A0 */ lfd f0, lbl_802F2DA0@sda21(r2)
/* 8001AE28 00016D48 7F A3 EB 78 */ mr r3, r29
/* 8001AE2C 00016D4C C0 42 84 18 */ lfs f2, lbl_802F2C18@sda21(r2)
/* 8001AE30 00016D50 7F A4 EB 78 */ mr r4, r29
/* 8001AE34 00016D54 FC 20 00 F2 */ fmul f1, f0, f3
/* 8001AE38 00016D58 D0 41 00 54 */ stfs f2, 0x54(r1)
/* 8001AE3C 00016D5C FC 20 08 18 */ frsp f1, f1
/* 8001AE40 00016D60 4B FE D3 35 */ bl mathutil_vec_set_len
/* 8001AE44 00016D64 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001AE48 00016D68 C0 01 00 50 */ lfs f0, 0x50(r1)
/* 8001AE4C 00016D6C EC 01 00 2A */ fadds f0, f1, f0
/* 8001AE50 00016D70 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001AE54 00016D74 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001AE58 00016D78 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8001AE5C 00016D7C EC 01 00 2A */ fadds f0, f1, f0
/* 8001AE60 00016D80 D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8001AE64:
/* 8001AE64 00016D84 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001AE68 00016D88 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001AE6C 00016D8C C8 42 85 40 */ lfd f2, lbl_802F2D40@sda21(r2)
/* 8001AE70 00016D90 3B A3 0A 68 */ addi r29, r3, lbl_80250A68@l
/* 8001AE74 00016D94 FC 20 F8 90 */ fmr f1, f31
/* 8001AE78 00016D98 FC 00 00 B2 */ fmul f0, f0, f2
/* 8001AE7C 00016D9C 38 81 00 30 */ addi r4, r1, 0x30
/* 8001AE80 00016DA0 FC 00 00 18 */ frsp f0, f0
/* 8001AE84 00016DA4 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001AE88 00016DA8 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001AE8C 00016DAC FC 00 00 B2 */ fmul f0, f0, f2
/* 8001AE90 00016DB0 FC 00 00 18 */ frsp f0, f0
/* 8001AE94 00016DB4 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001AE98 00016DB8 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001AE9C 00016DBC FC 00 00 B2 */ fmul f0, f0, f2
/* 8001AEA0 00016DC0 FC 00 00 18 */ frsp f0, f0
/* 8001AEA4 00016DC4 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001AEA8 00016DC8 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001AEAC 00016DCC 7C 00 07 74 */ extsb r0, r0
/* 8001AEB0 00016DD0 54 00 10 3A */ slwi r0, r0, 2
/* 8001AEB4 00016DD4 7C 7D 02 14 */ add r3, r29, r0
/* 8001AEB8 00016DD8 80 63 00 00 */ lwz r3, 0(r3)
/* 8001AEBC 00016DDC 48 02 E8 01 */ bl func_800496BC
/* 8001AEC0 00016DE0 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001AEC4 00016DE4 38 81 00 10 */ addi r4, r1, 0x10
/* 8001AEC8 00016DE8 88 1F 00 2E */ lbz r0, 0x2e(r31)
/* 8001AECC 00016DEC FC 20 F8 2A */ fadd f1, f0, f31
/* 8001AED0 00016DF0 7C 00 07 74 */ extsb r0, r0
/* 8001AED4 00016DF4 54 00 10 3A */ slwi r0, r0, 2
/* 8001AED8 00016DF8 7C 7D 02 14 */ add r3, r29, r0
/* 8001AEDC 00016DFC FC 20 08 18 */ frsp f1, f1
/* 8001AEE0 00016E00 80 63 00 00 */ lwz r3, 0(r3)
/* 8001AEE4 00016E04 48 02 E7 D9 */ bl func_800496BC
/* 8001AEE8 00016E08 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001AEEC 00016E0C 7F C3 F3 78 */ mr r3, r30
/* 8001AEF0 00016E10 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001AEF4 00016E14 7F E4 FB 78 */ mr r4, r31
/* 8001AEF8 00016E18 C8 62 84 28 */ lfd f3, lbl_802F2C28@sda21(r2)
/* 8001AEFC 00016E1C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AF00 00016E20 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001AF04 00016E24 FC 03 00 32 */ fmul f0, f3, f0
/* 8001AF08 00016E28 FC 01 00 28 */ fsub f0, f1, f0
/* 8001AF0C 00016E2C FC 00 00 18 */ frsp f0, f0
/* 8001AF10 00016E30 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001AF14 00016E34 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001AF18 00016E38 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001AF1C 00016E3C C0 5E 00 98 */ lfs f2, 0x98(r30)
/* 8001AF20 00016E40 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AF24 00016E44 FC 03 00 32 */ fmul f0, f3, f0
/* 8001AF28 00016E48 FC 02 00 28 */ fsub f0, f2, f0
/* 8001AF2C 00016E4C FC 00 00 18 */ frsp f0, f0
/* 8001AF30 00016E50 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001AF34 00016E54 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001AF38 00016E58 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001AF3C 00016E5C C0 5E 00 9C */ lfs f2, 0x9c(r30)
/* 8001AF40 00016E60 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001AF44 00016E64 FC 03 00 32 */ fmul f0, f3, f0
/* 8001AF48 00016E68 FC 02 00 28 */ fsub f0, f2, f0
/* 8001AF4C 00016E6C FC 00 00 18 */ frsp f0, f0
/* 8001AF50 00016E70 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001AF54 00016E74 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001AF58 00016E78 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001AF5C 00016E7C C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001AF60 00016E80 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001AF64 00016E84 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001AF68 00016E88 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001AF6C 00016E8C A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001AF70 00016E90 60 00 00 01 */ ori r0, r0, 1
/* 8001AF74 00016E94 B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001AF78 00016E98 48 00 00 25 */ bl camera_sub_ringout_main
lbl_8001AF7C:
/* 8001AF7C 00016E9C 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8001AF80 00016EA0 CB E1 00 78 */ lfd f31, 0x78(r1)
/* 8001AF84 00016EA4 83 E1 00 74 */ lwz r31, 0x74(r1)
/* 8001AF88 00016EA8 7C 08 03 A6 */ mtlr r0
/* 8001AF8C 00016EAC 83 C1 00 70 */ lwz r30, 0x70(r1)
/* 8001AF90 00016EB0 83 A1 00 6C */ lwz r29, 0x6c(r1)
/* 8001AF94 00016EB4 38 21 00 80 */ addi r1, r1, 0x80
/* 8001AF98 00016EB8 4E 80 00 20 */ blr
.global camera_sub_ringout_main
camera_sub_ringout_main:
/* 8001AF9C 00016EBC 7C 08 02 A6 */ mflr r0
/* 8001AFA0 00016EC0 90 01 00 04 */ stw r0, 4(r1)
/* 8001AFA4 00016EC4 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001AFA8 00016EC8 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001AFAC 00016ECC 3B E3 00 00 */ addi r31, r3, 0
/* 8001AFB0 00016ED0 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001AFB4 00016ED4 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001AFB8 00016ED8 40 82 01 70 */ bne lbl_8001B128
/* 8001AFBC 00016EDC C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001AFC0 00016EE0 C8 42 85 78 */ lfd f2, lbl_802F2D78@sda21(r2)
/* 8001AFC4 00016EE4 FC 00 00 B2 */ fmul f0, f0, f2
/* 8001AFC8 00016EE8 FC 00 00 18 */ frsp f0, f0
/* 8001AFCC 00016EEC D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001AFD0 00016EF0 C0 3F 00 98 */ lfs f1, 0x98(r31)
/* 8001AFD4 00016EF4 C8 02 85 80 */ lfd f0, lbl_802F2D80@sda21(r2)
/* 8001AFD8 00016EF8 FC 01 00 32 */ fmul f0, f1, f0
/* 8001AFDC 00016EFC FC 00 00 18 */ frsp f0, f0
/* 8001AFE0 00016F00 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001AFE4 00016F04 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001AFE8 00016F08 FC 00 00 B2 */ fmul f0, f0, f2
/* 8001AFEC 00016F0C FC 00 00 18 */ frsp f0, f0
/* 8001AFF0 00016F10 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001AFF4 00016F14 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001AFF8 00016F18 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001AFFC 00016F1C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B000 00016F20 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001B004 00016F24 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001B008 00016F28 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001B00C 00016F2C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B010 00016F30 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001B014 00016F34 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001B018 00016F38 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001B01C 00016F3C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B020 00016F40 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001B024 00016F44 C0 44 00 04 */ lfs f2, 4(r4)
/* 8001B028 00016F48 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001B02C 00016F4C C8 22 85 B0 */ lfd f1, lbl_802F2DB0@sda21(r2)
/* 8001B030 00016F50 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001B034 00016F54 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001B038 00016F58 C0 44 00 08 */ lfs f2, 8(r4)
/* 8001B03C 00016F5C C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8001B040 00016F60 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001B044 00016F64 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B048 00016F68 C0 44 00 0C */ lfs f2, 0xc(r4)
/* 8001B04C 00016F6C C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8001B050 00016F70 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001B054 00016F74 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001B058 00016F78 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001B05C 00016F7C FC 01 00 32 */ fmul f0, f1, f0
/* 8001B060 00016F80 FC 00 00 18 */ frsp f0, f0
/* 8001B064 00016F84 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001B068 00016F88 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001B06C 00016F8C FC 01 00 32 */ fmul f0, f1, f0
/* 8001B070 00016F90 FC 00 00 18 */ frsp f0, f0
/* 8001B074 00016F94 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001B078 00016F98 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B07C 00016F9C FC 01 00 32 */ fmul f0, f1, f0
/* 8001B080 00016FA0 FC 00 00 18 */ frsp f0, f0
/* 8001B084 00016FA4 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001B088 00016FA8 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001B08C 00016FAC C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001B090 00016FB0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B094 00016FB4 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001B098 00016FB8 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001B09C 00016FBC C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001B0A0 00016FC0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B0A4 00016FC4 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001B0A8 00016FC8 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001B0AC 00016FCC C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001B0B0 00016FD0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B0B4 00016FD4 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001B0B8 00016FD8 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001B0BC 00016FDC C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001B0C0 00016FE0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B0C4 00016FE4 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001B0C8 00016FE8 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001B0CC 00016FEC C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001B0D0 00016FF0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B0D4 00016FF4 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B0D8 00016FF8 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001B0DC 00016FFC C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001B0E0 00017000 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B0E4 00017004 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001B0E8 00017008 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B0EC 0001700C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001B0F0 00017010 4B FE C1 B5 */ bl mathutil_atan2
/* 8001B0F4 00017014 38 03 80 00 */ addi r0, r3, -32768
/* 8001B0F8 00017018 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001B0FC 0001701C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B100 00017020 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B104 00017024 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001B108 00017028 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001B10C 0001702C 4B FE BF ED */ bl mathutil_sqrt
/* 8001B110 00017030 FC 40 08 90 */ fmr f2, f1
/* 8001B114 00017034 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001B118 00017038 4B FE C1 8D */ bl mathutil_atan2
/* 8001B11C 0001703C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001B120 00017040 38 00 00 00 */ li r0, 0
/* 8001B124 00017044 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001B128:
/* 8001B128 00017048 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001B12C 0001704C 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001B130 00017050 38 21 00 28 */ addi r1, r1, 0x28
/* 8001B134 00017054 7C 08 03 A6 */ mtlr r0
/* 8001B138 00017058 4E 80 00 20 */ blr
.global func_8001B13C
func_8001B13C:
/* 8001B13C 0001705C 4E 80 00 20 */ blr
.global func_8001B140
func_8001B140:
/* 8001B140 00017060 7C 08 02 A6 */ mflr r0
/* 8001B144 00017064 90 01 00 04 */ stw r0, 4(r1)
/* 8001B148 00017068 38 00 00 0F */ li r0, 0xf
/* 8001B14C 0001706C 94 21 FF F8 */ stwu r1, -8(r1)
/* 8001B150 00017070 98 03 00 1E */ stb r0, 0x1e(r3)
/* 8001B154 00017074 38 00 00 03 */ li r0, 3
/* 8001B158 00017078 98 03 00 26 */ stb r0, 0x26(r3)
/* 8001B15C 0001707C 48 00 00 15 */ bl camera_sub_goal_main
/* 8001B160 00017080 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8001B164 00017084 38 21 00 08 */ addi r1, r1, 8
/* 8001B168 00017088 7C 08 03 A6 */ mtlr r0
/* 8001B16C 0001708C 4E 80 00 20 */ blr
.global camera_sub_goal_main
camera_sub_goal_main:
/* 8001B170 00017090 7C 08 02 A6 */ mflr r0
/* 8001B174 00017094 90 01 00 04 */ stw r0, 4(r1)
/* 8001B178 00017098 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8001B17C 0001709C DB E1 00 28 */ stfd f31, 0x28(r1)
/* 8001B180 000170A0 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001B184 000170A4 3B E4 00 00 */ addi r31, r4, 0
/* 8001B188 000170A8 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8001B18C 000170AC 3B C3 00 00 */ addi r30, r3, 0
/* 8001B190 000170B0 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001B194 000170B4 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001B198 000170B8 40 82 02 C4 */ bne lbl_8001B45C
/* 8001B19C 000170BC C0 5F 00 04 */ lfs f2, 4(r31)
/* 8001B1A0 000170C0 38 9E 00 94 */ addi r4, r30, 0x94
/* 8001B1A4 000170C4 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001B1A8 000170C8 38 61 00 10 */ addi r3, r1, 0x10
/* 8001B1AC 000170CC C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001B1B0 000170D0 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001B1B4 000170D4 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8001B1B8 000170D8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B1BC 000170DC C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001B1C0 000170E0 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001B1C4 000170E4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B1C8 000170E8 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001B1CC 000170EC C0 A1 00 10 */ lfs f5, 0x10(r1)
/* 8001B1D0 000170F0 C0 44 00 00 */ lfs f2, 0(r4)
/* 8001B1D4 000170F4 C0 81 00 14 */ lfs f4, 0x14(r1)
/* 8001B1D8 000170F8 C0 24 00 04 */ lfs f1, 4(r4)
/* 8001B1DC 000170FC C0 61 00 18 */ lfs f3, 0x18(r1)
/* 8001B1E0 00017100 C0 04 00 08 */ lfs f0, 8(r4)
/* 8001B1E4 00017104 EF E5 00 B2 */ fmuls f31, f5, f2
/* 8001B1E8 00017108 EF E4 F8 7A */ fmadds f31, f4, f1, f31
/* 8001B1EC 0001710C EF E3 F8 3A */ fmadds f31, f3, f0, f31
/* 8001B1F0 00017110 4B FE CF 0D */ bl mathutil_vec_normalize_len
/* 8001B1F4 00017114 C0 3E 00 98 */ lfs f1, 0x98(r30)
/* 8001B1F8 00017118 C8 02 85 78 */ lfd f0, lbl_802F2D78@sda21(r2)
/* 8001B1FC 0001711C FC 01 00 32 */ fmul f0, f1, f0
/* 8001B200 00017120 FC 00 00 18 */ frsp f0, f0
/* 8001B204 00017124 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001B208 00017128 C8 22 85 B8 */ lfd f1, lbl_802F2DB8@sda21(r2)
/* 8001B20C 0001712C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001B210 00017130 FC 41 07 F2 */ fmul f2, f1, f31
/* 8001B214 00017134 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001B218 00017138 FC 40 10 18 */ frsp f2, f2
/* 8001B21C 0001713C EC 02 00 32 */ fmuls f0, f2, f0
/* 8001B220 00017140 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B224 00017144 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001B228 00017148 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B22C 0001714C C0 3E 00 9C */ lfs f1, 0x9c(r30)
/* 8001B230 00017150 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001B234 00017154 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B238 00017158 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001B23C 0001715C C8 02 84 30 */ lfd f0, lbl_802F2C30@sda21(r2)
/* 8001B240 00017160 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8001B244 00017164 40 80 00 38 */ bge lbl_8001B27C
/* 8001B248 00017168 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001B24C 0001716C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B250 00017170 FC 42 00 72 */ fmul f2, f2, f1
/* 8001B254 00017174 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001B258 00017178 FC 40 10 18 */ frsp f2, f2
/* 8001B25C 0001717C EC 02 00 32 */ fmuls f0, f2, f0
/* 8001B260 00017180 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B264 00017184 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001B268 00017188 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001B26C 0001718C C0 3E 00 9C */ lfs f1, 0x9c(r30)
/* 8001B270 00017190 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001B274 00017194 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B278 00017198 D0 1E 00 9C */ stfs f0, 0x9c(r30)
lbl_8001B27C:
/* 8001B27C 0001719C C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001B280 000171A0 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001B284 000171A4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B288 000171A8 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001B28C 000171AC C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001B290 000171B0 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001B294 000171B4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B298 000171B8 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001B29C 000171BC C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001B2A0 000171C0 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001B2A4 000171C4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B2A8 000171C8 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001B2AC 000171CC C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001B2B0 000171D0 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001B2B4 000171D4 C8 42 85 70 */ lfd f2, lbl_802F2D70@sda21(r2)
/* 8001B2B8 000171D8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B2BC 000171DC FC 02 00 32 */ fmul f0, f2, f0
/* 8001B2C0 000171E0 FC 00 00 18 */ frsp f0, f0
/* 8001B2C4 000171E4 D0 1E 00 A0 */ stfs f0, 0xa0(r30)
/* 8001B2C8 000171E8 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001B2CC 000171EC C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 8001B2D0 000171F0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B2D4 000171F4 FC 02 00 32 */ fmul f0, f2, f0
/* 8001B2D8 000171F8 FC 00 00 18 */ frsp f0, f0
/* 8001B2DC 000171FC D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8001B2E0 00017200 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001B2E4 00017204 C0 1E 00 14 */ lfs f0, 0x14(r30)
/* 8001B2E8 00017208 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B2EC 0001720C FC 02 00 32 */ fmul f0, f2, f0
/* 8001B2F0 00017210 FC 00 00 18 */ frsp f0, f0
/* 8001B2F4 00017214 D0 1E 00 A8 */ stfs f0, 0xa8(r30)
/* 8001B2F8 00017218 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001B2FC 0001721C C0 1E 00 A0 */ lfs f0, 0xa0(r30)
/* 8001B300 00017220 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B304 00017224 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001B308 00017228 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001B30C 0001722C C0 1E 00 A4 */ lfs f0, 0xa4(r30)
/* 8001B310 00017230 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B314 00017234 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001B318 00017238 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001B31C 0001723C C0 1E 00 A8 */ lfs f0, 0xa8(r30)
/* 8001B320 00017240 EC 01 00 2A */ fadds f0, f1, f0
/* 8001B324 00017244 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001B328 00017248 C0 5E 00 00 */ lfs f2, 0(r30)
/* 8001B32C 0001724C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001B330 00017250 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001B334 00017254 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001B338 00017258 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8001B33C 0001725C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B340 00017260 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001B344 00017264 C0 1E 00 14 */ lfs f0, 0x14(r30)
/* 8001B348 00017268 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B34C 0001726C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001B350 00017270 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B354 00017274 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B358 00017278 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001B35C 0001727C EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001B360 00017280 4B FE BD 99 */ bl mathutil_sqrt
/* 8001B364 00017284 C0 02 85 3C */ lfs f0, lbl_802F2D3C@sda21(r2)
/* 8001B368 00017288 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001B36C 0001728C 40 81 00 80 */ ble lbl_8001B3EC
/* 8001B370 00017290 C8 02 84 48 */ lfd f0, lbl_802F2C48@sda21(r2)
/* 8001B374 00017294 C8 82 85 C0 */ lfd f4, lbl_802F2DC0@sda21(r2)
/* 8001B378 00017298 FC 60 08 28 */ fsub f3, f0, f1
/* 8001B37C 0001729C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001B380 000172A0 C0 5E 00 0C */ lfs f2, 0xc(r30)
/* 8001B384 000172A4 FC 64 00 F2 */ fmul f3, f4, f3
/* 8001B388 000172A8 FC 61 18 2A */ fadd f3, f1, f3
/* 8001B38C 000172AC FC 63 08 24 */ fdiv f3, f3, f1
/* 8001B390 000172B0 FC 60 18 18 */ frsp f3, f3
/* 8001B394 000172B4 EC 00 00 F2 */ fmuls f0, f0, f3
/* 8001B398 000172B8 EC 02 00 2A */ fadds f0, f2, f0
/* 8001B39C 000172BC D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001B3A0 000172C0 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B3A4 000172C4 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001B3A8 000172C8 EC 00 00 F2 */ fmuls f0, f0, f3
/* 8001B3AC 000172CC EC 01 00 2A */ fadds f0, f1, f0
/* 8001B3B0 000172D0 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001B3B4 000172D4 80 1F 00 94 */ lwz r0, 0x94(r31)
/* 8001B3B8 000172D8 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 8001B3BC 000172DC 40 82 00 30 */ bne lbl_8001B3EC
/* 8001B3C0 000172E0 C0 5E 00 10 */ lfs f2, 0x10(r30)
/* 8001B3C4 000172E4 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001B3C8 000172E8 C8 22 84 F8 */ lfd f1, lbl_802F2CF8@sda21(r2)
/* 8001B3CC 000172EC EC 02 00 28 */ fsubs f0, f2, f0
/* 8001B3D0 000172F0 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B3D4 000172F4 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001B3D8 000172F8 C0 5E 00 04 */ lfs f2, 4(r30)
/* 8001B3DC 000172FC FC 01 00 32 */ fmul f0, f1, f0
/* 8001B3E0 00017300 FC 02 00 2A */ fadd f0, f2, f0
/* 8001B3E4 00017304 FC 00 00 18 */ frsp f0, f0
/* 8001B3E8 00017308 D0 1E 00 04 */ stfs f0, 4(r30)
lbl_8001B3EC:
/* 8001B3EC 0001730C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001B3F0 00017310 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001B3F4 00017314 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B3F8 00017318 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001B3FC 0001731C C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001B400 00017320 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001B404 00017324 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B408 00017328 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001B40C 0001732C C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001B410 00017330 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001B414 00017334 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B418 00017338 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001B41C 0001733C C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B420 00017340 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001B424 00017344 4B FE BE 81 */ bl mathutil_atan2
/* 8001B428 00017348 38 03 80 00 */ addi r0, r3, -32768
/* 8001B42C 0001734C B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001B430 00017350 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001B434 00017354 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B438 00017358 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001B43C 0001735C EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001B440 00017360 4B FE BC B9 */ bl mathutil_sqrt
/* 8001B444 00017364 FC 40 08 90 */ fmr f2, f1
/* 8001B448 00017368 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001B44C 0001736C 4B FE BE 59 */ bl mathutil_atan2
/* 8001B450 00017370 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001B454 00017374 38 00 00 00 */ li r0, 0
/* 8001B458 00017378 B0 1E 00 1C */ sth r0, 0x1c(r30)
lbl_8001B45C:
/* 8001B45C 0001737C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8001B460 00017380 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 8001B464 00017384 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001B468 00017388 7C 08 03 A6 */ mtlr r0
/* 8001B46C 0001738C 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8001B470 00017390 38 21 00 30 */ addi r1, r1, 0x30
/* 8001B474 00017394 4E 80 00 20 */ blr
.global func_8001B478
func_8001B478:
/* 8001B478 00017398 7C 08 02 A6 */ mflr r0
/* 8001B47C 0001739C 90 01 00 04 */ stw r0, 4(r1)
/* 8001B480 000173A0 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8001B484 000173A4 DB E1 00 A8 */ stfd f31, 0xa8(r1)
/* 8001B488 000173A8 93 E1 00 A4 */ stw r31, 0xa4(r1)
/* 8001B48C 000173AC 3B E4 00 00 */ addi r31, r4, 0
/* 8001B490 000173B0 93 C1 00 A0 */ stw r30, 0xa0(r1)
/* 8001B494 000173B4 3B C3 00 00 */ addi r30, r3, 0
/* 8001B498 000173B8 93 A1 00 9C */ stw r29, 0x9c(r1)
/* 8001B49C 000173BC 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001B4A0 000173C0 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001B4A4 000173C4 40 82 07 7C */ bne lbl_8001BC20
/* 8001B4A8 000173C8 7F C3 F3 78 */ mr r3, r30
/* 8001B4AC 000173CC 4B FF D6 45 */ bl camera_clear
/* 8001B4B0 000173D0 38 00 00 04 */ li r0, 4
/* 8001B4B4 000173D4 98 1E 00 26 */ stb r0, 0x26(r30)
/* 8001B4B8 000173D8 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 8001B4BC 000173DC 3C 80 80 20 */ lis r4, lbl_80206BD0@ha
/* 8001B4C0 000173E0 A8 BE 00 24 */ lha r5, 0x24(r30)
/* 8001B4C4 000173E4 38 03 3B 70 */ addi r0, r3, lbl_801F3B70@l
/* 8001B4C8 000173E8 38 84 6B D0 */ addi r4, r4, lbl_80206BD0@l
/* 8001B4CC 000173EC 60 A3 00 04 */ ori r3, r5, 4
/* 8001B4D0 000173F0 B0 7E 00 24 */ sth r3, 0x24(r30)
/* 8001B4D4 000173F4 88 7F 00 2E */ lbz r3, 0x2e(r31)
/* 8001B4D8 000173F8 7C 63 07 74 */ extsb r3, r3
/* 8001B4DC 000173FC 54 63 10 3A */ slwi r3, r3, 2
/* 8001B4E0 00017400 7C 64 1A 14 */ add r3, r4, r3
/* 8001B4E4 00017404 80 63 00 00 */ lwz r3, 0(r3)
/* 8001B4E8 00017408 1C 63 00 3C */ mulli r3, r3, 0x3c
/* 8001B4EC 0001740C 7C 60 1A 14 */ add r3, r0, r3
/* 8001B4F0 00017410 A0 03 00 00 */ lhz r0, 0(r3)
/* 8001B4F4 00017414 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8001B4F8 00017418 41 82 00 4C */ beq lbl_8001B544
/* 8001B4FC 0001741C 3C 60 80 1F */ lis r3, lbl_801F3D88@ha
/* 8001B500 00017420 A0 03 3D 88 */ lhz r0, lbl_801F3D88@l(r3)
/* 8001B504 00017424 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8001B508 00017428 41 82 00 3C */ beq lbl_8001B544
/* 8001B50C 0001742C 38 00 00 30 */ li r0, 0x30
/* 8001B510 00017430 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001B514 00017434 3C 60 80 17 */ lis r3, lbl_80176200@ha
/* 8001B518 00017438 38 03 62 00 */ addi r0, r3, lbl_80176200@l
/* 8001B51C 0001743C 88 BE 00 1E */ lbz r5, 0x1e(r30)
/* 8001B520 00017440 38 7E 00 00 */ addi r3, r30, 0
/* 8001B524 00017444 38 9F 00 00 */ addi r4, r31, 0
/* 8001B528 00017448 7C A5 07 74 */ extsb r5, r5
/* 8001B52C 0001744C 54 A5 10 3A */ slwi r5, r5, 2
/* 8001B530 00017450 7C A0 2A 14 */ add r5, r0, r5
/* 8001B534 00017454 81 85 00 00 */ lwz r12, 0(r5)
/* 8001B538 00017458 7D 88 03 A6 */ mtlr r12
/* 8001B53C 0001745C 4E 80 00 21 */ blrl
/* 8001B540 00017460 48 00 06 E0 */ b lbl_8001BC20
lbl_8001B544:
/* 8001B544 00017464 88 9F 00 2E */ lbz r4, 0x2e(r31)
/* 8001B548 00017468 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001B54C 0001746C 38 03 0A 68 */ addi r0, r3, lbl_80250A68@l
/* 8001B550 00017470 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001B554 00017474 7C 83 07 74 */ extsb r3, r4
/* 8001B558 00017478 54 63 10 3A */ slwi r3, r3, 2
/* 8001B55C 0001747C 7C 60 1A 14 */ add r3, r0, r3
/* 8001B560 00017480 80 63 00 00 */ lwz r3, 0(r3)
/* 8001B564 00017484 38 81 00 34 */ addi r4, r1, 0x34
/* 8001B568 00017488 48 02 E1 55 */ bl func_800496BC
/* 8001B56C 0001748C 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001B570 00017490 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 8001B574 00017494 38 A3 3A 58 */ addi r5, r3, lbl_801F3A58@l
/* 8001B578 00017498 A8 05 00 0C */ lha r0, 0xc(r5)
/* 8001B57C 0001749C 80 64 00 1C */ lwz r3, 0x1c(r4)
/* 8001B580 000174A0 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001B584 000174A4 7C 83 02 14 */ add r4, r3, r0
/* 8001B588 000174A8 80 64 00 00 */ lwz r3, 0(r4)
/* 8001B58C 000174AC 80 04 00 04 */ lwz r0, 4(r4)
/* 8001B590 000174B0 90 61 00 6C */ stw r3, 0x6c(r1)
/* 8001B594 000174B4 90 01 00 70 */ stw r0, 0x70(r1)
/* 8001B598 000174B8 80 64 00 08 */ lwz r3, 8(r4)
/* 8001B59C 000174BC 80 04 00 0C */ lwz r0, 0xc(r4)
/* 8001B5A0 000174C0 90 61 00 74 */ stw r3, 0x74(r1)
/* 8001B5A4 000174C4 90 01 00 78 */ stw r0, 0x78(r1)
/* 8001B5A8 000174C8 80 04 00 10 */ lwz r0, 0x10(r4)
/* 8001B5AC 000174CC 90 01 00 7C */ stw r0, 0x7c(r1)
/* 8001B5B0 000174D0 A8 05 00 0E */ lha r0, 0xe(r5)
/* 8001B5B4 000174D4 2C 00 00 00 */ cmpwi r0, 0
/* 8001B5B8 000174D8 40 81 00 28 */ ble lbl_8001B5E0
/* 8001B5BC 000174DC 1C 80 00 84 */ mulli r4, r0, 0x84
/* 8001B5C0 000174E0 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001B5C4 000174E4 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001B5C8 000174E8 7C 60 22 14 */ add r3, r0, r4
/* 8001B5CC 000174EC 38 63 00 24 */ addi r3, r3, 0x24
/* 8001B5D0 000174F0 4B FE C2 E1 */ bl mathutil_mtxA_from_mtx
/* 8001B5D4 000174F4 38 61 00 6C */ addi r3, r1, 0x6c
/* 8001B5D8 000174F8 38 83 00 00 */ addi r4, r3, 0
/* 8001B5DC 000174FC 4B FE C8 51 */ bl mathutil_mtxA_tf_point
lbl_8001B5E0:
/* 8001B5E0 00017500 38 7F 00 04 */ addi r3, r31, 4
/* 8001B5E4 00017504 3B A1 00 6C */ addi r29, r1, 0x6c
/* 8001B5E8 00017508 C0 A1 00 6C */ lfs f5, 0x6c(r1)
/* 8001B5EC 0001750C C0 43 00 00 */ lfs f2, 0(r3)
/* 8001B5F0 00017510 C0 81 00 70 */ lfs f4, 0x70(r1)
/* 8001B5F4 00017514 C0 23 00 04 */ lfs f1, 4(r3)
/* 8001B5F8 00017518 C0 61 00 74 */ lfs f3, 0x74(r1)
/* 8001B5FC 0001751C C0 03 00 08 */ lfs f0, 8(r3)
/* 8001B600 00017520 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001B604 00017524 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001B608 00017528 EC 63 00 28 */ fsubs f3, f3, f0
/* 8001B60C 0001752C EC 25 01 72 */ fmuls f1, f5, f5
/* 8001B610 00017530 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001B614 00017534 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001B618 00017538 4B FE BA E1 */ bl mathutil_sqrt
/* 8001B61C 0001753C C8 02 85 C8 */ lfd f0, lbl_802F2DC8@sda21(r2)
/* 8001B620 00017540 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001B624 00017544 40 80 05 24 */ bge lbl_8001BB48
/* 8001B628 00017548 38 00 00 11 */ li r0, 0x11
/* 8001B62C 0001754C 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001B630 00017550 7F A3 EB 78 */ mr r3, r29
/* 8001B634 00017554 4B FE BF 89 */ bl mathutil_mtxA_from_translate
/* 8001B638 00017558 A8 61 00 7C */ lha r3, 0x7c(r1)
/* 8001B63C 0001755C 4B FE CA 4D */ bl mathutil_mtxA_rotate_z
/* 8001B640 00017560 A8 61 00 7A */ lha r3, 0x7a(r1)
/* 8001B644 00017564 4B FE C9 B9 */ bl mathutil_mtxA_rotate_y
/* 8001B648 00017568 A8 61 00 78 */ lha r3, 0x78(r1)
/* 8001B64C 0001756C 4B FE C9 3D */ bl mathutil_mtxA_rotate_x
/* 8001B650 00017570 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001B654 00017574 38 63 3A 58 */ addi r3, r3, lbl_801F3A58@l
/* 8001B658 00017578 38 63 00 10 */ addi r3, r3, 0x10
/* 8001B65C 0001757C C0 23 00 00 */ lfs f1, 0(r3)
/* 8001B660 00017580 C0 43 00 04 */ lfs f2, 4(r3)
/* 8001B664 00017584 C0 03 00 08 */ lfs f0, 8(r3)
/* 8001B668 00017588 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001B66C 0001758C EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001B670 00017590 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001B674 00017594 4B FE BA 85 */ bl mathutil_sqrt
/* 8001B678 00017598 FF E0 08 90 */ fmr f31, f1
/* 8001B67C 0001759C C0 A1 00 6C */ lfs f5, 0x6c(r1)
/* 8001B680 000175A0 C0 41 00 34 */ lfs f2, 0x34(r1)
/* 8001B684 000175A4 C0 81 00 70 */ lfs f4, 0x70(r1)
/* 8001B688 000175A8 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001B68C 000175AC C0 61 00 74 */ lfs f3, 0x74(r1)
/* 8001B690 000175B0 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001B694 000175B4 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001B698 000175B8 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001B69C 000175BC EC 63 00 28 */ fsubs f3, f3, f0
/* 8001B6A0 000175C0 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001B6A4 000175C4 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001B6A8 000175C8 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001B6AC 000175CC 4B FE BA 4D */ bl mathutil_sqrt
/* 8001B6B0 000175D0 C8 02 85 D0 */ lfd f0, lbl_802F2DD0@sda21(r2)
/* 8001B6B4 000175D4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001B6B8 000175D8 40 81 01 B0 */ ble lbl_8001B868
/* 8001B6BC 000175DC 48 0E B1 A9 */ bl rand
/* 8001B6C0 000175E0 54 60 07 BF */ clrlwi. r0, r3, 0x1e
/* 8001B6C4 000175E4 41 82 01 A4 */ beq lbl_8001B868
/* 8001B6C8 000175E8 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001B6CC 000175EC C0 01 00 70 */ lfs f0, 0x70(r1)
/* 8001B6D0 000175F0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001B6D4 000175F4 40 81 01 94 */ ble lbl_8001B868
/* 8001B6D8 000175F8 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001B6DC 000175FC 38 61 00 28 */ addi r3, r1, 0x28
/* 8001B6E0 00017600 C8 22 85 D8 */ lfd f1, lbl_802F2DD8@sda21(r2)
/* 8001B6E4 00017604 7C 64 1B 78 */ mr r4, r3
/* 8001B6E8 00017608 FC 00 00 72 */ fmul f0, f0, f1
/* 8001B6EC 0001760C FC 00 00 18 */ frsp f0, f0
/* 8001B6F0 00017610 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001B6F4 00017614 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001B6F8 00017618 FC 00 00 72 */ fmul f0, f0, f1
/* 8001B6FC 0001761C FC 00 00 18 */ frsp f0, f0
/* 8001B700 00017620 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001B704 00017624 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001B708 00017628 FC 00 00 72 */ fmul f0, f0, f1
/* 8001B70C 0001762C FC 00 00 18 */ frsp f0, f0
/* 8001B710 00017630 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001B714 00017634 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001B718 00017638 C0 02 85 E0 */ lfs f0, lbl_802F2DE0@sda21(r2)
/* 8001B71C 0001763C D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8001B720 00017640 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001B724 00017644 D0 21 00 30 */ stfs f1, 0x30(r1)
/* 8001B728 00017648 4B FE C7 05 */ bl mathutil_mtxA_tf_point
/* 8001B72C 0001764C C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001B730 00017650 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001B734 00017654 C0 61 00 38 */ lfs f3, 0x38(r1)
/* 8001B738 00017658 EC 81 00 28 */ fsubs f4, f1, f0
/* 8001B73C 0001765C C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8001B740 00017660 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001B744 00017664 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001B748 00017668 EC 43 10 28 */ fsubs f2, f3, f2
/* 8001B74C 0001766C D0 81 00 60 */ stfs f4, 0x60(r1)
/* 8001B750 00017670 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001B754 00017674 C8 22 84 30 */ lfd f1, lbl_802F2C30@sda21(r2)
/* 8001B758 00017678 D0 41 00 64 */ stfs f2, 0x64(r1)
/* 8001B75C 0001767C D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8001B760 00017680 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8001B764 00017684 FC 40 02 10 */ fabs f2, f0
/* 8001B768 00017688 FC 01 10 00 */ fcmpu cr0, f1, f2
/* 8001B76C 0001768C 41 82 00 88 */ beq lbl_8001B7F4
/* 8001B770 00017690 C8 22 85 E8 */ lfd f1, lbl_802F2DE8@sda21(r2)
/* 8001B774 00017694 38 61 00 60 */ addi r3, r1, 0x60
/* 8001B778 00017698 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8001B77C 0001769C FC 21 10 24 */ fdiv f1, f1, f2
/* 8001B780 000176A0 FC 20 08 18 */ frsp f1, f1
/* 8001B784 000176A4 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001B788 000176A8 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8001B78C 000176AC C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8001B790 000176B0 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001B794 000176B4 D0 01 00 64 */ stfs f0, 0x64(r1)
/* 8001B798 000176B8 C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001B79C 000176BC EC 00 00 72 */ fmuls f0, f0, f1
/* 8001B7A0 000176C0 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8001B7A4 000176C4 C0 41 00 60 */ lfs f2, 0x60(r1)
/* 8001B7A8 000176C8 C0 21 00 64 */ lfs f1, 0x64(r1)
/* 8001B7AC 000176CC C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001B7B0 000176D0 EC 42 00 B2 */ fmuls f2, f2, f2
/* 8001B7B4 000176D4 EC 41 10 7A */ fmadds f2, f1, f1, f2
/* 8001B7B8 000176D8 EC 40 10 3A */ fmadds f2, f0, f0, f2
/* 8001B7BC 000176DC C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001B7C0 000176E0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8001B7C4 000176E4 40 80 00 14 */ bge lbl_8001B7D8
/* 8001B7C8 000176E8 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 8001B7CC 000176EC 7C 64 1B 78 */ mr r4, r3
/* 8001B7D0 000176F0 4B FE C9 A5 */ bl mathutil_vec_set_len
/* 8001B7D4 000176F4 48 00 00 60 */ b lbl_8001B834
lbl_8001B7D8:
/* 8001B7D8 000176F8 C8 02 85 F0 */ lfd f0, lbl_802F2DF0@sda21(r2)
/* 8001B7DC 000176FC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8001B7E0 00017700 40 81 00 54 */ ble lbl_8001B834
/* 8001B7E4 00017704 C0 22 85 E0 */ lfs f1, lbl_802F2DE0@sda21(r2)
/* 8001B7E8 00017708 7C 64 1B 78 */ mr r4, r3
/* 8001B7EC 0001770C 4B FE C9 89 */ bl mathutil_vec_set_len
/* 8001B7F0 00017710 48 00 00 44 */ b lbl_8001B834
lbl_8001B7F4:
/* 8001B7F4 00017714 48 0E B0 71 */ bl rand
/* 8001B7F8 00017718 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001B7FC 0001771C C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001B800 00017720 90 01 00 94 */ stw r0, 0x94(r1)
/* 8001B804 00017724 3C 00 43 30 */ lis r0, 0x4330
/* 8001B808 00017728 38 61 00 60 */ addi r3, r1, 0x60
/* 8001B80C 0001772C C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001B810 00017730 90 01 00 90 */ stw r0, 0x90(r1)
/* 8001B814 00017734 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001B818 00017738 7C 64 1B 78 */ mr r4, r3
/* 8001B81C 0001773C C8 41 00 90 */ lfd f2, 0x90(r1)
/* 8001B820 00017740 EC 42 18 28 */ fsubs f2, f2, f3
/* 8001B824 00017744 EC 22 08 24 */ fdivs f1, f2, f1
/* 8001B828 00017748 FC 00 08 2A */ fadd f0, f0, f1
/* 8001B82C 0001774C FC 20 00 18 */ frsp f1, f0
/* 8001B830 00017750 4B FE C9 45 */ bl mathutil_vec_set_len
lbl_8001B834:
/* 8001B834 00017754 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001B838 00017758 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8001B83C 0001775C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B840 00017760 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001B844 00017764 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001B848 00017768 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8001B84C 0001776C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B850 00017770 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001B854 00017774 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001B858 00017778 C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001B85C 0001777C EC 01 00 2A */ fadds f0, f1, f0
/* 8001B860 00017780 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001B864 00017784 48 00 03 8C */ b lbl_8001BBF0
lbl_8001B868:
/* 8001B868 00017788 C8 02 85 88 */ lfd f0, lbl_802F2D88@sda21(r2)
/* 8001B86C 0001778C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001B870 00017790 40 81 01 FC */ ble lbl_8001BA6C
/* 8001B874 00017794 48 0E AF F1 */ bl rand
/* 8001B878 00017798 54 60 07 BF */ clrlwi. r0, r3, 0x1e
/* 8001B87C 0001779C 41 82 01 F0 */ beq lbl_8001BA6C
/* 8001B880 000177A0 38 00 00 14 */ li r0, 0x14
/* 8001B884 000177A4 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001B888 000177A8 48 0E AF DD */ bl rand
/* 8001B88C 000177AC 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001B890 000177B0 C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001B894 000177B4 90 01 00 94 */ stw r0, 0x94(r1)
/* 8001B898 000177B8 3F A0 43 30 */ lis r29, 0x4330
/* 8001B89C 000177BC C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001B8A0 000177C0 93 A1 00 90 */ stw r29, 0x90(r1)
/* 8001B8A4 000177C4 C8 02 84 48 */ lfd f0, lbl_802F2C48@sda21(r2)
/* 8001B8A8 000177C8 C8 41 00 90 */ lfd f2, 0x90(r1)
/* 8001B8AC 000177CC EC 42 18 28 */ fsubs f2, f2, f3
/* 8001B8B0 000177D0 EC 22 08 24 */ fdivs f1, f2, f1
/* 8001B8B4 000177D4 FC 00 08 2A */ fadd f0, f0, f1
/* 8001B8B8 000177D8 FC 00 00 18 */ frsp f0, f0
/* 8001B8BC 000177DC D0 1E 00 54 */ stfs f0, 0x54(r30)
/* 8001B8C0 000177E0 48 0E AF A5 */ bl rand
/* 8001B8C4 000177E4 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001B8C8 000177E8 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001B8CC 000177EC 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8001B8D0 000177F0 C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001B8D4 000177F4 93 A1 00 88 */ stw r29, 0x88(r1)
/* 8001B8D8 000177F8 C8 22 85 48 */ lfd f1, lbl_802F2D48@sda21(r2)
/* 8001B8DC 000177FC C8 61 00 88 */ lfd f3, 0x88(r1)
/* 8001B8E0 00017800 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001B8E4 00017804 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001B8E8 00017808 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001B8EC 0001780C FC 21 00 B2 */ fmul f1, f1, f2
/* 8001B8F0 00017810 FC 00 08 2A */ fadd f0, f0, f1
/* 8001B8F4 00017814 FC 00 00 18 */ frsp f0, f0
/* 8001B8F8 00017818 D0 1E 00 58 */ stfs f0, 0x58(r30)
/* 8001B8FC 0001781C 48 0E AF 69 */ bl rand
/* 8001B900 00017820 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001B904 00017824 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001B908 00017828 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001B90C 0001782C C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001B910 00017830 93 A1 00 80 */ stw r29, 0x80(r1)
/* 8001B914 00017834 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001B918 00017838 C8 61 00 80 */ lfd f3, 0x80(r1)
/* 8001B91C 0001783C C8 02 85 F0 */ lfd f0, lbl_802F2DF0@sda21(r2)
/* 8001B920 00017840 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001B924 00017844 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001B928 00017848 FC 22 08 28 */ fsub f1, f2, f1
/* 8001B92C 0001784C FC 00 00 72 */ fmul f0, f0, f1
/* 8001B930 00017850 FC 00 00 18 */ frsp f0, f0
/* 8001B934 00017854 D0 1E 00 5C */ stfs f0, 0x5c(r30)
/* 8001B938 00017858 48 0E AF 2D */ bl rand
/* 8001B93C 0001785C 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8001B940 00017860 41 82 00 10 */ beq lbl_8001B950
/* 8001B944 00017864 C0 1E 00 54 */ lfs f0, 0x54(r30)
/* 8001B948 00017868 FC 00 00 50 */ fneg f0, f0
/* 8001B94C 0001786C D0 1E 00 54 */ stfs f0, 0x54(r30)
lbl_8001B950:
/* 8001B950 00017870 48 0E AF 15 */ bl rand
/* 8001B954 00017874 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001B958 00017878 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001B95C 0001787C 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001B960 00017880 3C 00 43 30 */ lis r0, 0x4330
/* 8001B964 00017884 3C 80 80 1F */ lis r4, lbl_801F3A58@ha
/* 8001B968 00017888 C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001B96C 0001788C 90 01 00 80 */ stw r0, 0x80(r1)
/* 8001B970 00017890 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001B974 00017894 C8 42 84 E0 */ lfd f2, lbl_802F2CE0@sda21(r2)
/* 8001B978 00017898 C8 61 00 80 */ lfd f3, 0x80(r1)
/* 8001B97C 0001789C 38 84 3A 58 */ addi r4, r4, lbl_801F3A58@l
/* 8001B980 000178A0 C0 1E 00 58 */ lfs f0, 0x58(r30)
/* 8001B984 000178A4 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001B988 000178A8 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001B98C 000178AC EC 23 08 24 */ fdivs f1, f3, f1
/* 8001B990 000178B0 FC 22 08 2A */ fadd f1, f2, f1
/* 8001B994 000178B4 FC 22 00 72 */ fmul f1, f2, f1
/* 8001B998 000178B8 FC 00 08 2A */ fadd f0, f0, f1
/* 8001B99C 000178BC FC 00 00 18 */ frsp f0, f0
/* 8001B9A0 000178C0 D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 8001B9A4 000178C4 A8 64 00 0E */ lha r3, 0xe(r4)
/* 8001B9A8 000178C8 A8 84 00 0C */ lha r4, 0xc(r4)
/* 8001B9AC 000178CC 1C 63 00 84 */ mulli r3, r3, 0x84
/* 8001B9B0 000178D0 80 AD 9D 50 */ lwz r5, decodedStageLzPtr@sda21(r13)
/* 8001B9B4 000178D4 80 A5 00 1C */ lwz r5, 0x1c(r5)
/* 8001B9B8 000178D8 1C 84 00 14 */ mulli r4, r4, 0x14
/* 8001B9BC 000178DC 7C 60 1A 14 */ add r3, r0, r3
/* 8001B9C0 000178E0 7F A5 22 14 */ add r29, r5, r4
/* 8001B9C4 000178E4 38 63 00 24 */ addi r3, r3, 0x24
/* 8001B9C8 000178E8 4B FE BE E9 */ bl mathutil_mtxA_from_mtx
/* 8001B9CC 000178EC 7F A3 EB 78 */ mr r3, r29
/* 8001B9D0 000178F0 4B FE C3 51 */ bl mathutil_mtxA_translate
/* 8001B9D4 000178F4 A8 7D 00 10 */ lha r3, 0x10(r29)
/* 8001B9D8 000178F8 4B FE C6 B1 */ bl mathutil_mtxA_rotate_z
/* 8001B9DC 000178FC A8 7D 00 0E */ lha r3, 0xe(r29)
/* 8001B9E0 00017900 4B FE C6 1D */ bl mathutil_mtxA_rotate_y
/* 8001B9E4 00017904 A8 7D 00 0C */ lha r3, 0xc(r29)
/* 8001B9E8 00017908 4B FE C5 A1 */ bl mathutil_mtxA_rotate_x
/* 8001B9EC 0001790C 38 7E 00 54 */ addi r3, r30, 0x54
/* 8001B9F0 00017910 38 81 00 10 */ addi r4, r1, 0x10
/* 8001B9F4 00017914 4B FE C4 39 */ bl mathutil_mtxA_tf_point
/* 8001B9F8 00017918 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001B9FC 0001791C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001BA00 00017920 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001BA04 00017924 7C 64 1B 78 */ mr r4, r3
/* 8001BA08 00017928 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 8001BA0C 0001792C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BA10 00017930 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001BA14 00017934 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8001BA18 00017938 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001BA1C 0001793C EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BA20 00017940 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001BA24 00017944 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001BA28 00017948 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BA2C 0001794C D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001BA30 00017950 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8001BA34 00017954 4B FE C7 41 */ bl mathutil_vec_set_len
/* 8001BA38 00017958 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001BA3C 0001795C C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001BA40 00017960 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BA44 00017964 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001BA48 00017968 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001BA4C 0001796C C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001BA50 00017970 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BA54 00017974 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001BA58 00017978 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001BA5C 0001797C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001BA60 00017980 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BA64 00017984 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001BA68 00017988 48 00 01 88 */ b lbl_8001BBF0
lbl_8001BA6C:
/* 8001BA6C 0001798C C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001BA70 00017990 C8 22 85 D8 */ lfd f1, lbl_802F2DD8@sda21(r2)
/* 8001BA74 00017994 FC 00 00 72 */ fmul f0, f0, f1
/* 8001BA78 00017998 FC 00 00 18 */ frsp f0, f0
/* 8001BA7C 0001799C D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001BA80 000179A0 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001BA84 000179A4 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001BA88 000179A8 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001BA8C 000179AC FC 00 00 72 */ fmul f0, f0, f1
/* 8001BA90 000179B0 FC 00 00 18 */ frsp f0, f0
/* 8001BA94 000179B4 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001BA98 000179B8 48 0E AD CD */ bl rand
/* 8001BA9C 000179BC 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001BAA0 000179C0 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001BAA4 000179C4 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001BAA8 000179C8 3C 00 43 30 */ lis r0, 0x4330
/* 8001BAAC 000179CC 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001BAB0 000179D0 C0 82 85 90 */ lfs f4, lbl_802F2D90@sda21(r2)
/* 8001BAB4 000179D4 90 01 00 80 */ stw r0, 0x80(r1)
/* 8001BAB8 000179D8 38 63 3A 58 */ addi r3, r3, lbl_801F3A58@l
/* 8001BABC 000179DC C8 62 84 E0 */ lfd f3, lbl_802F2CE0@sda21(r2)
/* 8001BAC0 000179E0 C8 01 00 80 */ lfd f0, 0x80(r1)
/* 8001BAC4 000179E4 38 63 00 10 */ addi r3, r3, 0x10
/* 8001BAC8 000179E8 C8 42 85 50 */ lfd f2, lbl_802F2D50@sda21(r2)
/* 8001BACC 000179EC 38 81 00 54 */ addi r4, r1, 0x54
/* 8001BAD0 000179F0 EC A0 08 28 */ fsubs f5, f0, f1
/* 8001BAD4 000179F4 C0 22 85 F8 */ lfs f1, lbl_802F2DF8@sda21(r2)
/* 8001BAD8 000179F8 C0 02 85 FC */ lfs f0, lbl_802F2DFC@sda21(r2)
/* 8001BADC 000179FC EC 85 20 24 */ fdivs f4, f5, f4
/* 8001BAE0 00017A00 FC 64 18 28 */ fsub f3, f4, f3
/* 8001BAE4 00017A04 FC 7F 00 F2 */ fmul f3, f31, f3
/* 8001BAE8 00017A08 FC 42 00 F2 */ fmul f2, f2, f3
/* 8001BAEC 00017A0C FC 40 10 18 */ frsp f2, f2
/* 8001BAF0 00017A10 D0 41 00 60 */ stfs f2, 0x60(r1)
/* 8001BAF4 00017A14 D0 21 00 64 */ stfs f1, 0x64(r1)
/* 8001BAF8 00017A18 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8001BAFC 00017A1C 4B FE C4 25 */ bl mathutil_mtxA_rigid_inv_tf_vec
/* 8001BB00 00017A20 C0 21 00 5C */ lfs f1, 0x5c(r1)
/* 8001BB04 00017A24 C8 02 84 30 */ lfd f0, lbl_802F2C30@sda21(r2)
/* 8001BB08 00017A28 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001BB0C 00017A2C 40 81 00 10 */ ble lbl_8001BB1C
/* 8001BB10 00017A30 C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001BB14 00017A34 FC 00 00 50 */ fneg f0, f0
/* 8001BB18 00017A38 D0 01 00 68 */ stfs f0, 0x68(r1)
lbl_8001BB1C:
/* 8001BB1C 00017A3C 38 61 00 60 */ addi r3, r1, 0x60
/* 8001BB20 00017A40 38 9E 00 00 */ addi r4, r30, 0
/* 8001BB24 00017A44 4B FE C3 09 */ bl mathutil_mtxA_tf_point
/* 8001BB28 00017A48 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001BB2C 00017A4C 38 63 3A 58 */ addi r3, r3, lbl_801F3A58@l
/* 8001BB30 00017A50 A8 03 00 0E */ lha r0, 0xe(r3)
/* 8001BB34 00017A54 2C 00 00 00 */ cmpwi r0, 0
/* 8001BB38 00017A58 40 81 00 B8 */ ble lbl_8001BBF0
/* 8001BB3C 00017A5C 38 00 00 13 */ li r0, 0x13
/* 8001BB40 00017A60 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001BB44 00017A64 48 00 00 AC */ b lbl_8001BBF0
lbl_8001BB48:
/* 8001BB48 00017A68 38 00 00 12 */ li r0, 0x12
/* 8001BB4C 00017A6C 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001BB50 00017A70 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001BB54 00017A74 C0 01 00 6C */ lfs f0, 0x6c(r1)
/* 8001BB58 00017A78 C0 41 00 70 */ lfs f2, 0x70(r1)
/* 8001BB5C 00017A7C EC 61 00 28 */ fsubs f3, f1, f0
/* 8001BB60 00017A80 C0 01 00 74 */ lfs f0, 0x74(r1)
/* 8001BB64 00017A84 C8 22 84 30 */ lfd f1, lbl_802F2C30@sda21(r2)
/* 8001BB68 00017A88 D0 61 00 60 */ stfs f3, 0x60(r1)
/* 8001BB6C 00017A8C C0 7F 00 08 */ lfs f3, 8(r31)
/* 8001BB70 00017A90 EC 43 10 28 */ fsubs f2, f3, f2
/* 8001BB74 00017A94 D0 41 00 64 */ stfs f2, 0x64(r1)
/* 8001BB78 00017A98 C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 8001BB7C 00017A9C EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BB80 00017AA0 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 8001BB84 00017AA4 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8001BB88 00017AA8 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8001BB8C 00017AAC 40 82 00 24 */ bne lbl_8001BBB0
/* 8001BB90 00017AB0 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8001BB94 00017AB4 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8001BB98 00017AB8 40 82 00 18 */ bne lbl_8001BBB0
/* 8001BB9C 00017ABC C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001BBA0 00017AC0 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8001BBA4 00017AC4 40 82 00 0C */ bne lbl_8001BBB0
/* 8001BBA8 00017AC8 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001BBAC 00017ACC D0 01 00 68 */ stfs f0, 0x68(r1)
lbl_8001BBB0:
/* 8001BBB0 00017AD0 38 61 00 60 */ addi r3, r1, 0x60
/* 8001BBB4 00017AD4 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 8001BBB8 00017AD8 7C 64 1B 78 */ mr r4, r3
/* 8001BBBC 00017ADC 4B FE C5 B9 */ bl mathutil_vec_set_len
/* 8001BBC0 00017AE0 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001BBC4 00017AE4 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8001BBC8 00017AE8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BBCC 00017AEC D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001BBD0 00017AF0 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001BBD4 00017AF4 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8001BBD8 00017AF8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BBDC 00017AFC D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001BBE0 00017B00 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001BBE4 00017B04 C0 01 00 68 */ lfs f0, 0x68(r1)
/* 8001BBE8 00017B08 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BBEC 00017B0C D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8001BBF0:
/* 8001BBF0 00017B10 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001BBF4 00017B14 38 7E 00 00 */ addi r3, r30, 0
/* 8001BBF8 00017B18 38 9F 00 00 */ addi r4, r31, 0
/* 8001BBFC 00017B1C D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001BC00 00017B20 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001BC04 00017B24 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001BC08 00017B28 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001BC0C 00017B2C D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001BC10 00017B30 A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001BC14 00017B34 60 00 00 01 */ ori r0, r0, 1
/* 8001BC18 00017B38 B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001BC1C 00017B3C 48 00 00 25 */ bl camera_sub_17
lbl_8001BC20:
/* 8001BC20 00017B40 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8001BC24 00017B44 CB E1 00 A8 */ lfd f31, 0xa8(r1)
/* 8001BC28 00017B48 83 E1 00 A4 */ lwz r31, 0xa4(r1)
/* 8001BC2C 00017B4C 7C 08 03 A6 */ mtlr r0
/* 8001BC30 00017B50 83 C1 00 A0 */ lwz r30, 0xa0(r1)
/* 8001BC34 00017B54 83 A1 00 9C */ lwz r29, 0x9c(r1)
/* 8001BC38 00017B58 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8001BC3C 00017B5C 4E 80 00 20 */ blr
.global camera_sub_17
camera_sub_17:
/* 8001BC40 00017B60 7C 08 02 A6 */ mflr r0
/* 8001BC44 00017B64 90 01 00 04 */ stw r0, 4(r1)
/* 8001BC48 00017B68 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001BC4C 00017B6C 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001BC50 00017B70 3B E3 00 00 */ addi r31, r3, 0
/* 8001BC54 00017B74 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001BC58 00017B78 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001BC5C 00017B7C 40 82 01 6C */ bne lbl_8001BDC8
/* 8001BC60 00017B80 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001BC64 00017B84 C8 22 86 00 */ lfd f1, lbl_802F2E00@sda21(r2)
/* 8001BC68 00017B88 FC 00 00 72 */ fmul f0, f0, f1
/* 8001BC6C 00017B8C FC 00 00 18 */ frsp f0, f0
/* 8001BC70 00017B90 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001BC74 00017B94 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001BC78 00017B98 FC 00 00 72 */ fmul f0, f0, f1
/* 8001BC7C 00017B9C FC 00 00 18 */ frsp f0, f0
/* 8001BC80 00017BA0 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001BC84 00017BA4 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001BC88 00017BA8 FC 00 00 72 */ fmul f0, f0, f1
/* 8001BC8C 00017BAC FC 00 00 18 */ frsp f0, f0
/* 8001BC90 00017BB0 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001BC94 00017BB4 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001BC98 00017BB8 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001BC9C 00017BBC EC 01 00 2A */ fadds f0, f1, f0
/* 8001BCA0 00017BC0 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001BCA4 00017BC4 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001BCA8 00017BC8 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001BCAC 00017BCC EC 01 00 2A */ fadds f0, f1, f0
/* 8001BCB0 00017BD0 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001BCB4 00017BD4 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001BCB8 00017BD8 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001BCBC 00017BDC EC 01 00 2A */ fadds f0, f1, f0
/* 8001BCC0 00017BE0 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001BCC4 00017BE4 C0 44 00 04 */ lfs f2, 4(r4)
/* 8001BCC8 00017BE8 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001BCCC 00017BEC C8 22 85 B0 */ lfd f1, lbl_802F2DB0@sda21(r2)
/* 8001BCD0 00017BF0 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BCD4 00017BF4 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001BCD8 00017BF8 C0 44 00 08 */ lfs f2, 8(r4)
/* 8001BCDC 00017BFC C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8001BCE0 00017C00 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BCE4 00017C04 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001BCE8 00017C08 C0 44 00 0C */ lfs f2, 0xc(r4)
/* 8001BCEC 00017C0C C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8001BCF0 00017C10 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BCF4 00017C14 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001BCF8 00017C18 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001BCFC 00017C1C FC 01 00 32 */ fmul f0, f1, f0
/* 8001BD00 00017C20 FC 00 00 18 */ frsp f0, f0
/* 8001BD04 00017C24 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001BD08 00017C28 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001BD0C 00017C2C FC 01 00 32 */ fmul f0, f1, f0
/* 8001BD10 00017C30 FC 00 00 18 */ frsp f0, f0
/* 8001BD14 00017C34 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001BD18 00017C38 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001BD1C 00017C3C FC 01 00 32 */ fmul f0, f1, f0
/* 8001BD20 00017C40 FC 00 00 18 */ frsp f0, f0
/* 8001BD24 00017C44 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001BD28 00017C48 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001BD2C 00017C4C C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001BD30 00017C50 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BD34 00017C54 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001BD38 00017C58 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001BD3C 00017C5C C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001BD40 00017C60 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BD44 00017C64 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001BD48 00017C68 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001BD4C 00017C6C C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001BD50 00017C70 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BD54 00017C74 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001BD58 00017C78 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001BD5C 00017C7C C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001BD60 00017C80 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BD64 00017C84 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001BD68 00017C88 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001BD6C 00017C8C C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001BD70 00017C90 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BD74 00017C94 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001BD78 00017C98 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001BD7C 00017C9C C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001BD80 00017CA0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BD84 00017CA4 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001BD88 00017CA8 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001BD8C 00017CAC C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001BD90 00017CB0 4B FE B5 15 */ bl mathutil_atan2
/* 8001BD94 00017CB4 38 03 80 00 */ addi r0, r3, -32768
/* 8001BD98 00017CB8 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001BD9C 00017CBC C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001BDA0 00017CC0 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001BDA4 00017CC4 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001BDA8 00017CC8 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001BDAC 00017CCC 4B FE B3 4D */ bl mathutil_sqrt
/* 8001BDB0 00017CD0 FC 40 08 90 */ fmr f2, f1
/* 8001BDB4 00017CD4 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001BDB8 00017CD8 4B FE B4 ED */ bl mathutil_atan2
/* 8001BDBC 00017CDC B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001BDC0 00017CE0 38 00 00 00 */ li r0, 0
/* 8001BDC4 00017CE4 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001BDC8:
/* 8001BDC8 00017CE8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001BDCC 00017CEC 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001BDD0 00017CF0 38 21 00 28 */ addi r1, r1, 0x28
/* 8001BDD4 00017CF4 7C 08 03 A6 */ mtlr r0
/* 8001BDD8 00017CF8 4E 80 00 20 */ blr
.global func_8001BDDC
func_8001BDDC:
/* 8001BDDC 00017CFC 7C 08 02 A6 */ mflr r0
/* 8001BDE0 00017D00 90 01 00 04 */ stw r0, 4(r1)
/* 8001BDE4 00017D04 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8001BDE8 00017D08 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8001BDEC 00017D0C 3B E4 00 00 */ addi r31, r4, 0
/* 8001BDF0 00017D10 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8001BDF4 00017D14 3B C3 00 00 */ addi r30, r3, 0
/* 8001BDF8 00017D18 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001BDFC 00017D1C 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001BE00 00017D20 40 82 02 AC */ bne lbl_8001C0AC
/* 8001BE04 00017D24 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001BE08 00017D28 80 AD 9D 50 */ lwz r5, decodedStageLzPtr@sda21(r13)
/* 8001BE0C 00017D2C 38 83 3A 58 */ addi r4, r3, lbl_801F3A58@l
/* 8001BE10 00017D30 A8 04 00 0C */ lha r0, 0xc(r4)
/* 8001BE14 00017D34 80 65 00 1C */ lwz r3, 0x1c(r5)
/* 8001BE18 00017D38 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001BE1C 00017D3C 7C A3 02 14 */ add r5, r3, r0
/* 8001BE20 00017D40 80 65 00 00 */ lwz r3, 0(r5)
/* 8001BE24 00017D44 80 05 00 04 */ lwz r0, 4(r5)
/* 8001BE28 00017D48 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8001BE2C 00017D4C 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001BE30 00017D50 80 05 00 08 */ lwz r0, 8(r5)
/* 8001BE34 00017D54 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001BE38 00017D58 A8 04 00 0E */ lha r0, 0xe(r4)
/* 8001BE3C 00017D5C 2C 00 00 00 */ cmpwi r0, 0
/* 8001BE40 00017D60 40 81 00 28 */ ble lbl_8001BE68
/* 8001BE44 00017D64 1C 80 00 84 */ mulli r4, r0, 0x84
/* 8001BE48 00017D68 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001BE4C 00017D6C 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001BE50 00017D70 7C 60 22 14 */ add r3, r0, r4
/* 8001BE54 00017D74 38 63 00 24 */ addi r3, r3, 0x24
/* 8001BE58 00017D78 4B FE BA 59 */ bl mathutil_mtxA_from_mtx
/* 8001BE5C 00017D7C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001BE60 00017D80 38 83 00 00 */ addi r4, r3, 0
/* 8001BE64 00017D84 4B FE BF C9 */ bl mathutil_mtxA_tf_point
lbl_8001BE68:
/* 8001BE68 00017D88 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001BE6C 00017D8C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001BE70 00017D90 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001BE74 00017D94 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BE78 00017D98 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8001BE7C 00017D9C C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001BE80 00017DA0 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001BE84 00017DA4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BE88 00017DA8 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001BE8C 00017DAC C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001BE90 00017DB0 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001BE94 00017DB4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BE98 00017DB8 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001BE9C 00017DBC 4B FE C2 61 */ bl mathutil_vec_normalize_len
/* 8001BEA0 00017DC0 C8 02 86 08 */ lfd f0, lbl_802F2E08@sda21(r2)
/* 8001BEA4 00017DC4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001BEA8 00017DC8 40 80 00 0C */ bge lbl_8001BEB4
/* 8001BEAC 00017DCC 38 00 00 10 */ li r0, 0x10
/* 8001BEB0 00017DD0 98 1E 00 1E */ stb r0, 0x1e(r30)
lbl_8001BEB4:
/* 8001BEB4 00017DD4 C8 A2 84 48 */ lfd f5, lbl_802F2C48@sda21(r2)
/* 8001BEB8 00017DD8 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001BEBC 00017DDC C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001BEC0 00017DE0 FC 65 00 72 */ fmul f3, f5, f1
/* 8001BEC4 00017DE4 C8 E2 85 F0 */ lfd f7, lbl_802F2DF0@sda21(r2)
/* 8001BEC8 00017DE8 C0 5F 00 1C */ lfs f2, 0x1c(r31)
/* 8001BECC 00017DEC C0 9F 00 04 */ lfs f4, 4(r31)
/* 8001BED0 00017DF0 FC 25 00 32 */ fmul f1, f5, f0
/* 8001BED4 00017DF4 FC C7 00 B2 */ fmul f6, f7, f2
/* 8001BED8 00017DF8 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001BEDC 00017DFC C8 42 86 10 */ lfd f2, lbl_802F2E10@sda21(r2)
/* 8001BEE0 00017E00 FC 64 18 2A */ fadd f3, f4, f3
/* 8001BEE4 00017E04 FC 05 00 32 */ fmul f0, f5, f0
/* 8001BEE8 00017E08 FC 66 18 2A */ fadd f3, f6, f3
/* 8001BEEC 00017E0C FC 60 18 18 */ frsp f3, f3
/* 8001BEF0 00017E10 D0 61 00 10 */ stfs f3, 0x10(r1)
/* 8001BEF4 00017E14 C0 9F 00 20 */ lfs f4, 0x20(r31)
/* 8001BEF8 00017E18 C0 7F 00 08 */ lfs f3, 8(r31)
/* 8001BEFC 00017E1C FC 87 01 32 */ fmul f4, f7, f4
/* 8001BF00 00017E20 FC 23 08 2A */ fadd f1, f3, f1
/* 8001BF04 00017E24 FC 24 08 2A */ fadd f1, f4, f1
/* 8001BF08 00017E28 FC 25 08 2A */ fadd f1, f5, f1
/* 8001BF0C 00017E2C FC 20 08 18 */ frsp f1, f1
/* 8001BF10 00017E30 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 8001BF14 00017E34 C0 7F 00 24 */ lfs f3, 0x24(r31)
/* 8001BF18 00017E38 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001BF1C 00017E3C FC 67 00 F2 */ fmul f3, f7, f3
/* 8001BF20 00017E40 FC 01 00 2A */ fadd f0, f1, f0
/* 8001BF24 00017E44 FC 03 00 2A */ fadd f0, f3, f0
/* 8001BF28 00017E48 FC 00 00 18 */ frsp f0, f0
/* 8001BF2C 00017E4C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001BF30 00017E50 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001BF34 00017E54 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001BF38 00017E58 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BF3C 00017E5C FC 02 00 32 */ fmul f0, f2, f0
/* 8001BF40 00017E60 FC 00 00 18 */ frsp f0, f0
/* 8001BF44 00017E64 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001BF48 00017E68 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001BF4C 00017E6C C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001BF50 00017E70 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BF54 00017E74 FC 02 00 32 */ fmul f0, f2, f0
/* 8001BF58 00017E78 FC 00 00 18 */ frsp f0, f0
/* 8001BF5C 00017E7C D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001BF60 00017E80 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001BF64 00017E84 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001BF68 00017E88 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001BF6C 00017E8C FC 02 00 32 */ fmul f0, f2, f0
/* 8001BF70 00017E90 FC 00 00 18 */ frsp f0, f0
/* 8001BF74 00017E94 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001BF78 00017E98 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001BF7C 00017E9C C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001BF80 00017EA0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BF84 00017EA4 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001BF88 00017EA8 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001BF8C 00017EAC C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001BF90 00017EB0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BF94 00017EB4 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001BF98 00017EB8 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001BF9C 00017EBC C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001BFA0 00017EC0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001BFA4 00017EC4 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001BFA8 00017EC8 C0 5F 00 04 */ lfs f2, 4(r31)
/* 8001BFAC 00017ECC C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001BFB0 00017ED0 C8 22 85 B0 */ lfd f1, lbl_802F2DB0@sda21(r2)
/* 8001BFB4 00017ED4 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BFB8 00017ED8 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8001BFBC 00017EDC C0 5F 00 08 */ lfs f2, 8(r31)
/* 8001BFC0 00017EE0 C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 8001BFC4 00017EE4 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BFC8 00017EE8 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001BFCC 00017EEC C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 8001BFD0 00017EF0 C0 1E 00 14 */ lfs f0, 0x14(r30)
/* 8001BFD4 00017EF4 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001BFD8 00017EF8 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001BFDC 00017EFC C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001BFE0 00017F00 FC 01 00 32 */ fmul f0, f1, f0
/* 8001BFE4 00017F04 FC 00 00 18 */ frsp f0, f0
/* 8001BFE8 00017F08 D0 1E 00 A0 */ stfs f0, 0xa0(r30)
/* 8001BFEC 00017F0C C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001BFF0 00017F10 FC 01 00 32 */ fmul f0, f1, f0
/* 8001BFF4 00017F14 FC 00 00 18 */ frsp f0, f0
/* 8001BFF8 00017F18 D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8001BFFC 00017F1C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001C000 00017F20 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C004 00017F24 FC 00 00 18 */ frsp f0, f0
/* 8001C008 00017F28 D0 1E 00 A8 */ stfs f0, 0xa8(r30)
/* 8001C00C 00017F2C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001C010 00017F30 C0 1E 00 A0 */ lfs f0, 0xa0(r30)
/* 8001C014 00017F34 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C018 00017F38 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001C01C 00017F3C C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001C020 00017F40 C0 1E 00 A4 */ lfs f0, 0xa4(r30)
/* 8001C024 00017F44 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C028 00017F48 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001C02C 00017F4C C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001C030 00017F50 C0 1E 00 A8 */ lfs f0, 0xa8(r30)
/* 8001C034 00017F54 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C038 00017F58 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001C03C 00017F5C C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001C040 00017F60 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001C044 00017F64 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C048 00017F68 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8001C04C 00017F6C C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001C050 00017F70 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001C054 00017F74 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C058 00017F78 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001C05C 00017F7C C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001C060 00017F80 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001C064 00017F84 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C068 00017F88 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001C06C 00017F8C C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001C070 00017F90 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 8001C074 00017F94 4B FE B2 31 */ bl mathutil_atan2
/* 8001C078 00017F98 38 03 80 00 */ addi r0, r3, -32768
/* 8001C07C 00017F9C B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001C080 00017FA0 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001C084 00017FA4 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001C088 00017FA8 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001C08C 00017FAC EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001C090 00017FB0 4B FE B0 69 */ bl mathutil_sqrt
/* 8001C094 00017FB4 FC 40 08 90 */ fmr f2, f1
/* 8001C098 00017FB8 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001C09C 00017FBC 4B FE B2 09 */ bl mathutil_atan2
/* 8001C0A0 00017FC0 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001C0A4 00017FC4 38 00 00 00 */ li r0, 0
/* 8001C0A8 00017FC8 B0 1E 00 1C */ sth r0, 0x1c(r30)
lbl_8001C0AC:
/* 8001C0AC 00017FCC 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8001C0B0 00017FD0 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8001C0B4 00017FD4 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8001C0B8 00017FD8 7C 08 03 A6 */ mtlr r0
/* 8001C0BC 00017FDC 38 21 00 30 */ addi r1, r1, 0x30
/* 8001C0C0 00017FE0 4E 80 00 20 */ blr
.global func_8001C0C4
func_8001C0C4:
/* 8001C0C4 00017FE4 7C 08 02 A6 */ mflr r0
/* 8001C0C8 00017FE8 90 01 00 04 */ stw r0, 4(r1)
/* 8001C0CC 00017FEC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8001C0D0 00017FF0 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8001C0D4 00017FF4 3B E4 00 00 */ addi r31, r4, 0
/* 8001C0D8 00017FF8 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8001C0DC 00017FFC 3B C3 00 00 */ addi r30, r3, 0
/* 8001C0E0 00018000 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001C0E4 00018004 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001C0E8 00018008 40 82 02 68 */ bne lbl_8001C350
/* 8001C0EC 0001800C 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001C0F0 00018010 80 AD 9D 50 */ lwz r5, decodedStageLzPtr@sda21(r13)
/* 8001C0F4 00018014 38 83 3A 58 */ addi r4, r3, lbl_801F3A58@l
/* 8001C0F8 00018018 A8 04 00 0C */ lha r0, 0xc(r4)
/* 8001C0FC 0001801C 80 65 00 1C */ lwz r3, 0x1c(r5)
/* 8001C100 00018020 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001C104 00018024 7C A3 02 14 */ add r5, r3, r0
/* 8001C108 00018028 80 65 00 00 */ lwz r3, 0(r5)
/* 8001C10C 0001802C 80 05 00 04 */ lwz r0, 4(r5)
/* 8001C110 00018030 90 61 00 10 */ stw r3, 0x10(r1)
/* 8001C114 00018034 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001C118 00018038 80 05 00 08 */ lwz r0, 8(r5)
/* 8001C11C 0001803C 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001C120 00018040 A8 04 00 0E */ lha r0, 0xe(r4)
/* 8001C124 00018044 2C 00 00 00 */ cmpwi r0, 0
/* 8001C128 00018048 40 81 00 28 */ ble lbl_8001C150
/* 8001C12C 0001804C 1C 80 00 84 */ mulli r4, r0, 0x84
/* 8001C130 00018050 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001C134 00018054 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001C138 00018058 7C 60 22 14 */ add r3, r0, r4
/* 8001C13C 0001805C 38 63 00 24 */ addi r3, r3, 0x24
/* 8001C140 00018060 4B FE B7 71 */ bl mathutil_mtxA_from_mtx
/* 8001C144 00018064 38 61 00 10 */ addi r3, r1, 0x10
/* 8001C148 00018068 38 83 00 00 */ addi r4, r3, 0
/* 8001C14C 0001806C 4B FE BC E1 */ bl mathutil_mtxA_tf_point
lbl_8001C150:
/* 8001C150 00018070 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001C154 00018074 C8 42 86 18 */ lfd f2, lbl_802F2E18@sda21(r2)
/* 8001C158 00018078 38 A3 3A 58 */ addi r5, r3, lbl_801F3A58@l
/* 8001C15C 0001807C C0 22 86 20 */ lfs f1, lbl_802F2E20@sda21(r2)
/* 8001C160 00018080 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 8001C164 00018084 38 61 00 28 */ addi r3, r1, 0x28
/* 8001C168 00018088 38 83 00 00 */ addi r4, r3, 0
/* 8001C16C 0001808C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001C170 00018090 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 8001C174 00018094 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C178 00018098 FC 00 00 18 */ frsp f0, f0
/* 8001C17C 0001809C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C180 000180A0 C0 05 00 18 */ lfs f0, 0x18(r5)
/* 8001C184 000180A4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C188 000180A8 4B FE BF ED */ bl mathutil_vec_set_len
/* 8001C18C 000180AC C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001C190 000180B0 C8 02 85 D0 */ lfd f0, lbl_802F2DD0@sda21(r2)
/* 8001C194 000180B4 C0 A1 00 10 */ lfs f5, 0x10(r1)
/* 8001C198 000180B8 FC 01 00 2A */ fadd f0, f1, f0
/* 8001C19C 000180BC C0 81 00 14 */ lfs f4, 0x14(r1)
/* 8001C1A0 000180C0 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001C1A4 000180C4 C8 42 86 10 */ lfd f2, lbl_802F2E10@sda21(r2)
/* 8001C1A8 000180C8 FC 00 00 18 */ frsp f0, f0
/* 8001C1AC 000180CC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C1B0 000180D0 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001C1B4 000180D4 C0 61 00 2C */ lfs f3, 0x2c(r1)
/* 8001C1B8 000180D8 EC A5 00 2A */ fadds f5, f5, f0
/* 8001C1BC 000180DC C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C1C0 000180E0 EC 64 18 2A */ fadds f3, f4, f3
/* 8001C1C4 000180E4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C1C8 000180E8 D0 A1 00 1C */ stfs f5, 0x1c(r1)
/* 8001C1CC 000180EC D0 61 00 20 */ stfs f3, 0x20(r1)
/* 8001C1D0 000180F0 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001C1D4 000180F4 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001C1D8 000180F8 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001C1DC 000180FC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C1E0 00018100 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C1E4 00018104 FC 00 00 18 */ frsp f0, f0
/* 8001C1E8 00018108 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001C1EC 0001810C C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001C1F0 00018110 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001C1F4 00018114 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C1F8 00018118 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C1FC 0001811C FC 00 00 18 */ frsp f0, f0
/* 8001C200 00018120 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001C204 00018124 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8001C208 00018128 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001C20C 0001812C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C210 00018130 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C214 00018134 FC 00 00 18 */ frsp f0, f0
/* 8001C218 00018138 D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001C21C 0001813C C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001C220 00018140 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001C224 00018144 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C228 00018148 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001C22C 0001814C C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001C230 00018150 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001C234 00018154 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C238 00018158 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001C23C 0001815C C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001C240 00018160 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001C244 00018164 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C248 00018168 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001C24C 0001816C C0 5F 00 04 */ lfs f2, 4(r31)
/* 8001C250 00018170 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001C254 00018174 C8 22 85 B0 */ lfd f1, lbl_802F2DB0@sda21(r2)
/* 8001C258 00018178 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C25C 0001817C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001C260 00018180 C0 5F 00 08 */ lfs f2, 8(r31)
/* 8001C264 00018184 C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 8001C268 00018188 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C26C 0001818C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C270 00018190 C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 8001C274 00018194 C0 1E 00 14 */ lfs f0, 0x14(r30)
/* 8001C278 00018198 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C27C 0001819C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C280 000181A0 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001C284 000181A4 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C288 000181A8 FC 00 00 18 */ frsp f0, f0
/* 8001C28C 000181AC D0 1E 00 A0 */ stfs f0, 0xa0(r30)
/* 8001C290 000181B0 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8001C294 000181B4 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C298 000181B8 FC 00 00 18 */ frsp f0, f0
/* 8001C29C 000181BC D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8001C2A0 000181C0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C2A4 000181C4 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C2A8 000181C8 FC 00 00 18 */ frsp f0, f0
/* 8001C2AC 000181CC D0 1E 00 A8 */ stfs f0, 0xa8(r30)
/* 8001C2B0 000181D0 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001C2B4 000181D4 C0 1E 00 A0 */ lfs f0, 0xa0(r30)
/* 8001C2B8 000181D8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C2BC 000181DC D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001C2C0 000181E0 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001C2C4 000181E4 C0 1E 00 A4 */ lfs f0, 0xa4(r30)
/* 8001C2C8 000181E8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C2CC 000181EC D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001C2D0 000181F0 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001C2D4 000181F4 C0 1E 00 A8 */ lfs f0, 0xa8(r30)
/* 8001C2D8 000181F8 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C2DC 000181FC D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001C2E0 00018200 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001C2E4 00018204 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001C2E8 00018208 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C2EC 0001820C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001C2F0 00018210 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001C2F4 00018214 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001C2F8 00018218 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C2FC 0001821C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C300 00018220 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001C304 00018224 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001C308 00018228 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C30C 0001822C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C310 00018230 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001C314 00018234 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001C318 00018238 4B FE AF 8D */ bl mathutil_atan2
/* 8001C31C 0001823C 38 03 80 00 */ addi r0, r3, -32768
/* 8001C320 00018240 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001C324 00018244 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C328 00018248 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001C32C 0001824C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001C330 00018250 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001C334 00018254 4B FE AD C5 */ bl mathutil_sqrt
/* 8001C338 00018258 FC 40 08 90 */ fmr f2, f1
/* 8001C33C 0001825C C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001C340 00018260 4B FE AF 65 */ bl mathutil_atan2
/* 8001C344 00018264 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001C348 00018268 38 00 00 00 */ li r0, 0
/* 8001C34C 0001826C B0 1E 00 1C */ sth r0, 0x1c(r30)
lbl_8001C350:
/* 8001C350 00018270 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8001C354 00018274 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8001C358 00018278 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8001C35C 0001827C 7C 08 03 A6 */ mtlr r0
/* 8001C360 00018280 38 21 00 40 */ addi r1, r1, 0x40
/* 8001C364 00018284 4E 80 00 20 */ blr
.global func_8001C368
func_8001C368:
/* 8001C368 00018288 7C 08 02 A6 */ mflr r0
/* 8001C36C 0001828C 90 01 00 04 */ stw r0, 4(r1)
/* 8001C370 00018290 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 8001C374 00018294 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8001C378 00018298 3B E3 00 00 */ addi r31, r3, 0
/* 8001C37C 0001829C 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8001C380 000182A0 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 8001C384 000182A4 3B A4 00 00 */ addi r29, r4, 0
/* 8001C388 000182A8 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001C38C 000182AC 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001C390 000182B0 40 82 02 50 */ bne lbl_8001C5E0
/* 8001C394 000182B4 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001C398 000182B8 80 CD 9D 50 */ lwz r6, decodedStageLzPtr@sda21(r13)
/* 8001C39C 000182BC 38 A3 3A 58 */ addi r5, r3, lbl_801F3A58@l
/* 8001C3A0 000182C0 A8 85 00 0E */ lha r4, 0xe(r5)
/* 8001C3A4 000182C4 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001C3A8 000182C8 A8 A5 00 0C */ lha r5, 0xc(r5)
/* 8001C3AC 000182CC 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001C3B0 000182D0 1C 64 00 84 */ mulli r3, r4, 0x84
/* 8001C3B4 000182D4 80 C6 00 1C */ lwz r6, 0x1c(r6)
/* 8001C3B8 000182D8 1C 85 00 14 */ mulli r4, r5, 0x14
/* 8001C3BC 000182DC 7C 60 1A 14 */ add r3, r0, r3
/* 8001C3C0 000182E0 7F C6 22 14 */ add r30, r6, r4
/* 8001C3C4 000182E4 38 63 00 24 */ addi r3, r3, 0x24
/* 8001C3C8 000182E8 4B FE B4 E9 */ bl mathutil_mtxA_from_mtx
/* 8001C3CC 000182EC 7F C3 F3 78 */ mr r3, r30
/* 8001C3D0 000182F0 4B FE B9 51 */ bl mathutil_mtxA_translate
/* 8001C3D4 000182F4 A8 7E 00 10 */ lha r3, 0x10(r30)
/* 8001C3D8 000182F8 4B FE BC B1 */ bl mathutil_mtxA_rotate_z
/* 8001C3DC 000182FC A8 7E 00 0E */ lha r3, 0xe(r30)
/* 8001C3E0 00018300 4B FE BC 1D */ bl mathutil_mtxA_rotate_y
/* 8001C3E4 00018304 A8 7E 00 0C */ lha r3, 0xc(r30)
/* 8001C3E8 00018308 4B FE BB A1 */ bl mathutil_mtxA_rotate_x
/* 8001C3EC 0001830C 38 7F 00 54 */ addi r3, r31, 0x54
/* 8001C3F0 00018310 38 81 00 10 */ addi r4, r1, 0x10
/* 8001C3F4 00018314 4B FE BA 39 */ bl mathutil_mtxA_tf_point
/* 8001C3F8 00018318 C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8001C3FC 0001831C 38 61 00 28 */ addi r3, r1, 0x28
/* 8001C400 00018320 C0 3D 00 04 */ lfs f1, 4(r29)
/* 8001C404 00018324 7C 64 1B 78 */ mr r4, r3
/* 8001C408 00018328 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001C40C 0001832C EC 42 08 28 */ fsubs f2, f2, f1
/* 8001C410 00018330 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001C414 00018334 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8001C418 00018338 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C41C 0001833C C0 1D 00 0C */ lfs f0, 0xc(r29)
/* 8001C420 00018340 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C424 00018344 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C428 00018348 C0 3F 00 60 */ lfs f1, 0x60(r31)
/* 8001C42C 0001834C 4B FE BD 49 */ bl mathutil_vec_set_len
/* 8001C430 00018350 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001C434 00018354 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001C438 00018358 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8001C43C 0001835C EC 81 00 2A */ fadds f4, f1, f0
/* 8001C440 00018360 C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8001C444 00018364 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001C448 00018368 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C44C 0001836C EC 63 10 2A */ fadds f3, f3, f2
/* 8001C450 00018370 D0 81 00 1C */ stfs f4, 0x1c(r1)
/* 8001C454 00018374 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C458 00018378 C8 42 85 D8 */ lfd f2, lbl_802F2DD8@sda21(r2)
/* 8001C45C 0001837C D0 61 00 20 */ stfs f3, 0x20(r1)
/* 8001C460 00018380 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001C464 00018384 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001C468 00018388 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001C46C 0001838C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C470 00018390 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C474 00018394 FC 00 00 18 */ frsp f0, f0
/* 8001C478 00018398 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001C47C 0001839C C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001C480 000183A0 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001C484 000183A4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C488 000183A8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C48C 000183AC FC 00 00 18 */ frsp f0, f0
/* 8001C490 000183B0 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001C494 000183B4 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8001C498 000183B8 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001C49C 000183BC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C4A0 000183C0 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C4A4 000183C4 FC 00 00 18 */ frsp f0, f0
/* 8001C4A8 000183C8 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001C4AC 000183CC C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001C4B0 000183D0 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001C4B4 000183D4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C4B8 000183D8 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001C4BC 000183DC C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001C4C0 000183E0 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001C4C4 000183E4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C4C8 000183E8 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001C4CC 000183EC C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001C4D0 000183F0 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001C4D4 000183F4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C4D8 000183F8 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001C4DC 000183FC C0 5D 00 04 */ lfs f2, 4(r29)
/* 8001C4E0 00018400 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001C4E4 00018404 C8 22 85 B0 */ lfd f1, lbl_802F2DB0@sda21(r2)
/* 8001C4E8 00018408 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C4EC 0001840C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001C4F0 00018410 C0 5D 00 08 */ lfs f2, 8(r29)
/* 8001C4F4 00018414 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8001C4F8 00018418 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C4FC 0001841C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C500 00018420 C0 5D 00 0C */ lfs f2, 0xc(r29)
/* 8001C504 00018424 C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8001C508 00018428 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001C50C 0001842C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C510 00018430 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001C514 00018434 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C518 00018438 FC 00 00 18 */ frsp f0, f0
/* 8001C51C 0001843C D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001C520 00018440 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8001C524 00018444 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C528 00018448 FC 00 00 18 */ frsp f0, f0
/* 8001C52C 0001844C D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001C530 00018450 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C534 00018454 FC 01 00 32 */ fmul f0, f1, f0
/* 8001C538 00018458 FC 00 00 18 */ frsp f0, f0
/* 8001C53C 0001845C D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001C540 00018460 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001C544 00018464 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001C548 00018468 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C54C 0001846C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001C550 00018470 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001C554 00018474 C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001C558 00018478 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C55C 0001847C D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001C560 00018480 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001C564 00018484 C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001C568 00018488 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C56C 0001848C D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001C570 00018490 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001C574 00018494 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001C578 00018498 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C57C 0001849C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001C580 000184A0 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001C584 000184A4 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001C588 000184A8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C58C 000184AC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001C590 000184B0 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001C594 000184B4 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001C598 000184B8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C59C 000184BC D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001C5A0 000184C0 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001C5A4 000184C4 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001C5A8 000184C8 4B FE AC FD */ bl mathutil_atan2
/* 8001C5AC 000184CC 38 03 80 00 */ addi r0, r3, -32768
/* 8001C5B0 000184D0 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001C5B4 000184D4 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001C5B8 000184D8 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001C5BC 000184DC EC 21 00 72 */ fmuls f1, f1, f1
/* 8001C5C0 000184E0 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001C5C4 000184E4 4B FE AB 35 */ bl mathutil_sqrt
/* 8001C5C8 000184E8 FC 40 08 90 */ fmr f2, f1
/* 8001C5CC 000184EC C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001C5D0 000184F0 4B FE AC D5 */ bl mathutil_atan2
/* 8001C5D4 000184F4 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001C5D8 000184F8 38 00 00 00 */ li r0, 0
/* 8001C5DC 000184FC B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001C5E0:
/* 8001C5E0 00018500 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8001C5E4 00018504 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 8001C5E8 00018508 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 8001C5EC 0001850C 7C 08 03 A6 */ mtlr r0
/* 8001C5F0 00018510 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 8001C5F4 00018514 38 21 00 48 */ addi r1, r1, 0x48
/* 8001C5F8 00018518 4E 80 00 20 */ blr
.global func_8001C5FC
func_8001C5FC:
/* 8001C5FC 0001851C 7C 08 02 A6 */ mflr r0
/* 8001C600 00018520 90 01 00 04 */ stw r0, 4(r1)
/* 8001C604 00018524 38 00 00 16 */ li r0, 0x16
/* 8001C608 00018528 94 21 FF F8 */ stwu r1, -8(r1)
/* 8001C60C 0001852C 98 03 00 1E */ stb r0, 0x1e(r3)
/* 8001C610 00018530 48 00 00 15 */ bl camera_sub_22_23_24
/* 8001C614 00018534 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8001C618 00018538 38 21 00 08 */ addi r1, r1, 8
/* 8001C61C 0001853C 7C 08 03 A6 */ mtlr r0
/* 8001C620 00018540 4E 80 00 20 */ blr
.global camera_sub_22_23_24
camera_sub_22_23_24:
/* 8001C624 00018544 7C 08 02 A6 */ mflr r0
/* 8001C628 00018548 90 01 00 04 */ stw r0, 4(r1)
/* 8001C62C 0001854C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001C630 00018550 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001C634 00018554 3B E3 00 00 */ addi r31, r3, 0
/* 8001C638 00018558 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001C63C 0001855C 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001C640 00018560 40 82 01 84 */ bne lbl_8001C7C4
/* 8001C644 00018564 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001C648 00018568 C8 22 86 28 */ lfd f1, lbl_802F2E28@sda21(r2)
/* 8001C64C 0001856C FC 00 00 72 */ fmul f0, f0, f1
/* 8001C650 00018570 FC 00 00 18 */ frsp f0, f0
/* 8001C654 00018574 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001C658 00018578 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001C65C 0001857C FC 00 00 72 */ fmul f0, f0, f1
/* 8001C660 00018580 FC 00 00 18 */ frsp f0, f0
/* 8001C664 00018584 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001C668 00018588 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001C66C 0001858C FC 00 00 72 */ fmul f0, f0, f1
/* 8001C670 00018590 FC 00 00 18 */ frsp f0, f0
/* 8001C674 00018594 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001C678 00018598 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001C67C 0001859C C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001C680 000185A0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C684 000185A4 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001C688 000185A8 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001C68C 000185AC C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001C690 000185B0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C694 000185B4 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001C698 000185B8 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001C69C 000185BC C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001C6A0 000185C0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001C6A4 000185C4 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001C6A8 000185C8 C0 24 00 04 */ lfs f1, 4(r4)
/* 8001C6AC 000185CC C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001C6B0 000185D0 C8 42 85 40 */ lfd f2, lbl_802F2D40@sda21(r2)
/* 8001C6B4 000185D4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C6B8 000185D8 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001C6BC 000185DC C0 24 00 08 */ lfs f1, 8(r4)
/* 8001C6C0 000185E0 C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8001C6C4 000185E4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C6C8 000185E8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001C6CC 000185EC C0 24 00 0C */ lfs f1, 0xc(r4)
/* 8001C6D0 000185F0 C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8001C6D4 000185F4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C6D8 000185F8 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001C6DC 000185FC C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001C6E0 00018600 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001C6E4 00018604 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C6E8 00018608 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C6EC 0001860C FC 00 00 18 */ frsp f0, f0
/* 8001C6F0 00018610 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001C6F4 00018614 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001C6F8 00018618 C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001C6FC 0001861C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C700 00018620 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C704 00018624 FC 00 00 18 */ frsp f0, f0
/* 8001C708 00018628 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001C70C 0001862C C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001C710 00018630 C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001C714 00018634 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C718 00018638 FC 02 00 32 */ fmul f0, f2, f0
/* 8001C71C 0001863C FC 00 00 18 */ frsp f0, f0
/* 8001C720 00018640 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001C724 00018644 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001C728 00018648 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001C72C 0001864C EC 01 00 2A */ fadds f0, f1, f0
/* 8001C730 00018650 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001C734 00018654 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001C738 00018658 C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001C73C 0001865C EC 01 00 2A */ fadds f0, f1, f0
/* 8001C740 00018660 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001C744 00018664 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001C748 00018668 C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001C74C 0001866C EC 01 00 2A */ fadds f0, f1, f0
/* 8001C750 00018670 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001C754 00018674 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001C758 00018678 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001C75C 0001867C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C760 00018680 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001C764 00018684 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001C768 00018688 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001C76C 0001868C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C770 00018690 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001C774 00018694 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001C778 00018698 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001C77C 0001869C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001C780 000186A0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001C784 000186A4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001C788 000186A8 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001C78C 000186AC 4B FE AB 19 */ bl mathutil_atan2
/* 8001C790 000186B0 38 03 80 00 */ addi r0, r3, -32768
/* 8001C794 000186B4 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001C798 000186B8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001C79C 000186BC C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001C7A0 000186C0 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001C7A4 000186C4 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001C7A8 000186C8 4B FE A9 51 */ bl mathutil_sqrt
/* 8001C7AC 000186CC FC 40 08 90 */ fmr f2, f1
/* 8001C7B0 000186D0 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001C7B4 000186D4 4B FE AA F1 */ bl mathutil_atan2
/* 8001C7B8 000186D8 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001C7BC 000186DC 38 00 00 00 */ li r0, 0
/* 8001C7C0 000186E0 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001C7C4:
/* 8001C7C4 000186E4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001C7C8 000186E8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001C7CC 000186EC 38 21 00 28 */ addi r1, r1, 0x28
/* 8001C7D0 000186F0 7C 08 03 A6 */ mtlr r0
/* 8001C7D4 000186F4 4E 80 00 20 */ blr
.global func_8001C7D8
func_8001C7D8:
/* 8001C7D8 000186F8 7C 08 02 A6 */ mflr r0
/* 8001C7DC 000186FC 90 01 00 04 */ stw r0, 4(r1)
/* 8001C7E0 00018700 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8001C7E4 00018704 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8001C7E8 00018708 3B E4 00 00 */ addi r31, r4, 0
/* 8001C7EC 0001870C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8001C7F0 00018710 3B C3 00 00 */ addi r30, r3, 0
/* 8001C7F4 00018714 4B FF C2 FD */ bl camera_clear
/* 8001C7F8 00018718 38 7E 00 00 */ addi r3, r30, 0
/* 8001C7FC 0001871C 38 9F 00 00 */ addi r4, r31, 0
/* 8001C800 00018720 48 00 00 35 */ bl camera_sub_26
/* 8001C804 00018724 38 00 00 00 */ li r0, 0
/* 8001C808 00018728 B0 1E 00 50 */ sth r0, 0x50(r30)
/* 8001C80C 0001872C 38 60 00 07 */ li r3, 7
/* 8001C810 00018730 38 00 00 1A */ li r0, 0x1a
/* 8001C814 00018734 98 7E 00 26 */ stb r3, 0x26(r30)
/* 8001C818 00018738 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001C81C 0001873C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8001C820 00018740 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8001C824 00018744 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8001C828 00018748 38 21 00 18 */ addi r1, r1, 0x18
/* 8001C82C 0001874C 7C 08 03 A6 */ mtlr r0
/* 8001C830 00018750 4E 80 00 20 */ blr
.global camera_sub_26
camera_sub_26:
/* 8001C834 00018754 7C 08 02 A6 */ mflr r0
/* 8001C838 00018758 90 01 00 04 */ stw r0, 4(r1)
/* 8001C83C 0001875C 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8001C840 00018760 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8001C844 00018764 3B E3 00 00 */ addi r31, r3, 0
/* 8001C848 00018768 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8001C84C 0001876C 3B C4 00 00 */ addi r30, r4, 0
/* 8001C850 00018770 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001C854 00018774 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001C858 00018778 41 82 00 10 */ beq lbl_8001C868
/* 8001C85C 0001877C 88 1F 00 1E */ lbz r0, 0x1e(r31)
/* 8001C860 00018780 2C 00 00 1A */ cmpwi r0, 0x1a
/* 8001C864 00018784 41 82 02 3C */ beq lbl_8001CAA0
lbl_8001C868:
/* 8001C868 00018788 38 7E 00 04 */ addi r3, r30, 4
/* 8001C86C 0001878C 4B FE AD 51 */ bl mathutil_mtxA_from_translate
/* 8001C870 00018790 A8 7E 00 92 */ lha r3, 0x92(r30)
/* 8001C874 00018794 4B FE B7 89 */ bl mathutil_mtxA_rotate_y
/* 8001C878 00018798 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001C87C 0001879C 3C 60 43 30 */ lis r3, 0x4330
/* 8001C880 000187A0 C0 02 84 50 */ lfs f0, lbl_802F2C50@sda21(r2)
/* 8001C884 000187A4 D0 21 00 1C */ stfs f1, 0x1c(r1)
/* 8001C888 000187A8 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001C88C 000187AC D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001C890 000187B0 C0 02 86 38 */ lfs f0, lbl_802F2E38@sda21(r2)
/* 8001C894 000187B4 A8 1F 00 50 */ lha r0, 0x50(r31)
/* 8001C898 000187B8 C8 62 84 F8 */ lfd f3, lbl_802F2CF8@sda21(r2)
/* 8001C89C 000187BC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001C8A0 000187C0 D0 21 00 10 */ stfs f1, 0x10(r1)
/* 8001C8A4 000187C4 C8 82 86 30 */ lfd f4, lbl_802F2E30@sda21(r2)
/* 8001C8A8 000187C8 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001C8AC 000187CC 90 61 00 40 */ stw r3, 0x40(r1)
/* 8001C8B0 000187D0 C8 21 00 40 */ lfd f1, 0x40(r1)
/* 8001C8B4 000187D4 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001C8B8 000187D8 FC 01 10 28 */ fsub f0, f1, f2
/* 8001C8BC 000187DC FC 03 00 32 */ fmul f0, f3, f0
/* 8001C8C0 000187E0 FC 04 00 28 */ fsub f0, f4, f0
/* 8001C8C4 000187E4 FC 00 00 18 */ frsp f0, f0
/* 8001C8C8 000187E8 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001C8CC 000187EC A8 1F 00 50 */ lha r0, 0x50(r31)
/* 8001C8D0 000187F0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001C8D4 000187F4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001C8D8 000187F8 90 61 00 38 */ stw r3, 0x38(r1)
/* 8001C8DC 000187FC C8 01 00 38 */ lfd f0, 0x38(r1)
/* 8001C8E0 00018800 FC 00 10 28 */ fsub f0, f0, f2
/* 8001C8E4 00018804 FC 03 00 32 */ fmul f0, f3, f0
/* 8001C8E8 00018808 FC 00 00 50 */ fneg f0, f0
/* 8001C8EC 0001880C FC 00 00 18 */ frsp f0, f0
/* 8001C8F0 00018810 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001C8F4 00018814 88 1F 00 1E */ lbz r0, 0x1e(r31)
/* 8001C8F8 00018818 2C 00 00 1A */ cmpwi r0, 0x1a
/* 8001C8FC 0001881C 40 82 00 FC */ bne lbl_8001C9F8
/* 8001C900 00018820 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 8001C904 00018824 38 63 EC 20 */ addi r3, r3, modeCtrl@l
/* 8001C908 00018828 80 03 00 08 */ lwz r0, 8(r3)
/* 8001C90C 0001882C 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 8001C910 00018830 41 82 00 20 */ beq lbl_8001C930
/* 8001C914 00018834 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8001C918 00018838 2C 00 00 01 */ cmpwi r0, 1
/* 8001C91C 0001883C 40 82 00 14 */ bne lbl_8001C930
/* 8001C920 00018840 C0 22 86 3C */ lfs f1, lbl_802F2E3C@sda21(r2)
/* 8001C924 00018844 C0 02 86 40 */ lfs f0, lbl_802F2E40@sda21(r2)
/* 8001C928 00018848 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8001C92C 0001884C D0 01 00 18 */ stfs f0, 0x18(r1)
lbl_8001C930:
/* 8001C930 00018850 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001C934 00018854 38 83 00 00 */ addi r4, r3, 0
/* 8001C938 00018858 4B FE B4 F5 */ bl mathutil_mtxA_tf_point
/* 8001C93C 0001885C 38 61 00 10 */ addi r3, r1, 0x10
/* 8001C940 00018860 38 83 00 00 */ addi r4, r3, 0
/* 8001C944 00018864 4B FE B4 E9 */ bl mathutil_mtxA_tf_point
/* 8001C948 00018868 C0 5F 00 00 */ lfs f2, 0(r31)
/* 8001C94C 0001886C C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001C950 00018870 C8 02 85 40 */ lfd f0, lbl_802F2D40@sda21(r2)
/* 8001C954 00018874 EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C958 00018878 FC 20 00 72 */ fmul f1, f0, f1
/* 8001C95C 0001887C FC 22 08 2A */ fadd f1, f2, f1
/* 8001C960 00018880 FC 20 08 18 */ frsp f1, f1
/* 8001C964 00018884 D0 3F 00 00 */ stfs f1, 0(r31)
/* 8001C968 00018888 C0 5F 00 04 */ lfs f2, 4(r31)
/* 8001C96C 0001888C C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001C970 00018890 EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C974 00018894 FC 20 00 72 */ fmul f1, f0, f1
/* 8001C978 00018898 FC 22 08 2A */ fadd f1, f2, f1
/* 8001C97C 0001889C FC 20 08 18 */ frsp f1, f1
/* 8001C980 000188A0 D0 3F 00 04 */ stfs f1, 4(r31)
/* 8001C984 000188A4 C0 5F 00 08 */ lfs f2, 8(r31)
/* 8001C988 000188A8 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8001C98C 000188AC EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C990 000188B0 FC 20 00 72 */ fmul f1, f0, f1
/* 8001C994 000188B4 FC 22 08 2A */ fadd f1, f2, f1
/* 8001C998 000188B8 FC 20 08 18 */ frsp f1, f1
/* 8001C99C 000188BC D0 3F 00 08 */ stfs f1, 8(r31)
/* 8001C9A0 000188C0 C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 8001C9A4 000188C4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001C9A8 000188C8 EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C9AC 000188CC FC 20 00 72 */ fmul f1, f0, f1
/* 8001C9B0 000188D0 FC 22 08 2A */ fadd f1, f2, f1
/* 8001C9B4 000188D4 FC 20 08 18 */ frsp f1, f1
/* 8001C9B8 000188D8 D0 3F 00 0C */ stfs f1, 0xc(r31)
/* 8001C9BC 000188DC C0 5F 00 10 */ lfs f2, 0x10(r31)
/* 8001C9C0 000188E0 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001C9C4 000188E4 EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C9C8 000188E8 FC 20 00 72 */ fmul f1, f0, f1
/* 8001C9CC 000188EC FC 22 08 2A */ fadd f1, f2, f1
/* 8001C9D0 000188F0 FC 20 08 18 */ frsp f1, f1
/* 8001C9D4 000188F4 D0 3F 00 10 */ stfs f1, 0x10(r31)
/* 8001C9D8 000188F8 C0 5F 00 14 */ lfs f2, 0x14(r31)
/* 8001C9DC 000188FC C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001C9E0 00018900 EC 21 10 28 */ fsubs f1, f1, f2
/* 8001C9E4 00018904 FC 00 00 72 */ fmul f0, f0, f1
/* 8001C9E8 00018908 FC 02 00 2A */ fadd f0, f2, f0
/* 8001C9EC 0001890C FC 00 00 18 */ frsp f0, f0
/* 8001C9F0 00018910 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001C9F4 00018914 48 00 00 1C */ b lbl_8001CA10
lbl_8001C9F8:
/* 8001C9F8 00018918 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001C9FC 0001891C 38 9F 00 00 */ addi r4, r31, 0
/* 8001CA00 00018920 4B FE B4 2D */ bl mathutil_mtxA_tf_point
/* 8001CA04 00018924 38 61 00 10 */ addi r3, r1, 0x10
/* 8001CA08 00018928 38 9F 00 0C */ addi r4, r31, 0xc
/* 8001CA0C 0001892C 4B FE B4 21 */ bl mathutil_mtxA_tf_point
lbl_8001CA10:
/* 8001CA10 00018930 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001CA14 00018934 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001CA18 00018938 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CA1C 0001893C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001CA20 00018940 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001CA24 00018944 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001CA28 00018948 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CA2C 0001894C D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001CA30 00018950 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001CA34 00018954 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001CA38 00018958 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CA3C 0001895C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001CA40 00018960 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001CA44 00018964 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001CA48 00018968 4B FE A8 5D */ bl mathutil_atan2
/* 8001CA4C 0001896C 38 03 80 00 */ addi r0, r3, -32768
/* 8001CA50 00018970 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001CA54 00018974 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001CA58 00018978 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001CA5C 0001897C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001CA60 00018980 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001CA64 00018984 4B FE A6 95 */ bl mathutil_sqrt
/* 8001CA68 00018988 FC 40 08 90 */ fmr f2, f1
/* 8001CA6C 0001898C C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001CA70 00018990 4B FE A8 35 */ bl mathutil_atan2
/* 8001CA74 00018994 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001CA78 00018998 38 00 00 00 */ li r0, 0
/* 8001CA7C 0001899C B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001CA80 000189A0 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 8001CA84 000189A4 38 63 00 01 */ addi r3, r3, 1
/* 8001CA88 000189A8 7C 60 07 34 */ extsh r0, r3
/* 8001CA8C 000189AC B0 7F 00 50 */ sth r3, 0x50(r31)
/* 8001CA90 000189B0 2C 00 02 93 */ cmpwi r0, 0x293
/* 8001CA94 000189B4 40 81 00 0C */ ble lbl_8001CAA0
/* 8001CA98 000189B8 38 00 02 93 */ li r0, 0x293
/* 8001CA9C 000189BC B0 1F 00 50 */ sth r0, 0x50(r31)
lbl_8001CAA0:
/* 8001CAA0 000189C0 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8001CAA4 000189C4 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8001CAA8 000189C8 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8001CAAC 000189CC 7C 08 03 A6 */ mtlr r0
/* 8001CAB0 000189D0 38 21 00 50 */ addi r1, r1, 0x50
/* 8001CAB4 000189D4 4E 80 00 20 */ blr
.global func_8001CAB8
func_8001CAB8:
/* 8001CAB8 000189D8 7C 08 02 A6 */ mflr r0
/* 8001CABC 000189DC 90 01 00 04 */ stw r0, 4(r1)
/* 8001CAC0 000189E0 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8001CAC4 000189E4 93 E1 00 24 */ stw r31, 0x24(r1)
/* 8001CAC8 000189E8 3B E4 00 00 */ addi r31, r4, 0
/* 8001CACC 000189EC 93 C1 00 20 */ stw r30, 0x20(r1)
/* 8001CAD0 000189F0 3B C3 00 00 */ addi r30, r3, 0
/* 8001CAD4 000189F4 4B FF C0 1D */ bl camera_clear
/* 8001CAD8 000189F8 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001CADC 000189FC D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001CAE0 00018A00 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001CAE4 00018A04 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001CAE8 00018A08 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001CAEC 00018A0C D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001CAF0 00018A10 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CAF4 00018A14 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CAF8 00018A18 C0 03 00 08 */ lfs f0, 8(r3)
/* 8001CAFC 00018A1C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001CB00 00018A20 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CB04 00018A24 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CB08 00018A28 C0 03 00 04 */ lfs f0, 4(r3)
/* 8001CB0C 00018A2C D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001CB10 00018A30 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CB14 00018A34 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CB18 00018A38 C0 03 00 00 */ lfs f0, 0(r3)
/* 8001CB1C 00018A3C D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001CB20 00018A40 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001CB24 00018A44 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001CB28 00018A48 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CB2C 00018A4C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001CB30 00018A50 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001CB34 00018A54 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001CB38 00018A58 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CB3C 00018A5C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001CB40 00018A60 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001CB44 00018A64 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001CB48 00018A68 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CB4C 00018A6C D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001CB50 00018A70 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001CB54 00018A74 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001CB58 00018A78 4B FE A7 4D */ bl mathutil_atan2
/* 8001CB5C 00018A7C 38 03 80 00 */ addi r0, r3, -32768
/* 8001CB60 00018A80 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001CB64 00018A84 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001CB68 00018A88 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001CB6C 00018A8C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001CB70 00018A90 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001CB74 00018A94 4B FE A5 85 */ bl mathutil_sqrt
/* 8001CB78 00018A98 FC 40 08 90 */ fmr f2, f1
/* 8001CB7C 00018A9C C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001CB80 00018AA0 4B FE A7 25 */ bl mathutil_atan2
/* 8001CB84 00018AA4 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001CB88 00018AA8 38 60 00 00 */ li r3, 0
/* 8001CB8C 00018AAC 38 00 00 20 */ li r0, 0x20
/* 8001CB90 00018AB0 B0 7E 00 1C */ sth r3, 0x1c(r30)
/* 8001CB94 00018AB4 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001CB98 00018AB8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 8001CB9C 00018ABC 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8001CBA0 00018AC0 83 C1 00 20 */ lwz r30, 0x20(r1)
/* 8001CBA4 00018AC4 38 21 00 28 */ addi r1, r1, 0x28
/* 8001CBA8 00018AC8 7C 08 03 A6 */ mtlr r0
/* 8001CBAC 00018ACC 4E 80 00 20 */ blr
.global func_8001CBB0
func_8001CBB0:
/* 8001CBB0 00018AD0 7C 08 02 A6 */ mflr r0
/* 8001CBB4 00018AD4 90 01 00 04 */ stw r0, 4(r1)
/* 8001CBB8 00018AD8 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8001CBBC 00018ADC 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8001CBC0 00018AE0 3B E3 00 00 */ addi r31, r3, 0
/* 8001CBC4 00018AE4 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001CBC8 00018AE8 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001CBCC 00018AEC 40 82 01 6C */ bne lbl_8001CD38
/* 8001CBD0 00018AF0 80 7F 00 00 */ lwz r3, 0(r31)
/* 8001CBD4 00018AF4 80 1F 00 04 */ lwz r0, 4(r31)
/* 8001CBD8 00018AF8 C8 42 85 88 */ lfd f2, lbl_802F2D88@sda21(r2)
/* 8001CBDC 00018AFC 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8001CBE0 00018B00 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001CBE4 00018B04 80 1F 00 08 */ lwz r0, 8(r31)
/* 8001CBE8 00018B08 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001CBEC 00018B0C 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8001CBF0 00018B10 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8001CBF4 00018B14 90 61 00 10 */ stw r3, 0x10(r1)
/* 8001CBF8 00018B18 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001CBFC 00018B1C 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8001CC00 00018B20 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001CC04 00018B24 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001CC08 00018B28 C0 04 00 04 */ lfs f0, 4(r4)
/* 8001CC0C 00018B2C EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CC10 00018B30 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CC14 00018B34 FC 01 00 2A */ fadd f0, f1, f0
/* 8001CC18 00018B38 FC 00 00 18 */ frsp f0, f0
/* 8001CC1C 00018B3C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001CC20 00018B40 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001CC24 00018B44 C0 04 00 08 */ lfs f0, 8(r4)
/* 8001CC28 00018B48 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CC2C 00018B4C FC 02 00 32 */ fmul f0, f2, f0
/* 8001CC30 00018B50 FC 01 00 2A */ fadd f0, f1, f0
/* 8001CC34 00018B54 FC 00 00 18 */ frsp f0, f0
/* 8001CC38 00018B58 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001CC3C 00018B5C C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001CC40 00018B60 C0 04 00 0C */ lfs f0, 0xc(r4)
/* 8001CC44 00018B64 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CC48 00018B68 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CC4C 00018B6C FC 01 00 2A */ fadd f0, f1, f0
/* 8001CC50 00018B70 FC 00 00 18 */ frsp f0, f0
/* 8001CC54 00018B74 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001CC58 00018B78 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001CC5C 00018B7C D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001CC60 00018B80 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001CC64 00018B84 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001CC68 00018B88 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CC6C 00018B8C 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CC70 00018B90 C0 03 00 08 */ lfs f0, 8(r3)
/* 8001CC74 00018B94 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001CC78 00018B98 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CC7C 00018B9C 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CC80 00018BA0 C0 03 00 04 */ lfs f0, 4(r3)
/* 8001CC84 00018BA4 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001CC88 00018BA8 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001CC8C 00018BAC 80 63 00 10 */ lwz r3, 0x10(r3)
/* 8001CC90 00018BB0 C0 03 00 00 */ lfs f0, 0(r3)
/* 8001CC94 00018BB4 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001CC98 00018BB8 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001CC9C 00018BBC C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001CCA0 00018BC0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CCA4 00018BC4 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001CCA8 00018BC8 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001CCAC 00018BCC C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001CCB0 00018BD0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CCB4 00018BD4 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001CCB8 00018BD8 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001CCBC 00018BDC C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001CCC0 00018BE0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CCC4 00018BE4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001CCC8 00018BE8 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001CCCC 00018BEC C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001CCD0 00018BF0 4B FE A5 D5 */ bl mathutil_atan2
/* 8001CCD4 00018BF4 38 03 80 00 */ addi r0, r3, -32768
/* 8001CCD8 00018BF8 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001CCDC 00018BFC C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001CCE0 00018C00 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001CCE4 00018C04 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001CCE8 00018C08 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001CCEC 00018C0C 4B FE A4 0D */ bl mathutil_sqrt
/* 8001CCF0 00018C10 FC 40 08 90 */ fmr f2, f1
/* 8001CCF4 00018C14 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001CCF8 00018C18 4B FE A5 AD */ bl mathutil_atan2
/* 8001CCFC 00018C1C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001CD00 00018C20 38 00 00 00 */ li r0, 0
/* 8001CD04 00018C24 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001CD08 00018C28 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001CD0C 00018C2C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001CD10 00018C30 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CD14 00018C34 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001CD18 00018C38 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001CD1C 00018C3C C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001CD20 00018C40 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CD24 00018C44 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001CD28 00018C48 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001CD2C 00018C4C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001CD30 00018C50 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CD34 00018C54 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
lbl_8001CD38:
/* 8001CD38 00018C58 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8001CD3C 00018C5C 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8001CD40 00018C60 38 21 00 40 */ addi r1, r1, 0x40
/* 8001CD44 00018C64 7C 08 03 A6 */ mtlr r0
/* 8001CD48 00018C68 4E 80 00 20 */ blr
.global func_8001CD4C
func_8001CD4C:
/* 8001CD4C 00018C6C 7C 08 02 A6 */ mflr r0
/* 8001CD50 00018C70 90 01 00 04 */ stw r0, 4(r1)
/* 8001CD54 00018C74 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8001CD58 00018C78 93 E1 00 34 */ stw r31, 0x34(r1)
/* 8001CD5C 00018C7C 93 C1 00 30 */ stw r30, 0x30(r1)
/* 8001CD60 00018C80 3B C4 00 00 */ addi r30, r4, 0
/* 8001CD64 00018C84 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 8001CD68 00018C88 3B A3 00 00 */ addi r29, r3, 0
/* 8001CD6C 00018C8C 4B FF BD 85 */ bl camera_clear
/* 8001CD70 00018C90 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001CD74 00018C94 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 8001CD78 00018C98 38 63 EC 20 */ addi r3, r3, modeCtrl@l
/* 8001CD7C 00018C9C D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 8001CD80 00018CA0 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001CD84 00018CA4 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001CD88 00018CA8 FC 01 00 2A */ fadd f0, f1, f0
/* 8001CD8C 00018CAC FC 00 00 18 */ frsp f0, f0
/* 8001CD90 00018CB0 D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 8001CD94 00018CB4 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001CD98 00018CB8 D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 8001CD9C 00018CBC 80 63 00 00 */ lwz r3, 0(r3)
/* 8001CDA0 00018CC0 38 03 FF E2 */ addi r0, r3, -30
/* 8001CDA4 00018CC4 54 1F 48 2D */ rlwinm. r31, r0, 9, 0, 0x16
/* 8001CDA8 00018CC8 40 80 00 08 */ bge lbl_8001CDB0
/* 8001CDAC 00018CCC 3B E0 00 00 */ li r31, 0
lbl_8001CDB0:
/* 8001CDB0 00018CD0 2C 1F 20 00 */ cmpwi r31, 0x2000
/* 8001CDB4 00018CD4 40 80 00 0C */ bge lbl_8001CDC0
/* 8001CDB8 00018CD8 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001CDBC 00018CDC 48 00 00 38 */ b lbl_8001CDF4
lbl_8001CDC0:
/* 8001CDC0 00018CE0 38 1F E0 00 */ addi r0, r31, -8192
/* 8001CDC4 00018CE4 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001CDC8 00018CE8 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001CDCC 00018CEC C8 42 86 48 */ lfd f2, lbl_802F2E48@sda21(r2)
/* 8001CDD0 00018CF0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001CDD4 00018CF4 3C 00 43 30 */ lis r0, 0x4330
/* 8001CDD8 00018CF8 C8 62 85 20 */ lfd f3, lbl_802F2D20@sda21(r2)
/* 8001CDDC 00018CFC 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001CDE0 00018D00 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8001CDE4 00018D04 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CDE8 00018D08 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CDEC 00018D0C FC 23 00 2A */ fadd f1, f3, f0
/* 8001CDF0 00018D10 FC 20 08 18 */ frsp f1, f1
lbl_8001CDF4:
/* 8001CDF4 00018D14 C0 5E 00 04 */ lfs f2, 4(r30)
/* 8001CDF8 00018D18 38 61 00 10 */ addi r3, r1, 0x10
/* 8001CDFC 00018D1C C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001CE00 00018D20 7C 64 1B 78 */ mr r4, r3
/* 8001CE04 00018D24 FC 40 10 50 */ fneg f2, f2
/* 8001CE08 00018D28 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 8001CE0C 00018D2C D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001CE10 00018D30 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001CE14 00018D34 FC 00 00 50 */ fneg f0, f0
/* 8001CE18 00018D38 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001CE1C 00018D3C 4B FE B3 59 */ bl mathutil_vec_set_len
/* 8001CE20 00018D40 4B FE A7 45 */ bl mathutil_mtxA_from_identity
/* 8001CE24 00018D44 7F E3 FB 78 */ mr r3, r31
/* 8001CE28 00018D48 4B FE B1 D5 */ bl mathutil_mtxA_rotate_y
/* 8001CE2C 00018D4C 38 61 00 10 */ addi r3, r1, 0x10
/* 8001CE30 00018D50 38 83 00 00 */ addi r4, r3, 0
/* 8001CE34 00018D54 4B FE B0 09 */ bl mathutil_mtxA_tf_vec
/* 8001CE38 00018D58 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001CE3C 00018D5C 6F E3 80 00 */ xoris r3, r31, 0x8000
/* 8001CE40 00018D60 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001CE44 00018D64 3C 00 43 30 */ lis r0, 0x4330
/* 8001CE48 00018D68 90 61 00 24 */ stw r3, 0x24(r1)
/* 8001CE4C 00018D6C EC 01 00 2A */ fadds f0, f1, f0
/* 8001CE50 00018D70 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001CE54 00018D74 D0 1D 00 00 */ stfs f0, 0(r29)
/* 8001CE58 00018D78 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8001CE5C 00018D7C C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001CE60 00018D80 C8 42 86 50 */ lfd f2, lbl_802F2E50@sda21(r2)
/* 8001CE64 00018D84 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CE68 00018D88 C8 62 84 48 */ lfd f3, lbl_802F2C48@sda21(r2)
/* 8001CE6C 00018D8C C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001CE70 00018D90 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CE74 00018D94 FC 23 08 2A */ fadd f1, f3, f1
/* 8001CE78 00018D98 FC 01 00 2A */ fadd f0, f1, f0
/* 8001CE7C 00018D9C FC 00 00 18 */ frsp f0, f0
/* 8001CE80 00018DA0 D0 1D 00 04 */ stfs f0, 4(r29)
/* 8001CE84 00018DA4 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001CE88 00018DA8 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001CE8C 00018DAC EC 01 00 2A */ fadds f0, f1, f0
/* 8001CE90 00018DB0 D0 1D 00 08 */ stfs f0, 8(r29)
/* 8001CE94 00018DB4 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8001CE98 00018DB8 C0 1D 00 00 */ lfs f0, 0(r29)
/* 8001CE9C 00018DBC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CEA0 00018DC0 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001CEA4 00018DC4 C0 3D 00 10 */ lfs f1, 0x10(r29)
/* 8001CEA8 00018DC8 C0 1D 00 04 */ lfs f0, 4(r29)
/* 8001CEAC 00018DCC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CEB0 00018DD0 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001CEB4 00018DD4 C0 3D 00 14 */ lfs f1, 0x14(r29)
/* 8001CEB8 00018DD8 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8001CEBC 00018DDC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001CEC0 00018DE0 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001CEC4 00018DE4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001CEC8 00018DE8 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001CECC 00018DEC 4B FE A3 D9 */ bl mathutil_atan2
/* 8001CED0 00018DF0 38 03 80 00 */ addi r0, r3, -32768
/* 8001CED4 00018DF4 B0 1D 00 1A */ sth r0, 0x1a(r29)
/* 8001CED8 00018DF8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001CEDC 00018DFC C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001CEE0 00018E00 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001CEE4 00018E04 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001CEE8 00018E08 4B FE A2 11 */ bl mathutil_sqrt
/* 8001CEEC 00018E0C FC 40 08 90 */ fmr f2, f1
/* 8001CEF0 00018E10 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001CEF4 00018E14 4B FE A3 B1 */ bl mathutil_atan2
/* 8001CEF8 00018E18 B0 7D 00 18 */ sth r3, 0x18(r29)
/* 8001CEFC 00018E1C 38 60 00 00 */ li r3, 0
/* 8001CF00 00018E20 38 00 00 22 */ li r0, 0x22
/* 8001CF04 00018E24 B0 7D 00 1C */ sth r3, 0x1c(r29)
/* 8001CF08 00018E28 98 1D 00 1E */ stb r0, 0x1e(r29)
/* 8001CF0C 00018E2C 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8001CF10 00018E30 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8001CF14 00018E34 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 8001CF18 00018E38 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 8001CF1C 00018E3C 38 21 00 38 */ addi r1, r1, 0x38
/* 8001CF20 00018E40 7C 08 03 A6 */ mtlr r0
/* 8001CF24 00018E44 4E 80 00 20 */ blr
.global func_8001CF28
func_8001CF28:
/* 8001CF28 00018E48 7C 08 02 A6 */ mflr r0
/* 8001CF2C 00018E4C 90 01 00 04 */ stw r0, 4(r1)
/* 8001CF30 00018E50 94 21 FF 98 */ stwu r1, -0x68(r1)
/* 8001CF34 00018E54 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 8001CF38 00018E58 DB C1 00 58 */ stfd f30, 0x58(r1)
/* 8001CF3C 00018E5C 93 E1 00 54 */ stw r31, 0x54(r1)
/* 8001CF40 00018E60 3B E4 00 00 */ addi r31, r4, 0
/* 8001CF44 00018E64 93 C1 00 50 */ stw r30, 0x50(r1)
/* 8001CF48 00018E68 3B C3 00 00 */ addi r30, r3, 0
/* 8001CF4C 00018E6C 93 A1 00 4C */ stw r29, 0x4c(r1)
/* 8001CF50 00018E70 93 81 00 48 */ stw r28, 0x48(r1)
/* 8001CF54 00018E74 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001CF58 00018E78 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001CF5C 00018E7C 40 82 03 A8 */ bne lbl_8001D304
/* 8001CF60 00018E80 80 9E 00 00 */ lwz r4, 0(r30)
/* 8001CF64 00018E84 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 8001CF68 00018E88 80 1E 00 04 */ lwz r0, 4(r30)
/* 8001CF6C 00018E8C 38 63 EC 20 */ addi r3, r3, modeCtrl@l
/* 8001CF70 00018E90 C8 42 84 E0 */ lfd f2, lbl_802F2CE0@sda21(r2)
/* 8001CF74 00018E94 90 81 00 1C */ stw r4, 0x1c(r1)
/* 8001CF78 00018E98 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001CF7C 00018E9C 80 1E 00 08 */ lwz r0, 8(r30)
/* 8001CF80 00018EA0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001CF84 00018EA4 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 8001CF88 00018EA8 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8001CF8C 00018EAC 90 81 00 10 */ stw r4, 0x10(r1)
/* 8001CF90 00018EB0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001CF94 00018EB4 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8001CF98 00018EB8 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001CF9C 00018EBC C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001CFA0 00018EC0 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001CFA4 00018EC4 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CFA8 00018EC8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CFAC 00018ECC FC 01 00 2A */ fadd f0, f1, f0
/* 8001CFB0 00018ED0 FC 00 00 18 */ frsp f0, f0
/* 8001CFB4 00018ED4 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001CFB8 00018ED8 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001CFBC 00018EDC C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001CFC0 00018EE0 FC 02 00 2A */ fadd f0, f2, f0
/* 8001CFC4 00018EE4 FC 00 08 28 */ fsub f0, f0, f1
/* 8001CFC8 00018EE8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CFCC 00018EEC FC 01 00 2A */ fadd f0, f1, f0
/* 8001CFD0 00018EF0 FC 00 00 18 */ frsp f0, f0
/* 8001CFD4 00018EF4 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001CFD8 00018EF8 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001CFDC 00018EFC C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001CFE0 00018F00 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001CFE4 00018F04 FC 02 00 32 */ fmul f0, f2, f0
/* 8001CFE8 00018F08 FC 01 00 2A */ fadd f0, f1, f0
/* 8001CFEC 00018F0C FC 00 00 18 */ frsp f0, f0
/* 8001CFF0 00018F10 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001CFF4 00018F14 80 63 00 00 */ lwz r3, 0(r3)
/* 8001CFF8 00018F18 38 03 FF E2 */ addi r0, r3, -30
/* 8001CFFC 00018F1C 54 1C 48 2D */ rlwinm. r28, r0, 9, 0, 0x16
/* 8001D000 00018F20 40 80 00 08 */ bge lbl_8001D008
/* 8001D004 00018F24 3B 80 00 00 */ li r28, 0
lbl_8001D008:
/* 8001D008 00018F28 2C 1C 20 00 */ cmpwi r28, 0x2000
/* 8001D00C 00018F2C 40 80 00 0C */ bge lbl_8001D018
/* 8001D010 00018F30 C3 C2 84 E8 */ lfs f30, lbl_802F2CE8@sda21(r2)
/* 8001D014 00018F34 48 00 00 38 */ b lbl_8001D04C
lbl_8001D018:
/* 8001D018 00018F38 38 1C E0 00 */ addi r0, r28, -8192
/* 8001D01C 00018F3C C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001D020 00018F40 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001D024 00018F44 C8 42 86 48 */ lfd f2, lbl_802F2E48@sda21(r2)
/* 8001D028 00018F48 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001D02C 00018F4C 3C 00 43 30 */ lis r0, 0x4330
/* 8001D030 00018F50 C8 62 85 20 */ lfd f3, lbl_802F2D20@sda21(r2)
/* 8001D034 00018F54 90 01 00 40 */ stw r0, 0x40(r1)
/* 8001D038 00018F58 C8 01 00 40 */ lfd f0, 0x40(r1)
/* 8001D03C 00018F5C EC 00 08 28 */ fsubs f0, f0, f1
/* 8001D040 00018F60 FC 02 00 32 */ fmul f0, f2, f0
/* 8001D044 00018F64 FF C3 00 2A */ fadd f30, f3, f0
/* 8001D048 00018F68 FF C0 F0 18 */ frsp f30, f30
lbl_8001D04C:
/* 8001D04C 00018F6C C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001D050 00018F70 3B A1 00 34 */ addi r29, r1, 0x34
/* 8001D054 00018F74 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001D058 00018F78 FC 20 08 50 */ fneg f1, f1
/* 8001D05C 00018F7C D0 21 00 34 */ stfs f1, 0x34(r1)
/* 8001D060 00018F80 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001D064 00018F84 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D068 00018F88 FC 00 00 50 */ fneg f0, f0
/* 8001D06C 00018F8C D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001D070 00018F90 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001D074 00018F94 C0 41 00 38 */ lfs f2, 0x38(r1)
/* 8001D078 00018F98 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001D07C 00018F9C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001D080 00018FA0 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001D084 00018FA4 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001D088 00018FA8 4B FE A0 71 */ bl mathutil_sqrt
/* 8001D08C 00018FAC FF E0 08 90 */ fmr f31, f1
/* 8001D090 00018FB0 7F A3 EB 78 */ mr r3, r29
/* 8001D094 00018FB4 FC 20 F0 90 */ fmr f1, f30
/* 8001D098 00018FB8 7F A4 EB 78 */ mr r4, r29
/* 8001D09C 00018FBC 4B FE B0 D9 */ bl mathutil_vec_set_len
/* 8001D0A0 00018FC0 4B FE A4 C5 */ bl mathutil_mtxA_from_identity
/* 8001D0A4 00018FC4 7F 83 E3 78 */ mr r3, r28
/* 8001D0A8 00018FC8 4B FE AF 55 */ bl mathutil_mtxA_rotate_y
/* 8001D0AC 00018FCC 38 7D 00 00 */ addi r3, r29, 0
/* 8001D0B0 00018FD0 38 9D 00 00 */ addi r4, r29, 0
/* 8001D0B4 00018FD4 4B FE AD 89 */ bl mathutil_mtxA_tf_vec
/* 8001D0B8 00018FD8 C8 02 86 58 */ lfd f0, lbl_802F2E58@sda21(r2)
/* 8001D0BC 00018FDC 6F 80 80 00 */ xoris r0, r28, 0x8000
/* 8001D0C0 00018FE0 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001D0C4 00018FE4 3C 00 43 30 */ lis r0, 0x4330
/* 8001D0C8 00018FE8 FC 1F 00 24 */ fdiv f0, f31, f0
/* 8001D0CC 00018FEC C8 22 84 48 */ lfd f1, lbl_802F2C48@sda21(r2)
/* 8001D0D0 00018FF0 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 8001D0D4 00018FF4 C0 61 00 34 */ lfs f3, 0x34(r1)
/* 8001D0D8 00018FF8 90 01 00 40 */ stw r0, 0x40(r1)
/* 8001D0DC 00018FFC FC 01 00 32 */ fmul f0, f1, f0
/* 8001D0E0 00019000 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001D0E4 00019004 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001D0E8 00019008 EC A3 08 2A */ fadds f5, f3, f1
/* 8001D0EC 0001900C C8 21 00 40 */ lfd f1, 0x40(r1)
/* 8001D0F0 00019010 EC 61 10 28 */ fsubs f3, f1, f2
/* 8001D0F4 00019014 D0 A1 00 28 */ stfs f5, 0x28(r1)
/* 8001D0F8 00019018 C8 82 86 50 */ lfd f4, lbl_802F2E50@sda21(r2)
/* 8001D0FC 0001901C C0 5F 00 08 */ lfs f2, 8(r31)
/* 8001D100 00019020 FC 64 00 F2 */ fmul f3, f4, f3
/* 8001D104 00019024 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001D108 00019028 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D10C 0001902C FC 03 00 2A */ fadd f0, f3, f0
/* 8001D110 00019030 FC 00 00 18 */ frsp f0, f0
/* 8001D114 00019034 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D118 00019038 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D11C 0001903C EC 01 00 2A */ fadds f0, f1, f0
/* 8001D120 00019040 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D124 00019044 80 03 EC 20 */ lwz r0, modeCtrl@l(r3)
/* 8001D128 00019048 2C 00 00 0F */ cmpwi r0, 0xf
/* 8001D12C 0001904C 40 81 00 88 */ ble lbl_8001D1B4
/* 8001D130 00019050 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D134 00019054 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001D138 00019058 C8 62 85 B0 */ lfd f3, lbl_802F2DB0@sda21(r2)
/* 8001D13C 0001905C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D140 00019060 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001D144 00019064 C8 82 85 08 */ lfd f4, lbl_802F2D08@sda21(r2)
/* 8001D148 00019068 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D14C 0001906C FC 00 08 28 */ fsub f0, f0, f1
/* 8001D150 00019070 FC 04 00 32 */ fmul f0, f4, f0
/* 8001D154 00019074 FC 01 00 2A */ fadd f0, f1, f0
/* 8001D158 00019078 FC 00 00 18 */ frsp f0, f0
/* 8001D15C 0001907C D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001D160 00019080 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001D164 00019084 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D168 00019088 C0 5E 00 98 */ lfs f2, 0x98(r30)
/* 8001D16C 0001908C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D170 00019090 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D174 00019094 FC 00 10 28 */ fsub f0, f0, f2
/* 8001D178 00019098 FC 04 00 32 */ fmul f0, f4, f0
/* 8001D17C 0001909C FC 02 00 2A */ fadd f0, f2, f0
/* 8001D180 000190A0 FC 00 00 18 */ frsp f0, f0
/* 8001D184 000190A4 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001D188 000190A8 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001D18C 000190AC C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D190 000190B0 C0 5E 00 9C */ lfs f2, 0x9c(r30)
/* 8001D194 000190B4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D198 000190B8 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D19C 000190BC FC 00 10 28 */ fsub f0, f0, f2
/* 8001D1A0 000190C0 FC 04 00 32 */ fmul f0, f4, f0
/* 8001D1A4 000190C4 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D1A8 000190C8 FC 00 00 18 */ frsp f0, f0
/* 8001D1AC 000190CC D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001D1B0 000190D0 48 00 00 84 */ b lbl_8001D234
lbl_8001D1B4:
/* 8001D1B4 000190D4 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D1B8 000190D8 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001D1BC 000190DC C8 62 85 70 */ lfd f3, lbl_802F2D70@sda21(r2)
/* 8001D1C0 000190E0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D1C4 000190E4 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001D1C8 000190E8 C8 82 85 10 */ lfd f4, lbl_802F2D10@sda21(r2)
/* 8001D1CC 000190EC FC 03 00 32 */ fmul f0, f3, f0
/* 8001D1D0 000190F0 FC 00 08 28 */ fsub f0, f0, f1
/* 8001D1D4 000190F4 FC 04 00 32 */ fmul f0, f4, f0
/* 8001D1D8 000190F8 FC 01 00 2A */ fadd f0, f1, f0
/* 8001D1DC 000190FC FC 00 00 18 */ frsp f0, f0
/* 8001D1E0 00019100 D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001D1E4 00019104 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001D1E8 00019108 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D1EC 0001910C C0 5E 00 98 */ lfs f2, 0x98(r30)
/* 8001D1F0 00019110 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D1F4 00019114 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D1F8 00019118 FC 00 10 28 */ fsub f0, f0, f2
/* 8001D1FC 0001911C FC 04 00 32 */ fmul f0, f4, f0
/* 8001D200 00019120 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D204 00019124 FC 00 00 18 */ frsp f0, f0
/* 8001D208 00019128 D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001D20C 0001912C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001D210 00019130 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D214 00019134 C0 5E 00 9C */ lfs f2, 0x9c(r30)
/* 8001D218 00019138 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D21C 0001913C FC 03 00 32 */ fmul f0, f3, f0
/* 8001D220 00019140 FC 00 10 28 */ fsub f0, f0, f2
/* 8001D224 00019144 FC 04 00 32 */ fmul f0, f4, f0
/* 8001D228 00019148 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D22C 0001914C FC 00 00 18 */ frsp f0, f0
/* 8001D230 00019150 D0 1E 00 9C */ stfs f0, 0x9c(r30)
lbl_8001D234:
/* 8001D234 00019154 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001D238 00019158 C0 1E 00 94 */ lfs f0, 0x94(r30)
/* 8001D23C 0001915C EC 01 00 2A */ fadds f0, f1, f0
/* 8001D240 00019160 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001D244 00019164 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001D248 00019168 C0 1E 00 98 */ lfs f0, 0x98(r30)
/* 8001D24C 0001916C EC 01 00 2A */ fadds f0, f1, f0
/* 8001D250 00019170 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001D254 00019174 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001D258 00019178 C0 1E 00 9C */ lfs f0, 0x9c(r30)
/* 8001D25C 0001917C EC 01 00 2A */ fadds f0, f1, f0
/* 8001D260 00019180 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001D264 00019184 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001D268 00019188 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001D26C 0001918C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D270 00019190 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8001D274 00019194 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001D278 00019198 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D27C 0001919C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D280 000191A0 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001D284 000191A4 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001D288 000191A8 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D28C 000191AC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D290 000191B0 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001D294 000191B4 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001D298 000191B8 C0 41 00 3C */ lfs f2, 0x3c(r1)
/* 8001D29C 000191BC 4B FE A0 09 */ bl mathutil_atan2
/* 8001D2A0 000191C0 38 03 80 00 */ addi r0, r3, -32768
/* 8001D2A4 000191C4 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001D2A8 000191C8 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001D2AC 000191CC C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001D2B0 000191D0 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001D2B4 000191D4 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001D2B8 000191D8 4B FE 9E 41 */ bl mathutil_sqrt
/* 8001D2BC 000191DC FC 40 08 90 */ fmr f2, f1
/* 8001D2C0 000191E0 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001D2C4 000191E4 4B FE 9F E1 */ bl mathutil_atan2
/* 8001D2C8 000191E8 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001D2CC 000191EC 38 00 00 00 */ li r0, 0
/* 8001D2D0 000191F0 B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 8001D2D4 000191F4 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001D2D8 000191F8 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001D2DC 000191FC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D2E0 00019200 D0 1E 00 A0 */ stfs f0, 0xa0(r30)
/* 8001D2E4 00019204 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001D2E8 00019208 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001D2EC 0001920C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D2F0 00019210 D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8001D2F4 00019214 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001D2F8 00019218 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001D2FC 0001921C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D300 00019220 D0 1E 00 A8 */ stfs f0, 0xa8(r30)
lbl_8001D304:
/* 8001D304 00019224 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 8001D308 00019228 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 8001D30C 0001922C CB C1 00 58 */ lfd f30, 0x58(r1)
/* 8001D310 00019230 7C 08 03 A6 */ mtlr r0
/* 8001D314 00019234 83 E1 00 54 */ lwz r31, 0x54(r1)
/* 8001D318 00019238 83 C1 00 50 */ lwz r30, 0x50(r1)
/* 8001D31C 0001923C 83 A1 00 4C */ lwz r29, 0x4c(r1)
/* 8001D320 00019240 83 81 00 48 */ lwz r28, 0x48(r1)
/* 8001D324 00019244 38 21 00 68 */ addi r1, r1, 0x68
/* 8001D328 00019248 4E 80 00 20 */ blr
.global func_8001D32C
func_8001D32C:
/* 8001D32C 0001924C 7C 08 02 A6 */ mflr r0
/* 8001D330 00019250 90 01 00 04 */ stw r0, 4(r1)
/* 8001D334 00019254 38 00 00 24 */ li r0, 0x24
/* 8001D338 00019258 94 21 FF F8 */ stwu r1, -8(r1)
/* 8001D33C 0001925C 98 03 00 1E */ stb r0, 0x1e(r3)
/* 8001D340 00019260 48 00 00 15 */ bl camera_sub_36
/* 8001D344 00019264 80 01 00 0C */ lwz r0, 0xc(r1)
/* 8001D348 00019268 38 21 00 08 */ addi r1, r1, 8
/* 8001D34C 0001926C 7C 08 03 A6 */ mtlr r0
/* 8001D350 00019270 4E 80 00 20 */ blr
.global camera_sub_36
camera_sub_36:
/* 8001D354 00019274 7C 08 02 A6 */ mflr r0
/* 8001D358 00019278 90 01 00 04 */ stw r0, 4(r1)
/* 8001D35C 0001927C 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 8001D360 00019280 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 8001D364 00019284 DB C1 00 48 */ stfd f30, 0x48(r1)
/* 8001D368 00019288 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8001D36C 0001928C 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8001D370 00019290 3B C4 00 00 */ addi r30, r4, 0
/* 8001D374 00019294 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 8001D378 00019298 3B A3 00 00 */ addi r29, r3, 0
/* 8001D37C 0001929C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001D380 000192A0 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001D384 000192A4 40 82 03 60 */ bne lbl_8001D6E4
/* 8001D388 000192A8 80 7D 00 00 */ lwz r3, 0(r29)
/* 8001D38C 000192AC 3B E1 00 28 */ addi r31, r1, 0x28
/* 8001D390 000192B0 80 1D 00 04 */ lwz r0, 4(r29)
/* 8001D394 000192B4 90 61 00 1C */ stw r3, 0x1c(r1)
/* 8001D398 000192B8 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001D39C 000192BC 80 1D 00 08 */ lwz r0, 8(r29)
/* 8001D3A0 000192C0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001D3A4 000192C4 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8001D3A8 000192C8 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 8001D3AC 000192CC 90 61 00 10 */ stw r3, 0x10(r1)
/* 8001D3B0 000192D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001D3B4 000192D4 80 1D 00 14 */ lwz r0, 0x14(r29)
/* 8001D3B8 000192D8 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001D3BC 000192DC C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D3C0 000192E0 D0 1D 00 0C */ stfs f0, 0xc(r29)
/* 8001D3C4 000192E4 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001D3C8 000192E8 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D3CC 000192EC FC 01 00 2A */ fadd f0, f1, f0
/* 8001D3D0 000192F0 FC 00 00 18 */ frsp f0, f0
/* 8001D3D4 000192F4 D0 1D 00 10 */ stfs f0, 0x10(r29)
/* 8001D3D8 000192F8 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001D3DC 000192FC D0 1D 00 14 */ stfs f0, 0x14(r29)
/* 8001D3E0 00019300 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001D3E4 00019304 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001D3E8 00019308 FC 20 08 50 */ fneg f1, f1
/* 8001D3EC 0001930C D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8001D3F0 00019310 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D3F4 00019314 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001D3F8 00019318 FC 00 00 50 */ fneg f0, f0
/* 8001D3FC 0001931C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D400 00019320 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D404 00019324 C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8001D408 00019328 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001D40C 0001932C EC 21 00 72 */ fmuls f1, f1, f1
/* 8001D410 00019330 EC 22 08 BA */ fmadds f1, f2, f2, f1
/* 8001D414 00019334 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001D418 00019338 4B FE 9C E1 */ bl mathutil_sqrt
/* 8001D41C 0001933C FF E0 08 90 */ fmr f31, f1
/* 8001D420 00019340 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001D424 00019344 38 7F 00 00 */ addi r3, r31, 0
/* 8001D428 00019348 38 9F 00 00 */ addi r4, r31, 0
/* 8001D42C 0001934C 4B FE AD 49 */ bl mathutil_vec_set_len
/* 8001D430 00019350 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D434 00019354 7F E3 FB 78 */ mr r3, r31
/* 8001D438 00019358 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D43C 0001935C 7F E4 FB 78 */ mr r4, r31
/* 8001D440 00019360 C8 62 86 60 */ lfd f3, lbl_802F2E60@sda21(r2)
/* 8001D444 00019364 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D448 00019368 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001D44C 0001936C D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D450 00019370 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D454 00019374 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001D458 00019378 EC 02 00 2A */ fadds f0, f2, f0
/* 8001D45C 0001937C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D460 00019380 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001D464 00019384 C0 1D 00 00 */ lfs f0, 0(r29)
/* 8001D468 00019388 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001D46C 0001938C FC 03 00 32 */ fmul f0, f3, f0
/* 8001D470 00019390 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D474 00019394 FC 00 00 18 */ frsp f0, f0
/* 8001D478 00019398 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D47C 0001939C C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D480 000193A0 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8001D484 000193A4 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001D488 000193A8 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D48C 000193AC FC 02 00 2A */ fadd f0, f2, f0
/* 8001D490 000193B0 FC 00 00 18 */ frsp f0, f0
/* 8001D494 000193B4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D498 000193B8 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001D49C 000193BC C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D4A0 000193C0 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001D4A4 000193C4 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D4A8 000193C8 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D4AC 000193CC C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001D4B0 000193D0 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001D4B4 000193D4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D4B8 000193D8 4B FE AC BD */ bl mathutil_vec_set_len
/* 8001D4BC 000193DC C8 02 86 58 */ lfd f0, lbl_802F2E58@sda21(r2)
/* 8001D4C0 000193E0 C8 22 84 48 */ lfd f1, lbl_802F2C48@sda21(r2)
/* 8001D4C4 000193E4 FC 1F 00 24 */ fdiv f0, f31, f0
/* 8001D4C8 000193E8 C0 5E 00 08 */ lfs f2, 8(r30)
/* 8001D4CC 000193EC FC 01 00 32 */ fmul f0, f1, f0
/* 8001D4D0 000193F0 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D4D4 000193F4 FC 00 00 18 */ frsp f0, f0
/* 8001D4D8 000193F8 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D4DC 000193FC C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D4E0 00019400 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D4E4 00019404 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D4E8 00019408 D0 1D 00 00 */ stfs f0, 0(r29)
/* 8001D4EC 0001940C C0 5D 00 04 */ lfs f2, 4(r29)
/* 8001D4F0 00019410 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8001D4F4 00019414 C8 22 85 40 */ lfd f1, lbl_802F2D40@sda21(r2)
/* 8001D4F8 00019418 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001D4FC 0001941C FC 01 00 32 */ fmul f0, f1, f0
/* 8001D500 00019420 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D504 00019424 FC 00 00 18 */ frsp f0, f0
/* 8001D508 00019428 D0 1D 00 04 */ stfs f0, 4(r29)
/* 8001D50C 0001942C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001D510 00019430 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 8001D514 00019434 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D518 00019438 D0 1D 00 08 */ stfs f0, 8(r29)
/* 8001D51C 0001943C C0 7D 00 00 */ lfs f3, 0(r29)
/* 8001D520 00019440 C0 5D 00 08 */ lfs f2, 8(r29)
/* 8001D524 00019444 EC 23 00 F2 */ fmuls f1, f3, f3
/* 8001D528 00019448 C0 A2 84 18 */ lfs f5, lbl_802F2C18@sda21(r2)
/* 8001D52C 0001944C EC 02 00 B2 */ fmuls f0, f2, f2
/* 8001D530 00019450 C0 9E 00 0C */ lfs f4, 0xc(r30)
/* 8001D534 00019454 C3 FE 00 04 */ lfs f31, 4(r30)
/* 8001D538 00019458 EC 21 00 2A */ fadds f1, f1, f0
/* 8001D53C 0001945C EF FF 00 F2 */ fmuls f31, f31, f3
/* 8001D540 00019460 EF E5 F9 7A */ fmadds f31, f5, f5, f31
/* 8001D544 00019464 EF E4 F8 BA */ fmadds f31, f4, f2, f31
/* 8001D548 00019468 C0 02 86 68 */ lfs f0, lbl_802F2E68@sda21(r2)
/* 8001D54C 0001946C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001D550 00019470 41 80 00 0C */ blt lbl_8001D55C
/* 8001D554 00019474 FC 1F 28 40 */ fcmpo cr0, f31, f5
/* 8001D558 00019478 40 80 00 BC */ bge lbl_8001D614
lbl_8001D55C:
/* 8001D55C 0001947C 4B FE 9B 9D */ bl mathutil_sqrt
/* 8001D560 00019480 C0 A2 86 6C */ lfs f5, lbl_802F2E6C@sda21(r2)
/* 8001D564 00019484 FF C0 08 90 */ fmr f30, f1
/* 8001D568 00019488 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D56C 0001948C C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 8001D570 00019490 EC 85 00 32 */ fmuls f4, f5, f0
/* 8001D574 00019494 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 8001D578 00019498 C0 62 84 18 */ lfs f3, lbl_802F2C18@sda21(r2)
/* 8001D57C 0001949C FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 8001D580 000194A0 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001D584 000194A4 EC 44 10 2A */ fadds f2, f4, f2
/* 8001D588 000194A8 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8001D58C 000194AC D0 61 00 2C */ stfs f3, 0x2c(r1)
/* 8001D590 000194B0 C0 5E 00 0C */ lfs f2, 0xc(r30)
/* 8001D594 000194B4 EC 45 00 B2 */ fmuls f2, f5, f2
/* 8001D598 000194B8 EC 02 00 2A */ fadds f0, f2, f0
/* 8001D59C 000194BC D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D5A0 000194C0 41 80 00 0C */ blt lbl_8001D5AC
/* 8001D5A4 000194C4 FC 1F 18 40 */ fcmpo cr0, f31, f3
/* 8001D5A8 000194C8 40 80 00 28 */ bge lbl_8001D5D0
lbl_8001D5AC:
/* 8001D5AC 000194CC 38 61 00 28 */ addi r3, r1, 0x28
/* 8001D5B0 000194D0 C0 22 84 20 */ lfs f1, lbl_802F2C20@sda21(r2)
/* 8001D5B4 000194D4 7C 64 1B 78 */ mr r4, r3
/* 8001D5B8 000194D8 4B FE AB BD */ bl mathutil_vec_set_len
/* 8001D5BC 000194DC C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001D5C0 000194E0 D0 1D 00 00 */ stfs f0, 0(r29)
/* 8001D5C4 000194E4 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001D5C8 000194E8 D0 1D 00 08 */ stfs f0, 8(r29)
/* 8001D5CC 000194EC 48 00 00 48 */ b lbl_8001D614
lbl_8001D5D0:
/* 8001D5D0 000194F0 38 61 00 28 */ addi r3, r1, 0x28
/* 8001D5D4 000194F4 38 83 00 00 */ addi r4, r3, 0
/* 8001D5D8 000194F8 4B FE AB 9D */ bl mathutil_vec_set_len
/* 8001D5DC 000194FC C0 42 85 E0 */ lfs f2, lbl_802F2DE0@sda21(r2)
/* 8001D5E0 00019500 C0 3D 00 00 */ lfs f1, 0(r29)
/* 8001D5E4 00019504 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001D5E8 00019508 EC 42 F0 28 */ fsubs f2, f2, f30
/* 8001D5EC 0001950C EC 00 08 28 */ fsubs f0, f0, f1
/* 8001D5F0 00019510 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001D5F4 00019514 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D5F8 00019518 D0 1D 00 00 */ stfs f0, 0(r29)
/* 8001D5FC 0001951C C0 3D 00 08 */ lfs f1, 8(r29)
/* 8001D600 00019520 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001D604 00019524 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001D608 00019528 EC 02 00 32 */ fmuls f0, f2, f0
/* 8001D60C 0001952C EC 01 00 2A */ fadds f0, f1, f0
/* 8001D610 00019530 D0 1D 00 08 */ stfs f0, 8(r29)
lbl_8001D614:
/* 8001D614 00019534 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8001D618 00019538 C0 1D 00 00 */ lfs f0, 0(r29)
/* 8001D61C 0001953C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D620 00019540 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D624 00019544 C0 3D 00 10 */ lfs f1, 0x10(r29)
/* 8001D628 00019548 C0 1D 00 04 */ lfs f0, 4(r29)
/* 8001D62C 0001954C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D630 00019550 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D634 00019554 C0 3D 00 14 */ lfs f1, 0x14(r29)
/* 8001D638 00019558 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8001D63C 0001955C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D640 00019560 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D644 00019564 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D648 00019568 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D64C 0001956C 4B FE 9C 59 */ bl mathutil_atan2
/* 8001D650 00019570 38 03 80 00 */ addi r0, r3, -32768
/* 8001D654 00019574 B0 1D 00 1A */ sth r0, 0x1a(r29)
/* 8001D658 00019578 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001D65C 0001957C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D660 00019580 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001D664 00019584 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001D668 00019588 4B FE 9A 91 */ bl mathutil_sqrt
/* 8001D66C 0001958C FC 40 08 90 */ fmr f2, f1
/* 8001D670 00019590 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001D674 00019594 4B FE 9C 31 */ bl mathutil_atan2
/* 8001D678 00019598 B0 7D 00 18 */ sth r3, 0x18(r29)
/* 8001D67C 0001959C 38 00 00 00 */ li r0, 0
/* 8001D680 000195A0 B0 1D 00 1C */ sth r0, 0x1c(r29)
/* 8001D684 000195A4 C0 3D 00 00 */ lfs f1, 0(r29)
/* 8001D688 000195A8 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001D68C 000195AC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D690 000195B0 D0 1D 00 94 */ stfs f0, 0x94(r29)
/* 8001D694 000195B4 C0 3D 00 04 */ lfs f1, 4(r29)
/* 8001D698 000195B8 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001D69C 000195BC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D6A0 000195C0 D0 1D 00 98 */ stfs f0, 0x98(r29)
/* 8001D6A4 000195C4 C0 3D 00 08 */ lfs f1, 8(r29)
/* 8001D6A8 000195C8 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001D6AC 000195CC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D6B0 000195D0 D0 1D 00 9C */ stfs f0, 0x9c(r29)
/* 8001D6B4 000195D4 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8001D6B8 000195D8 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001D6BC 000195DC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D6C0 000195E0 D0 1D 00 A0 */ stfs f0, 0xa0(r29)
/* 8001D6C4 000195E4 C0 3D 00 10 */ lfs f1, 0x10(r29)
/* 8001D6C8 000195E8 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001D6CC 000195EC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D6D0 000195F0 D0 1D 00 A4 */ stfs f0, 0xa4(r29)
/* 8001D6D4 000195F4 C0 3D 00 14 */ lfs f1, 0x14(r29)
/* 8001D6D8 000195F8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001D6DC 000195FC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D6E0 00019600 D0 1D 00 A8 */ stfs f0, 0xa8(r29)
lbl_8001D6E4:
/* 8001D6E4 00019604 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 8001D6E8 00019608 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 8001D6EC 0001960C CB C1 00 48 */ lfd f30, 0x48(r1)
/* 8001D6F0 00019610 7C 08 03 A6 */ mtlr r0
/* 8001D6F4 00019614 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 8001D6F8 00019618 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 8001D6FC 0001961C 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 8001D700 00019620 38 21 00 58 */ addi r1, r1, 0x58
/* 8001D704 00019624 4E 80 00 20 */ blr
.global func_8001D708
func_8001D708:
/* 8001D708 00019628 7C 08 02 A6 */ mflr r0
/* 8001D70C 0001962C 90 01 00 04 */ stw r0, 4(r1)
/* 8001D710 00019630 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8001D714 00019634 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8001D718 00019638 3B E4 00 00 */ addi r31, r4, 0
/* 8001D71C 0001963C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8001D720 00019640 3B C3 00 00 */ addi r30, r3, 0
/* 8001D724 00019644 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001D728 00019648 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001D72C 0001964C 40 82 02 24 */ bne lbl_8001D950
/* 8001D730 00019650 80 BE 00 00 */ lwz r5, 0(r30)
/* 8001D734 00019654 38 61 00 28 */ addi r3, r1, 0x28
/* 8001D738 00019658 80 1E 00 04 */ lwz r0, 4(r30)
/* 8001D73C 0001965C 7C 64 1B 78 */ mr r4, r3
/* 8001D740 00019660 90 A1 00 1C */ stw r5, 0x1c(r1)
/* 8001D744 00019664 90 01 00 20 */ stw r0, 0x20(r1)
/* 8001D748 00019668 80 1E 00 08 */ lwz r0, 8(r30)
/* 8001D74C 0001966C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001D750 00019670 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 8001D754 00019674 80 1E 00 10 */ lwz r0, 0x10(r30)
/* 8001D758 00019678 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8001D75C 0001967C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001D760 00019680 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 8001D764 00019684 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001D768 00019688 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001D76C 0001968C D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001D770 00019690 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001D774 00019694 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001D778 00019698 FC 01 00 2A */ fadd f0, f1, f0
/* 8001D77C 0001969C FC 00 00 18 */ frsp f0, f0
/* 8001D780 000196A0 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001D784 000196A4 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D788 000196A8 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001D78C 000196AC 80 CD 9D 50 */ lwz r6, decodedStageLzPtr@sda21(r13)
/* 8001D790 000196B0 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001D794 000196B4 80 A6 00 1C */ lwz r5, 0x1c(r6)
/* 8001D798 000196B8 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001D79C 000196BC C0 45 00 00 */ lfs f2, 0(r5)
/* 8001D7A0 000196C0 FC 40 10 50 */ fneg f2, f2
/* 8001D7A4 000196C4 D0 41 00 28 */ stfs f2, 0x28(r1)
/* 8001D7A8 000196C8 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D7AC 000196CC 80 A6 00 1C */ lwz r5, 0x1c(r6)
/* 8001D7B0 000196D0 C0 05 00 08 */ lfs f0, 8(r5)
/* 8001D7B4 000196D4 FC 00 00 50 */ fneg f0, f0
/* 8001D7B8 000196D8 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D7BC 000196DC 4B FE A9 B9 */ bl mathutil_vec_set_len
/* 8001D7C0 000196E0 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D7C4 000196E4 38 61 00 28 */ addi r3, r1, 0x28
/* 8001D7C8 000196E8 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001D7CC 000196EC 7C 64 1B 78 */ mr r4, r3
/* 8001D7D0 000196F0 C8 62 86 60 */ lfd f3, lbl_802F2E60@sda21(r2)
/* 8001D7D4 000196F4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D7D8 000196F8 C0 22 84 E8 */ lfs f1, lbl_802F2CE8@sda21(r2)
/* 8001D7DC 000196FC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D7E0 00019700 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D7E4 00019704 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D7E8 00019708 EC 02 00 2A */ fadds f0, f2, f0
/* 8001D7EC 0001970C D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D7F0 00019710 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001D7F4 00019714 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001D7F8 00019718 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001D7FC 0001971C FC 03 00 32 */ fmul f0, f3, f0
/* 8001D800 00019720 FC 02 00 2A */ fadd f0, f2, f0
/* 8001D804 00019724 FC 00 00 18 */ frsp f0, f0
/* 8001D808 00019728 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D80C 0001972C C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D810 00019730 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D814 00019734 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001D818 00019738 FC 03 00 32 */ fmul f0, f3, f0
/* 8001D81C 0001973C FC 02 00 2A */ fadd f0, f2, f0
/* 8001D820 00019740 FC 00 00 18 */ frsp f0, f0
/* 8001D824 00019744 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D828 00019748 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001D82C 0001974C C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001D830 00019750 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001D834 00019754 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D838 00019758 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D83C 0001975C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D840 00019760 EC 02 00 28 */ fsubs f0, f2, f0
/* 8001D844 00019764 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D848 00019768 4B FE A9 2D */ bl mathutil_vec_set_len
/* 8001D84C 0001976C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D850 00019770 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001D854 00019774 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D858 00019778 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001D85C 0001977C C8 22 84 48 */ lfd f1, lbl_802F2C48@sda21(r2)
/* 8001D860 00019780 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001D864 00019784 FC 01 00 2A */ fadd f0, f1, f0
/* 8001D868 00019788 FC 00 00 18 */ frsp f0, f0
/* 8001D86C 0001978C D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001D870 00019790 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001D874 00019794 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001D878 00019798 EC 01 00 2A */ fadds f0, f1, f0
/* 8001D87C 0001979C D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001D880 000197A0 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001D884 000197A4 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001D888 000197A8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D88C 000197AC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001D890 000197B0 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001D894 000197B4 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001D898 000197B8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D89C 000197BC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001D8A0 000197C0 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001D8A4 000197C4 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001D8A8 000197C8 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D8AC 000197CC D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001D8B0 000197D0 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D8B4 000197D4 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001D8B8 000197D8 4B FE 99 ED */ bl mathutil_atan2
/* 8001D8BC 000197DC 38 03 80 00 */ addi r0, r3, -32768
/* 8001D8C0 000197E0 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001D8C4 000197E4 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001D8C8 000197E8 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001D8CC 000197EC EC 21 00 72 */ fmuls f1, f1, f1
/* 8001D8D0 000197F0 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001D8D4 000197F4 4B FE 98 25 */ bl mathutil_sqrt
/* 8001D8D8 000197F8 FC 40 08 90 */ fmr f2, f1
/* 8001D8DC 000197FC C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001D8E0 00019800 4B FE 99 C5 */ bl mathutil_atan2
/* 8001D8E4 00019804 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001D8E8 00019808 38 00 00 00 */ li r0, 0
/* 8001D8EC 0001980C B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 8001D8F0 00019810 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001D8F4 00019814 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001D8F8 00019818 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D8FC 0001981C D0 1E 00 94 */ stfs f0, 0x94(r30)
/* 8001D900 00019820 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001D904 00019824 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001D908 00019828 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D90C 0001982C D0 1E 00 98 */ stfs f0, 0x98(r30)
/* 8001D910 00019830 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001D914 00019834 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001D918 00019838 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D91C 0001983C D0 1E 00 9C */ stfs f0, 0x9c(r30)
/* 8001D920 00019840 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001D924 00019844 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001D928 00019848 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D92C 0001984C D0 1E 00 A0 */ stfs f0, 0xa0(r30)
/* 8001D930 00019850 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001D934 00019854 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001D938 00019858 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D93C 0001985C D0 1E 00 A4 */ stfs f0, 0xa4(r30)
/* 8001D940 00019860 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001D944 00019864 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001D948 00019868 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001D94C 0001986C D0 1E 00 A8 */ stfs f0, 0xa8(r30)
lbl_8001D950:
/* 8001D950 00019870 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8001D954 00019874 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8001D958 00019878 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8001D95C 0001987C 7C 08 03 A6 */ mtlr r0
/* 8001D960 00019880 38 21 00 40 */ addi r1, r1, 0x40
/* 8001D964 00019884 4E 80 00 20 */ blr
.global func_8001D968
func_8001D968:
/* 8001D968 00019888 4E 80 00 20 */ blr
.global func_8001D96C
func_8001D96C:
/* 8001D96C 0001988C 4E 80 00 20 */ blr
.global func_8001D970
func_8001D970:
/* 8001D970 00019890 7C 08 02 A6 */ mflr r0
/* 8001D974 00019894 90 01 00 04 */ stw r0, 4(r1)
/* 8001D978 00019898 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8001D97C 0001989C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8001D980 000198A0 3B E4 00 00 */ addi r31, r4, 0
/* 8001D984 000198A4 93 C1 00 10 */ stw r30, 0x10(r1)
/* 8001D988 000198A8 3B C3 00 00 */ addi r30, r3, 0
/* 8001D98C 000198AC 4B FF B1 65 */ bl camera_clear
/* 8001D990 000198B0 38 00 00 00 */ li r0, 0
/* 8001D994 000198B4 B0 1E 00 50 */ sth r0, 0x50(r30)
/* 8001D998 000198B8 38 00 00 06 */ li r0, 6
/* 8001D99C 000198BC 38 7E 00 00 */ addi r3, r30, 0
/* 8001D9A0 000198C0 98 1E 00 26 */ stb r0, 0x26(r30)
/* 8001D9A4 000198C4 7F E4 FB 78 */ mr r4, r31
/* 8001D9A8 000198C8 48 00 00 25 */ bl camera_sub_42
/* 8001D9AC 000198CC 38 00 00 2A */ li r0, 0x2a
/* 8001D9B0 000198D0 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001D9B4 000198D4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8001D9B8 000198D8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8001D9BC 000198DC 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8001D9C0 000198E0 7C 08 03 A6 */ mtlr r0
/* 8001D9C4 000198E4 38 21 00 18 */ addi r1, r1, 0x18
/* 8001D9C8 000198E8 4E 80 00 20 */ blr
.global camera_sub_42
camera_sub_42:
/* 8001D9CC 000198EC 7C 08 02 A6 */ mflr r0
/* 8001D9D0 000198F0 3C 80 80 17 */ lis r4, lbl_80176200@ha
/* 8001D9D4 000198F4 90 01 00 04 */ stw r0, 4(r1)
/* 8001D9D8 000198F8 38 84 62 00 */ addi r4, r4, lbl_80176200@l
/* 8001D9DC 000198FC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8001D9E0 00019900 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8001D9E4 00019904 3B E3 00 00 */ addi r31, r3, 0
/* 8001D9E8 00019908 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8001D9EC 0001990C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001D9F0 00019910 80 AD 9A 48 */ lwz r5, lbl_802F1C28@sda21(r13)
/* 8001D9F4 00019914 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001D9F8 00019918 41 82 00 10 */ beq lbl_8001DA08
/* 8001D9FC 0001991C 88 1F 00 1E */ lbz r0, 0x1e(r31)
/* 8001DA00 00019920 2C 00 00 2A */ cmpwi r0, 0x2a
/* 8001DA04 00019924 41 82 03 D4 */ beq lbl_8001DDD8
lbl_8001DA08:
/* 8001DA08 00019928 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 8001DA0C 0001992C 2C 03 01 E0 */ cmpwi r3, 0x1e0
/* 8001DA10 00019930 40 80 00 D8 */ bge lbl_8001DAE8
/* 8001DA14 00019934 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001DA18 00019938 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001DA1C 0001993C 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001DA20 00019940 3C 00 43 30 */ lis r0, 0x4330
/* 8001DA24 00019944 C0 82 86 70 */ lfs f4, lbl_802F2E70@sda21(r2)
/* 8001DA28 00019948 38 64 10 64 */ addi r3, r4, 0x1064
/* 8001DA2C 0001994C 90 01 00 30 */ stw r0, 0x30(r1)
/* 8001DA30 00019950 C8 42 85 28 */ lfd f2, lbl_802F2D28@sda21(r2)
/* 8001DA34 00019954 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 8001DA38 00019958 C8 A2 85 20 */ lfd f5, lbl_802F2D20@sda21(r2)
/* 8001DA3C 0001995C EC C0 08 28 */ fsubs f6, f0, f1
/* 8001DA40 00019960 C0 64 10 64 */ lfs f3, 0x1064(r4)
/* 8001DA44 00019964 C8 22 84 60 */ lfd f1, lbl_802F2C60@sda21(r2)
/* 8001DA48 00019968 C4 04 10 70 */ lfsu f0, 0x1070(r4)
/* 8001DA4C 0001996C EC C6 20 24 */ fdivs f6, f6, f4
/* 8001DA50 00019970 FC 82 01 B2 */ fmul f4, f2, f6
/* 8001DA54 00019974 EC 46 01 B2 */ fmuls f2, f6, f6
/* 8001DA58 00019978 FC 85 20 2A */ fadd f4, f5, f4
/* 8001DA5C 0001997C FC C4 00 B2 */ fmul f6, f4, f2
/* 8001DA60 00019980 FC C0 30 18 */ frsp f6, f6
/* 8001DA64 00019984 FC 41 30 28 */ fsub f2, f1, f6
/* 8001DA68 00019988 EC 00 01 B2 */ fmuls f0, f0, f6
/* 8001DA6C 0001998C FC 23 00 B2 */ fmul f1, f3, f2
/* 8001DA70 00019990 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DA74 00019994 FC 00 00 18 */ frsp f0, f0
/* 8001DA78 00019998 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001DA7C 0001999C C0 23 00 04 */ lfs f1, 4(r3)
/* 8001DA80 000199A0 C0 04 00 04 */ lfs f0, 4(r4)
/* 8001DA84 000199A4 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001DA88 000199A8 EC 00 01 B2 */ fmuls f0, f0, f6
/* 8001DA8C 000199AC FC 01 00 2A */ fadd f0, f1, f0
/* 8001DA90 000199B0 FC 00 00 18 */ frsp f0, f0
/* 8001DA94 000199B4 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001DA98 000199B8 C0 23 00 08 */ lfs f1, 8(r3)
/* 8001DA9C 000199BC C0 04 00 08 */ lfs f0, 8(r4)
/* 8001DAA0 000199C0 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001DAA4 000199C4 EC 00 01 B2 */ fmuls f0, f0, f6
/* 8001DAA8 000199C8 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DAAC 000199CC FC 00 00 18 */ frsp f0, f0
/* 8001DAB0 000199D0 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001DAB4 000199D4 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8001DAB8 000199D8 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001DABC 000199DC C8 42 85 08 */ lfd f2, lbl_802F2D08@sda21(r2)
/* 8001DAC0 000199E0 C0 25 00 34 */ lfs f1, 0x34(r5)
/* 8001DAC4 000199E4 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001DAC8 000199E8 FC 22 08 2A */ fadd f1, f2, f1
/* 8001DACC 000199EC FC 01 00 2A */ fadd f0, f1, f0
/* 8001DAD0 000199F0 FC 00 10 28 */ fsub f0, f0, f2
/* 8001DAD4 000199F4 FC 00 00 18 */ frsp f0, f0
/* 8001DAD8 000199F8 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001DADC 000199FC C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8001DAE0 00019A00 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001DAE4 00019A04 48 00 02 58 */ b lbl_8001DD3C
lbl_8001DAE8:
/* 8001DAE8 00019A08 2C 03 02 58 */ cmpwi r3, 0x258
/* 8001DAEC 00019A0C 40 80 00 44 */ bge lbl_8001DB30
/* 8001DAF0 00019A10 C0 04 10 70 */ lfs f0, 0x1070(r4)
/* 8001DAF4 00019A14 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001DAF8 00019A18 C0 04 10 74 */ lfs f0, 0x1074(r4)
/* 8001DAFC 00019A1C D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001DB00 00019A20 C0 04 10 78 */ lfs f0, 0x1078(r4)
/* 8001DB04 00019A24 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001DB08 00019A28 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8001DB0C 00019A2C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001DB10 00019A30 C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 8001DB14 00019A34 C0 05 00 34 */ lfs f0, 0x34(r5)
/* 8001DB18 00019A38 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DB1C 00019A3C FC 00 00 18 */ frsp f0, f0
/* 8001DB20 00019A40 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001DB24 00019A44 C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8001DB28 00019A48 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001DB2C 00019A4C 48 00 02 10 */ b lbl_8001DD3C
lbl_8001DB30:
/* 8001DB30 00019A50 2C 03 04 74 */ cmpwi r3, 0x474
/* 8001DB34 00019A54 40 80 00 FC */ bge lbl_8001DC30
/* 8001DB38 00019A58 38 03 FD A8 */ addi r0, r3, -600
/* 8001DB3C 00019A5C C8 A2 84 68 */ lfd f5, lbl_802F2C68@sda21(r2)
/* 8001DB40 00019A60 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001DB44 00019A64 C0 42 86 74 */ lfs f2, lbl_802F2E74@sda21(r2)
/* 8001DB48 00019A68 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001DB4C 00019A6C 3C 00 43 30 */ lis r0, 0x4330
/* 8001DB50 00019A70 C8 62 85 20 */ lfd f3, lbl_802F2D20@sda21(r2)
/* 8001DB54 00019A74 38 7F 00 0C */ addi r3, r31, 0xc
/* 8001DB58 00019A78 90 01 00 30 */ stw r0, 0x30(r1)
/* 8001DB5C 00019A7C C8 22 85 28 */ lfd f1, lbl_802F2D28@sda21(r2)
/* 8001DB60 00019A80 C8 81 00 30 */ lfd f4, 0x30(r1)
/* 8001DB64 00019A84 C4 04 10 7C */ lfsu f0, 0x107c(r4)
/* 8001DB68 00019A88 EC 84 28 28 */ fsubs f4, f4, f5
/* 8001DB6C 00019A8C D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001DB70 00019A90 EC 44 10 24 */ fdivs f2, f4, f2
/* 8001DB74 00019A94 C0 04 00 04 */ lfs f0, 4(r4)
/* 8001DB78 00019A98 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001DB7C 00019A9C C0 04 00 08 */ lfs f0, 8(r4)
/* 8001DB80 00019AA0 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001DB84 00019AA4 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001DB88 00019AA8 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8001DB8C 00019AAC D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001DB90 00019AB0 EC 42 00 B2 */ fmuls f2, f2, f2
/* 8001DB94 00019AB4 FC 63 08 2A */ fadd f3, f3, f1
/* 8001DB98 00019AB8 C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 8001DB9C 00019ABC C0 05 00 34 */ lfs f0, 0x34(r5)
/* 8001DBA0 00019AC0 FC 43 00 B2 */ fmul f2, f3, f2
/* 8001DBA4 00019AC4 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DBA8 00019AC8 FC 40 10 18 */ frsp f2, f2
/* 8001DBAC 00019ACC FC 00 00 18 */ frsp f0, f0
/* 8001DBB0 00019AD0 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001DBB4 00019AD4 C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8001DBB8 00019AD8 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001DBBC 00019ADC C8 22 84 60 */ lfd f1, lbl_802F2C60@sda21(r2)
/* 8001DBC0 00019AE0 C0 02 86 80 */ lfs f0, lbl_802F2E80@sda21(r2)
/* 8001DBC4 00019AE4 C0 9F 00 00 */ lfs f4, 0(r31)
/* 8001DBC8 00019AE8 FC 21 10 28 */ fsub f1, f1, f2
/* 8001DBCC 00019AEC C0 7F 00 0C */ lfs f3, 0xc(r31)
/* 8001DBD0 00019AF0 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001DBD4 00019AF4 C8 42 86 78 */ lfd f2, lbl_802F2E78@sda21(r2)
/* 8001DBD8 00019AF8 EC 64 18 28 */ fsubs f3, f4, f3
/* 8001DBDC 00019AFC FC 22 00 72 */ fmul f1, f2, f1
/* 8001DBE0 00019B00 D0 61 00 1C */ stfs f3, 0x1c(r1)
/* 8001DBE4 00019B04 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DBE8 00019B08 C0 5F 00 04 */ lfs f2, 4(r31)
/* 8001DBEC 00019B0C C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001DBF0 00019B10 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001DBF4 00019B14 FC 00 00 1E */ fctiwz f0, f0
/* 8001DBF8 00019B18 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 8001DBFC 00019B1C D8 01 00 28 */ stfd f0, 0x28(r1)
/* 8001DC00 00019B20 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001DC04 00019B24 C0 1F 00 14 */ lfs f0, 0x14(r31)
/* 8001DC08 00019B28 83 C1 00 2C */ lwz r30, 0x2c(r1)
/* 8001DC0C 00019B2C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001DC10 00019B30 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8001DC14 00019B34 4B FE 99 A9 */ bl mathutil_mtxA_from_translate
/* 8001DC18 00019B38 7F C3 F3 78 */ mr r3, r30
/* 8001DC1C 00019B3C 4B FE A3 E1 */ bl mathutil_mtxA_rotate_y
/* 8001DC20 00019B40 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001DC24 00019B44 38 9F 00 00 */ addi r4, r31, 0
/* 8001DC28 00019B48 4B FE A2 05 */ bl mathutil_mtxA_tf_point
/* 8001DC2C 00019B4C 48 00 01 10 */ b lbl_8001DD3C
lbl_8001DC30:
/* 8001DC30 00019B50 2C 03 04 B0 */ cmpwi r3, 0x4b0
/* 8001DC34 00019B54 40 80 00 44 */ bge lbl_8001DC78
/* 8001DC38 00019B58 C0 04 10 94 */ lfs f0, 0x1094(r4)
/* 8001DC3C 00019B5C D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001DC40 00019B60 C0 04 10 98 */ lfs f0, 0x1098(r4)
/* 8001DC44 00019B64 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001DC48 00019B68 C0 04 10 9C */ lfs f0, 0x109c(r4)
/* 8001DC4C 00019B6C D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001DC50 00019B70 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8001DC54 00019B74 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001DC58 00019B78 C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 8001DC5C 00019B7C C0 05 00 34 */ lfs f0, 0x34(r5)
/* 8001DC60 00019B80 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DC64 00019B84 FC 00 00 18 */ frsp f0, f0
/* 8001DC68 00019B88 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001DC6C 00019B8C C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8001DC70 00019B90 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 8001DC74 00019B94 48 00 00 C8 */ b lbl_8001DD3C
lbl_8001DC78:
/* 8001DC78 00019B98 38 03 FB 50 */ addi r0, r3, -1200
/* 8001DC7C 00019B9C C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001DC80 00019BA0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001DC84 00019BA4 C0 02 86 84 */ lfs f0, lbl_802F2E84@sda21(r2)
/* 8001DC88 00019BA8 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8001DC8C 00019BAC 3C 00 43 30 */ lis r0, 0x4330
/* 8001DC90 00019BB0 C8 62 84 30 */ lfd f3, lbl_802F2C30@sda21(r2)
/* 8001DC94 00019BB4 90 01 00 28 */ stw r0, 0x28(r1)
/* 8001DC98 00019BB8 C8 21 00 28 */ lfd f1, 0x28(r1)
/* 8001DC9C 00019BBC EC 21 10 28 */ fsubs f1, f1, f2
/* 8001DCA0 00019BC0 EC 81 00 24 */ fdivs f4, f1, f0
/* 8001DCA4 00019BC4 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 8001DCA8 00019BC8 40 80 00 08 */ bge lbl_8001DCB0
/* 8001DCAC 00019BCC 48 00 00 18 */ b lbl_8001DCC4
lbl_8001DCB0:
/* 8001DCB0 00019BD0 C8 62 84 60 */ lfd f3, lbl_802F2C60@sda21(r2)
/* 8001DCB4 00019BD4 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 8001DCB8 00019BD8 40 81 00 08 */ ble lbl_8001DCC0
/* 8001DCBC 00019BDC 48 00 00 08 */ b lbl_8001DCC4
lbl_8001DCC0:
/* 8001DCC0 00019BE0 FC 60 20 90 */ fmr f3, f4
lbl_8001DCC4:
/* 8001DCC4 00019BE4 FC 80 18 18 */ frsp f4, f3
/* 8001DCC8 00019BE8 C8 42 85 28 */ lfd f2, lbl_802F2D28@sda21(r2)
/* 8001DCCC 00019BEC C8 22 85 20 */ lfd f1, lbl_802F2D20@sda21(r2)
/* 8001DCD0 00019BF0 C0 04 10 94 */ lfs f0, 0x1094(r4)
/* 8001DCD4 00019BF4 FC 42 01 32 */ fmul f2, f2, f4
/* 8001DCD8 00019BF8 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001DCDC 00019BFC FC 21 01 32 */ fmul f1, f1, f4
/* 8001DCE0 00019C00 C0 04 10 98 */ lfs f0, 0x1098(r4)
/* 8001DCE4 00019C04 FC 62 01 32 */ fmul f3, f2, f4
/* 8001DCE8 00019C08 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001DCEC 00019C0C FC 41 01 32 */ fmul f2, f1, f4
/* 8001DCF0 00019C10 C8 02 86 88 */ lfd f0, lbl_802F2E88@sda21(r2)
/* 8001DCF4 00019C14 FC 64 00 F2 */ fmul f3, f4, f3
/* 8001DCF8 00019C18 C0 24 10 9C */ lfs f1, 0x109c(r4)
/* 8001DCFC 00019C1C FC 83 10 2A */ fadd f4, f3, f2
/* 8001DD00 00019C20 FC 80 20 18 */ frsp f4, f4
/* 8001DD04 00019C24 FC 00 01 32 */ fmul f0, f0, f4
/* 8001DD08 00019C28 FC 01 00 28 */ fsub f0, f1, f0
/* 8001DD0C 00019C2C FC 00 00 18 */ frsp f0, f0
/* 8001DD10 00019C30 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001DD14 00019C34 C0 05 00 30 */ lfs f0, 0x30(r5)
/* 8001DD18 00019C38 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001DD1C 00019C3C C8 02 86 90 */ lfd f0, lbl_802F2E90@sda21(r2)
/* 8001DD20 00019C40 C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 8001DD24 00019C44 FC 00 01 32 */ fmul f0, f0, f4
/* 8001DD28 00019C48 FC 01 00 2A */ fadd f0, f1, f0
/* 8001DD2C 00019C4C FC 00 00 18 */ frsp f0, f0
/* 8001DD30 00019C50 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001DD34 00019C54 C0 05 00 38 */ lfs f0, 0x38(r5)
/* 8001DD38 00019C58 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_8001DD3C:
/* 8001DD3C 00019C5C C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001DD40 00019C60 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001DD44 00019C64 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001DD48 00019C68 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001DD4C 00019C6C C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001DD50 00019C70 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001DD54 00019C74 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001DD58 00019C78 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001DD5C 00019C7C C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001DD60 00019C80 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001DD64 00019C84 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001DD68 00019C88 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001DD6C 00019C8C C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001DD70 00019C90 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 8001DD74 00019C94 4B FE 95 31 */ bl mathutil_atan2
/* 8001DD78 00019C98 38 03 80 00 */ addi r0, r3, -32768
/* 8001DD7C 00019C9C B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001DD80 00019CA0 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001DD84 00019CA4 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001DD88 00019CA8 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001DD8C 00019CAC EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001DD90 00019CB0 4B FE 93 69 */ bl mathutil_sqrt
/* 8001DD94 00019CB4 FC 40 08 90 */ fmr f2, f1
/* 8001DD98 00019CB8 C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001DD9C 00019CBC 4B FE 95 09 */ bl mathutil_atan2
/* 8001DDA0 00019CC0 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001DDA4 00019CC4 38 00 00 00 */ li r0, 0
/* 8001DDA8 00019CC8 3C 60 80 1F */ lis r3, lbl_801F3D88@ha
/* 8001DDAC 00019CCC B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001DDB0 00019CD0 A0 03 3D 88 */ lhz r0, lbl_801F3D88@l(r3)
/* 8001DDB4 00019CD4 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8001DDB8 00019CD8 41 82 00 14 */ beq lbl_8001DDCC
/* 8001DDBC 00019CDC A8 7F 00 50 */ lha r3, 0x50(r31)
/* 8001DDC0 00019CE0 38 03 00 02 */ addi r0, r3, 2
/* 8001DDC4 00019CE4 B0 1F 00 50 */ sth r0, 0x50(r31)
/* 8001DDC8 00019CE8 48 00 00 10 */ b lbl_8001DDD8
lbl_8001DDCC:
/* 8001DDCC 00019CEC A8 7F 00 50 */ lha r3, 0x50(r31)
/* 8001DDD0 00019CF0 38 03 00 01 */ addi r0, r3, 1
/* 8001DDD4 00019CF4 B0 1F 00 50 */ sth r0, 0x50(r31)
lbl_8001DDD8:
/* 8001DDD8 00019CF8 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8001DDDC 00019CFC 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8001DDE0 00019D00 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8001DDE4 00019D04 7C 08 03 A6 */ mtlr r0
/* 8001DDE8 00019D08 38 21 00 40 */ addi r1, r1, 0x40
/* 8001DDEC 00019D0C 4E 80 00 20 */ blr
.global func_8001DDF0
func_8001DDF0:
/* 8001DDF0 00019D10 7C 08 02 A6 */ mflr r0
/* 8001DDF4 00019D14 90 01 00 04 */ stw r0, 4(r1)
/* 8001DDF8 00019D18 94 21 FF 10 */ stwu r1, -0xf0(r1)
/* 8001DDFC 00019D1C DB E1 00 E8 */ stfd f31, 0xe8(r1)
/* 8001DE00 00019D20 BF 61 00 D4 */ stmw r27, 0xd4(r1)
/* 8001DE04 00019D24 3B 83 00 00 */ addi r28, r3, 0
/* 8001DE08 00019D28 3B A4 00 00 */ addi r29, r4, 0
/* 8001DE0C 00019D2C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001DE10 00019D30 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001DE14 00019D34 40 82 02 7C */ bne lbl_8001E090
/* 8001DE18 00019D38 7F 83 E3 78 */ mr r3, r28
/* 8001DE1C 00019D3C 4B FF AC D5 */ bl camera_clear
/* 8001DE20 00019D40 38 00 00 00 */ li r0, 0
/* 8001DE24 00019D44 B0 1C 00 50 */ sth r0, 0x50(r28)
/* 8001DE28 00019D48 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001DE2C 00019D4C 3C 80 80 1F */ lis r4, lbl_801EFB94@ha
/* 8001DE30 00019D50 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8001DE34 00019D54 3B 63 0A 68 */ addi r27, r3, lbl_80250A68@l
/* 8001DE38 00019D58 80 BC 02 04 */ lwz r5, 0x204(r28)
/* 8001DE3C 00019D5C 38 84 FB 94 */ addi r4, r4, lbl_801EFB94@l
/* 8001DE40 00019D60 7C 00 07 74 */ extsb r0, r0
/* 8001DE44 00019D64 54 00 10 3A */ slwi r0, r0, 2
/* 8001DE48 00019D68 7C 7B 02 14 */ add r3, r27, r0
/* 8001DE4C 00019D6C 54 A0 28 34 */ slwi r0, r5, 5
/* 8001DE50 00019D70 80 63 00 00 */ lwz r3, 0(r3)
/* 8001DE54 00019D74 7F C4 02 14 */ add r30, r4, r0
/* 8001DE58 00019D78 48 02 B7 F5 */ bl func_8004964C
/* 8001DE5C 00019D7C 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8001DE60 00019D80 FF E0 08 90 */ fmr f31, f1
/* 8001DE64 00019D84 38 9E 00 08 */ addi r4, r30, 8
/* 8001DE68 00019D88 7C 00 07 74 */ extsb r0, r0
/* 8001DE6C 00019D8C 54 00 10 3A */ slwi r0, r0, 2
/* 8001DE70 00019D90 7C 7B 02 14 */ add r3, r27, r0
/* 8001DE74 00019D94 80 63 00 00 */ lwz r3, 0(r3)
/* 8001DE78 00019D98 48 02 C0 A9 */ bl g_get_replay_info
/* 8001DE7C 00019D9C 3B E0 00 00 */ li r31, 0
/* 8001DE80 00019DA0 57 E0 10 3A */ slwi r0, r31, 2
/* 8001DE84 00019DA4 38 81 00 50 */ addi r4, r1, 0x50
/* 8001DE88 00019DA8 38 60 00 05 */ li r3, 5
/* 8001DE8C 00019DAC 7C 64 01 2E */ stwx r3, r4, r0
/* 8001DE90 00019DB0 3B E0 00 01 */ li r31, 1
/* 8001DE94 00019DB4 A0 1E 00 08 */ lhz r0, 8(r30)
/* 8001DE98 00019DB8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8001DE9C 00019DBC 41 82 00 28 */ beq lbl_8001DEC4
/* 8001DEA0 00019DC0 C0 02 86 98 */ lfs f0, lbl_802F2E98@sda21(r2)
/* 8001DEA4 00019DC4 C0 3B 00 10 */ lfs f1, 0x10(r27)
/* 8001DEA8 00019DC8 EC 1F 00 28 */ fsubs f0, f31, f0
/* 8001DEAC 00019DCC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001DEB0 00019DD0 40 81 00 14 */ ble lbl_8001DEC4
/* 8001DEB4 00019DD4 57 E0 10 3A */ slwi r0, r31, 2
/* 8001DEB8 00019DD8 38 60 00 10 */ li r3, 0x10
/* 8001DEBC 00019DDC 7C 64 01 2E */ stwx r3, r4, r0
/* 8001DEC0 00019DE0 3B E0 00 02 */ li r31, 2
lbl_8001DEC4:
/* 8001DEC4 00019DE4 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8001DEC8 00019DE8 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001DECC 00019DEC 3B 63 0A 68 */ addi r27, r3, lbl_80250A68@l
/* 8001DED0 00019DF0 7C 00 07 74 */ extsb r0, r0
/* 8001DED4 00019DF4 C0 3B 00 10 */ lfs f1, 0x10(r27)
/* 8001DED8 00019DF8 54 00 10 3A */ slwi r0, r0, 2
/* 8001DEDC 00019DFC 7C 7B 02 14 */ add r3, r27, r0
/* 8001DEE0 00019E00 80 63 00 00 */ lwz r3, 0(r3)
/* 8001DEE4 00019E04 38 81 00 10 */ addi r4, r1, 0x10
/* 8001DEE8 00019E08 48 02 B7 D5 */ bl func_800496BC
/* 8001DEEC 00019E0C 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8001DEF0 00019E10 38 81 00 30 */ addi r4, r1, 0x30
/* 8001DEF4 00019E14 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001DEF8 00019E18 7C 00 07 74 */ extsb r0, r0
/* 8001DEFC 00019E1C 54 00 10 3A */ slwi r0, r0, 2
/* 8001DF00 00019E20 7C 7B 02 14 */ add r3, r27, r0
/* 8001DF04 00019E24 80 63 00 00 */ lwz r3, 0(r3)
/* 8001DF08 00019E28 48 02 B7 B5 */ bl func_800496BC
/* 8001DF0C 00019E2C C0 A1 00 10 */ lfs f5, 0x10(r1)
/* 8001DF10 00019E30 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001DF14 00019E34 C0 81 00 14 */ lfs f4, 0x14(r1)
/* 8001DF18 00019E38 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001DF1C 00019E3C C0 61 00 18 */ lfs f3, 0x18(r1)
/* 8001DF20 00019E40 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001DF24 00019E44 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001DF28 00019E48 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001DF2C 00019E4C EC 63 00 28 */ fsubs f3, f3, f0
/* 8001DF30 00019E50 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001DF34 00019E54 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001DF38 00019E58 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001DF3C 00019E5C 4B FE 91 BD */ bl mathutil_sqrt
/* 8001DF40 00019E60 C8 02 85 C8 */ lfd f0, lbl_802F2DC8@sda21(r2)
/* 8001DF44 00019E64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001DF48 00019E68 40 80 00 18 */ bge lbl_8001DF60
/* 8001DF4C 00019E6C 57 E0 10 3A */ slwi r0, r31, 2
/* 8001DF50 00019E70 38 61 00 50 */ addi r3, r1, 0x50
/* 8001DF54 00019E74 38 80 00 07 */ li r4, 7
/* 8001DF58 00019E78 7C 83 01 2E */ stwx r4, r3, r0
/* 8001DF5C 00019E7C 3B FF 00 01 */ addi r31, r31, 1
lbl_8001DF60:
/* 8001DF60 00019E80 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001DF64 00019E84 88 1D 00 2E */ lbz r0, 0x2e(r29)
/* 8001DF68 00019E88 3B 63 0A 68 */ addi r27, r3, lbl_80250A68@l
/* 8001DF6C 00019E8C C8 02 86 A0 */ lfd f0, lbl_802F2EA0@sda21(r2)
/* 8001DF70 00019E90 C0 3B 00 10 */ lfs f1, 0x10(r27)
/* 8001DF74 00019E94 7C 00 07 74 */ extsb r0, r0
/* 8001DF78 00019E98 54 00 10 3A */ slwi r0, r0, 2
/* 8001DF7C 00019E9C FC 21 00 28 */ fsub f1, f1, f0
/* 8001DF80 00019EA0 7C 7B 02 14 */ add r3, r27, r0
/* 8001DF84 00019EA4 80 63 00 00 */ lwz r3, 0(r3)
/* 8001DF88 00019EA8 38 81 00 30 */ addi r4, r1, 0x30
/* 8001DF8C 00019EAC FC 20 08 18 */ frsp f1, f1
/* 8001DF90 00019EB0 48 02 B7 2D */ bl func_800496BC
/* 8001DF94 00019EB4 C0 A1 00 10 */ lfs f5, 0x10(r1)
/* 8001DF98 00019EB8 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001DF9C 00019EBC C0 81 00 14 */ lfs f4, 0x14(r1)
/* 8001DFA0 00019EC0 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001DFA4 00019EC4 C0 61 00 18 */ lfs f3, 0x18(r1)
/* 8001DFA8 00019EC8 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001DFAC 00019ECC EC A5 10 28 */ fsubs f5, f5, f2
/* 8001DFB0 00019ED0 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001DFB4 00019ED4 EC 63 00 28 */ fsubs f3, f3, f0
/* 8001DFB8 00019ED8 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001DFBC 00019EDC EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001DFC0 00019EE0 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001DFC4 00019EE4 4B FE 91 35 */ bl mathutil_sqrt
/* 8001DFC8 00019EE8 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001DFCC 00019EEC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001DFD0 00019EF0 40 81 00 28 */ ble lbl_8001DFF8
/* 8001DFD4 00019EF4 C0 3B 00 10 */ lfs f1, 0x10(r27)
/* 8001DFD8 00019EF8 C8 02 86 A8 */ lfd f0, lbl_802F2EA8@sda21(r2)
/* 8001DFDC 00019EFC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001DFE0 00019F00 40 81 00 18 */ ble lbl_8001DFF8
/* 8001DFE4 00019F04 57 E0 10 3A */ slwi r0, r31, 2
/* 8001DFE8 00019F08 38 61 00 50 */ addi r3, r1, 0x50
/* 8001DFEC 00019F0C 38 80 00 2E */ li r4, 0x2e
/* 8001DFF0 00019F10 7C 83 01 2E */ stwx r4, r3, r0
/* 8001DFF4 00019F14 3B FF 00 01 */ addi r31, r31, 1
lbl_8001DFF8:
/* 8001DFF8 00019F18 57 E0 10 3A */ slwi r0, r31, 2
/* 8001DFFC 00019F1C 3B 61 00 50 */ addi r27, r1, 0x50
/* 8001E000 00019F20 38 60 00 30 */ li r3, 0x30
/* 8001E004 00019F24 7C 7B 01 2E */ stwx r3, r27, r0
/* 8001E008 00019F28 3B FF 00 01 */ addi r31, r31, 1
/* 8001E00C 00019F2C 48 0E 88 59 */ bl rand
/* 8001E010 00019F30 54 64 04 7E */ clrlwi r4, r3, 0x11
/* 8001E014 00019F34 80 1E 00 04 */ lwz r0, 4(r30)
/* 8001E018 00019F38 7C 64 FB D6 */ divw r3, r4, r31
/* 8001E01C 00019F3C 7C 63 F9 D6 */ mullw r3, r3, r31
/* 8001E020 00019F40 7C A3 20 50 */ subf r5, r3, r4
/* 8001E024 00019F44 54 A3 10 3A */ slwi r3, r5, 2
/* 8001E028 00019F48 7C 9B 18 2E */ lwzx r4, r27, r3
/* 8001E02C 00019F4C 7C 04 00 00 */ cmpw r4, r0
/* 8001E030 00019F50 40 82 00 1C */ bne lbl_8001E04C
/* 8001E034 00019F54 38 A5 00 01 */ addi r5, r5, 1
/* 8001E038 00019F58 7C 05 FB D6 */ divw r0, r5, r31
/* 8001E03C 00019F5C 7C 00 F9 D6 */ mullw r0, r0, r31
/* 8001E040 00019F60 7C A0 28 50 */ subf r5, r0, r5
/* 8001E044 00019F64 54 A0 10 3A */ slwi r0, r5, 2
/* 8001E048 00019F68 7C 9B 00 2E */ lwzx r4, r27, r0
lbl_8001E04C:
/* 8001E04C 00019F6C 90 9E 00 04 */ stw r4, 4(r30)
/* 8001E050 00019F70 7C 80 07 74 */ extsb r0, r4
/* 8001E054 00019F74 3C 60 80 17 */ lis r3, lbl_80176200@ha
/* 8001E058 00019F78 98 1C 00 1E */ stb r0, 0x1e(r28)
/* 8001E05C 00019F7C 54 84 10 3A */ slwi r4, r4, 2
/* 8001E060 00019F80 38 03 62 00 */ addi r0, r3, lbl_80176200@l
/* 8001E064 00019F84 7C 60 22 14 */ add r3, r0, r4
/* 8001E068 00019F88 81 83 00 00 */ lwz r12, 0(r3)
/* 8001E06C 00019F8C 38 7C 00 00 */ addi r3, r28, 0
/* 8001E070 00019F90 38 9D 00 00 */ addi r4, r29, 0
/* 8001E074 00019F94 7D 88 03 A6 */ mtlr r12
/* 8001E078 00019F98 4E 80 00 21 */ blrl
/* 8001E07C 00019F9C 88 7C 00 1E */ lbz r3, 0x1e(r28)
/* 8001E080 00019FA0 38 00 00 2D */ li r0, 0x2d
/* 8001E084 00019FA4 7C 63 07 74 */ extsb r3, r3
/* 8001E088 00019FA8 90 7E 00 00 */ stw r3, 0(r30)
/* 8001E08C 00019FAC 98 1C 00 1E */ stb r0, 0x1e(r28)
lbl_8001E090:
/* 8001E090 00019FB0 BB 61 00 D4 */ lmw r27, 0xd4(r1)
/* 8001E094 00019FB4 80 01 00 F4 */ lwz r0, 0xf4(r1)
/* 8001E098 00019FB8 CB E1 00 E8 */ lfd f31, 0xe8(r1)
/* 8001E09C 00019FBC 38 21 00 F0 */ addi r1, r1, 0xf0
/* 8001E0A0 00019FC0 7C 08 03 A6 */ mtlr r0
/* 8001E0A4 00019FC4 4E 80 00 20 */ blr
.global func_8001E0A8
func_8001E0A8:
/* 8001E0A8 00019FC8 7C 08 02 A6 */ mflr r0
/* 8001E0AC 00019FCC 90 01 00 04 */ stw r0, 4(r1)
/* 8001E0B0 00019FD0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8001E0B4 00019FD4 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 8001E0B8 00019FD8 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8001E0BC 00019FDC 3B C4 00 00 */ addi r30, r4, 0
/* 8001E0C0 00019FE0 93 A1 00 34 */ stw r29, 0x34(r1)
/* 8001E0C4 00019FE4 3B A3 00 00 */ addi r29, r3, 0
/* 8001E0C8 00019FE8 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001E0CC 00019FEC 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001E0D0 00019FF0 40 82 01 FC */ bne lbl_8001E2CC
/* 8001E0D4 00019FF4 A8 BD 00 50 */ lha r5, 0x50(r29)
/* 8001E0D8 00019FF8 3C 80 80 1F */ lis r4, lbl_801EFB94@ha
/* 8001E0DC 00019FFC 3C 60 80 17 */ lis r3, lbl_80176200@ha
/* 8001E0E0 0001A000 38 05 00 01 */ addi r0, r5, 1
/* 8001E0E4 0001A004 B0 1D 00 50 */ sth r0, 0x50(r29)
/* 8001E0E8 0001A008 38 A4 FB 94 */ addi r5, r4, lbl_801EFB94@l
/* 8001E0EC 0001A00C 38 03 62 00 */ addi r0, r3, lbl_80176200@l
/* 8001E0F0 0001A010 80 DD 02 04 */ lwz r6, 0x204(r29)
/* 8001E0F4 0001A014 38 7D 00 00 */ addi r3, r29, 0
/* 8001E0F8 0001A018 38 9E 00 00 */ addi r4, r30, 0
/* 8001E0FC 0001A01C 54 C6 28 34 */ slwi r6, r6, 5
/* 8001E100 0001A020 7F E5 32 14 */ add r31, r5, r6
/* 8001E104 0001A024 80 BF 00 00 */ lwz r5, 0(r31)
/* 8001E108 0001A028 54 A5 10 3A */ slwi r5, r5, 2
/* 8001E10C 0001A02C 7C A0 2A 14 */ add r5, r0, r5
/* 8001E110 0001A030 81 85 00 00 */ lwz r12, 0(r5)
/* 8001E114 0001A034 7D 88 03 A6 */ mtlr r12
/* 8001E118 0001A038 4E 80 00 21 */ blrl
/* 8001E11C 0001A03C 88 1D 00 1E */ lbz r0, 0x1e(r29)
/* 8001E120 0001A040 7C 00 07 74 */ extsb r0, r0
/* 8001E124 0001A044 2C 00 00 2D */ cmpwi r0, 0x2d
/* 8001E128 0001A048 41 82 00 18 */ beq lbl_8001E140
/* 8001E12C 0001A04C 90 1F 00 00 */ stw r0, 0(r31)
/* 8001E130 0001A050 38 60 00 2D */ li r3, 0x2d
/* 8001E134 0001A054 38 00 00 00 */ li r0, 0
/* 8001E138 0001A058 98 7D 00 1E */ stb r3, 0x1e(r29)
/* 8001E13C 0001A05C B0 1D 00 50 */ sth r0, 0x50(r29)
lbl_8001E140:
/* 8001E140 0001A060 80 7F 00 00 */ lwz r3, 0(r31)
/* 8001E144 0001A064 3B E0 00 00 */ li r31, 0
/* 8001E148 0001A068 38 03 FF F8 */ addi r0, r3, -8
/* 8001E14C 0001A06C 28 00 00 29 */ cmplwi r0, 0x29
/* 8001E150 0001A070 41 81 01 60 */ bgt lbl_8001E2B0
/* 8001E154 0001A074 3C 60 80 17 */ lis r3, lbl_801772AC@ha
/* 8001E158 0001A078 38 63 72 AC */ addi r3, r3, lbl_801772AC@l
/* 8001E15C 0001A07C 54 00 10 3A */ slwi r0, r0, 2
/* 8001E160 0001A080 7C 03 00 2E */ lwzx r0, r3, r0
/* 8001E164 0001A084 7C 09 03 A6 */ mtctr r0
/* 8001E168 0001A088 4E 80 04 20 */ bctr
.global lbl_8001E16C
lbl_8001E16C:
/* 8001E16C 0001A08C A8 1D 00 50 */ lha r0, 0x50(r29)
/* 8001E170 0001A090 54 00 06 FF */ clrlwi. r0, r0, 0x1b
/* 8001E174 0001A094 40 82 00 80 */ bne lbl_8001E1F4
/* 8001E178 0001A098 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E17C 0001A09C 88 1E 00 2E */ lbz r0, 0x2e(r30)
/* 8001E180 0001A0A0 38 63 0A 68 */ addi r3, r3, lbl_80250A68@l
/* 8001E184 0001A0A4 C8 02 86 A0 */ lfd f0, lbl_802F2EA0@sda21(r2)
/* 8001E188 0001A0A8 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001E18C 0001A0AC 7C 00 07 74 */ extsb r0, r0
/* 8001E190 0001A0B0 54 00 10 3A */ slwi r0, r0, 2
/* 8001E194 0001A0B4 FC 21 00 28 */ fsub f1, f1, f0
/* 8001E198 0001A0B8 7C 63 02 14 */ add r3, r3, r0
/* 8001E19C 0001A0BC 80 63 00 00 */ lwz r3, 0(r3)
/* 8001E1A0 0001A0C0 38 81 00 10 */ addi r4, r1, 0x10
/* 8001E1A4 0001A0C4 FC 20 08 18 */ frsp f1, f1
/* 8001E1A8 0001A0C8 48 02 B5 15 */ bl func_800496BC
/* 8001E1AC 0001A0CC 38 7E 00 04 */ addi r3, r30, 4
/* 8001E1B0 0001A0D0 C0 A3 00 00 */ lfs f5, 0(r3)
/* 8001E1B4 0001A0D4 C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8001E1B8 0001A0D8 C0 83 00 04 */ lfs f4, 4(r3)
/* 8001E1BC 0001A0DC C0 21 00 14 */ lfs f1, 0x14(r1)
/* 8001E1C0 0001A0E0 C0 63 00 08 */ lfs f3, 8(r3)
/* 8001E1C4 0001A0E4 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001E1C8 0001A0E8 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001E1CC 0001A0EC EC 84 08 28 */ fsubs f4, f4, f1
/* 8001E1D0 0001A0F0 EC 63 00 28 */ fsubs f3, f3, f0
/* 8001E1D4 0001A0F4 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001E1D8 0001A0F8 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001E1DC 0001A0FC EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001E1E0 0001A100 4B FE 8F 19 */ bl mathutil_sqrt
/* 8001E1E4 0001A104 C8 02 84 E0 */ lfd f0, lbl_802F2CE0@sda21(r2)
/* 8001E1E8 0001A108 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001E1EC 0001A10C 40 80 00 08 */ bge lbl_8001E1F4
/* 8001E1F0 0001A110 3B E0 00 01 */ li r31, 1
lbl_8001E1F4:
.global lbl_8001E1F4
/* 8001E1F4 0001A114 A8 1D 00 50 */ lha r0, 0x50(r29)
/* 8001E1F8 0001A118 2C 00 00 78 */ cmpwi r0, 0x78
/* 8001E1FC 0001A11C 40 81 00 54 */ ble lbl_8001E250
/* 8001E200 0001A120 54 00 06 BF */ clrlwi. r0, r0, 0x1a
/* 8001E204 0001A124 40 82 00 4C */ bne lbl_8001E250
/* 8001E208 0001A128 38 7E 00 04 */ addi r3, r30, 4
/* 8001E20C 0001A12C C0 A3 00 00 */ lfs f5, 0(r3)
/* 8001E210 0001A130 C0 5D 00 00 */ lfs f2, 0(r29)
/* 8001E214 0001A134 C0 83 00 04 */ lfs f4, 4(r3)
/* 8001E218 0001A138 C0 3D 00 04 */ lfs f1, 4(r29)
/* 8001E21C 0001A13C C0 63 00 08 */ lfs f3, 8(r3)
/* 8001E220 0001A140 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8001E224 0001A144 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001E228 0001A148 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001E22C 0001A14C EC 63 00 28 */ fsubs f3, f3, f0
/* 8001E230 0001A150 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001E234 0001A154 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001E238 0001A158 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001E23C 0001A15C 4B FE 8E BD */ bl mathutil_sqrt
/* 8001E240 0001A160 C8 02 85 C8 */ lfd f0, lbl_802F2DC8@sda21(r2)
/* 8001E244 0001A164 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001E248 0001A168 40 81 00 08 */ ble lbl_8001E250
/* 8001E24C 0001A16C 3B E0 00 01 */ li r31, 1
lbl_8001E250:
/* 8001E250 0001A170 A8 1D 00 50 */ lha r0, 0x50(r29)
/* 8001E254 0001A174 2C 00 01 68 */ cmpwi r0, 0x168
/* 8001E258 0001A178 40 81 00 58 */ ble lbl_8001E2B0
/* 8001E25C 0001A17C 3B E0 00 01 */ li r31, 1
/* 8001E260 0001A180 48 00 00 50 */ b lbl_8001E2B0
.global lbl_8001E264
lbl_8001E264:
/* 8001E264 0001A184 A8 1D 00 50 */ lha r0, 0x50(r29)
/* 8001E268 0001A188 2C 00 00 F0 */ cmpwi r0, 0xf0
/* 8001E26C 0001A18C 40 81 00 44 */ ble lbl_8001E2B0
/* 8001E270 0001A190 54 00 06 FF */ clrlwi. r0, r0, 0x1b
/* 8001E274 0001A194 40 82 00 3C */ bne lbl_8001E2B0
/* 8001E278 0001A198 48 0E 85 ED */ bl rand
/* 8001E27C 0001A19C 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8001E280 0001A1A0 41 82 00 30 */ beq lbl_8001E2B0
/* 8001E284 0001A1A4 3B E0 00 01 */ li r31, 1
/* 8001E288 0001A1A8 48 00 00 28 */ b lbl_8001E2B0
.global lbl_8001E28C
lbl_8001E28C:
/* 8001E28C 0001A1AC A8 1D 00 50 */ lha r0, 0x50(r29)
/* 8001E290 0001A1B0 2C 00 00 78 */ cmpwi r0, 0x78
/* 8001E294 0001A1B4 40 81 00 1C */ ble lbl_8001E2B0
/* 8001E298 0001A1B8 54 00 06 FF */ clrlwi. r0, r0, 0x1b
/* 8001E29C 0001A1BC 40 82 00 14 */ bne lbl_8001E2B0
/* 8001E2A0 0001A1C0 48 0E 85 C5 */ bl rand
/* 8001E2A4 0001A1C4 54 60 07 FF */ clrlwi. r0, r3, 0x1f
/* 8001E2A8 0001A1C8 41 82 00 08 */ beq lbl_8001E2B0
/* 8001E2AC 0001A1CC 3B E0 00 01 */ li r31, 1
lbl_8001E2B0:
.global lbl_8001E2B0
/* 8001E2B0 0001A1D0 28 1F 00 00 */ cmplwi r31, 0
/* 8001E2B4 0001A1D4 41 82 00 18 */ beq lbl_8001E2CC
/* 8001E2B8 0001A1D8 88 1E 00 03 */ lbz r0, 3(r30)
/* 8001E2BC 0001A1DC 2C 00 00 0A */ cmpwi r0, 0xa
/* 8001E2C0 0001A1E0 40 82 00 0C */ bne lbl_8001E2CC
/* 8001E2C4 0001A1E4 38 00 00 2C */ li r0, 0x2c
/* 8001E2C8 0001A1E8 98 1D 00 1E */ stb r0, 0x1e(r29)
lbl_8001E2CC:
/* 8001E2CC 0001A1EC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8001E2D0 0001A1F0 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8001E2D4 0001A1F4 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 8001E2D8 0001A1F8 7C 08 03 A6 */ mtlr r0
/* 8001E2DC 0001A1FC 83 A1 00 34 */ lwz r29, 0x34(r1)
/* 8001E2E0 0001A200 38 21 00 40 */ addi r1, r1, 0x40
/* 8001E2E4 0001A204 4E 80 00 20 */ blr
.global func_8001E2E8
func_8001E2E8:
/* 8001E2E8 0001A208 7C 08 02 A6 */ mflr r0
/* 8001E2EC 0001A20C 90 01 00 04 */ stw r0, 4(r1)
/* 8001E2F0 0001A210 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8001E2F4 0001A214 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8001E2F8 0001A218 3B E4 00 00 */ addi r31, r4, 0
/* 8001E2FC 0001A21C 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8001E300 0001A220 3B C3 00 00 */ addi r30, r3, 0
/* 8001E304 0001A224 93 A1 00 44 */ stw r29, 0x44(r1)
/* 8001E308 0001A228 93 81 00 40 */ stw r28, 0x40(r1)
/* 8001E30C 0001A22C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001E310 0001A230 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001E314 0001A234 40 82 02 04 */ bne lbl_8001E518
/* 8001E318 0001A238 7F C3 F3 78 */ mr r3, r30
/* 8001E31C 0001A23C 4B FF A7 D5 */ bl camera_clear
/* 8001E320 0001A240 38 00 00 00 */ li r0, 0
/* 8001E324 0001A244 98 1E 00 26 */ stb r0, 0x26(r30)
/* 8001E328 0001A248 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E32C 0001A24C 38 63 0A 68 */ addi r3, r3, lbl_80250A68@l
/* 8001E330 0001A250 A8 1E 00 24 */ lha r0, 0x24(r30)
/* 8001E334 0001A254 3B 83 00 10 */ addi r28, r3, 0x10
/* 8001E338 0001A258 60 00 00 04 */ ori r0, r0, 4
/* 8001E33C 0001A25C B0 1E 00 24 */ sth r0, 0x24(r30)
/* 8001E340 0001A260 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001E344 0001A264 C8 02 86 B0 */ lfd f0, lbl_802F2EB0@sda21(r2)
/* 8001E348 0001A268 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001E34C 0001A26C 40 81 00 58 */ ble lbl_8001E3A4
/* 8001E350 0001A270 48 0E 85 15 */ bl rand
/* 8001E354 0001A274 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001E358 0001A278 C8 22 84 68 */ lfd f1, lbl_802F2C68@sda21(r2)
/* 8001E35C 0001A27C 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001E360 0001A280 3C 00 43 30 */ lis r0, 0x4330
/* 8001E364 0001A284 C0 82 85 90 */ lfs f4, lbl_802F2D90@sda21(r2)
/* 8001E368 0001A288 90 01 00 38 */ stw r0, 0x38(r1)
/* 8001E36C 0001A28C C8 62 86 B8 */ lfd f3, lbl_802F2EB8@sda21(r2)
/* 8001E370 0001A290 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 8001E374 0001A294 C8 42 84 E0 */ lfd f2, lbl_802F2CE0@sda21(r2)
/* 8001E378 0001A298 EC A0 08 28 */ fsubs f5, f0, f1
/* 8001E37C 0001A29C C8 22 86 A0 */ lfd f1, lbl_802F2EA0@sda21(r2)
/* 8001E380 0001A2A0 C0 1C 00 00 */ lfs f0, 0(r28)
/* 8001E384 0001A2A4 EC 85 20 24 */ fdivs f4, f5, f4
/* 8001E388 0001A2A8 FC 63 01 32 */ fmul f3, f3, f4
/* 8001E38C 0001A2AC FC 42 18 2A */ fadd f2, f2, f3
/* 8001E390 0001A2B0 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001E394 0001A2B4 FC 00 08 28 */ fsub f0, f0, f1
/* 8001E398 0001A2B8 FC 00 00 18 */ frsp f0, f0
/* 8001E39C 0001A2BC D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 8001E3A0 0001A2C0 48 00 00 48 */ b lbl_8001E3E8
lbl_8001E3A4:
/* 8001E3A4 0001A2C4 48 0E 84 C1 */ bl rand
/* 8001E3A8 0001A2C8 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001E3AC 0001A2CC C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001E3B0 0001A2D0 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001E3B4 0001A2D4 3C 00 43 30 */ lis r0, 0x4330
/* 8001E3B8 0001A2D8 C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001E3BC 0001A2DC 90 01 00 38 */ stw r0, 0x38(r1)
/* 8001E3C0 0001A2E0 C8 42 84 E0 */ lfd f2, lbl_802F2CE0@sda21(r2)
/* 8001E3C4 0001A2E4 C8 61 00 38 */ lfd f3, 0x38(r1)
/* 8001E3C8 0001A2E8 C0 1C 00 00 */ lfs f0, 0(r28)
/* 8001E3CC 0001A2EC EC 63 20 28 */ fsubs f3, f3, f4
/* 8001E3D0 0001A2F0 EC 23 08 24 */ fdivs f1, f3, f1
/* 8001E3D4 0001A2F4 FC 22 00 72 */ fmul f1, f2, f1
/* 8001E3D8 0001A2F8 FC 22 08 2A */ fadd f1, f2, f1
/* 8001E3DC 0001A2FC FC 00 00 72 */ fmul f0, f0, f1
/* 8001E3E0 0001A300 FC 00 00 18 */ frsp f0, f0
/* 8001E3E4 0001A304 D0 1E 00 60 */ stfs f0, 0x60(r30)
lbl_8001E3E8:
/* 8001E3E8 0001A308 48 0E 84 7D */ bl rand
/* 8001E3EC 0001A30C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001E3F0 0001A310 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001E3F4 0001A314 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001E3F8 0001A318 3F A0 43 30 */ lis r29, 0x4330
/* 8001E3FC 0001A31C C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001E400 0001A320 93 A1 00 38 */ stw r29, 0x38(r1)
/* 8001E404 0001A324 C8 22 84 48 */ lfd f1, lbl_802F2C48@sda21(r2)
/* 8001E408 0001A328 C8 61 00 38 */ lfd f3, 0x38(r1)
/* 8001E40C 0001A32C C8 02 85 70 */ lfd f0, lbl_802F2D70@sda21(r2)
/* 8001E410 0001A330 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001E414 0001A334 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001E418 0001A338 FC 21 00 B2 */ fmul f1, f1, f2
/* 8001E41C 0001A33C FC 00 08 2A */ fadd f0, f0, f1
/* 8001E420 0001A340 FC 00 00 18 */ frsp f0, f0
/* 8001E424 0001A344 D0 1E 00 64 */ stfs f0, 0x64(r30)
/* 8001E428 0001A348 48 0E 84 3D */ bl rand
/* 8001E42C 0001A34C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001E430 0001A350 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001E434 0001A354 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001E438 0001A358 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E43C 0001A35C C0 62 85 90 */ lfs f3, lbl_802F2D90@sda21(r2)
/* 8001E440 0001A360 38 03 0A 68 */ addi r0, r3, lbl_80250A68@l
/* 8001E444 0001A364 93 A1 00 30 */ stw r29, 0x30(r1)
/* 8001E448 0001A368 C8 42 84 E0 */ lfd f2, lbl_802F2CE0@sda21(r2)
/* 8001E44C 0001A36C 38 81 00 10 */ addi r4, r1, 0x10
/* 8001E450 0001A370 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 8001E454 0001A374 C8 22 85 00 */ lfd f1, lbl_802F2D00@sda21(r2)
/* 8001E458 0001A378 EC 80 20 28 */ fsubs f4, f0, f4
/* 8001E45C 0001A37C C0 1E 00 60 */ lfs f0, 0x60(r30)
/* 8001E460 0001A380 EC 64 18 24 */ fdivs f3, f4, f3
/* 8001E464 0001A384 FC 42 00 F2 */ fmul f2, f2, f3
/* 8001E468 0001A388 FC 21 10 2A */ fadd f1, f1, f2
/* 8001E46C 0001A38C FC 00 00 72 */ fmul f0, f0, f1
/* 8001E470 0001A390 FC 00 00 18 */ frsp f0, f0
/* 8001E474 0001A394 D0 1E 00 80 */ stfs f0, 0x80(r30)
/* 8001E478 0001A398 C0 5E 00 80 */ lfs f2, 0x80(r30)
/* 8001E47C 0001A39C C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8001E480 0001A3A0 C0 1C 00 00 */ lfs f0, 0(r28)
/* 8001E484 0001A3A4 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001E488 0001A3A8 EC 01 00 24 */ fdivs f0, f1, f0
/* 8001E48C 0001A3AC D0 1E 00 80 */ stfs f0, 0x80(r30)
/* 8001E490 0001A3B0 88 7F 00 2E */ lbz r3, 0x2e(r31)
/* 8001E494 0001A3B4 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8001E498 0001A3B8 7C 63 07 74 */ extsb r3, r3
/* 8001E49C 0001A3BC 54 63 10 3A */ slwi r3, r3, 2
/* 8001E4A0 0001A3C0 7C 60 1A 14 */ add r3, r0, r3
/* 8001E4A4 0001A3C4 80 63 00 00 */ lwz r3, 0(r3)
/* 8001E4A8 0001A3C8 48 02 B2 15 */ bl func_800496BC
/* 8001E4AC 0001A3CC 80 C1 00 10 */ lwz r6, 0x10(r1)
/* 8001E4B0 0001A3D0 38 00 00 2F */ li r0, 0x2f
/* 8001E4B4 0001A3D4 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 8001E4B8 0001A3D8 38 7E 00 00 */ addi r3, r30, 0
/* 8001E4BC 0001A3DC 38 9F 00 00 */ addi r4, r31, 0
/* 8001E4C0 0001A3E0 90 DE 00 54 */ stw r6, 0x54(r30)
/* 8001E4C4 0001A3E4 90 BE 00 58 */ stw r5, 0x58(r30)
/* 8001E4C8 0001A3E8 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 8001E4CC 0001A3EC 90 BE 00 5C */ stw r5, 0x5c(r30)
/* 8001E4D0 0001A3F0 80 C1 00 10 */ lwz r6, 0x10(r1)
/* 8001E4D4 0001A3F4 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 8001E4D8 0001A3F8 90 DE 00 00 */ stw r6, 0(r30)
/* 8001E4DC 0001A3FC 90 BE 00 04 */ stw r5, 4(r30)
/* 8001E4E0 0001A400 80 A1 00 18 */ lwz r5, 0x18(r1)
/* 8001E4E4 0001A404 90 BE 00 08 */ stw r5, 8(r30)
/* 8001E4E8 0001A408 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001E4EC 0001A40C D0 1E 00 74 */ stfs f0, 0x74(r30)
/* 8001E4F0 0001A410 D0 1E 00 78 */ stfs f0, 0x78(r30)
/* 8001E4F4 0001A414 D0 1E 00 7C */ stfs f0, 0x7c(r30)
/* 8001E4F8 0001A418 80 DF 00 04 */ lwz r6, 4(r31)
/* 8001E4FC 0001A41C 80 BF 00 08 */ lwz r5, 8(r31)
/* 8001E500 0001A420 90 DE 00 0C */ stw r6, 0xc(r30)
/* 8001E504 0001A424 90 BE 00 10 */ stw r5, 0x10(r30)
/* 8001E508 0001A428 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 8001E50C 0001A42C 90 BE 00 14 */ stw r5, 0x14(r30)
/* 8001E510 0001A430 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001E514 0001A434 48 00 00 25 */ bl camera_sub_47
lbl_8001E518:
/* 8001E518 0001A438 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8001E51C 0001A43C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8001E520 0001A440 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8001E524 0001A444 7C 08 03 A6 */ mtlr r0
/* 8001E528 0001A448 83 A1 00 44 */ lwz r29, 0x44(r1)
/* 8001E52C 0001A44C 83 81 00 40 */ lwz r28, 0x40(r1)
/* 8001E530 0001A450 38 21 00 50 */ addi r1, r1, 0x50
/* 8001E534 0001A454 4E 80 00 20 */ blr
.global camera_sub_47
camera_sub_47:
/* 8001E538 0001A458 7C 08 02 A6 */ mflr r0
/* 8001E53C 0001A45C 90 01 00 04 */ stw r0, 4(r1)
/* 8001E540 0001A460 94 21 FF A8 */ stwu r1, -0x58(r1)
/* 8001E544 0001A464 DB E1 00 50 */ stfd f31, 0x50(r1)
/* 8001E548 0001A468 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 8001E54C 0001A46C 3B E4 00 00 */ addi r31, r4, 0
/* 8001E550 0001A470 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8001E554 0001A474 3B C3 00 00 */ addi r30, r3, 0
/* 8001E558 0001A478 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001E55C 0001A47C 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001E560 0001A480 40 82 03 A8 */ bne lbl_8001E908
/* 8001E564 0001A484 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8001E568 0001A488 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E56C 0001A48C C0 1E 00 80 */ lfs f0, 0x80(r30)
/* 8001E570 0001A490 38 03 0A 68 */ addi r0, r3, lbl_80250A68@l
/* 8001E574 0001A494 38 81 00 10 */ addi r4, r1, 0x10
/* 8001E578 0001A498 EC 01 00 2A */ fadds f0, f1, f0
/* 8001E57C 0001A49C D0 1E 00 60 */ stfs f0, 0x60(r30)
/* 8001E580 0001A4A0 88 7F 00 2E */ lbz r3, 0x2e(r31)
/* 8001E584 0001A4A4 C0 3E 00 60 */ lfs f1, 0x60(r30)
/* 8001E588 0001A4A8 7C 63 07 74 */ extsb r3, r3
/* 8001E58C 0001A4AC 54 63 10 3A */ slwi r3, r3, 2
/* 8001E590 0001A4B0 7C 60 1A 14 */ add r3, r0, r3
/* 8001E594 0001A4B4 80 63 00 00 */ lwz r3, 0(r3)
/* 8001E598 0001A4B8 48 02 B1 25 */ bl func_800496BC
/* 8001E59C 0001A4BC 38 7F 00 04 */ addi r3, r31, 4
/* 8001E5A0 0001A4C0 C0 A3 00 00 */ lfs f5, 0(r3)
/* 8001E5A4 0001A4C4 C0 5E 00 00 */ lfs f2, 0(r30)
/* 8001E5A8 0001A4C8 C0 83 00 04 */ lfs f4, 4(r3)
/* 8001E5AC 0001A4CC C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001E5B0 0001A4D0 C0 63 00 08 */ lfs f3, 8(r3)
/* 8001E5B4 0001A4D4 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001E5B8 0001A4D8 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001E5BC 0001A4DC EC 84 08 28 */ fsubs f4, f4, f1
/* 8001E5C0 0001A4E0 EC 63 00 28 */ fsubs f3, f3, f0
/* 8001E5C4 0001A4E4 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001E5C8 0001A4E8 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001E5CC 0001A4EC EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001E5D0 0001A4F0 4B FE 8B 29 */ bl mathutil_sqrt
/* 8001E5D4 0001A4F4 C8 42 86 C0 */ lfd f2, lbl_802F2EC0@sda21(r2)
/* 8001E5D8 0001A4F8 C8 62 84 48 */ lfd f3, lbl_802F2C48@sda21(r2)
/* 8001E5DC 0001A4FC FC 22 00 72 */ fmul f1, f2, f1
/* 8001E5E0 0001A500 C8 02 84 30 */ lfd f0, lbl_802F2C30@sda21(r2)
/* 8001E5E4 0001A504 FF E3 08 28 */ fsub f31, f3, f1
/* 8001E5E8 0001A508 FF E0 F8 18 */ frsp f31, f31
/* 8001E5EC 0001A50C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001E5F0 0001A510 40 80 00 08 */ bge lbl_8001E5F8
/* 8001E5F4 0001A514 C3 E2 84 18 */ lfs f31, lbl_802F2C18@sda21(r2)
lbl_8001E5F8:
/* 8001E5F8 0001A518 C0 1F 00 24 */ lfs f0, 0x24(r31)
/* 8001E5FC 0001A51C 38 61 00 30 */ addi r3, r1, 0x30
/* 8001E600 0001A520 C0 42 84 18 */ lfs f2, lbl_802F2C18@sda21(r2)
/* 8001E604 0001A524 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001E608 0001A528 D0 41 00 34 */ stfs f2, 0x34(r1)
/* 8001E60C 0001A52C C0 1F 00 1C */ lfs f0, 0x1c(r31)
/* 8001E610 0001A530 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001E614 0001A534 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001E618 0001A538 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001E61C 0001A53C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001E620 0001A540 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001E624 0001A544 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8001E628 0001A548 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001E62C 0001A54C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001E630 0001A550 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001E634 0001A554 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8001E638 0001A558 4B FE 9A C5 */ bl mathutil_vec_normalize_len
/* 8001E63C 0001A55C 38 61 00 3C */ addi r3, r1, 0x3c
/* 8001E640 0001A560 4B FE 9A BD */ bl mathutil_vec_normalize_len
/* 8001E644 0001A564 C0 81 00 30 */ lfs f4, 0x30(r1)
/* 8001E648 0001A568 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001E64C 0001A56C C0 41 00 38 */ lfs f2, 0x38(r1)
/* 8001E650 0001A570 C0 21 00 44 */ lfs f1, 0x44(r1)
/* 8001E654 0001A574 EC 64 00 32 */ fmuls f3, f4, f0
/* 8001E658 0001A578 C8 02 86 C8 */ lfd f0, lbl_802F2EC8@sda21(r2)
/* 8001E65C 0001A57C EC 22 00 72 */ fmuls f1, f2, f1
/* 8001E660 0001A580 EC 23 08 2A */ fadds f1, f3, f1
/* 8001E664 0001A584 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001E668 0001A588 40 80 00 18 */ bge lbl_8001E680
/* 8001E66C 0001A58C FC 00 20 50 */ fneg f0, f4
/* 8001E670 0001A590 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001E674 0001A594 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001E678 0001A598 FC 00 00 50 */ fneg f0, f0
/* 8001E67C 0001A59C D0 01 00 38 */ stfs f0, 0x38(r1)
lbl_8001E680:
/* 8001E680 0001A5A0 C8 22 84 30 */ lfd f1, lbl_802F2C30@sda21(r2)
/* 8001E684 0001A5A4 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001E688 0001A5A8 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8001E68C 0001A5AC 40 82 00 20 */ bne lbl_8001E6AC
/* 8001E690 0001A5B0 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001E694 0001A5B4 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8001E698 0001A5B8 40 82 00 14 */ bne lbl_8001E6AC
/* 8001E69C 0001A5BC C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001E6A0 0001A5C0 C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8001E6A4 0001A5C4 D0 21 00 30 */ stfs f1, 0x30(r1)
/* 8001E6A8 0001A5C8 D0 01 00 38 */ stfs f0, 0x38(r1)
lbl_8001E6AC:
/* 8001E6AC 0001A5CC C8 22 84 48 */ lfd f1, lbl_802F2C48@sda21(r2)
/* 8001E6B0 0001A5D0 38 61 00 30 */ addi r3, r1, 0x30
/* 8001E6B4 0001A5D4 C0 1E 00 64 */ lfs f0, 0x64(r30)
/* 8001E6B8 0001A5D8 7C 64 1B 78 */ mr r4, r3
/* 8001E6BC 0001A5DC FC 01 00 32 */ fmul f0, f1, f0
/* 8001E6C0 0001A5E0 FC 20 07 F2 */ fmul f1, f0, f31
/* 8001E6C4 0001A5E4 FC 20 08 18 */ frsp f1, f1
/* 8001E6C8 0001A5E8 4B FE 9A AD */ bl mathutil_vec_set_len
/* 8001E6CC 0001A5EC C0 3E 00 74 */ lfs f1, 0x74(r30)
/* 8001E6D0 0001A5F0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001E6D4 0001A5F4 C8 42 86 18 */ lfd f2, lbl_802F2E18@sda21(r2)
/* 8001E6D8 0001A5F8 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001E6DC 0001A5FC FC 02 00 32 */ fmul f0, f2, f0
/* 8001E6E0 0001A600 FC 01 00 2A */ fadd f0, f1, f0
/* 8001E6E4 0001A604 FC 00 00 18 */ frsp f0, f0
/* 8001E6E8 0001A608 D0 1E 00 74 */ stfs f0, 0x74(r30)
/* 8001E6EC 0001A60C C0 3E 00 7C */ lfs f1, 0x7c(r30)
/* 8001E6F0 0001A610 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001E6F4 0001A614 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001E6F8 0001A618 FC 02 00 32 */ fmul f0, f2, f0
/* 8001E6FC 0001A61C FC 01 00 2A */ fadd f0, f1, f0
/* 8001E700 0001A620 FC 00 00 18 */ frsp f0, f0
/* 8001E704 0001A624 D0 1E 00 7C */ stfs f0, 0x7c(r30)
/* 8001E708 0001A628 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001E70C 0001A62C D0 1E 00 54 */ stfs f0, 0x54(r30)
/* 8001E710 0001A630 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001E714 0001A634 D0 1E 00 58 */ stfs f0, 0x58(r30)
/* 8001E718 0001A638 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001E71C 0001A63C D0 1E 00 5C */ stfs f0, 0x5c(r30)
/* 8001E720 0001A640 C0 41 00 10 */ lfs f2, 0x10(r1)
/* 8001E724 0001A644 C0 1E 00 74 */ lfs f0, 0x74(r30)
/* 8001E728 0001A648 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8001E72C 0001A64C EC 42 00 2A */ fadds f2, f2, f0
/* 8001E730 0001A650 C8 02 85 40 */ lfd f0, lbl_802F2D40@sda21(r2)
/* 8001E734 0001A654 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001E738 0001A658 FC 20 00 72 */ fmul f1, f0, f1
/* 8001E73C 0001A65C FC 20 08 18 */ frsp f1, f1
/* 8001E740 0001A660 D0 3E 00 94 */ stfs f1, 0x94(r30)
/* 8001E744 0001A664 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8001E748 0001A668 C0 5E 00 64 */ lfs f2, 0x64(r30)
/* 8001E74C 0001A66C C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001E750 0001A670 EC 43 10 2A */ fadds f2, f3, f2
/* 8001E754 0001A674 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001E758 0001A678 FC 20 00 72 */ fmul f1, f0, f1
/* 8001E75C 0001A67C FC 20 08 18 */ frsp f1, f1
/* 8001E760 0001A680 D0 3E 00 98 */ stfs f1, 0x98(r30)
/* 8001E764 0001A684 C0 61 00 18 */ lfs f3, 0x18(r1)
/* 8001E768 0001A688 C0 5E 00 7C */ lfs f2, 0x7c(r30)
/* 8001E76C 0001A68C C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001E770 0001A690 EC 43 10 2A */ fadds f2, f3, f2
/* 8001E774 0001A694 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001E778 0001A698 FC 20 00 72 */ fmul f1, f0, f1
/* 8001E77C 0001A69C FC 20 08 18 */ frsp f1, f1
/* 8001E780 0001A6A0 D0 3E 00 9C */ stfs f1, 0x9c(r30)
/* 8001E784 0001A6A4 C0 5E 00 00 */ lfs f2, 0(r30)
/* 8001E788 0001A6A8 C0 3E 00 94 */ lfs f1, 0x94(r30)
/* 8001E78C 0001A6AC EC 22 08 2A */ fadds f1, f2, f1
/* 8001E790 0001A6B0 D0 3E 00 00 */ stfs f1, 0(r30)
/* 8001E794 0001A6B4 C0 5E 00 04 */ lfs f2, 4(r30)
/* 8001E798 0001A6B8 C0 3E 00 98 */ lfs f1, 0x98(r30)
/* 8001E79C 0001A6BC EC 22 08 2A */ fadds f1, f2, f1
/* 8001E7A0 0001A6C0 D0 3E 00 04 */ stfs f1, 4(r30)
/* 8001E7A4 0001A6C4 C0 5E 00 08 */ lfs f2, 8(r30)
/* 8001E7A8 0001A6C8 C0 3E 00 9C */ lfs f1, 0x9c(r30)
/* 8001E7AC 0001A6CC EC 22 08 2A */ fadds f1, f2, f1
/* 8001E7B0 0001A6D0 D0 3E 00 08 */ stfs f1, 8(r30)
/* 8001E7B4 0001A6D4 C8 82 86 D0 */ lfd f4, lbl_802F2ED0@sda21(r2)
/* 8001E7B8 0001A6D8 C0 3F 00 1C */ lfs f1, 0x1c(r31)
/* 8001E7BC 0001A6DC C0 7F 00 04 */ lfs f3, 4(r31)
/* 8001E7C0 0001A6E0 FC 44 00 72 */ fmul f2, f4, f1
/* 8001E7C4 0001A6E4 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001E7C8 0001A6E8 FC 43 10 2A */ fadd f2, f3, f2
/* 8001E7CC 0001A6EC FC 22 08 28 */ fsub f1, f2, f1
/* 8001E7D0 0001A6F0 FC 20 08 18 */ frsp f1, f1
/* 8001E7D4 0001A6F4 D0 21 00 3C */ stfs f1, 0x3c(r1)
/* 8001E7D8 0001A6F8 C0 3F 00 20 */ lfs f1, 0x20(r31)
/* 8001E7DC 0001A6FC C0 7F 00 08 */ lfs f3, 8(r31)
/* 8001E7E0 0001A700 FC 44 00 72 */ fmul f2, f4, f1
/* 8001E7E4 0001A704 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001E7E8 0001A708 FC 43 10 2A */ fadd f2, f3, f2
/* 8001E7EC 0001A70C FC 22 08 28 */ fsub f1, f2, f1
/* 8001E7F0 0001A710 FC 20 08 18 */ frsp f1, f1
/* 8001E7F4 0001A714 D0 21 00 40 */ stfs f1, 0x40(r1)
/* 8001E7F8 0001A718 C0 3F 00 24 */ lfs f1, 0x24(r31)
/* 8001E7FC 0001A71C C0 7F 00 0C */ lfs f3, 0xc(r31)
/* 8001E800 0001A720 FC 44 00 72 */ fmul f2, f4, f1
/* 8001E804 0001A724 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001E808 0001A728 FC 43 10 2A */ fadd f2, f3, f2
/* 8001E80C 0001A72C FC 22 08 28 */ fsub f1, f2, f1
/* 8001E810 0001A730 FC 20 08 18 */ frsp f1, f1
/* 8001E814 0001A734 D0 21 00 44 */ stfs f1, 0x44(r1)
/* 8001E818 0001A738 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001E81C 0001A73C FC 20 00 72 */ fmul f1, f0, f1
/* 8001E820 0001A740 FC 20 08 18 */ frsp f1, f1
/* 8001E824 0001A744 D0 3E 00 A0 */ stfs f1, 0xa0(r30)
/* 8001E828 0001A748 C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8001E82C 0001A74C FC 20 00 72 */ fmul f1, f0, f1
/* 8001E830 0001A750 FC 20 08 18 */ frsp f1, f1
/* 8001E834 0001A754 D0 3E 00 A4 */ stfs f1, 0xa4(r30)
/* 8001E838 0001A758 C0 21 00 44 */ lfs f1, 0x44(r1)
/* 8001E83C 0001A75C FC 00 00 72 */ fmul f0, f0, f1
/* 8001E840 0001A760 FC 00 00 18 */ frsp f0, f0
/* 8001E844 0001A764 D0 1E 00 A8 */ stfs f0, 0xa8(r30)
/* 8001E848 0001A768 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001E84C 0001A76C C0 1E 00 A0 */ lfs f0, 0xa0(r30)
/* 8001E850 0001A770 EC 01 00 2A */ fadds f0, f1, f0
/* 8001E854 0001A774 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001E858 0001A778 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001E85C 0001A77C C0 1E 00 A4 */ lfs f0, 0xa4(r30)
/* 8001E860 0001A780 EC 01 00 2A */ fadds f0, f1, f0
/* 8001E864 0001A784 D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001E868 0001A788 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001E86C 0001A78C C0 1E 00 A8 */ lfs f0, 0xa8(r30)
/* 8001E870 0001A790 EC 01 00 2A */ fadds f0, f1, f0
/* 8001E874 0001A794 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001E878 0001A798 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001E87C 0001A79C C0 1E 00 00 */ lfs f0, 0(r30)
/* 8001E880 0001A7A0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001E884 0001A7A4 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001E888 0001A7A8 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001E88C 0001A7AC C0 1E 00 04 */ lfs f0, 4(r30)
/* 8001E890 0001A7B0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001E894 0001A7B4 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8001E898 0001A7B8 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001E89C 0001A7BC C0 1E 00 08 */ lfs f0, 8(r30)
/* 8001E8A0 0001A7C0 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001E8A4 0001A7C4 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8001E8A8 0001A7C8 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001E8AC 0001A7CC C0 41 00 44 */ lfs f2, 0x44(r1)
/* 8001E8B0 0001A7D0 4B FE 89 F5 */ bl mathutil_atan2
/* 8001E8B4 0001A7D4 38 03 80 00 */ addi r0, r3, -32768
/* 8001E8B8 0001A7D8 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001E8BC 0001A7DC C0 01 00 44 */ lfs f0, 0x44(r1)
/* 8001E8C0 0001A7E0 C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8001E8C4 0001A7E4 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001E8C8 0001A7E8 EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001E8CC 0001A7EC 4B FE 88 2D */ bl mathutil_sqrt
/* 8001E8D0 0001A7F0 FC 40 08 90 */ fmr f2, f1
/* 8001E8D4 0001A7F4 C0 21 00 40 */ lfs f1, 0x40(r1)
/* 8001E8D8 0001A7F8 4B FE 89 CD */ bl mathutil_atan2
/* 8001E8DC 0001A7FC B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001E8E0 0001A800 38 00 00 00 */ li r0, 0
/* 8001E8E4 0001A804 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E8E8 0001A808 B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 8001E8EC 0001A80C 38 63 0A 68 */ addi r3, r3, lbl_80250A68@l
/* 8001E8F0 0001A810 C0 23 00 10 */ lfs f1, 0x10(r3)
/* 8001E8F4 0001A814 C0 02 85 A8 */ lfs f0, lbl_802F2DA8@sda21(r2)
/* 8001E8F8 0001A818 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001E8FC 0001A81C 40 80 00 0C */ bge lbl_8001E908
/* 8001E900 0001A820 38 00 00 0E */ li r0, 0xe
/* 8001E904 0001A824 98 1E 00 1E */ stb r0, 0x1e(r30)
lbl_8001E908:
/* 8001E908 0001A828 80 01 00 5C */ lwz r0, 0x5c(r1)
/* 8001E90C 0001A82C CB E1 00 50 */ lfd f31, 0x50(r1)
/* 8001E910 0001A830 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8001E914 0001A834 7C 08 03 A6 */ mtlr r0
/* 8001E918 0001A838 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 8001E91C 0001A83C 38 21 00 58 */ addi r1, r1, 0x58
/* 8001E920 0001A840 4E 80 00 20 */ blr
.global func_8001E924
func_8001E924:
/* 8001E924 0001A844 7C 08 02 A6 */ mflr r0
/* 8001E928 0001A848 90 01 00 04 */ stw r0, 4(r1)
/* 8001E92C 0001A84C 94 21 FF 50 */ stwu r1, -0xb0(r1)
/* 8001E930 0001A850 DB E1 00 A8 */ stfd f31, 0xa8(r1)
/* 8001E934 0001A854 93 E1 00 A4 */ stw r31, 0xa4(r1)
/* 8001E938 0001A858 3B E4 00 00 */ addi r31, r4, 0
/* 8001E93C 0001A85C 93 C1 00 A0 */ stw r30, 0xa0(r1)
/* 8001E940 0001A860 3B C3 00 00 */ addi r30, r3, 0
/* 8001E944 0001A864 93 A1 00 9C */ stw r29, 0x9c(r1)
/* 8001E948 0001A868 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001E94C 0001A86C 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001E950 0001A870 40 82 06 74 */ bne lbl_8001EFC4
/* 8001E954 0001A874 7F C3 F3 78 */ mr r3, r30
/* 8001E958 0001A878 4B FF A1 99 */ bl camera_clear
/* 8001E95C 0001A87C A8 9E 00 24 */ lha r4, 0x24(r30)
/* 8001E960 0001A880 3C 60 80 25 */ lis r3, lbl_80250A68@ha
/* 8001E964 0001A884 38 03 0A 68 */ addi r0, r3, lbl_80250A68@l
/* 8001E968 0001A888 60 83 00 04 */ ori r3, r4, 4
/* 8001E96C 0001A88C B0 7E 00 24 */ sth r3, 0x24(r30)
/* 8001E970 0001A890 38 81 00 34 */ addi r4, r1, 0x34
/* 8001E974 0001A894 88 7F 00 2E */ lbz r3, 0x2e(r31)
/* 8001E978 0001A898 7C 63 07 74 */ extsb r3, r3
/* 8001E97C 0001A89C 54 63 10 3A */ slwi r3, r3, 2
/* 8001E980 0001A8A0 7C 60 1A 14 */ add r3, r0, r3
/* 8001E984 0001A8A4 80 63 00 00 */ lwz r3, 0(r3)
/* 8001E988 0001A8A8 48 02 B5 99 */ bl g_get_replay_info
/* 8001E98C 0001A8AC A0 01 00 34 */ lhz r0, 0x34(r1)
/* 8001E990 0001A8B0 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8001E994 0001A8B4 41 82 00 30 */ beq lbl_8001E9C4
/* 8001E998 0001A8B8 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 8001E99C 0001A8BC 3C 60 80 1F */ lis r3, lbl_801F3A58@ha
/* 8001E9A0 0001A8C0 38 A3 3A 58 */ addi r5, r3, lbl_801F3A58@l
/* 8001E9A4 0001A8C4 A8 65 00 0C */ lha r3, 0xc(r5)
/* 8001E9A8 0001A8C8 80 04 00 18 */ lwz r0, 0x18(r4)
/* 8001E9AC 0001A8CC 7C 03 00 00 */ cmpw r3, r0
/* 8001E9B0 0001A8D0 40 80 00 14 */ bge lbl_8001E9C4
/* 8001E9B4 0001A8D4 A8 65 00 0E */ lha r3, 0xe(r5)
/* 8001E9B8 0001A8D8 80 04 00 08 */ lwz r0, 8(r4)
/* 8001E9BC 0001A8DC 7C 03 00 00 */ cmpw r3, r0
/* 8001E9C0 0001A8E0 41 80 00 CC */ blt lbl_8001EA8C
lbl_8001E9C4:
/* 8001E9C4 0001A8E4 38 00 00 00 */ li r0, 0
/* 8001E9C8 0001A8E8 B0 1E 01 0E */ sth r0, 0x10e(r30)
/* 8001E9CC 0001A8EC 38 00 FF FF */ li r0, -1
/* 8001E9D0 0001A8F0 B0 1E 01 10 */ sth r0, 0x110(r30)
/* 8001E9D4 0001A8F4 48 0E 7E 91 */ bl rand
/* 8001E9D8 0001A8F8 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001E9DC 0001A8FC C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001E9E0 0001A900 90 01 00 94 */ stw r0, 0x94(r1)
/* 8001E9E4 0001A904 3F A0 43 30 */ lis r29, 0x4330
/* 8001E9E8 0001A908 C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001E9EC 0001A90C 93 A1 00 90 */ stw r29, 0x90(r1)
/* 8001E9F0 0001A910 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001E9F4 0001A914 C8 61 00 90 */ lfd f3, 0x90(r1)
/* 8001E9F8 0001A918 C0 02 86 D8 */ lfs f0, lbl_802F2ED8@sda21(r2)
/* 8001E9FC 0001A91C EC 63 20 28 */ fsubs f3, f3, f4
/* 8001EA00 0001A920 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001EA04 0001A924 FC 22 08 28 */ fsub f1, f2, f1
/* 8001EA08 0001A928 FC 20 08 18 */ frsp f1, f1
/* 8001EA0C 0001A92C D0 21 00 58 */ stfs f1, 0x58(r1)
/* 8001EA10 0001A930 D0 01 00 5C */ stfs f0, 0x5c(r1)
/* 8001EA14 0001A934 48 0E 7E 51 */ bl rand
/* 8001EA18 0001A938 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EA1C 0001A93C C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001EA20 0001A940 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8001EA24 0001A944 C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001EA28 0001A948 93 A1 00 88 */ stw r29, 0x88(r1)
/* 8001EA2C 0001A94C C8 02 84 E0 */ lfd f0, lbl_802F2CE0@sda21(r2)
/* 8001EA30 0001A950 C8 41 00 88 */ lfd f2, 0x88(r1)
/* 8001EA34 0001A954 EC 42 18 28 */ fsubs f2, f2, f3
/* 8001EA38 0001A958 EC 22 08 24 */ fdivs f1, f2, f1
/* 8001EA3C 0001A95C FC 01 00 28 */ fsub f0, f1, f0
/* 8001EA40 0001A960 FC 00 00 18 */ frsp f0, f0
/* 8001EA44 0001A964 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8001EA48 0001A968 48 0E 7E 1D */ bl rand
/* 8001EA4C 0001A96C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EA50 0001A970 C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001EA54 0001A974 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001EA58 0001A978 38 61 00 58 */ addi r3, r1, 0x58
/* 8001EA5C 0001A97C C0 02 85 90 */ lfs f0, lbl_802F2D90@sda21(r2)
/* 8001EA60 0001A980 7C 64 1B 78 */ mr r4, r3
/* 8001EA64 0001A984 93 A1 00 80 */ stw r29, 0x80(r1)
/* 8001EA68 0001A988 C8 22 86 E0 */ lfd f1, lbl_802F2EE0@sda21(r2)
/* 8001EA6C 0001A98C C8 41 00 80 */ lfd f2, 0x80(r1)
/* 8001EA70 0001A990 EC 42 18 28 */ fsubs f2, f2, f3
/* 8001EA74 0001A994 EC 02 00 24 */ fdivs f0, f2, f0
/* 8001EA78 0001A998 FC 01 00 32 */ fmul f0, f1, f0
/* 8001EA7C 0001A99C FC 01 00 2A */ fadd f0, f1, f0
/* 8001EA80 0001A9A0 FC 20 00 18 */ frsp f1, f0
/* 8001EA84 0001A9A4 4B FE 96 F1 */ bl mathutil_vec_set_len
/* 8001EA88 0001A9A8 48 00 02 14 */ b lbl_8001EC9C
lbl_8001EA8C:
/* 8001EA8C 0001A9AC B0 7E 01 0E */ sth r3, 0x10e(r30)
/* 8001EA90 0001A9B0 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001EA94 0001A9B4 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001EA98 0001A9B8 A8 65 00 0C */ lha r3, 0xc(r5)
/* 8001EA9C 0001A9BC B0 7E 01 10 */ sth r3, 0x110(r30)
/* 8001EAA0 0001A9C0 A8 7E 01 10 */ lha r3, 0x110(r30)
/* 8001EAA4 0001A9C4 80 8D 9D 50 */ lwz r4, decodedStageLzPtr@sda21(r13)
/* 8001EAA8 0001A9C8 1C 63 00 14 */ mulli r3, r3, 0x14
/* 8001EAAC 0001A9CC 80 84 00 1C */ lwz r4, 0x1c(r4)
/* 8001EAB0 0001A9D0 7C A4 1A 14 */ add r5, r4, r3
/* 8001EAB4 0001A9D4 80 85 00 00 */ lwz r4, 0(r5)
/* 8001EAB8 0001A9D8 80 65 00 04 */ lwz r3, 4(r5)
/* 8001EABC 0001A9DC 90 81 00 58 */ stw r4, 0x58(r1)
/* 8001EAC0 0001A9E0 90 61 00 5C */ stw r3, 0x5c(r1)
/* 8001EAC4 0001A9E4 80 65 00 08 */ lwz r3, 8(r5)
/* 8001EAC8 0001A9E8 90 61 00 60 */ stw r3, 0x60(r1)
/* 8001EACC 0001A9EC A8 7E 01 0E */ lha r3, 0x10e(r30)
/* 8001EAD0 0001A9F0 1C 63 00 84 */ mulli r3, r3, 0x84
/* 8001EAD4 0001A9F4 7C 60 1A 14 */ add r3, r0, r3
/* 8001EAD8 0001A9F8 38 63 00 24 */ addi r3, r3, 0x24
/* 8001EADC 0001A9FC 4B FE 8D D5 */ bl mathutil_mtxA_from_mtx
/* 8001EAE0 0001AA00 38 7F 00 04 */ addi r3, r31, 4
/* 8001EAE4 0001AA04 38 81 00 28 */ addi r4, r1, 0x28
/* 8001EAE8 0001AA08 4B FE 93 E5 */ bl mathutil_mtxA_rigid_inv_tf_point
/* 8001EAEC 0001AA0C C0 A1 00 58 */ lfs f5, 0x58(r1)
/* 8001EAF0 0001AA10 C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8001EAF4 0001AA14 C0 81 00 5C */ lfs f4, 0x5c(r1)
/* 8001EAF8 0001AA18 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001EAFC 0001AA1C C0 61 00 60 */ lfs f3, 0x60(r1)
/* 8001EB00 0001AA20 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001EB04 0001AA24 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001EB08 0001AA28 EC 84 08 28 */ fsubs f4, f4, f1
/* 8001EB0C 0001AA2C EC 63 00 28 */ fsubs f3, f3, f0
/* 8001EB10 0001AA30 EC 25 01 72 */ fmuls f1, f5, f5
/* 8001EB14 0001AA34 EC 24 09 3A */ fmadds f1, f4, f4, f1
/* 8001EB18 0001AA38 EC 23 08 FA */ fmadds f1, f3, f3, f1
/* 8001EB1C 0001AA3C 4B FE 85 DD */ bl mathutil_sqrt
/* 8001EB20 0001AA40 FF E0 08 90 */ fmr f31, f1
/* 8001EB24 0001AA44 C8 02 86 A0 */ lfd f0, lbl_802F2EA0@sda21(r2)
/* 8001EB28 0001AA48 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001EB2C 0001AA4C 40 81 00 0C */ ble lbl_8001EB38
/* 8001EB30 0001AA50 C3 E2 85 A8 */ lfs f31, lbl_802F2DA8@sda21(r2)
/* 8001EB34 0001AA54 48 00 00 14 */ b lbl_8001EB48
lbl_8001EB38:
/* 8001EB38 0001AA58 C8 02 86 E0 */ lfd f0, lbl_802F2EE0@sda21(r2)
/* 8001EB3C 0001AA5C FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 8001EB40 0001AA60 40 80 00 08 */ bge lbl_8001EB48
/* 8001EB44 0001AA64 C3 E2 86 E8 */ lfs f31, lbl_802F2EE8@sda21(r2)
lbl_8001EB48:
/* 8001EB48 0001AA68 48 0E 7D 1D */ bl rand
/* 8001EB4C 0001AA6C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EB50 0001AA70 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001EB54 0001AA74 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001EB58 0001AA78 3F A0 43 30 */ lis r29, 0x4330
/* 8001EB5C 0001AA7C C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001EB60 0001AA80 93 A1 00 80 */ stw r29, 0x80(r1)
/* 8001EB64 0001AA84 C8 22 84 E0 */ lfd f1, lbl_802F2CE0@sda21(r2)
/* 8001EB68 0001AA88 C8 61 00 80 */ lfd f3, 0x80(r1)
/* 8001EB6C 0001AA8C C0 02 86 EC */ lfs f0, lbl_802F2EEC@sda21(r2)
/* 8001EB70 0001AA90 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001EB74 0001AA94 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001EB78 0001AA98 FC 22 08 28 */ fsub f1, f2, f1
/* 8001EB7C 0001AA9C FC 20 08 18 */ frsp f1, f1
/* 8001EB80 0001AAA0 D0 21 00 4C */ stfs f1, 0x4c(r1)
/* 8001EB84 0001AAA4 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8001EB88 0001AAA8 48 0E 7C DD */ bl rand
/* 8001EB8C 0001AAAC 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EB90 0001AAB0 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001EB94 0001AAB4 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8001EB98 0001AAB8 38 61 00 4C */ addi r3, r1, 0x4c
/* 8001EB9C 0001AABC C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001EBA0 0001AAC0 FC 20 F8 90 */ fmr f1, f31
/* 8001EBA4 0001AAC4 93 A1 00 88 */ stw r29, 0x88(r1)
/* 8001EBA8 0001AAC8 C8 02 84 E0 */ lfd f0, lbl_802F2CE0@sda21(r2)
/* 8001EBAC 0001AACC 7C 64 1B 78 */ mr r4, r3
/* 8001EBB0 0001AAD0 C8 61 00 88 */ lfd f3, 0x88(r1)
/* 8001EBB4 0001AAD4 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001EBB8 0001AAD8 EC 43 10 24 */ fdivs f2, f3, f2
/* 8001EBBC 0001AADC FC 02 00 28 */ fsub f0, f2, f0
/* 8001EBC0 0001AAE0 FC 00 00 18 */ frsp f0, f0
/* 8001EBC4 0001AAE4 D0 01 00 54 */ stfs f0, 0x54(r1)
/* 8001EBC8 0001AAE8 4B FE 95 AD */ bl mathutil_vec_set_len
/* 8001EBCC 0001AAEC 48 0E 7C 99 */ bl rand
/* 8001EBD0 0001AAF0 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EBD4 0001AAF4 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001EBD8 0001AAF8 90 01 00 94 */ stw r0, 0x94(r1)
/* 8001EBDC 0001AAFC C0 02 85 90 */ lfs f0, lbl_802F2D90@sda21(r2)
/* 8001EBE0 0001AB00 93 A1 00 90 */ stw r29, 0x90(r1)
/* 8001EBE4 0001AB04 C8 E2 84 E0 */ lfd f7, lbl_802F2CE0@sda21(r2)
/* 8001EBE8 0001AB08 C8 21 00 90 */ lfd f1, 0x90(r1)
/* 8001EBEC 0001AB0C EC 21 10 28 */ fsubs f1, f1, f2
/* 8001EBF0 0001AB10 EC 01 00 24 */ fdivs f0, f1, f0
/* 8001EBF4 0001AB14 FC 07 00 32 */ fmul f0, f7, f0
/* 8001EBF8 0001AB18 FC 07 00 2A */ fadd f0, f7, f0
/* 8001EBFC 0001AB1C FC 1F 00 32 */ fmul f0, f31, f0
/* 8001EC00 0001AB20 FC 00 00 18 */ frsp f0, f0
/* 8001EC04 0001AB24 D0 01 00 50 */ stfs f0, 0x50(r1)
/* 8001EC08 0001AB28 A8 1E 01 0E */ lha r0, 0x10e(r30)
/* 8001EC0C 0001AB2C 2C 00 00 00 */ cmpwi r0, 0
/* 8001EC10 0001AB30 41 82 00 20 */ beq lbl_8001EC30
/* 8001EC14 0001AB34 C0 01 00 4C */ lfs f0, 0x4c(r1)
/* 8001EC18 0001AB38 C0 21 00 50 */ lfs f1, 0x50(r1)
/* 8001EC1C 0001AB3C D0 01 00 58 */ stfs f0, 0x58(r1)
/* 8001EC20 0001AB40 C0 01 00 54 */ lfs f0, 0x54(r1)
/* 8001EC24 0001AB44 D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 8001EC28 0001AB48 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 8001EC2C 0001AB4C 48 00 00 70 */ b lbl_8001EC9C
lbl_8001EC30:
/* 8001EC30 0001AB50 C0 A1 00 58 */ lfs f5, 0x58(r1)
/* 8001EC34 0001AB54 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001EC38 0001AB58 C0 C1 00 4C */ lfs f6, 0x4c(r1)
/* 8001EC3C 0001AB5C EC 45 00 2A */ fadds f2, f5, f0
/* 8001EC40 0001AB60 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001EC44 0001AB64 C0 81 00 50 */ lfs f4, 0x50(r1)
/* 8001EC48 0001AB68 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001EC4C 0001AB6C FC 67 00 B2 */ fmul f3, f7, f2
/* 8001EC50 0001AB70 C0 41 00 54 */ lfs f2, 0x54(r1)
/* 8001EC54 0001AB74 FC 66 18 2A */ fadd f3, f6, f3
/* 8001EC58 0001AB78 FC 63 28 28 */ fsub f3, f3, f5
/* 8001EC5C 0001AB7C FC 60 18 18 */ frsp f3, f3
/* 8001EC60 0001AB80 D0 61 00 58 */ stfs f3, 0x58(r1)
/* 8001EC64 0001AB84 C0 61 00 5C */ lfs f3, 0x5c(r1)
/* 8001EC68 0001AB88 EC 23 08 2A */ fadds f1, f3, f1
/* 8001EC6C 0001AB8C FC 27 00 72 */ fmul f1, f7, f1
/* 8001EC70 0001AB90 FC 24 08 2A */ fadd f1, f4, f1
/* 8001EC74 0001AB94 FC 21 18 28 */ fsub f1, f1, f3
/* 8001EC78 0001AB98 FC 20 08 18 */ frsp f1, f1
/* 8001EC7C 0001AB9C D0 21 00 5C */ stfs f1, 0x5c(r1)
/* 8001EC80 0001ABA0 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 8001EC84 0001ABA4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001EC88 0001ABA8 FC 07 00 32 */ fmul f0, f7, f0
/* 8001EC8C 0001ABAC FC 02 00 2A */ fadd f0, f2, f0
/* 8001EC90 0001ABB0 FC 00 08 28 */ fsub f0, f0, f1
/* 8001EC94 0001ABB4 FC 00 00 18 */ frsp f0, f0
/* 8001EC98 0001ABB8 D0 01 00 60 */ stfs f0, 0x60(r1)
lbl_8001EC9C:
/* 8001EC9C 0001ABBC 80 A1 00 58 */ lwz r5, 0x58(r1)
/* 8001ECA0 0001ABC0 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001ECA4 0001ABC4 80 81 00 5C */ lwz r4, 0x5c(r1)
/* 8001ECA8 0001ABC8 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001ECAC 0001ABCC 90 BE 01 14 */ stw r5, 0x114(r30)
/* 8001ECB0 0001ABD0 90 9E 01 18 */ stw r4, 0x118(r30)
/* 8001ECB4 0001ABD4 80 61 00 60 */ lwz r3, 0x60(r1)
/* 8001ECB8 0001ABD8 90 7E 01 1C */ stw r3, 0x11c(r30)
/* 8001ECBC 0001ABDC A8 7E 01 0E */ lha r3, 0x10e(r30)
/* 8001ECC0 0001ABE0 1C 63 00 84 */ mulli r3, r3, 0x84
/* 8001ECC4 0001ABE4 7C 60 1A 14 */ add r3, r0, r3
/* 8001ECC8 0001ABE8 38 63 00 24 */ addi r3, r3, 0x24
/* 8001ECCC 0001ABEC 4B FE 8B E5 */ bl mathutil_mtxA_from_mtx
/* 8001ECD0 0001ABF0 A8 1E 01 10 */ lha r0, 0x110(r30)
/* 8001ECD4 0001ABF4 2C 00 00 00 */ cmpwi r0, 0
/* 8001ECD8 0001ABF8 41 80 00 1C */ blt lbl_8001ECF4
/* 8001ECDC 0001ABFC 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001ECE0 0001AC00 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001ECE4 0001AC04 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001ECE8 0001AC08 7C 63 02 14 */ add r3, r3, r0
/* 8001ECEC 0001AC0C 4B FE 90 35 */ bl mathutil_mtxA_translate
/* 8001ECF0 0001AC10 4B FE 88 A1 */ bl mathutil_mtxA_sq_from_identity
lbl_8001ECF4:
/* 8001ECF4 0001AC14 48 0E 7B 71 */ bl rand
/* 8001ECF8 0001AC18 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 8001ECFC 0001AC1C A8 1E 00 32 */ lha r0, 0x32(r30)
/* 8001ED00 0001AC20 90 61 00 84 */ stw r3, 0x84(r1)
/* 8001ED04 0001AC24 3F A0 43 30 */ lis r29, 0x4330
/* 8001ED08 0001AC28 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001ED0C 0001AC2C C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001ED10 0001AC30 93 A1 00 80 */ stw r29, 0x80(r1)
/* 8001ED14 0001AC34 C0 02 85 90 */ lfs f0, lbl_802F2D90@sda21(r2)
/* 8001ED18 0001AC38 C8 21 00 80 */ lfd f1, 0x80(r1)
/* 8001ED1C 0001AC3C 90 01 00 8C */ stw r0, 0x8c(r1)
/* 8001ED20 0001AC40 EC 41 18 28 */ fsubs f2, f1, f3
/* 8001ED24 0001AC44 C0 22 84 7C */ lfs f1, lbl_802F2C7C@sda21(r2)
/* 8001ED28 0001AC48 93 A1 00 88 */ stw r29, 0x88(r1)
/* 8001ED2C 0001AC4C EC 42 00 24 */ fdivs f2, f2, f0
/* 8001ED30 0001AC50 C8 01 00 88 */ lfd f0, 0x88(r1)
/* 8001ED34 0001AC54 EC 21 10 2A */ fadds f1, f1, f2
/* 8001ED38 0001AC58 EC 00 18 28 */ fsubs f0, f0, f3
/* 8001ED3C 0001AC5C EF E0 00 72 */ fmuls f31, f0, f1
/* 8001ED40 0001AC60 48 0E 7B 25 */ bl rand
/* 8001ED44 0001AC64 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001ED48 0001AC68 C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001ED4C 0001AC6C 90 01 00 94 */ stw r0, 0x94(r1)
/* 8001ED50 0001AC70 C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001ED54 0001AC74 93 A1 00 90 */ stw r29, 0x90(r1)
/* 8001ED58 0001AC78 C0 02 84 90 */ lfs f0, lbl_802F2C90@sda21(r2)
/* 8001ED5C 0001AC7C C8 41 00 90 */ lfd f2, 0x90(r1)
/* 8001ED60 0001AC80 EC 42 18 28 */ fsubs f2, f2, f3
/* 8001ED64 0001AC84 EC 22 08 24 */ fdivs f1, f2, f1
/* 8001ED68 0001AC88 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001ED6C 0001AC8C EC 1F 00 32 */ fmuls f0, f31, f0
/* 8001ED70 0001AC90 FC 00 00 1E */ fctiwz f0, f0
/* 8001ED74 0001AC94 D8 01 00 78 */ stfd f0, 0x78(r1)
/* 8001ED78 0001AC98 80 01 00 7C */ lwz r0, 0x7c(r1)
/* 8001ED7C 0001AC9C 7C 03 07 34 */ extsh r3, r0
/* 8001ED80 0001ACA0 4B FE 92 7D */ bl mathutil_mtxA_rotate_y
/* 8001ED84 0001ACA4 48 0E 7A E1 */ bl rand
/* 8001ED88 0001ACA8 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001ED8C 0001ACAC C8 62 84 68 */ lfd f3, lbl_802F2C68@sda21(r2)
/* 8001ED90 0001ACB0 90 01 00 74 */ stw r0, 0x74(r1)
/* 8001ED94 0001ACB4 C0 22 85 90 */ lfs f1, lbl_802F2D90@sda21(r2)
/* 8001ED98 0001ACB8 93 A1 00 70 */ stw r29, 0x70(r1)
/* 8001ED9C 0001ACBC C0 02 84 90 */ lfs f0, lbl_802F2C90@sda21(r2)
/* 8001EDA0 0001ACC0 C8 41 00 70 */ lfd f2, 0x70(r1)
/* 8001EDA4 0001ACC4 EC 42 18 28 */ fsubs f2, f2, f3
/* 8001EDA8 0001ACC8 EC 22 08 24 */ fdivs f1, f2, f1
/* 8001EDAC 0001ACCC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001EDB0 0001ACD0 EC 1F 00 32 */ fmuls f0, f31, f0
/* 8001EDB4 0001ACD4 FC 00 00 1E */ fctiwz f0, f0
/* 8001EDB8 0001ACD8 D8 01 00 68 */ stfd f0, 0x68(r1)
/* 8001EDBC 0001ACDC 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 8001EDC0 0001ACE0 7C 03 07 34 */ extsh r3, r0
/* 8001EDC4 0001ACE4 4B FE 91 C5 */ bl mathutil_mtxA_rotate_x
/* 8001EDC8 0001ACE8 38 7F 00 04 */ addi r3, r31, 4
/* 8001EDCC 0001ACEC 38 9E 01 2C */ addi r4, r30, 0x12c
/* 8001EDD0 0001ACF0 4B FE 90 FD */ bl mathutil_mtxA_rigid_inv_tf_point
/* 8001EDD4 0001ACF4 38 7F 00 1C */ addi r3, r31, 0x1c
/* 8001EDD8 0001ACF8 38 9E 01 38 */ addi r4, r30, 0x138
/* 8001EDDC 0001ACFC 4B FE 91 45 */ bl mathutil_mtxA_rigid_inv_tf_vec
/* 8001EDE0 0001AD00 A8 9E 01 0E */ lha r4, 0x10e(r30)
/* 8001EDE4 0001AD04 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001EDE8 0001AD08 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001EDEC 0001AD0C 1C 64 00 84 */ mulli r3, r4, 0x84
/* 8001EDF0 0001AD10 7C 60 1A 14 */ add r3, r0, r3
/* 8001EDF4 0001AD14 38 63 00 24 */ addi r3, r3, 0x24
/* 8001EDF8 0001AD18 4B FE 8A B9 */ bl mathutil_mtxA_from_mtx
/* 8001EDFC 0001AD1C A8 1E 01 10 */ lha r0, 0x110(r30)
/* 8001EE00 0001AD20 2C 00 00 00 */ cmpwi r0, 0
/* 8001EE04 0001AD24 41 80 00 1C */ blt lbl_8001EE20
/* 8001EE08 0001AD28 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001EE0C 0001AD2C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001EE10 0001AD30 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001EE14 0001AD34 7C 63 02 14 */ add r3, r3, r0
/* 8001EE18 0001AD38 4B FE 8F 09 */ bl mathutil_mtxA_translate
/* 8001EE1C 0001AD3C 4B FE 87 75 */ bl mathutil_mtxA_sq_from_identity
lbl_8001EE20:
/* 8001EE20 0001AD40 38 7E 01 14 */ addi r3, r30, 0x114
/* 8001EE24 0001AD44 38 9E 00 00 */ addi r4, r30, 0
/* 8001EE28 0001AD48 4B FE 90 05 */ bl mathutil_mtxA_tf_point
/* 8001EE2C 0001AD4C 38 7E 01 2C */ addi r3, r30, 0x12c
/* 8001EE30 0001AD50 38 9E 00 0C */ addi r4, r30, 0xc
/* 8001EE34 0001AD54 4B FE 8F F9 */ bl mathutil_mtxA_tf_point
/* 8001EE38 0001AD58 48 0E 7A 2D */ bl rand
/* 8001EE3C 0001AD5C 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001EE40 0001AD60 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001EE44 0001AD64 90 01 00 6C */ stw r0, 0x6c(r1)
/* 8001EE48 0001AD68 3C 00 43 30 */ lis r0, 0x4330
/* 8001EE4C 0001AD6C 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001EE50 0001AD70 C0 42 85 90 */ lfs f2, lbl_802F2D90@sda21(r2)
/* 8001EE54 0001AD74 90 01 00 68 */ stw r0, 0x68(r1)
/* 8001EE58 0001AD78 C0 22 84 90 */ lfs f1, lbl_802F2C90@sda21(r2)
/* 8001EE5C 0001AD7C 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001EE60 0001AD80 C8 61 00 68 */ lfd f3, 0x68(r1)
/* 8001EE64 0001AD84 C0 02 86 F0 */ lfs f0, lbl_802F2EF0@sda21(r2)
/* 8001EE68 0001AD88 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001EE6C 0001AD8C EC 43 10 24 */ fdivs f2, f3, f2
/* 8001EE70 0001AD90 EC 21 10 2A */ fadds f1, f1, f2
/* 8001EE74 0001AD94 EC 00 00 72 */ fmuls f0, f0, f1
/* 8001EE78 0001AD98 FC 00 00 1E */ fctiwz f0, f0
/* 8001EE7C 0001AD9C D8 01 00 70 */ stfd f0, 0x70(r1)
/* 8001EE80 0001ADA0 80 61 00 74 */ lwz r3, 0x74(r1)
/* 8001EE84 0001ADA4 90 7E 00 6C */ stw r3, 0x6c(r30)
/* 8001EE88 0001ADA8 80 9E 01 14 */ lwz r4, 0x114(r30)
/* 8001EE8C 0001ADAC 80 7E 01 18 */ lwz r3, 0x118(r30)
/* 8001EE90 0001ADB0 90 81 00 4C */ stw r4, 0x4c(r1)
/* 8001EE94 0001ADB4 90 61 00 50 */ stw r3, 0x50(r1)
/* 8001EE98 0001ADB8 80 7E 01 1C */ lwz r3, 0x11c(r30)
/* 8001EE9C 0001ADBC 90 61 00 54 */ stw r3, 0x54(r1)
/* 8001EEA0 0001ADC0 A8 7E 01 0E */ lha r3, 0x10e(r30)
/* 8001EEA4 0001ADC4 1C 63 00 84 */ mulli r3, r3, 0x84
/* 8001EEA8 0001ADC8 7C 60 1A 14 */ add r3, r0, r3
/* 8001EEAC 0001ADCC 38 63 00 24 */ addi r3, r3, 0x24
/* 8001EEB0 0001ADD0 4B FE 8A 01 */ bl mathutil_mtxA_from_mtx
/* 8001EEB4 0001ADD4 A8 1E 01 10 */ lha r0, 0x110(r30)
/* 8001EEB8 0001ADD8 2C 00 00 00 */ cmpwi r0, 0
/* 8001EEBC 0001ADDC 41 80 00 1C */ blt lbl_8001EED8
/* 8001EEC0 0001ADE0 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001EEC4 0001ADE4 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001EEC8 0001ADE8 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001EECC 0001ADEC 7C 63 02 14 */ add r3, r3, r0
/* 8001EED0 0001ADF0 4B FE 8E 51 */ bl mathutil_mtxA_translate
/* 8001EED4 0001ADF4 4B FE 86 BD */ bl mathutil_mtxA_sq_from_identity
lbl_8001EED8:
/* 8001EED8 0001ADF8 38 61 00 4C */ addi r3, r1, 0x4c
/* 8001EEDC 0001ADFC 38 81 00 1C */ addi r4, r1, 0x1c
/* 8001EEE0 0001AE00 4B FE 8F 4D */ bl mathutil_mtxA_tf_point
/* 8001EEE4 0001AE04 A8 9E 01 0E */ lha r4, 0x10e(r30)
/* 8001EEE8 0001AE08 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001EEEC 0001AE0C 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001EEF0 0001AE10 1C 64 00 84 */ mulli r3, r4, 0x84
/* 8001EEF4 0001AE14 7C 60 1A 14 */ add r3, r0, r3
/* 8001EEF8 0001AE18 38 63 00 54 */ addi r3, r3, 0x54
/* 8001EEFC 0001AE1C 4B FE 89 B5 */ bl mathutil_mtxA_from_mtx
/* 8001EF00 0001AE20 A8 1E 01 10 */ lha r0, 0x110(r30)
/* 8001EF04 0001AE24 2C 00 00 00 */ cmpwi r0, 0
/* 8001EF08 0001AE28 41 80 00 1C */ blt lbl_8001EF24
/* 8001EF0C 0001AE2C 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001EF10 0001AE30 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001EF14 0001AE34 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001EF18 0001AE38 7C 63 02 14 */ add r3, r3, r0
/* 8001EF1C 0001AE3C 4B FE 8E 05 */ bl mathutil_mtxA_translate
/* 8001EF20 0001AE40 4B FE 86 71 */ bl mathutil_mtxA_sq_from_identity
lbl_8001EF24:
/* 8001EF24 0001AE44 38 61 00 4C */ addi r3, r1, 0x4c
/* 8001EF28 0001AE48 38 81 00 10 */ addi r4, r1, 0x10
/* 8001EF2C 0001AE4C 4B FE 8F 01 */ bl mathutil_mtxA_tf_point
/* 8001EF30 0001AE50 C0 41 00 1C */ lfs f2, 0x1c(r1)
/* 8001EF34 0001AE54 FC 00 F8 1E */ fctiwz f0, f31
/* 8001EF38 0001AE58 C0 21 00 10 */ lfs f1, 0x10(r1)
/* 8001EF3C 0001AE5C 38 E0 00 01 */ li r7, 1
/* 8001EF40 0001AE60 C0 81 00 20 */ lfs f4, 0x20(r1)
/* 8001EF44 0001AE64 EC A2 08 28 */ fsubs f5, f2, f1
/* 8001EF48 0001AE68 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8001EF4C 0001AE6C 38 C0 00 31 */ li r6, 0x31
/* 8001EF50 0001AE70 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 8001EF54 0001AE74 38 A0 00 05 */ li r5, 5
/* 8001EF58 0001AE78 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 8001EF5C 0001AE7C EC 64 18 28 */ fsubs f3, f4, f3
/* 8001EF60 0001AE80 D0 A1 00 4C */ stfs f5, 0x4c(r1)
/* 8001EF64 0001AE84 7F C3 F3 78 */ mr r3, r30
/* 8001EF68 0001AE88 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001EF6C 0001AE8C D0 61 00 50 */ stfs f3, 0x50(r1)
/* 8001EF70 0001AE90 7F E4 FB 78 */ mr r4, r31
/* 8001EF74 0001AE94 D0 21 00 54 */ stfs f1, 0x54(r1)
/* 8001EF78 0001AE98 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8001EF7C 0001AE9C 81 01 00 50 */ lwz r8, 0x50(r1)
/* 8001EF80 0001AEA0 D8 01 00 68 */ stfd f0, 0x68(r1)
/* 8001EF84 0001AEA4 90 1E 00 94 */ stw r0, 0x94(r30)
/* 8001EF88 0001AEA8 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 8001EF8C 0001AEAC 91 1E 00 98 */ stw r8, 0x98(r30)
/* 8001EF90 0001AEB0 81 01 00 54 */ lwz r8, 0x54(r1)
/* 8001EF94 0001AEB4 91 1E 00 9C */ stw r8, 0x9c(r30)
/* 8001EF98 0001AEB8 81 21 00 4C */ lwz r9, 0x4c(r1)
/* 8001EF9C 0001AEBC 81 01 00 50 */ lwz r8, 0x50(r1)
/* 8001EFA0 0001AEC0 91 3E 00 54 */ stw r9, 0x54(r30)
/* 8001EFA4 0001AEC4 91 1E 00 58 */ stw r8, 0x58(r30)
/* 8001EFA8 0001AEC8 81 01 00 54 */ lwz r8, 0x54(r1)
/* 8001EFAC 0001AECC 91 1E 00 5C */ stw r8, 0x5c(r30)
/* 8001EFB0 0001AED0 90 FE 00 68 */ stw r7, 0x68(r30)
/* 8001EFB4 0001AED4 98 DE 00 1E */ stb r6, 0x1e(r30)
/* 8001EFB8 0001AED8 98 BE 00 26 */ stb r5, 0x26(r30)
/* 8001EFBC 0001AEDC B0 1E 00 30 */ sth r0, 0x30(r30)
/* 8001EFC0 0001AEE0 48 00 00 25 */ bl camera_sub_49
lbl_8001EFC4:
/* 8001EFC4 0001AEE4 80 01 00 B4 */ lwz r0, 0xb4(r1)
/* 8001EFC8 0001AEE8 CB E1 00 A8 */ lfd f31, 0xa8(r1)
/* 8001EFCC 0001AEEC 83 E1 00 A4 */ lwz r31, 0xa4(r1)
/* 8001EFD0 0001AEF0 7C 08 03 A6 */ mtlr r0
/* 8001EFD4 0001AEF4 83 C1 00 A0 */ lwz r30, 0xa0(r1)
/* 8001EFD8 0001AEF8 83 A1 00 9C */ lwz r29, 0x9c(r1)
/* 8001EFDC 0001AEFC 38 21 00 B0 */ addi r1, r1, 0xb0
/* 8001EFE0 0001AF00 4E 80 00 20 */ blr
.global camera_sub_49
camera_sub_49:
/* 8001EFE4 0001AF04 7C 08 02 A6 */ mflr r0
/* 8001EFE8 0001AF08 90 01 00 04 */ stw r0, 4(r1)
/* 8001EFEC 0001AF0C 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 8001EFF0 0001AF10 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8001EFF4 0001AF14 3B E3 00 00 */ addi r31, r3, 0
/* 8001EFF8 0001AF18 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8001EFFC 0001AF1C 3B C4 00 00 */ addi r30, r4, 0
/* 8001F000 0001AF20 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001F004 0001AF24 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001F008 0001AF28 40 82 05 04 */ bne lbl_8001F50C
/* 8001F00C 0001AF2C A8 9F 01 0E */ lha r4, 0x10e(r31)
/* 8001F010 0001AF30 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001F014 0001AF34 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001F018 0001AF38 1C 64 00 84 */ mulli r3, r4, 0x84
/* 8001F01C 0001AF3C 7C 60 1A 14 */ add r3, r0, r3
/* 8001F020 0001AF40 38 63 00 24 */ addi r3, r3, 0x24
/* 8001F024 0001AF44 4B FE 88 8D */ bl mathutil_mtxA_from_mtx
/* 8001F028 0001AF48 A8 1F 01 10 */ lha r0, 0x110(r31)
/* 8001F02C 0001AF4C 2C 00 00 00 */ cmpwi r0, 0
/* 8001F030 0001AF50 41 80 00 1C */ blt lbl_8001F04C
/* 8001F034 0001AF54 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001F038 0001AF58 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001F03C 0001AF5C 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001F040 0001AF60 7C 63 02 14 */ add r3, r3, r0
/* 8001F044 0001AF64 4B FE 8C DD */ bl mathutil_mtxA_translate
/* 8001F048 0001AF68 4B FE 85 49 */ bl mathutil_mtxA_sq_from_identity
lbl_8001F04C:
/* 8001F04C 0001AF6C 80 1F 00 68 */ lwz r0, 0x68(r31)
/* 8001F050 0001AF70 2C 00 00 00 */ cmpwi r0, 0
/* 8001F054 0001AF74 41 82 02 C4 */ beq lbl_8001F318
/* 8001F058 0001AF78 80 BF 00 00 */ lwz r5, 0(r31)
/* 8001F05C 0001AF7C 7F E4 FB 78 */ mr r4, r31
/* 8001F060 0001AF80 80 1F 00 04 */ lwz r0, 4(r31)
/* 8001F064 0001AF84 38 7F 01 14 */ addi r3, r31, 0x114
/* 8001F068 0001AF88 90 A1 00 34 */ stw r5, 0x34(r1)
/* 8001F06C 0001AF8C 90 01 00 38 */ stw r0, 0x38(r1)
/* 8001F070 0001AF90 80 1F 00 08 */ lwz r0, 8(r31)
/* 8001F074 0001AF94 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001F078 0001AF98 4B FE 8D B5 */ bl mathutil_mtxA_tf_point
/* 8001F07C 0001AF9C C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001F080 0001AFA0 38 61 00 34 */ addi r3, r1, 0x34
/* 8001F084 0001AFA4 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8001F088 0001AFA8 38 81 00 28 */ addi r4, r1, 0x28
/* 8001F08C 0001AFAC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F090 0001AFB0 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001F094 0001AFB4 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001F098 0001AFB8 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001F09C 0001AFBC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F0A0 0001AFC0 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001F0A4 0001AFC4 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001F0A8 0001AFC8 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001F0AC 0001AFCC EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F0B0 0001AFD0 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001F0B4 0001AFD4 C0 1F 01 38 */ lfs f0, 0x138(r31)
/* 8001F0B8 0001AFD8 C8 22 86 28 */ lfd f1, lbl_802F2E28@sda21(r2)
/* 8001F0BC 0001AFDC FC 00 00 72 */ fmul f0, f0, f1
/* 8001F0C0 0001AFE0 FC 00 00 18 */ frsp f0, f0
/* 8001F0C4 0001AFE4 D0 1F 01 38 */ stfs f0, 0x138(r31)
/* 8001F0C8 0001AFE8 C0 1F 01 3C */ lfs f0, 0x13c(r31)
/* 8001F0CC 0001AFEC FC 00 00 72 */ fmul f0, f0, f1
/* 8001F0D0 0001AFF0 FC 00 00 18 */ frsp f0, f0
/* 8001F0D4 0001AFF4 D0 1F 01 3C */ stfs f0, 0x13c(r31)
/* 8001F0D8 0001AFF8 C0 1F 01 40 */ lfs f0, 0x140(r31)
/* 8001F0DC 0001AFFC FC 00 00 72 */ fmul f0, f0, f1
/* 8001F0E0 0001B000 FC 00 00 18 */ frsp f0, f0
/* 8001F0E4 0001B004 D0 1F 01 40 */ stfs f0, 0x140(r31)
/* 8001F0E8 0001B008 C8 42 86 08 */ lfd f2, lbl_802F2E08@sda21(r2)
/* 8001F0EC 0001B00C C0 1E 00 1C */ lfs f0, 0x1c(r30)
/* 8001F0F0 0001B010 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001F0F4 0001B014 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F0F8 0001B018 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F0FC 0001B01C FC 00 00 18 */ frsp f0, f0
/* 8001F100 0001B020 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8001F104 0001B024 C0 1E 00 20 */ lfs f0, 0x20(r30)
/* 8001F108 0001B028 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001F10C 0001B02C FC 02 00 32 */ fmul f0, f2, f0
/* 8001F110 0001B030 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F114 0001B034 FC 00 00 18 */ frsp f0, f0
/* 8001F118 0001B038 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001F11C 0001B03C C0 1E 00 24 */ lfs f0, 0x24(r30)
/* 8001F120 0001B040 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001F124 0001B044 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F128 0001B048 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F12C 0001B04C FC 00 00 18 */ frsp f0, f0
/* 8001F130 0001B050 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001F134 0001B054 4B FE 8D 99 */ bl mathutil_mtxA_rigid_inv_tf_point
/* 8001F138 0001B058 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001F13C 0001B05C 38 7F 01 2C */ addi r3, r31, 0x12c
/* 8001F140 0001B060 C0 1F 01 2C */ lfs f0, 0x12c(r31)
/* 8001F144 0001B064 38 9F 00 0C */ addi r4, r31, 0xc
/* 8001F148 0001B068 C0 5F 01 38 */ lfs f2, 0x138(r31)
/* 8001F14C 0001B06C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F150 0001B070 C8 62 84 F8 */ lfd f3, lbl_802F2CF8@sda21(r2)
/* 8001F154 0001B074 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001F158 0001B078 FC 03 00 32 */ fmul f0, f3, f0
/* 8001F15C 0001B07C FC 02 00 2A */ fadd f0, f2, f0
/* 8001F160 0001B080 FC 00 00 18 */ frsp f0, f0
/* 8001F164 0001B084 D0 1F 01 38 */ stfs f0, 0x138(r31)
/* 8001F168 0001B088 C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8001F16C 0001B08C C0 3F 01 30 */ lfs f1, 0x130(r31)
/* 8001F170 0001B090 C0 1F 01 38 */ lfs f0, 0x138(r31)
/* 8001F174 0001B094 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001F178 0001B098 C0 5F 01 3C */ lfs f2, 0x13c(r31)
/* 8001F17C 0001B09C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F180 0001B0A0 FC 03 00 32 */ fmul f0, f3, f0
/* 8001F184 0001B0A4 FC 02 00 2A */ fadd f0, f2, f0
/* 8001F188 0001B0A8 FC 00 00 18 */ frsp f0, f0
/* 8001F18C 0001B0AC D0 1F 01 3C */ stfs f0, 0x13c(r31)
/* 8001F190 0001B0B0 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001F194 0001B0B4 C0 3F 01 34 */ lfs f1, 0x134(r31)
/* 8001F198 0001B0B8 C0 1F 01 38 */ lfs f0, 0x138(r31)
/* 8001F19C 0001B0BC EC 22 08 28 */ fsubs f1, f2, f1
/* 8001F1A0 0001B0C0 C0 5F 01 40 */ lfs f2, 0x140(r31)
/* 8001F1A4 0001B0C4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F1A8 0001B0C8 FC 03 00 32 */ fmul f0, f3, f0
/* 8001F1AC 0001B0CC FC 02 00 2A */ fadd f0, f2, f0
/* 8001F1B0 0001B0D0 FC 00 00 18 */ frsp f0, f0
/* 8001F1B4 0001B0D4 D0 1F 01 40 */ stfs f0, 0x140(r31)
/* 8001F1B8 0001B0D8 C0 3F 01 2C */ lfs f1, 0x12c(r31)
/* 8001F1BC 0001B0DC C0 1F 01 38 */ lfs f0, 0x138(r31)
/* 8001F1C0 0001B0E0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F1C4 0001B0E4 D0 1F 01 2C */ stfs f0, 0x12c(r31)
/* 8001F1C8 0001B0E8 C0 3F 01 30 */ lfs f1, 0x130(r31)
/* 8001F1CC 0001B0EC C0 1F 01 3C */ lfs f0, 0x13c(r31)
/* 8001F1D0 0001B0F0 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F1D4 0001B0F4 D0 1F 01 30 */ stfs f0, 0x130(r31)
/* 8001F1D8 0001B0F8 C0 3F 01 34 */ lfs f1, 0x134(r31)
/* 8001F1DC 0001B0FC C0 1F 01 40 */ lfs f0, 0x140(r31)
/* 8001F1E0 0001B100 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F1E4 0001B104 D0 1F 01 34 */ stfs f0, 0x134(r31)
/* 8001F1E8 0001B108 80 BF 00 0C */ lwz r5, 0xc(r31)
/* 8001F1EC 0001B10C 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8001F1F0 0001B110 90 A1 00 34 */ stw r5, 0x34(r1)
/* 8001F1F4 0001B114 90 01 00 38 */ stw r0, 0x38(r1)
/* 8001F1F8 0001B118 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 8001F1FC 0001B11C 90 01 00 3C */ stw r0, 0x3c(r1)
/* 8001F200 0001B120 4B FE 8C 2D */ bl mathutil_mtxA_tf_point
/* 8001F204 0001B124 C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001F208 0001B128 C0 01 00 34 */ lfs f0, 0x34(r1)
/* 8001F20C 0001B12C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F210 0001B130 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001F214 0001B134 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001F218 0001B138 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8001F21C 0001B13C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F220 0001B140 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001F224 0001B144 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001F228 0001B148 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001F22C 0001B14C EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F230 0001B150 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001F234 0001B154 4B FE 85 BD */ bl mathutil_mtxA_push
/* 8001F238 0001B158 38 7F 01 14 */ addi r3, r31, 0x114
/* 8001F23C 0001B15C 38 81 00 1C */ addi r4, r1, 0x1c
/* 8001F240 0001B160 4B FE 8B ED */ bl mathutil_mtxA_tf_point
/* 8001F244 0001B164 A8 9F 01 0E */ lha r4, 0x10e(r31)
/* 8001F248 0001B168 3C 60 80 20 */ lis r3, lbl_80206E48@ha
/* 8001F24C 0001B16C 38 03 6E 48 */ addi r0, r3, lbl_80206E48@l
/* 8001F250 0001B170 1C 64 00 84 */ mulli r3, r4, 0x84
/* 8001F254 0001B174 7C 60 1A 14 */ add r3, r0, r3
/* 8001F258 0001B178 38 63 00 54 */ addi r3, r3, 0x54
/* 8001F25C 0001B17C 4B FE 86 55 */ bl mathutil_mtxA_from_mtx
/* 8001F260 0001B180 A8 1F 01 10 */ lha r0, 0x110(r31)
/* 8001F264 0001B184 2C 00 00 00 */ cmpwi r0, 0
/* 8001F268 0001B188 41 80 00 1C */ blt lbl_8001F284
/* 8001F26C 0001B18C 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 8001F270 0001B190 1C 00 00 14 */ mulli r0, r0, 0x14
/* 8001F274 0001B194 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 8001F278 0001B198 7C 63 02 14 */ add r3, r3, r0
/* 8001F27C 0001B19C 4B FE 8A A5 */ bl mathutil_mtxA_translate
/* 8001F280 0001B1A0 4B FE 83 11 */ bl mathutil_mtxA_sq_from_identity
lbl_8001F284:
/* 8001F284 0001B1A4 38 7F 01 14 */ addi r3, r31, 0x114
/* 8001F288 0001B1A8 38 81 00 10 */ addi r4, r1, 0x10
/* 8001F28C 0001B1AC 4B FE 8B A1 */ bl mathutil_mtxA_tf_point
/* 8001F290 0001B1B0 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 8001F294 0001B1B4 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001F298 0001B1B8 C0 61 00 20 */ lfs f3, 0x20(r1)
/* 8001F29C 0001B1BC EC 81 00 28 */ fsubs f4, f1, f0
/* 8001F2A0 0001B1C0 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 8001F2A4 0001B1C4 C0 21 00 24 */ lfs f1, 0x24(r1)
/* 8001F2A8 0001B1C8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001F2AC 0001B1CC EC 43 10 28 */ fsubs f2, f3, f2
/* 8001F2B0 0001B1D0 D0 81 00 34 */ stfs f4, 0x34(r1)
/* 8001F2B4 0001B1D4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F2B8 0001B1D8 D0 41 00 38 */ stfs f2, 0x38(r1)
/* 8001F2BC 0001B1DC D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001F2C0 0001B1E0 80 7F 00 6C */ lwz r3, 0x6c(r31)
/* 8001F2C4 0001B1E4 2C 03 00 00 */ cmpwi r3, 0
/* 8001F2C8 0001B1E8 40 81 00 28 */ ble lbl_8001F2F0
/* 8001F2CC 0001B1EC 38 03 FF FF */ addi r0, r3, -1
/* 8001F2D0 0001B1F0 90 1F 00 6C */ stw r0, 0x6c(r31)
/* 8001F2D4 0001B1F4 80 61 00 34 */ lwz r3, 0x34(r1)
/* 8001F2D8 0001B1F8 80 01 00 38 */ lwz r0, 0x38(r1)
/* 8001F2DC 0001B1FC 90 7F 00 54 */ stw r3, 0x54(r31)
/* 8001F2E0 0001B200 90 1F 00 58 */ stw r0, 0x58(r31)
/* 8001F2E4 0001B204 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8001F2E8 0001B208 90 1F 00 5C */ stw r0, 0x5c(r31)
/* 8001F2EC 0001B20C 48 00 00 24 */ b lbl_8001F310
lbl_8001F2F0:
/* 8001F2F0 0001B210 38 61 00 34 */ addi r3, r1, 0x34
/* 8001F2F4 0001B214 38 9F 00 54 */ addi r4, r31, 0x54
/* 8001F2F8 0001B218 4B FE 8E F5 */ bl mathutil_vec_dot_normalized_safe
/* 8001F2FC 0001B21C C0 02 86 F4 */ lfs f0, lbl_802F2EF4@sda21(r2)
/* 8001F300 0001B220 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8001F304 0001B224 40 80 00 0C */ bge lbl_8001F310
/* 8001F308 0001B228 38 00 00 00 */ li r0, 0
/* 8001F30C 0001B22C 90 1F 00 68 */ stw r0, 0x68(r31)
lbl_8001F310:
/* 8001F310 0001B230 4B FE 85 25 */ bl mathutil_mtxA_pop
/* 8001F314 0001B234 48 00 01 88 */ b lbl_8001F49C
lbl_8001F318:
/* 8001F318 0001B238 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001F31C 0001B23C C0 42 86 F8 */ lfs f2, lbl_802F2EF8@sda21(r2)
/* 8001F320 0001B240 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001F324 0001B244 D0 1F 00 94 */ stfs f0, 0x94(r31)
/* 8001F328 0001B248 C0 3F 00 98 */ lfs f1, 0x98(r31)
/* 8001F32C 0001B24C C0 02 86 FC */ lfs f0, lbl_802F2EFC@sda21(r2)
/* 8001F330 0001B250 EC 01 00 32 */ fmuls f0, f1, f0
/* 8001F334 0001B254 D0 1F 00 98 */ stfs f0, 0x98(r31)
/* 8001F338 0001B258 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001F33C 0001B25C EC 00 00 B2 */ fmuls f0, f0, f2
/* 8001F340 0001B260 D0 1F 00 9C */ stfs f0, 0x9c(r31)
/* 8001F344 0001B264 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001F348 0001B268 C0 1F 00 94 */ lfs f0, 0x94(r31)
/* 8001F34C 0001B26C EC 01 00 2A */ fadds f0, f1, f0
/* 8001F350 0001B270 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001F354 0001B274 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001F358 0001B278 C0 1F 00 98 */ lfs f0, 0x98(r31)
/* 8001F35C 0001B27C EC 01 00 2A */ fadds f0, f1, f0
/* 8001F360 0001B280 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001F364 0001B284 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001F368 0001B288 C0 1F 00 9C */ lfs f0, 0x9c(r31)
/* 8001F36C 0001B28C EC 01 00 2A */ fadds f0, f1, f0
/* 8001F370 0001B290 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001F374 0001B294 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001F378 0001B298 C8 22 86 28 */ lfd f1, lbl_802F2E28@sda21(r2)
/* 8001F37C 0001B29C FC 00 00 72 */ fmul f0, f0, f1
/* 8001F380 0001B2A0 FC 00 00 18 */ frsp f0, f0
/* 8001F384 0001B2A4 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001F388 0001B2A8 C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001F38C 0001B2AC FC 00 00 72 */ fmul f0, f0, f1
/* 8001F390 0001B2B0 FC 00 00 18 */ frsp f0, f0
/* 8001F394 0001B2B4 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001F398 0001B2B8 C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001F39C 0001B2BC FC 00 00 72 */ fmul f0, f0, f1
/* 8001F3A0 0001B2C0 FC 00 00 18 */ frsp f0, f0
/* 8001F3A4 0001B2C4 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001F3A8 0001B2C8 C8 42 86 08 */ lfd f2, lbl_802F2E08@sda21(r2)
/* 8001F3AC 0001B2CC C0 1E 00 1C */ lfs f0, 0x1c(r30)
/* 8001F3B0 0001B2D0 C0 3E 00 04 */ lfs f1, 4(r30)
/* 8001F3B4 0001B2D4 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F3B8 0001B2D8 C8 62 84 F8 */ lfd f3, lbl_802F2CF8@sda21(r2)
/* 8001F3BC 0001B2DC FC 01 00 2A */ fadd f0, f1, f0
/* 8001F3C0 0001B2E0 FC 00 00 18 */ frsp f0, f0
/* 8001F3C4 0001B2E4 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001F3C8 0001B2E8 C0 1E 00 20 */ lfs f0, 0x20(r30)
/* 8001F3CC 0001B2EC C0 3E 00 08 */ lfs f1, 8(r30)
/* 8001F3D0 0001B2F0 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F3D4 0001B2F4 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F3D8 0001B2F8 FC 00 00 18 */ frsp f0, f0
/* 8001F3DC 0001B2FC D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001F3E0 0001B300 C0 1E 00 24 */ lfs f0, 0x24(r30)
/* 8001F3E4 0001B304 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001F3E8 0001B308 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F3EC 0001B30C FC 01 00 2A */ fadd f0, f1, f0
/* 8001F3F0 0001B310 FC 00 00 18 */ frsp f0, f0
/* 8001F3F4 0001B314 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001F3F8 0001B318 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001F3FC 0001B31C C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001F400 0001B320 C0 5F 00 A0 */ lfs f2, 0xa0(r31)
/* 8001F404 0001B324 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F408 0001B328 EC 00 10 28 */ fsubs f0, f0, f2
/* 8001F40C 0001B32C FC 03 00 32 */ fmul f0, f3, f0
/* 8001F410 0001B330 FC 02 00 2A */ fadd f0, f2, f0
/* 8001F414 0001B334 FC 00 00 18 */ frsp f0, f0
/* 8001F418 0001B338 D0 1F 00 A0 */ stfs f0, 0xa0(r31)
/* 8001F41C 0001B33C C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 8001F420 0001B340 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001F424 0001B344 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001F428 0001B348 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001F42C 0001B34C C0 5F 00 A4 */ lfs f2, 0xa4(r31)
/* 8001F430 0001B350 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F434 0001B354 FC 03 00 32 */ fmul f0, f3, f0
/* 8001F438 0001B358 FC 02 00 2A */ fadd f0, f2, f0
/* 8001F43C 0001B35C FC 00 00 18 */ frsp f0, f0
/* 8001F440 0001B360 D0 1F 00 A4 */ stfs f0, 0xa4(r31)
/* 8001F444 0001B364 C0 41 00 30 */ lfs f2, 0x30(r1)
/* 8001F448 0001B368 C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001F44C 0001B36C C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001F450 0001B370 EC 22 08 28 */ fsubs f1, f2, f1
/* 8001F454 0001B374 C0 5F 00 A8 */ lfs f2, 0xa8(r31)
/* 8001F458 0001B378 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F45C 0001B37C FC 03 00 32 */ fmul f0, f3, f0
/* 8001F460 0001B380 FC 02 00 2A */ fadd f0, f2, f0
/* 8001F464 0001B384 FC 00 00 18 */ frsp f0, f0
/* 8001F468 0001B388 D0 1F 00 A8 */ stfs f0, 0xa8(r31)
/* 8001F46C 0001B38C C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001F470 0001B390 C0 1F 00 A0 */ lfs f0, 0xa0(r31)
/* 8001F474 0001B394 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F478 0001B398 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001F47C 0001B39C C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001F480 0001B3A0 C0 1F 00 A4 */ lfs f0, 0xa4(r31)
/* 8001F484 0001B3A4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F488 0001B3A8 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001F48C 0001B3AC C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001F490 0001B3B0 C0 1F 00 A8 */ lfs f0, 0xa8(r31)
/* 8001F494 0001B3B4 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F498 0001B3B8 D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_8001F49C:
/* 8001F49C 0001B3BC C0 3F 00 0C */ lfs f1, 0xc(r31)
/* 8001F4A0 0001B3C0 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001F4A4 0001B3C4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F4A8 0001B3C8 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 8001F4AC 0001B3CC C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001F4B0 0001B3D0 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001F4B4 0001B3D4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F4B8 0001B3D8 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 8001F4BC 0001B3DC C0 3F 00 14 */ lfs f1, 0x14(r31)
/* 8001F4C0 0001B3E0 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001F4C4 0001B3E4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001F4C8 0001B3E8 D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 8001F4CC 0001B3EC C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001F4D0 0001B3F0 C0 41 00 3C */ lfs f2, 0x3c(r1)
/* 8001F4D4 0001B3F4 4B FE 7D D1 */ bl mathutil_atan2
/* 8001F4D8 0001B3F8 38 03 80 00 */ addi r0, r3, -32768
/* 8001F4DC 0001B3FC B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001F4E0 0001B400 C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 8001F4E4 0001B404 C0 21 00 34 */ lfs f1, 0x34(r1)
/* 8001F4E8 0001B408 EC 21 00 72 */ fmuls f1, f1, f1
/* 8001F4EC 0001B40C EC 20 08 3A */ fmadds f1, f0, f0, f1
/* 8001F4F0 0001B410 4B FE 7C 09 */ bl mathutil_sqrt
/* 8001F4F4 0001B414 FC 40 08 90 */ fmr f2, f1
/* 8001F4F8 0001B418 C0 21 00 38 */ lfs f1, 0x38(r1)
/* 8001F4FC 0001B41C 4B FE 7D A9 */ bl mathutil_atan2
/* 8001F500 0001B420 B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001F504 0001B424 38 00 00 00 */ li r0, 0
/* 8001F508 0001B428 B0 1F 00 1C */ sth r0, 0x1c(r31)
lbl_8001F50C:
/* 8001F50C 0001B42C 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8001F510 0001B430 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 8001F514 0001B434 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 8001F518 0001B438 7C 08 03 A6 */ mtlr r0
/* 8001F51C 0001B43C 38 21 00 48 */ addi r1, r1, 0x48
/* 8001F520 0001B440 4E 80 00 20 */ blr
.global func_8001F524
func_8001F524:
/* 8001F524 0001B444 7C 08 02 A6 */ mflr r0
/* 8001F528 0001B448 90 01 00 04 */ stw r0, 4(r1)
/* 8001F52C 0001B44C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8001F530 0001B450 93 E1 00 14 */ stw r31, 0x14(r1)
/* 8001F534 0001B454 7C 7F 1B 78 */ mr r31, r3
/* 8001F538 0001B458 4B FF 95 B9 */ bl camera_clear
/* 8001F53C 0001B45C 38 00 00 00 */ li r0, 0
/* 8001F540 0001B460 B0 1F 00 50 */ sth r0, 0x50(r31)
/* 8001F544 0001B464 38 00 00 33 */ li r0, 0x33
/* 8001F548 0001B468 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8001F54C 0001B46C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 8001F550 0001B470 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8001F554 0001B474 38 21 00 18 */ addi r1, r1, 0x18
/* 8001F558 0001B478 7C 08 03 A6 */ mtlr r0
/* 8001F55C 0001B47C 4E 80 00 20 */ blr
.global func_8001F560
func_8001F560:
/* 8001F560 0001B480 7C 08 02 A6 */ mflr r0
/* 8001F564 0001B484 90 01 00 04 */ stw r0, 4(r1)
/* 8001F568 0001B488 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8001F56C 0001B48C 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8001F570 0001B490 3B E4 00 00 */ addi r31, r4, 0
/* 8001F574 0001B494 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8001F578 0001B498 3B C3 00 00 */ addi r30, r3, 0
/* 8001F57C 0001B49C 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001F580 0001B4A0 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001F584 0001B4A4 40 82 00 FC */ bne lbl_8001F680
/* 8001F588 0001B4A8 A8 7E 00 50 */ lha r3, 0x50(r30)
/* 8001F58C 0001B4AC 38 03 00 01 */ addi r0, r3, 1
/* 8001F590 0001B4B0 B0 1E 00 50 */ sth r0, 0x50(r30)
/* 8001F594 0001B4B4 A8 1E 00 50 */ lha r0, 0x50(r30)
/* 8001F598 0001B4B8 54 00 40 2E */ slwi r0, r0, 8
/* 8001F59C 0001B4BC 7C 00 07 34 */ extsh r0, r0
/* 8001F5A0 0001B4C0 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001F5A4 0001B4C4 A8 1E 00 50 */ lha r0, 0x50(r30)
/* 8001F5A8 0001B4C8 54 03 38 30 */ slwi r3, r0, 7
/* 8001F5AC 0001B4CC 38 63 40 00 */ addi r3, r3, 0x4000
/* 8001F5B0 0001B4D0 4B FE 7C 31 */ bl mathutil_sin
/* 8001F5B4 0001B4D4 C0 02 87 00 */ lfs f0, lbl_802F2F00@sda21(r2)
/* 8001F5B8 0001B4D8 38 00 00 00 */ li r0, 0
/* 8001F5BC 0001B4DC EC 00 00 72 */ fmuls f0, f0, f1
/* 8001F5C0 0001B4E0 FC 00 00 1E */ fctiwz f0, f0
/* 8001F5C4 0001B4E4 D8 01 00 20 */ stfd f0, 0x20(r1)
/* 8001F5C8 0001B4E8 80 61 00 24 */ lwz r3, 0x24(r1)
/* 8001F5CC 0001B4EC B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001F5D0 0001B4F0 B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 8001F5D4 0001B4F4 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001F5D8 0001B4F8 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8001F5DC 0001B4FC C8 22 85 08 */ lfd f1, lbl_802F2D08@sda21(r2)
/* 8001F5E0 0001B500 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001F5E4 0001B504 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F5E8 0001B508 FC 00 00 18 */ frsp f0, f0
/* 8001F5EC 0001B50C D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 8001F5F0 0001B510 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001F5F4 0001B514 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 8001F5F8 0001B518 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001F5FC 0001B51C D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8001F600 0001B520 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8001F604 0001B524 A8 1E 00 50 */ lha r0, 0x50(r30)
/* 8001F608 0001B528 54 03 38 30 */ slwi r3, r0, 7
/* 8001F60C 0001B52C 38 63 40 00 */ addi r3, r3, 0x4000
/* 8001F610 0001B530 4B FE 7B D1 */ bl mathutil_sin
/* 8001F614 0001B534 C8 42 86 B8 */ lfd f2, lbl_802F2EB8@sda21(r2)
/* 8001F618 0001B538 C8 02 87 08 */ lfd f0, lbl_802F2F08@sda21(r2)
/* 8001F61C 0001B53C FC 22 00 72 */ fmul f1, f2, f1
/* 8001F620 0001B540 FC 00 08 2A */ fadd f0, f0, f1
/* 8001F624 0001B544 FC 00 00 18 */ frsp f0, f0
/* 8001F628 0001B548 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 8001F62C 0001B54C A8 7E 00 1A */ lha r3, 0x1a(r30)
/* 8001F630 0001B550 4B FE 80 29 */ bl mathutil_mtxA_from_rotate_y
/* 8001F634 0001B554 A8 7E 00 18 */ lha r3, 0x18(r30)
/* 8001F638 0001B558 4B FE 89 51 */ bl mathutil_mtxA_rotate_x
/* 8001F63C 0001B55C A8 7E 00 1C */ lha r3, 0x1c(r30)
/* 8001F640 0001B560 4B FE 8A 49 */ bl mathutil_mtxA_rotate_z
/* 8001F644 0001B564 38 61 00 10 */ addi r3, r1, 0x10
/* 8001F648 0001B568 38 83 00 00 */ addi r4, r3, 0
/* 8001F64C 0001B56C 4B FE 87 F1 */ bl mathutil_mtxA_tf_vec
/* 8001F650 0001B570 C0 3E 00 0C */ lfs f1, 0xc(r30)
/* 8001F654 0001B574 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8001F658 0001B578 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F65C 0001B57C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001F660 0001B580 C0 3E 00 10 */ lfs f1, 0x10(r30)
/* 8001F664 0001B584 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8001F668 0001B588 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F66C 0001B58C D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001F670 0001B590 C0 3E 00 14 */ lfs f1, 0x14(r30)
/* 8001F674 0001B594 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8001F678 0001B598 EC 01 00 2A */ fadds f0, f1, f0
/* 8001F67C 0001B59C D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8001F680:
/* 8001F680 0001B5A0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8001F684 0001B5A4 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8001F688 0001B5A8 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8001F68C 0001B5AC 7C 08 03 A6 */ mtlr r0
/* 8001F690 0001B5B0 38 21 00 30 */ addi r1, r1, 0x30
/* 8001F694 0001B5B4 4E 80 00 20 */ blr
.global func_8001F698
func_8001F698:
/* 8001F698 0001B5B8 7C 08 02 A6 */ mflr r0
/* 8001F69C 0001B5BC 3C A0 80 11 */ lis r5, lbl_8011023C@ha
/* 8001F6A0 0001B5C0 90 01 00 04 */ stw r0, 4(r1)
/* 8001F6A4 0001B5C4 38 C5 02 3C */ addi r6, r5, lbl_8011023C@l
/* 8001F6A8 0001B5C8 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 8001F6AC 0001B5CC 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8001F6B0 0001B5D0 7C 9F 23 78 */ mr r31, r4
/* 8001F6B4 0001B5D4 93 C1 00 40 */ stw r30, 0x40(r1)
/* 8001F6B8 0001B5D8 7C 7E 1B 78 */ mr r30, r3
/* 8001F6BC 0001B5DC 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 8001F6C0 0001B5E0 80 A6 00 00 */ lwz r5, 0(r6)
/* 8001F6C4 0001B5E4 80 06 00 04 */ lwz r0, 4(r6)
/* 8001F6C8 0001B5E8 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8001F6CC 0001B5EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001F6D0 0001B5F0 80 06 00 08 */ lwz r0, 8(r6)
/* 8001F6D4 0001B5F4 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001F6D8 0001B5F8 4B FF 94 19 */ bl camera_clear
/* 8001F6DC 0001B5FC 48 0E 71 89 */ bl rand
/* 8001F6E0 0001B600 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001F6E4 0001B604 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001F6E8 0001B608 90 01 00 34 */ stw r0, 0x34(r1)
/* 8001F6EC 0001B60C 3F A0 43 30 */ lis r29, 0x4330
/* 8001F6F0 0001B610 C0 62 85 90 */ lfs f3, lbl_802F2D90@sda21(r2)
/* 8001F6F4 0001B614 93 A1 00 30 */ stw r29, 0x30(r1)
/* 8001F6F8 0001B618 C0 42 84 90 */ lfs f2, lbl_802F2C90@sda21(r2)
/* 8001F6FC 0001B61C C8 01 00 30 */ lfd f0, 0x30(r1)
/* 8001F700 0001B620 C0 22 86 F0 */ lfs f1, lbl_802F2EF0@sda21(r2)
/* 8001F704 0001B624 EC 80 20 28 */ fsubs f4, f0, f4
/* 8001F708 0001B628 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001F70C 0001B62C EC 64 18 24 */ fdivs f3, f4, f3
/* 8001F710 0001B630 EC 43 10 28 */ fsubs f2, f3, f2
/* 8001F714 0001B634 EC 21 00 B2 */ fmuls f1, f1, f2
/* 8001F718 0001B638 EC 00 08 2A */ fadds f0, f0, f1
/* 8001F71C 0001B63C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8001F720 0001B640 48 0E 71 45 */ bl rand
/* 8001F724 0001B644 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001F728 0001B648 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001F72C 0001B64C 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8001F730 0001B650 C0 62 85 90 */ lfs f3, lbl_802F2D90@sda21(r2)
/* 8001F734 0001B654 93 A1 00 28 */ stw r29, 0x28(r1)
/* 8001F738 0001B658 C0 42 85 FC */ lfs f2, lbl_802F2DFC@sda21(r2)
/* 8001F73C 0001B65C C8 01 00 28 */ lfd f0, 0x28(r1)
/* 8001F740 0001B660 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001F744 0001B664 EC 80 20 28 */ fsubs f4, f0, f4
/* 8001F748 0001B668 C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001F74C 0001B66C EC 64 18 24 */ fdivs f3, f4, f3
/* 8001F750 0001B670 EC 42 00 F2 */ fmuls f2, f2, f3
/* 8001F754 0001B674 EC 21 10 2A */ fadds f1, f1, f2
/* 8001F758 0001B678 EC 00 08 2A */ fadds f0, f0, f1
/* 8001F75C 0001B67C D0 1E 00 04 */ stfs f0, 4(r30)
/* 8001F760 0001B680 48 0E 71 05 */ bl rand
/* 8001F764 0001B684 6C 60 80 00 */ xoris r0, r3, 0x8000
/* 8001F768 0001B688 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001F76C 0001B68C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001F770 0001B690 C0 62 85 90 */ lfs f3, lbl_802F2D90@sda21(r2)
/* 8001F774 0001B694 93 A1 00 20 */ stw r29, 0x20(r1)
/* 8001F778 0001B698 C0 42 84 90 */ lfs f2, lbl_802F2C90@sda21(r2)
/* 8001F77C 0001B69C C8 01 00 20 */ lfd f0, 0x20(r1)
/* 8001F780 0001B6A0 C0 22 86 F0 */ lfs f1, lbl_802F2EF0@sda21(r2)
/* 8001F784 0001B6A4 EC 80 20 28 */ fsubs f4, f0, f4
/* 8001F788 0001B6A8 C0 1F 00 0C */ lfs f0, 0xc(r31)
/* 8001F78C 0001B6AC EC 64 18 24 */ fdivs f3, f4, f3
/* 8001F790 0001B6B0 EC 43 10 28 */ fsubs f2, f3, f2
/* 8001F794 0001B6B4 EC 21 00 B2 */ fmuls f1, f1, f2
/* 8001F798 0001B6B8 EC 00 08 2A */ fadds f0, f0, f1
/* 8001F79C 0001B6BC D0 1E 00 08 */ stfs f0, 8(r30)
/* 8001F7A0 0001B6C0 48 0E 70 C5 */ bl rand
/* 8001F7A4 0001B6C4 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e
/* 8001F7A8 0001B6C8 7C 00 07 34 */ extsh r0, r0
/* 8001F7AC 0001B6CC B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 8001F7B0 0001B6D0 90 1E 00 6C */ stw r0, 0x6c(r30)
/* 8001F7B4 0001B6D4 48 0E 70 B1 */ bl rand
/* 8001F7B8 0001B6D8 54 60 F4 FE */ rlwinm r0, r3, 0x1e, 0x13, 0x1f
/* 8001F7BC 0001B6DC 7C 03 07 34 */ extsh r3, r0
/* 8001F7C0 0001B6E0 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8001F7C4 0001B6E4 38 00 00 00 */ li r0, 0
/* 8001F7C8 0001B6E8 90 7E 00 68 */ stw r3, 0x68(r30)
/* 8001F7CC 0001B6EC B0 1E 00 1C */ sth r0, 0x1c(r30)
/* 8001F7D0 0001B6F0 90 1E 00 70 */ stw r0, 0x70(r30)
/* 8001F7D4 0001B6F4 A8 7F 00 2A */ lha r3, 0x2a(r31)
/* 8001F7D8 0001B6F8 3C 63 00 01 */ addis r3, r3, 1
/* 8001F7DC 0001B6FC 38 03 80 00 */ addi r0, r3, -32768
/* 8001F7E0 0001B700 90 1E 00 8C */ stw r0, 0x8c(r30)
/* 8001F7E4 0001B704 80 7F 00 FC */ lwz r3, 0xfc(r31)
/* 8001F7E8 0001B708 80 03 00 10 */ lwz r0, 0x10(r3)
/* 8001F7EC 0001B70C 2C 00 00 02 */ cmpwi r0, 2
/* 8001F7F0 0001B710 40 82 00 10 */ bne lbl_8001F800
/* 8001F7F4 0001B714 38 00 F3 3F */ li r0, -3265
/* 8001F7F8 0001B718 90 1E 00 88 */ stw r0, 0x88(r30)
/* 8001F7FC 0001B71C 48 00 00 0C */ b lbl_8001F808
lbl_8001F800:
/* 8001F800 0001B720 38 00 F9 27 */ li r0, -1753
/* 8001F804 0001B724 90 1E 00 88 */ stw r0, 0x88(r30)
lbl_8001F808:
/* 8001F808 0001B728 38 00 00 00 */ li r0, 0
/* 8001F80C 0001B72C 90 1E 00 90 */ stw r0, 0x90(r30)
/* 8001F810 0001B730 7F C3 F3 78 */ mr r3, r30
/* 8001F814 0001B734 4B FE 7D A9 */ bl mathutil_mtxA_from_translate
/* 8001F818 0001B738 A8 7E 00 1A */ lha r3, 0x1a(r30)
/* 8001F81C 0001B73C 4B FE 87 E1 */ bl mathutil_mtxA_rotate_y
/* 8001F820 0001B740 A8 7E 00 18 */ lha r3, 0x18(r30)
/* 8001F824 0001B744 4B FE 87 65 */ bl mathutil_mtxA_rotate_x
/* 8001F828 0001B748 38 61 00 10 */ addi r3, r1, 0x10
/* 8001F82C 0001B74C 38 9E 00 0C */ addi r4, r30, 0xc
/* 8001F830 0001B750 4B FE 85 FD */ bl mathutil_mtxA_tf_point
/* 8001F834 0001B754 38 60 00 5A */ li r3, 0x5a
/* 8001F838 0001B758 B0 7E 00 50 */ sth r3, 0x50(r30)
/* 8001F83C 0001B75C 38 00 00 39 */ li r0, 0x39
/* 8001F840 0001B760 B0 7E 00 52 */ sth r3, 0x52(r30)
/* 8001F844 0001B764 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 8001F848 0001B768 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 8001F84C 0001B76C 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 8001F850 0001B770 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 8001F854 0001B774 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 8001F858 0001B778 38 21 00 48 */ addi r1, r1, 0x48
/* 8001F85C 0001B77C 7C 08 03 A6 */ mtlr r0
/* 8001F860 0001B780 4E 80 00 20 */ blr
.global func_8001F864
func_8001F864:
/* 8001F864 0001B784 7C 08 02 A6 */ mflr r0
/* 8001F868 0001B788 3C A0 80 11 */ lis r5, lbl_80110248@ha
/* 8001F86C 0001B78C 90 01 00 04 */ stw r0, 4(r1)
/* 8001F870 0001B790 39 05 02 48 */ addi r8, r5, lbl_80110248@l
/* 8001F874 0001B794 3C A0 80 11 */ lis r5, lbl_80110004@ha
/* 8001F878 0001B798 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 8001F87C 0001B79C DB E1 00 78 */ stfd f31, 0x78(r1)
/* 8001F880 0001B7A0 93 E1 00 74 */ stw r31, 0x74(r1)
/* 8001F884 0001B7A4 3B E3 00 00 */ addi r31, r3, 0
/* 8001F888 0001B7A8 93 C1 00 70 */ stw r30, 0x70(r1)
/* 8001F88C 0001B7AC 93 A1 00 6C */ stw r29, 0x6c(r1)
/* 8001F890 0001B7B0 3B A4 00 00 */ addi r29, r4, 0
/* 8001F894 0001B7B4 80 E8 00 00 */ lwz r7, 0(r8)
/* 8001F898 0001B7B8 80 C8 00 04 */ lwz r6, 4(r8)
/* 8001F89C 0001B7BC 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001F8A0 0001B7C0 90 E1 00 1C */ stw r7, 0x1c(r1)
/* 8001F8A4 0001B7C4 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001F8A8 0001B7C8 90 C1 00 20 */ stw r6, 0x20(r1)
/* 8001F8AC 0001B7CC 80 08 00 08 */ lwz r0, 8(r8)
/* 8001F8B0 0001B7D0 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001F8B4 0001B7D4 84 65 02 54 */ lwzu r3, 0x254(r5)
/* 8001F8B8 0001B7D8 80 05 00 04 */ lwz r0, lbl_80110004@l(r5)
/* 8001F8BC 0001B7DC 90 61 00 10 */ stw r3, 0x10(r1)
/* 8001F8C0 0001B7E0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001F8C4 0001B7E4 80 05 00 08 */ lwz r0, 8(r5)
/* 8001F8C8 0001B7E8 90 01 00 18 */ stw r0, 0x18(r1)
/* 8001F8CC 0001B7EC 40 82 01 B8 */ bne lbl_8001FA84
/* 8001F8D0 0001B7F0 A8 7F 00 50 */ lha r3, 0x50(r31)
/* 8001F8D4 0001B7F4 2C 03 00 00 */ cmpwi r3, 0
/* 8001F8D8 0001B7F8 40 81 00 0C */ ble lbl_8001F8E4
/* 8001F8DC 0001B7FC 38 03 FF FF */ addi r0, r3, -1
/* 8001F8E0 0001B800 B0 1F 00 50 */ sth r0, 0x50(r31)
lbl_8001F8E4:
/* 8001F8E4 0001B804 A8 9F 00 50 */ lha r4, 0x50(r31)
/* 8001F8E8 0001B808 3F C0 43 30 */ lis r30, 0x4330
/* 8001F8EC 0001B80C A8 1F 00 52 */ lha r0, 0x52(r31)
/* 8001F8F0 0001B810 38 7D 00 04 */ addi r3, r29, 4
/* 8001F8F4 0001B814 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 8001F8F8 0001B818 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001F8FC 0001B81C 90 81 00 64 */ stw r4, 0x64(r1)
/* 8001F900 0001B820 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8001F904 0001B824 90 01 00 5C */ stw r0, 0x5c(r1)
/* 8001F908 0001B828 C8 02 85 28 */ lfd f0, lbl_802F2D28@sda21(r2)
/* 8001F90C 0001B82C 93 C1 00 60 */ stw r30, 0x60(r1)
/* 8001F910 0001B830 C8 42 85 20 */ lfd f2, lbl_802F2D20@sda21(r2)
/* 8001F914 0001B834 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8001F918 0001B838 C8 61 00 60 */ lfd f3, 0x60(r1)
/* 8001F91C 0001B83C C8 21 00 58 */ lfd f1, 0x58(r1)
/* 8001F920 0001B840 EC 63 20 28 */ fsubs f3, f3, f4
/* 8001F924 0001B844 EC 21 20 28 */ fsubs f1, f1, f4
/* 8001F928 0001B848 EC 63 08 24 */ fdivs f3, f3, f1
/* 8001F92C 0001B84C FC 20 00 F2 */ fmul f1, f0, f3
/* 8001F930 0001B850 EC 03 00 F2 */ fmuls f0, f3, f3
/* 8001F934 0001B854 FC 22 08 2A */ fadd f1, f2, f1
/* 8001F938 0001B858 FF E1 00 32 */ fmul f31, f1, f0
/* 8001F93C 0001B85C FF E0 F8 18 */ frsp f31, f31
/* 8001F940 0001B860 4B FE 7C 7D */ bl mathutil_mtxA_from_translate
/* 8001F944 0001B864 A8 7D 00 2A */ lha r3, 0x2a(r29)
/* 8001F948 0001B868 4B FE 86 B5 */ bl mathutil_mtxA_rotate_y
/* 8001F94C 0001B86C 38 61 00 1C */ addi r3, r1, 0x1c
/* 8001F950 0001B870 38 83 00 00 */ addi r4, r3, 0
/* 8001F954 0001B874 4B FE 84 D9 */ bl mathutil_mtxA_tf_point
/* 8001F958 0001B878 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001F95C 0001B87C 38 00 00 00 */ li r0, 0
/* 8001F960 0001B880 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 8001F964 0001B884 7F E3 FB 78 */ mr r3, r31
/* 8001F968 0001B888 C8 42 86 18 */ lfd f2, lbl_802F2E18@sda21(r2)
/* 8001F96C 0001B88C EC 00 08 28 */ fsubs f0, f0, f1
/* 8001F970 0001B890 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F974 0001B894 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F978 0001B898 FC 00 00 18 */ frsp f0, f0
/* 8001F97C 0001B89C D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001F980 0001B8A0 C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001F984 0001B8A4 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001F988 0001B8A8 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001F98C 0001B8AC FC 02 00 32 */ fmul f0, f2, f0
/* 8001F990 0001B8B0 FC 01 00 2A */ fadd f0, f1, f0
/* 8001F994 0001B8B4 FC 00 00 18 */ frsp f0, f0
/* 8001F998 0001B8B8 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001F99C 0001B8BC C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001F9A0 0001B8C0 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 8001F9A4 0001B8C4 EC 00 08 28 */ fsubs f0, f0, f1
/* 8001F9A8 0001B8C8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001F9AC 0001B8CC FC 01 00 2A */ fadd f0, f1, f0
/* 8001F9B0 0001B8D0 FC 00 00 18 */ frsp f0, f0
/* 8001F9B4 0001B8D4 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001F9B8 0001B8D8 80 DF 00 6C */ lwz r6, 0x6c(r31)
/* 8001F9BC 0001B8DC 80 9F 00 8C */ lwz r4, 0x8c(r31)
/* 8001F9C0 0001B8E0 6C C5 80 00 */ xoris r5, r6, 0x8000
/* 8001F9C4 0001B8E4 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 8001F9C8 0001B8E8 7C 86 20 50 */ subf r4, r6, r4
/* 8001F9CC 0001B8EC 90 A1 00 54 */ stw r5, 0x54(r1)
/* 8001F9D0 0001B8F0 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 8001F9D4 0001B8F4 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001F9D8 0001B8F8 90 81 00 4C */ stw r4, 0x4c(r1)
/* 8001F9DC 0001B8FC FC 60 F8 28 */ fsub f3, f0, f31
/* 8001F9E0 0001B900 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8001F9E4 0001B904 C8 01 00 48 */ lfd f0, 0x48(r1)
/* 8001F9E8 0001B908 93 C1 00 50 */ stw r30, 0x50(r1)
/* 8001F9EC 0001B90C FC 00 10 28 */ fsub f0, f0, f2
/* 8001F9F0 0001B910 C8 21 00 50 */ lfd f1, 0x50(r1)
/* 8001F9F4 0001B914 FC 03 00 32 */ fmul f0, f3, f0
/* 8001F9F8 0001B918 FC 21 10 28 */ fsub f1, f1, f2
/* 8001F9FC 0001B91C FC 01 00 2A */ fadd f0, f1, f0
/* 8001FA00 0001B920 FC 00 00 1E */ fctiwz f0, f0
/* 8001FA04 0001B924 D8 01 00 40 */ stfd f0, 0x40(r1)
/* 8001FA08 0001B928 80 81 00 44 */ lwz r4, 0x44(r1)
/* 8001FA0C 0001B92C B0 9F 00 1A */ sth r4, 0x1a(r31)
/* 8001FA10 0001B930 80 DF 00 68 */ lwz r6, 0x68(r31)
/* 8001FA14 0001B934 80 9F 00 88 */ lwz r4, 0x88(r31)
/* 8001FA18 0001B938 6C C5 80 00 */ xoris r5, r6, 0x8000
/* 8001FA1C 0001B93C 7C 86 20 50 */ subf r4, r6, r4
/* 8001FA20 0001B940 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 8001FA24 0001B944 7C 84 07 34 */ extsh r4, r4
/* 8001FA28 0001B948 6C 84 80 00 */ xoris r4, r4, 0x8000
/* 8001FA2C 0001B94C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 8001FA30 0001B950 90 81 00 34 */ stw r4, 0x34(r1)
/* 8001FA34 0001B954 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 8001FA38 0001B958 93 C1 00 30 */ stw r30, 0x30(r1)
/* 8001FA3C 0001B95C FC 20 10 28 */ fsub f1, f0, f2
/* 8001FA40 0001B960 C8 01 00 30 */ lfd f0, 0x30(r1)
/* 8001FA44 0001B964 FC 00 10 28 */ fsub f0, f0, f2
/* 8001FA48 0001B968 FC 03 00 32 */ fmul f0, f3, f0
/* 8001FA4C 0001B96C FC 01 00 2A */ fadd f0, f1, f0
/* 8001FA50 0001B970 FC 00 00 1E */ fctiwz f0, f0
/* 8001FA54 0001B974 D8 01 00 28 */ stfd f0, 0x28(r1)
/* 8001FA58 0001B978 80 81 00 2C */ lwz r4, 0x2c(r1)
/* 8001FA5C 0001B97C B0 9F 00 18 */ sth r4, 0x18(r31)
/* 8001FA60 0001B980 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001FA64 0001B984 4B FE 7B 59 */ bl mathutil_mtxA_from_translate
/* 8001FA68 0001B988 A8 7F 00 1A */ lha r3, 0x1a(r31)
/* 8001FA6C 0001B98C 4B FE 85 91 */ bl mathutil_mtxA_rotate_y
/* 8001FA70 0001B990 A8 7F 00 18 */ lha r3, 0x18(r31)
/* 8001FA74 0001B994 4B FE 85 15 */ bl mathutil_mtxA_rotate_x
/* 8001FA78 0001B998 38 61 00 10 */ addi r3, r1, 0x10
/* 8001FA7C 0001B99C 38 9F 00 0C */ addi r4, r31, 0xc
/* 8001FA80 0001B9A0 4B FE 83 AD */ bl mathutil_mtxA_tf_point
lbl_8001FA84:
/* 8001FA84 0001B9A4 80 01 00 84 */ lwz r0, 0x84(r1)
/* 8001FA88 0001B9A8 CB E1 00 78 */ lfd f31, 0x78(r1)
/* 8001FA8C 0001B9AC 83 E1 00 74 */ lwz r31, 0x74(r1)
/* 8001FA90 0001B9B0 7C 08 03 A6 */ mtlr r0
/* 8001FA94 0001B9B4 83 C1 00 70 */ lwz r30, 0x70(r1)
/* 8001FA98 0001B9B8 83 A1 00 6C */ lwz r29, 0x6c(r1)
/* 8001FA9C 0001B9BC 38 21 00 80 */ addi r1, r1, 0x80
/* 8001FAA0 0001B9C0 4E 80 00 20 */ blr
.global func_8001FAA4
func_8001FAA4:
/* 8001FAA4 0001B9C4 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8001FAA8 0001B9C8 70 00 00 0A */ andi. r0, r0, 0xa
/* 8001FAAC 0001B9CC 4C 82 00 20 */ bnelr
/* 8001FAB0 0001B9D0 C0 02 87 10 */ lfs f0, lbl_802F2F10@sda21(r2)
/* 8001FAB4 0001B9D4 D0 03 00 04 */ stfs f0, 4(r3)
/* 8001FAB8 0001B9D8 C0 02 87 14 */ lfs f0, lbl_802F2F14@sda21(r2)
/* 8001FABC 0001B9DC D0 03 00 08 */ stfs f0, 8(r3)
/* 8001FAC0 0001B9E0 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 8001FAC4 0001B9E4 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8001FAC8 0001B9E8 C0 02 87 18 */ lfs f0, lbl_802F2F18@sda21(r2)
/* 8001FACC 0001B9EC D0 03 00 10 */ stfs f0, 0x10(r3)
/* 8001FAD0 0001B9F0 C0 02 87 1C */ lfs f0, lbl_802F2F1C@sda21(r2)
/* 8001FAD4 0001B9F4 D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8001FAD8 0001B9F8 4E 80 00 20 */ blr
.global func_8001FADC
func_8001FADC:
/* 8001FADC 0001B9FC C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 8001FAE0 0001BA00 38 80 00 00 */ li r4, 0
/* 8001FAE4 0001BA04 38 00 C0 00 */ li r0, -16384
/* 8001FAE8 0001BA08 D0 23 00 00 */ stfs f1, 0(r3)
/* 8001FAEC 0001BA0C C0 02 84 20 */ lfs f0, lbl_802F2C20@sda21(r2)
/* 8001FAF0 0001BA10 D0 03 00 04 */ stfs f0, 4(r3)
/* 8001FAF4 0001BA14 D0 23 00 08 */ stfs f1, 8(r3)
/* 8001FAF8 0001BA18 D0 23 00 14 */ stfs f1, 0x14(r3)
/* 8001FAFC 0001BA1C D0 23 00 10 */ stfs f1, 0x10(r3)
/* 8001FB00 0001BA20 D0 23 00 0C */ stfs f1, 0xc(r3)
/* 8001FB04 0001BA24 B0 83 00 1A */ sth r4, 0x1a(r3)
/* 8001FB08 0001BA28 B0 03 00 18 */ sth r0, 0x18(r3)
/* 8001FB0C 0001BA2C B0 83 00 1C */ sth r4, 0x1c(r3)
/* 8001FB10 0001BA30 4E 80 00 20 */ blr
.global func_8001FB14
func_8001FB14:
/* 8001FB14 0001BA34 7C 08 02 A6 */ mflr r0
/* 8001FB18 0001BA38 39 40 00 00 */ li r10, 0
/* 8001FB1C 0001BA3C 90 01 00 04 */ stw r0, 4(r1)
/* 8001FB20 0001BA40 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 8001FB24 0001BA44 93 E1 00 34 */ stw r31, 0x34(r1)
/* 8001FB28 0001BA48 3B E3 00 00 */ addi r31, r3, 0
/* 8001FB2C 0001BA4C 38 A1 00 24 */ addi r5, r1, 0x24
/* 8001FB30 0001BA50 38 C1 00 18 */ addi r6, r1, 0x18
/* 8001FB34 0001BA54 38 E1 00 14 */ addi r7, r1, 0x14
/* 8001FB38 0001BA58 39 01 00 12 */ addi r8, r1, 0x12
/* 8001FB3C 0001BA5C 39 21 00 10 */ addi r9, r1, 0x10
/* 8001FB40 0001BA60 48 00 03 ED */ bl func_8001FF2C
/* 8001FB44 0001BA64 80 81 00 24 */ lwz r4, 0x24(r1)
/* 8001FB48 0001BA68 38 00 00 45 */ li r0, 0x45
/* 8001FB4C 0001BA6C 80 61 00 28 */ lwz r3, 0x28(r1)
/* 8001FB50 0001BA70 90 9F 00 00 */ stw r4, 0(r31)
/* 8001FB54 0001BA74 90 7F 00 04 */ stw r3, 4(r31)
/* 8001FB58 0001BA78 80 61 00 2C */ lwz r3, 0x2c(r1)
/* 8001FB5C 0001BA7C 90 7F 00 08 */ stw r3, 8(r31)
/* 8001FB60 0001BA80 80 81 00 18 */ lwz r4, 0x18(r1)
/* 8001FB64 0001BA84 80 61 00 1C */ lwz r3, 0x1c(r1)
/* 8001FB68 0001BA88 90 9F 00 0C */ stw r4, 0xc(r31)
/* 8001FB6C 0001BA8C 90 7F 00 10 */ stw r3, 0x10(r31)
/* 8001FB70 0001BA90 80 61 00 20 */ lwz r3, 0x20(r1)
/* 8001FB74 0001BA94 90 7F 00 14 */ stw r3, 0x14(r31)
/* 8001FB78 0001BA98 A8 61 00 14 */ lha r3, 0x14(r1)
/* 8001FB7C 0001BA9C B0 7F 00 18 */ sth r3, 0x18(r31)
/* 8001FB80 0001BAA0 A8 61 00 12 */ lha r3, 0x12(r1)
/* 8001FB84 0001BAA4 B0 7F 00 1A */ sth r3, 0x1a(r31)
/* 8001FB88 0001BAA8 A8 61 00 10 */ lha r3, 0x10(r1)
/* 8001FB8C 0001BAAC B0 7F 00 1C */ sth r3, 0x1c(r31)
/* 8001FB90 0001BAB0 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 8001FB94 0001BAB4 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8001FB98 0001BAB8 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 8001FB9C 0001BABC 38 21 00 38 */ addi r1, r1, 0x38
/* 8001FBA0 0001BAC0 7C 08 03 A6 */ mtlr r0
/* 8001FBA4 0001BAC4 4E 80 00 20 */ blr
.global func_8001FBA8
func_8001FBA8:
/* 8001FBA8 0001BAC8 7C 08 02 A6 */ mflr r0
/* 8001FBAC 0001BACC 3C A0 80 1F */ lis r5, cameraInfo@ha
/* 8001FBB0 0001BAD0 90 01 00 04 */ stw r0, 4(r1)
/* 8001FBB4 0001BAD4 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8001FBB8 0001BAD8 93 E1 00 9C */ stw r31, 0x9c(r1)
/* 8001FBBC 0001BADC 3B E3 00 00 */ addi r31, r3, 0
/* 8001FBC0 0001BAE0 38 60 00 01 */ li r3, 1
/* 8001FBC4 0001BAE4 93 C1 00 98 */ stw r30, 0x98(r1)
/* 8001FBC8 0001BAE8 3B C5 EF 00 */ addi r30, r5, cameraInfo@l
/* 8001FBCC 0001BAEC 93 A1 00 94 */ stw r29, 0x94(r1)
/* 8001FBD0 0001BAF0 3B A4 00 00 */ addi r29, r4, 0
/* 8001FBD4 0001BAF4 88 1E 00 1E */ lbz r0, 0x1e(r30)
/* 8001FBD8 0001BAF8 7C 00 07 74 */ extsb r0, r0
/* 8001FBDC 0001BAFC 2C 00 00 0A */ cmpwi r0, 0xa
/* 8001FBE0 0001BB00 41 82 00 10 */ beq lbl_8001FBF0
/* 8001FBE4 0001BB04 2C 00 00 0B */ cmpwi r0, 0xb
/* 8001FBE8 0001BB08 41 82 00 08 */ beq lbl_8001FBF0
/* 8001FBEC 0001BB0C 38 60 00 00 */ li r3, 0
lbl_8001FBF0:
/* 8001FBF0 0001BB10 2C 03 00 00 */ cmpwi r3, 0
/* 8001FBF4 0001BB14 41 82 02 44 */ beq lbl_8001FE38
/* 8001FBF8 0001BB18 38 7F 00 00 */ addi r3, r31, 0
/* 8001FBFC 0001BB1C 38 9D 00 00 */ addi r4, r29, 0
/* 8001FC00 0001BB20 38 A1 00 28 */ addi r5, r1, 0x28
/* 8001FC04 0001BB24 38 C1 00 1C */ addi r6, r1, 0x1c
/* 8001FC08 0001BB28 38 E1 00 18 */ addi r7, r1, 0x18
/* 8001FC0C 0001BB2C 39 01 00 16 */ addi r8, r1, 0x16
/* 8001FC10 0001BB30 39 21 00 14 */ addi r9, r1, 0x14
/* 8001FC14 0001BB34 48 00 07 21 */ bl func_80020334
/* 8001FC18 0001BB38 38 7F 00 00 */ addi r3, r31, 0
/* 8001FC1C 0001BB3C 38 9D 00 00 */ addi r4, r29, 0
/* 8001FC20 0001BB40 38 BF 00 00 */ addi r5, r31, 0
/* 8001FC24 0001BB44 38 DF 00 0C */ addi r6, r31, 0xc
/* 8001FC28 0001BB48 38 FF 00 18 */ addi r7, r31, 0x18
/* 8001FC2C 0001BB4C 39 1F 00 1A */ addi r8, r31, 0x1a
/* 8001FC30 0001BB50 39 3F 00 1C */ addi r9, r31, 0x1c
/* 8001FC34 0001BB54 39 40 00 00 */ li r10, 0
/* 8001FC38 0001BB58 48 00 02 F5 */ bl func_8001FF2C
/* 8001FC3C 0001BB5C A8 7E 00 50 */ lha r3, 0x50(r30)
/* 8001FC40 0001BB60 3C 80 43 30 */ lis r4, 0x4330
/* 8001FC44 0001BB64 A8 1E 00 52 */ lha r0, 0x52(r30)
/* 8001FC48 0001BB68 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 8001FC4C 0001BB6C C8 02 84 68 */ lfd f0, lbl_802F2C68@sda21(r2)
/* 8001FC50 0001BB70 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001FC54 0001BB74 90 61 00 8C */ stw r3, 0x8c(r1)
/* 8001FC58 0001BB78 C8 42 85 28 */ lfd f2, lbl_802F2D28@sda21(r2)
/* 8001FC5C 0001BB7C 90 01 00 84 */ stw r0, 0x84(r1)
/* 8001FC60 0001BB80 C8 C2 85 20 */ lfd f6, lbl_802F2D20@sda21(r2)
/* 8001FC64 0001BB84 90 81 00 88 */ stw r4, 0x88(r1)
/* 8001FC68 0001BB88 C8 22 84 60 */ lfd f1, lbl_802F2C60@sda21(r2)
/* 8001FC6C 0001BB8C 90 81 00 80 */ stw r4, 0x80(r1)
/* 8001FC70 0001BB90 C8 81 00 88 */ lfd f4, 0x88(r1)
/* 8001FC74 0001BB94 C8 61 00 80 */ lfd f3, 0x80(r1)
/* 8001FC78 0001BB98 EC E4 00 28 */ fsubs f7, f4, f0
/* 8001FC7C 0001BB9C C0 9F 00 00 */ lfs f4, 0(r31)
/* 8001FC80 0001BBA0 EC A3 00 28 */ fsubs f5, f3, f0
/* 8001FC84 0001BBA4 C0 61 00 28 */ lfs f3, 0x28(r1)
/* 8001FC88 0001BBA8 EC E7 28 24 */ fdivs f7, f7, f5
/* 8001FC8C 0001BBAC FC A2 01 F2 */ fmul f5, f2, f7
/* 8001FC90 0001BBB0 EC 47 01 F2 */ fmuls f2, f7, f7
/* 8001FC94 0001BBB4 FC A6 28 2A */ fadd f5, f6, f5
/* 8001FC98 0001BBB8 FC 45 00 B2 */ fmul f2, f5, f2
/* 8001FC9C 0001BBBC FC 40 10 18 */ frsp f2, f2
/* 8001FCA0 0001BBC0 FC 21 10 28 */ fsub f1, f1, f2
/* 8001FCA4 0001BBC4 EC 63 00 B2 */ fmuls f3, f3, f2
/* 8001FCA8 0001BBC8 FC 84 00 72 */ fmul f4, f4, f1
/* 8001FCAC 0001BBCC FC 64 18 2A */ fadd f3, f4, f3
/* 8001FCB0 0001BBD0 FC 60 18 18 */ frsp f3, f3
/* 8001FCB4 0001BBD4 D0 7F 00 00 */ stfs f3, 0(r31)
/* 8001FCB8 0001BBD8 C0 9F 00 04 */ lfs f4, 4(r31)
/* 8001FCBC 0001BBDC C0 61 00 2C */ lfs f3, 0x2c(r1)
/* 8001FCC0 0001BBE0 FC 84 00 72 */ fmul f4, f4, f1
/* 8001FCC4 0001BBE4 EC 63 00 B2 */ fmuls f3, f3, f2
/* 8001FCC8 0001BBE8 FC 64 18 2A */ fadd f3, f4, f3
/* 8001FCCC 0001BBEC FC 60 18 18 */ frsp f3, f3
/* 8001FCD0 0001BBF0 D0 7F 00 04 */ stfs f3, 4(r31)
/* 8001FCD4 0001BBF4 C0 9F 00 08 */ lfs f4, 8(r31)
/* 8001FCD8 0001BBF8 C0 61 00 30 */ lfs f3, 0x30(r1)
/* 8001FCDC 0001BBFC FC 84 00 72 */ fmul f4, f4, f1
/* 8001FCE0 0001BC00 EC 63 00 B2 */ fmuls f3, f3, f2
/* 8001FCE4 0001BC04 FC 64 18 2A */ fadd f3, f4, f3
/* 8001FCE8 0001BC08 FC 60 18 18 */ frsp f3, f3
/* 8001FCEC 0001BC0C D0 7F 00 08 */ stfs f3, 8(r31)
/* 8001FCF0 0001BC10 C0 9F 00 0C */ lfs f4, 0xc(r31)
/* 8001FCF4 0001BC14 C0 61 00 1C */ lfs f3, 0x1c(r1)
/* 8001FCF8 0001BC18 FC 84 00 72 */ fmul f4, f4, f1
/* 8001FCFC 0001BC1C EC 63 00 B2 */ fmuls f3, f3, f2
/* 8001FD00 0001BC20 FC 64 18 2A */ fadd f3, f4, f3
/* 8001FD04 0001BC24 FC 60 18 18 */ frsp f3, f3
/* 8001FD08 0001BC28 D0 7F 00 0C */ stfs f3, 0xc(r31)
/* 8001FD0C 0001BC2C C0 9F 00 10 */ lfs f4, 0x10(r31)
/* 8001FD10 0001BC30 C0 61 00 20 */ lfs f3, 0x20(r1)
/* 8001FD14 0001BC34 FC 84 00 72 */ fmul f4, f4, f1
/* 8001FD18 0001BC38 EC 63 00 B2 */ fmuls f3, f3, f2
/* 8001FD1C 0001BC3C FC 64 18 2A */ fadd f3, f4, f3
/* 8001FD20 0001BC40 FC 60 18 18 */ frsp f3, f3
/* 8001FD24 0001BC44 D0 7F 00 10 */ stfs f3, 0x10(r31)
/* 8001FD28 0001BC48 C0 9F 00 14 */ lfs f4, 0x14(r31)
/* 8001FD2C 0001BC4C C0 61 00 24 */ lfs f3, 0x24(r1)
/* 8001FD30 0001BC50 FC 84 00 72 */ fmul f4, f4, f1
/* 8001FD34 0001BC54 EC 43 00 B2 */ fmuls f2, f3, f2
/* 8001FD38 0001BC58 FC 44 10 2A */ fadd f2, f4, f2
/* 8001FD3C 0001BC5C FC 40 10 18 */ frsp f2, f2
/* 8001FD40 0001BC60 D0 5F 00 14 */ stfs f2, 0x14(r31)
/* 8001FD44 0001BC64 A8 A1 00 18 */ lha r5, 0x18(r1)
/* 8001FD48 0001BC68 A8 1F 00 18 */ lha r0, 0x18(r31)
/* 8001FD4C 0001BC6C 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 8001FD50 0001BC70 7C 05 00 50 */ subf r0, r5, r0
/* 8001FD54 0001BC74 90 61 00 7C */ stw r3, 0x7c(r1)
/* 8001FD58 0001BC78 7C 00 07 34 */ extsh r0, r0
/* 8001FD5C 0001BC7C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001FD60 0001BC80 90 81 00 78 */ stw r4, 0x78(r1)
/* 8001FD64 0001BC84 90 01 00 74 */ stw r0, 0x74(r1)
/* 8001FD68 0001BC88 C8 41 00 78 */ lfd f2, 0x78(r1)
/* 8001FD6C 0001BC8C 90 81 00 70 */ stw r4, 0x70(r1)
/* 8001FD70 0001BC90 FC 62 00 28 */ fsub f3, f2, f0
/* 8001FD74 0001BC94 C8 41 00 70 */ lfd f2, 0x70(r1)
/* 8001FD78 0001BC98 FC 42 00 28 */ fsub f2, f2, f0
/* 8001FD7C 0001BC9C FC 41 00 B2 */ fmul f2, f1, f2
/* 8001FD80 0001BCA0 FC 43 10 2A */ fadd f2, f3, f2
/* 8001FD84 0001BCA4 FC 40 10 1E */ fctiwz f2, f2
/* 8001FD88 0001BCA8 D8 41 00 68 */ stfd f2, 0x68(r1)
/* 8001FD8C 0001BCAC 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 8001FD90 0001BCB0 B0 1F 00 18 */ sth r0, 0x18(r31)
/* 8001FD94 0001BCB4 A8 A1 00 16 */ lha r5, 0x16(r1)
/* 8001FD98 0001BCB8 A8 1F 00 1A */ lha r0, 0x1a(r31)
/* 8001FD9C 0001BCBC 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 8001FDA0 0001BCC0 7C 05 00 50 */ subf r0, r5, r0
/* 8001FDA4 0001BCC4 90 61 00 64 */ stw r3, 0x64(r1)
/* 8001FDA8 0001BCC8 7C 00 07 34 */ extsh r0, r0
/* 8001FDAC 0001BCCC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001FDB0 0001BCD0 90 81 00 60 */ stw r4, 0x60(r1)
/* 8001FDB4 0001BCD4 90 01 00 5C */ stw r0, 0x5c(r1)
/* 8001FDB8 0001BCD8 C8 41 00 60 */ lfd f2, 0x60(r1)
/* 8001FDBC 0001BCDC 90 81 00 58 */ stw r4, 0x58(r1)
/* 8001FDC0 0001BCE0 FC 62 00 28 */ fsub f3, f2, f0
/* 8001FDC4 0001BCE4 C8 41 00 58 */ lfd f2, 0x58(r1)
/* 8001FDC8 0001BCE8 FC 42 00 28 */ fsub f2, f2, f0
/* 8001FDCC 0001BCEC FC 41 00 B2 */ fmul f2, f1, f2
/* 8001FDD0 0001BCF0 FC 43 10 2A */ fadd f2, f3, f2
/* 8001FDD4 0001BCF4 FC 40 10 1E */ fctiwz f2, f2
/* 8001FDD8 0001BCF8 D8 41 00 50 */ stfd f2, 0x50(r1)
/* 8001FDDC 0001BCFC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8001FDE0 0001BD00 B0 1F 00 1A */ sth r0, 0x1a(r31)
/* 8001FDE4 0001BD04 A8 A1 00 14 */ lha r5, 0x14(r1)
/* 8001FDE8 0001BD08 A8 1F 00 1C */ lha r0, 0x1c(r31)
/* 8001FDEC 0001BD0C 6C A3 80 00 */ xoris r3, r5, 0x8000
/* 8001FDF0 0001BD10 7C 05 00 50 */ subf r0, r5, r0
/* 8001FDF4 0001BD14 90 61 00 4C */ stw r3, 0x4c(r1)
/* 8001FDF8 0001BD18 7C 00 07 34 */ extsh r0, r0
/* 8001FDFC 0001BD1C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001FE00 0001BD20 90 81 00 48 */ stw r4, 0x48(r1)
/* 8001FE04 0001BD24 90 01 00 44 */ stw r0, 0x44(r1)
/* 8001FE08 0001BD28 C8 41 00 48 */ lfd f2, 0x48(r1)
/* 8001FE0C 0001BD2C 90 81 00 40 */ stw r4, 0x40(r1)
/* 8001FE10 0001BD30 FC 62 00 28 */ fsub f3, f2, f0
/* 8001FE14 0001BD34 C8 41 00 40 */ lfd f2, 0x40(r1)
/* 8001FE18 0001BD38 FC 02 00 28 */ fsub f0, f2, f0
/* 8001FE1C 0001BD3C FC 01 00 32 */ fmul f0, f1, f0
/* 8001FE20 0001BD40 FC 03 00 2A */ fadd f0, f3, f0
/* 8001FE24 0001BD44 FC 00 00 1E */ fctiwz f0, f0
/* 8001FE28 0001BD48 D8 01 00 38 */ stfd f0, 0x38(r1)
/* 8001FE2C 0001BD4C 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 8001FE30 0001BD50 B0 1F 00 1C */ sth r0, 0x1c(r31)
/* 8001FE34 0001BD54 48 00 00 DC */ b lbl_8001FF10
lbl_8001FE38:
/* 8001FE38 0001BD58 38 7F 00 00 */ addi r3, r31, 0
/* 8001FE3C 0001BD5C 38 9D 00 00 */ addi r4, r29, 0
/* 8001FE40 0001BD60 38 A1 00 28 */ addi r5, r1, 0x28
/* 8001FE44 0001BD64 38 C1 00 1C */ addi r6, r1, 0x1c
/* 8001FE48 0001BD68 38 FF 00 18 */ addi r7, r31, 0x18
/* 8001FE4C 0001BD6C 39 1F 00 1A */ addi r8, r31, 0x1a
/* 8001FE50 0001BD70 39 3F 00 1C */ addi r9, r31, 0x1c
/* 8001FE54 0001BD74 39 40 00 00 */ li r10, 0
/* 8001FE58 0001BD78 48 00 00 D5 */ bl func_8001FF2C
/* 8001FE5C 0001BD7C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8001FE60 0001BD80 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001FE64 0001BD84 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001FE68 0001BD88 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8001FE6C 0001BD8C C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8001FE70 0001BD90 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8001FE74 0001BD94 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001FE78 0001BD98 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8001FE7C 0001BD9C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8001FE80 0001BDA0 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001FE84 0001BDA4 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001FE88 0001BDA8 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8001FE8C 0001BDAC C8 42 85 00 */ lfd f2, lbl_802F2D00@sda21(r2)
/* 8001FE90 0001BDB0 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8001FE94 0001BDB4 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8001FE98 0001BDB8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001FE9C 0001BDBC FC 01 00 2A */ fadd f0, f1, f0
/* 8001FEA0 0001BDC0 FC 00 00 18 */ frsp f0, f0
/* 8001FEA4 0001BDC4 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8001FEA8 0001BDC8 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 8001FEAC 0001BDCC C0 3F 00 04 */ lfs f1, 4(r31)
/* 8001FEB0 0001BDD0 FC 02 00 32 */ fmul f0, f2, f0
/* 8001FEB4 0001BDD4 FC 01 00 2A */ fadd f0, f1, f0
/* 8001FEB8 0001BDD8 FC 00 00 18 */ frsp f0, f0
/* 8001FEBC 0001BDDC D0 1F 00 04 */ stfs f0, 4(r31)
/* 8001FEC0 0001BDE0 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8001FEC4 0001BDE4 C0 3F 00 08 */ lfs f1, 8(r31)
/* 8001FEC8 0001BDE8 FC 02 00 32 */ fmul f0, f2, f0
/* 8001FECC 0001BDEC FC 01 00 2A */ fadd f0, f1, f0
/* 8001FED0 0001BDF0 FC 00 00 18 */ frsp f0, f0
/* 8001FED4 0001BDF4 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8001FED8 0001BDF8 C0 21 00 20 */ lfs f1, 0x20(r1)
/* 8001FEDC 0001BDFC C0 1F 00 10 */ lfs f0, 0x10(r31)
/* 8001FEE0 0001BE00 EC 01 00 28 */ fsubs f0, f1, f0
/* 8001FEE4 0001BE04 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8001FEE8 0001BE08 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8001FEEC 0001BE0C D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 8001FEF0 0001BE10 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 8001FEF4 0001BE14 C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 8001FEF8 0001BE18 FC 02 00 32 */ fmul f0, f2, f0
/* 8001FEFC 0001BE1C FC 01 00 2A */ fadd f0, f1, f0
/* 8001FF00 0001BE20 FC 00 00 18 */ frsp f0, f0
/* 8001FF04 0001BE24 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 8001FF08 0001BE28 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8001FF0C 0001BE2C D0 1F 00 14 */ stfs f0, 0x14(r31)
lbl_8001FF10:
/* 8001FF10 0001BE30 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8001FF14 0001BE34 83 E1 00 9C */ lwz r31, 0x9c(r1)
/* 8001FF18 0001BE38 83 C1 00 98 */ lwz r30, 0x98(r1)
/* 8001FF1C 0001BE3C 7C 08 03 A6 */ mtlr r0
/* 8001FF20 0001BE40 83 A1 00 94 */ lwz r29, 0x94(r1)
/* 8001FF24 0001BE44 38 21 00 A0 */ addi r1, r1, 0xa0
/* 8001FF28 0001BE48 4E 80 00 20 */ blr
.global func_8001FF2C
func_8001FF2C:
/* 8001FF2C 0001BE4C 7C 08 02 A6 */ mflr r0
/* 8001FF30 0001BE50 3C 80 80 20 */ lis r4, lbl_80205E60@ha
/* 8001FF34 0001BE54 90 01 00 04 */ stw r0, 4(r1)
/* 8001FF38 0001BE58 38 00 00 03 */ li r0, 3
/* 8001FF3C 0001BE5C 38 84 5E 60 */ addi r4, r4, lbl_80205E60@l
/* 8001FF40 0001BE60 7C 09 03 A6 */ mtctr r0
/* 8001FF44 0001BE64 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 8001FF48 0001BE68 39 64 00 00 */ addi r11, r4, 0
/* 8001FF4C 0001BE6C DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8001FF50 0001BE70 38 80 00 00 */ li r4, 0
/* 8001FF54 0001BE74 BF 61 00 7C */ stmw r27, 0x7c(r1)
/* 8001FF58 0001BE78 3B A7 00 00 */ addi r29, r7, 0
/* 8001FF5C 0001BE7C 3B C8 00 00 */ addi r30, r8, 0
/* 8001FF60 0001BE80 3B E9 00 00 */ addi r31, r9, 0
/* 8001FF64 0001BE84 3B 65 00 00 */ addi r27, r5, 0
/* 8001FF68 0001BE88 3B 86 00 00 */ addi r28, r6, 0
/* 8001FF6C 0001BE8C 38 E1 00 4C */ addi r7, r1, 0x4c
/* 8001FF70 0001BE90 39 20 00 00 */ li r9, 0
/* 8001FF74 0001BE94 C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 8001FF78 0001BE98 3D 00 43 30 */ lis r8, 0x4330
/* 8001FF7C 0001BE9C C0 22 87 20 */ lfs f1, lbl_802F2F20@sda21(r2)
/* 8001FF80 0001BEA0 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
lbl_8001FF84:
/* 8001FF84 0001BEA4 80 0B 00 94 */ lwz r0, 0x94(r11)
/* 8001FF88 0001BEA8 54 00 04 E9 */ rlwinm. r0, r0, 0, 0x13, 0x14
/* 8001FF8C 0001BEAC 41 82 00 20 */ beq lbl_8001FFAC
/* 8001FF90 0001BEB0 80 AB 01 50 */ lwz r5, 0x150(r11)
/* 8001FF94 0001BEB4 80 0B 01 54 */ lwz r0, 0x154(r11)
/* 8001FF98 0001BEB8 90 A1 00 28 */ stw r5, 0x28(r1)
/* 8001FF9C 0001BEBC 90 01 00 2C */ stw r0, 0x2c(r1)
/* 8001FFA0 0001BEC0 80 0B 01 58 */ lwz r0, 0x158(r11)
/* 8001FFA4 0001BEC4 90 01 00 30 */ stw r0, 0x30(r1)
/* 8001FFA8 0001BEC8 48 00 00 78 */ b lbl_80020020
lbl_8001FFAC:
/* 8001FFAC 0001BECC A8 0B 01 4E */ lha r0, 0x14e(r11)
/* 8001FFB0 0001BED0 C0 8B 00 04 */ lfs f4, 4(r11)
/* 8001FFB4 0001BED4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8001FFB8 0001BED8 C0 6B 01 50 */ lfs f3, 0x150(r11)
/* 8001FFBC 0001BEDC 90 01 00 74 */ stw r0, 0x74(r1)
/* 8001FFC0 0001BEE0 91 01 00 70 */ stw r8, 0x70(r1)
/* 8001FFC4 0001BEE4 C8 A1 00 70 */ lfd f5, 0x70(r1)
/* 8001FFC8 0001BEE8 EC A5 10 28 */ fsubs f5, f5, f2
/* 8001FFCC 0001BEEC EC C5 08 24 */ fdivs f6, f5, f1
/* 8001FFD0 0001BEF0 FC A0 30 28 */ fsub f5, f0, f6
/* 8001FFD4 0001BEF4 EC 63 01 B2 */ fmuls f3, f3, f6
/* 8001FFD8 0001BEF8 FC 84 01 72 */ fmul f4, f4, f5
/* 8001FFDC 0001BEFC FC 64 18 2A */ fadd f3, f4, f3
/* 8001FFE0 0001BF00 FC 60 18 18 */ frsp f3, f3
/* 8001FFE4 0001BF04 D0 61 00 28 */ stfs f3, 0x28(r1)
/* 8001FFE8 0001BF08 C0 8B 00 08 */ lfs f4, 8(r11)
/* 8001FFEC 0001BF0C C0 6B 01 54 */ lfs f3, 0x154(r11)
/* 8001FFF0 0001BF10 FC 84 01 72 */ fmul f4, f4, f5
/* 8001FFF4 0001BF14 EC 63 01 B2 */ fmuls f3, f3, f6
/* 8001FFF8 0001BF18 FC 64 18 2A */ fadd f3, f4, f3
/* 8001FFFC 0001BF1C FC 60 18 18 */ frsp f3, f3
/* 80020000 0001BF20 D0 61 00 2C */ stfs f3, 0x2c(r1)
/* 80020004 0001BF24 C0 8B 00 0C */ lfs f4, 0xc(r11)
/* 80020008 0001BF28 C0 6B 01 58 */ lfs f3, 0x158(r11)
/* 8002000C 0001BF2C FC 84 01 72 */ fmul f4, f4, f5
/* 80020010 0001BF30 EC 63 01 B2 */ fmuls f3, f3, f6
/* 80020014 0001BF34 FC 64 18 2A */ fadd f3, f4, f3
/* 80020018 0001BF38 FC 60 18 18 */ frsp f3, f3
/* 8002001C 0001BF3C D0 61 00 30 */ stfs f3, 0x30(r1)
lbl_80020020:
/* 80020020 0001BF40 2C 09 00 00 */ cmpwi r9, 0
/* 80020024 0001BF44 40 82 00 2C */ bne lbl_80020050
/* 80020028 0001BF48 C0 A1 00 28 */ lfs f5, 0x28(r1)
/* 8002002C 0001BF4C C0 81 00 2C */ lfs f4, 0x2c(r1)
/* 80020030 0001BF50 D0 A1 00 34 */ stfs f5, 0x34(r1)
/* 80020034 0001BF54 C0 61 00 30 */ lfs f3, 0x30(r1)
/* 80020038 0001BF58 D0 A1 00 40 */ stfs f5, 0x40(r1)
/* 8002003C 0001BF5C D0 81 00 38 */ stfs f4, 0x38(r1)
/* 80020040 0001BF60 D0 81 00 44 */ stfs f4, 0x44(r1)
/* 80020044 0001BF64 D0 61 00 3C */ stfs f3, 0x3c(r1)
/* 80020048 0001BF68 D0 61 00 48 */ stfs f3, 0x48(r1)
/* 8002004C 0001BF6C 48 00 00 7C */ b lbl_800200C8
lbl_80020050:
/* 80020050 0001BF70 C0 81 00 28 */ lfs f4, 0x28(r1)
/* 80020054 0001BF74 C0 61 00 40 */ lfs f3, 0x40(r1)
/* 80020058 0001BF78 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 8002005C 0001BF7C 40 81 00 08 */ ble lbl_80020064
/* 80020060 0001BF80 D0 81 00 40 */ stfs f4, 0x40(r1)
lbl_80020064:
/* 80020064 0001BF84 C0 81 00 2C */ lfs f4, 0x2c(r1)
/* 80020068 0001BF88 C0 61 00 44 */ lfs f3, 0x44(r1)
/* 8002006C 0001BF8C FC 04 18 40 */ fcmpo cr0, f4, f3
/* 80020070 0001BF90 40 81 00 08 */ ble lbl_80020078
/* 80020074 0001BF94 D0 81 00 44 */ stfs f4, 0x44(r1)
lbl_80020078:
/* 80020078 0001BF98 C0 81 00 30 */ lfs f4, 0x30(r1)
/* 8002007C 0001BF9C C0 61 00 48 */ lfs f3, 0x48(r1)
/* 80020080 0001BFA0 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 80020084 0001BFA4 40 81 00 08 */ ble lbl_8002008C
/* 80020088 0001BFA8 D0 81 00 48 */ stfs f4, 0x48(r1)
lbl_8002008C:
/* 8002008C 0001BFAC C0 81 00 28 */ lfs f4, 0x28(r1)
/* 80020090 0001BFB0 C0 61 00 34 */ lfs f3, 0x34(r1)
/* 80020094 0001BFB4 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 80020098 0001BFB8 40 80 00 08 */ bge lbl_800200A0
/* 8002009C 0001BFBC D0 81 00 34 */ stfs f4, 0x34(r1)
lbl_800200A0:
/* 800200A0 0001BFC0 C0 81 00 2C */ lfs f4, 0x2c(r1)
/* 800200A4 0001BFC4 C0 61 00 38 */ lfs f3, 0x38(r1)
/* 800200A8 0001BFC8 FC 04 18 40 */ fcmpo cr0, f4, f3
/* 800200AC 0001BFCC 40 80 00 08 */ bge lbl_800200B4
/* 800200B0 0001BFD0 D0 81 00 38 */ stfs f4, 0x38(r1)
lbl_800200B4:
/* 800200B4 0001BFD4 C0 81 00 30 */ lfs f4, 0x30(r1)
/* 800200B8 0001BFD8 C0 61 00 3C */ lfs f3, 0x3c(r1)
/* 800200BC 0001BFDC FC 04 18 40 */ fcmpo cr0, f4, f3
/* 800200C0 0001BFE0 40 80 00 08 */ bge lbl_800200C8
/* 800200C4 0001BFE4 D0 81 00 3C */ stfs f4, 0x3c(r1)
lbl_800200C8:
/* 800200C8 0001BFE8 80 A1 00 28 */ lwz r5, 0x28(r1)
/* 800200CC 0001BFEC 7C C7 22 14 */ add r6, r7, r4
/* 800200D0 0001BFF0 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800200D4 0001BFF4 39 29 00 01 */ addi r9, r9, 1
/* 800200D8 0001BFF8 38 84 00 0C */ addi r4, r4, 0xc
/* 800200DC 0001BFFC 90 A6 00 00 */ stw r5, 0(r6)
/* 800200E0 0001C000 39 6B 01 A4 */ addi r11, r11, 0x1a4
/* 800200E4 0001C004 90 06 00 04 */ stw r0, 4(r6)
/* 800200E8 0001C008 80 01 00 30 */ lwz r0, 0x30(r1)
/* 800200EC 0001C00C 90 06 00 08 */ stw r0, 8(r6)
/* 800200F0 0001C010 42 00 FE 94 */ bdnz lbl_8001FF84
/* 800200F4 0001C014 C0 21 00 40 */ lfs f1, 0x40(r1)
/* 800200F8 0001C018 2C 0A 00 01 */ cmpwi r10, 1
/* 800200FC 0001C01C C0 01 00 34 */ lfs f0, 0x34(r1)
/* 80020100 0001C020 C8 82 84 E0 */ lfd f4, lbl_802F2CE0@sda21(r2)
/* 80020104 0001C024 EC 61 00 2A */ fadds f3, f1, f0
/* 80020108 0001C028 C0 21 00 48 */ lfs f1, 0x48(r1)
/* 8002010C 0001C02C C0 01 00 3C */ lfs f0, 0x3c(r1)
/* 80020110 0001C030 C0 41 00 44 */ lfs f2, 0x44(r1)
/* 80020114 0001C034 FC 64 00 F2 */ fmul f3, f4, f3
/* 80020118 0001C038 EC 01 00 2A */ fadds f0, f1, f0
/* 8002011C 0001C03C FC 20 18 18 */ frsp f1, f3
/* 80020120 0001C040 FC 04 00 32 */ fmul f0, f4, f0
/* 80020124 0001C044 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 80020128 0001C048 FC 00 00 18 */ frsp f0, f0
/* 8002012C 0001C04C D0 41 00 2C */ stfs f2, 0x2c(r1)
/* 80020130 0001C050 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80020134 0001C054 40 82 00 84 */ bne lbl_800201B8
/* 80020138 0001C058 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 8002013C 0001C05C C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80020140 0001C060 C8 42 85 00 */ lfd f2, lbl_802F2D00@sda21(r2)
/* 80020144 0001C064 EC 01 00 28 */ fsubs f0, f1, f0
/* 80020148 0001C068 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 8002014C 0001C06C C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 80020150 0001C070 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80020154 0001C074 EC 01 00 28 */ fsubs f0, f1, f0
/* 80020158 0001C078 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 8002015C 0001C07C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 80020160 0001C080 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 80020164 0001C084 EC 01 00 28 */ fsubs f0, f1, f0
/* 80020168 0001C088 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 8002016C 0001C08C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80020170 0001C090 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80020174 0001C094 FC 22 00 72 */ fmul f1, f2, f1
/* 80020178 0001C098 FC 01 00 2A */ fadd f0, f1, f0
/* 8002017C 0001C09C FC 00 00 18 */ frsp f0, f0
/* 80020180 0001C0A0 D0 1C 00 00 */ stfs f0, 0(r28)
/* 80020184 0001C0A4 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 80020188 0001C0A8 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 8002018C 0001C0AC FC 22 00 72 */ fmul f1, f2, f1
/* 80020190 0001C0B0 FC 01 00 2A */ fadd f0, f1, f0
/* 80020194 0001C0B4 FC 00 00 18 */ frsp f0, f0
/* 80020198 0001C0B8 D0 1C 00 04 */ stfs f0, 4(r28)
/* 8002019C 0001C0BC C0 21 00 30 */ lfs f1, 0x30(r1)
/* 800201A0 0001C0C0 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 800201A4 0001C0C4 FC 22 00 72 */ fmul f1, f2, f1
/* 800201A8 0001C0C8 FC 01 00 2A */ fadd f0, f1, f0
/* 800201AC 0001C0CC FC 00 00 18 */ frsp f0, f0
/* 800201B0 0001C0D0 D0 1C 00 08 */ stfs f0, 8(r28)
/* 800201B4 0001C0D4 48 00 00 1C */ b lbl_800201D0
lbl_800201B8:
/* 800201B8 0001C0D8 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 800201BC 0001C0DC D0 1C 00 00 */ stfs f0, 0(r28)
/* 800201C0 0001C0E0 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 800201C4 0001C0E4 D0 1C 00 04 */ stfs f0, 4(r28)
/* 800201C8 0001C0E8 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 800201CC 0001C0EC D0 1C 00 08 */ stfs f0, 8(r28)
lbl_800201D0:
/* 800201D0 0001C0F0 C0 3C 00 00 */ lfs f1, 0(r28)
/* 800201D4 0001C0F4 3C 60 80 20 */ lis r3, lbl_80205E60@ha
/* 800201D8 0001C0F8 C0 01 00 4C */ lfs f0, 0x4c(r1)
/* 800201DC 0001C0FC 38 63 5E 60 */ addi r3, r3, lbl_80205E60@l
/* 800201E0 0001C100 C3 E2 84 18 */ lfs f31, lbl_802F2C18@sda21(r2)
/* 800201E4 0001C104 EC 01 00 28 */ fsubs f0, f1, f0
/* 800201E8 0001C108 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 800201EC 0001C10C C0 3C 00 08 */ lfs f1, 8(r28)
/* 800201F0 0001C110 C0 01 00 54 */ lfs f0, 0x54(r1)
/* 800201F4 0001C114 EC 01 00 28 */ fsubs f0, f1, f0
/* 800201F8 0001C118 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 800201FC 0001C11C C0 21 00 30 */ lfs f1, 0x30(r1)
/* 80020200 0001C120 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80020204 0001C124 EC 00 00 32 */ fmuls f0, f0, f0
/* 80020208 0001C128 EC 01 00 7A */ fmadds f0, f1, f1, f0
/* 8002020C 0001C12C FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020210 0001C130 40 81 00 08 */ ble lbl_80020218
/* 80020214 0001C134 FF E0 00 90 */ fmr f31, f0
lbl_80020218:
/* 80020218 0001C138 C0 3C 00 00 */ lfs f1, 0(r28)
/* 8002021C 0001C13C C0 01 00 58 */ lfs f0, 0x58(r1)
/* 80020220 0001C140 EC 01 00 28 */ fsubs f0, f1, f0
/* 80020224 0001C144 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80020228 0001C148 C0 3C 00 08 */ lfs f1, 8(r28)
/* 8002022C 0001C14C C0 01 00 60 */ lfs f0, 0x60(r1)
/* 80020230 0001C150 EC 01 00 28 */ fsubs f0, f1, f0
/* 80020234 0001C154 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80020238 0001C158 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 8002023C 0001C15C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80020240 0001C160 EC 00 00 32 */ fmuls f0, f0, f0
/* 80020244 0001C164 EC 01 00 7A */ fmadds f0, f1, f1, f0
/* 80020248 0001C168 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 8002024C 0001C16C 40 81 00 08 */ ble lbl_80020254
/* 80020250 0001C170 FF E0 00 90 */ fmr f31, f0
lbl_80020254:
/* 80020254 0001C174 C0 3C 00 00 */ lfs f1, 0(r28)
/* 80020258 0001C178 C0 01 00 64 */ lfs f0, 0x64(r1)
/* 8002025C 0001C17C EC 01 00 28 */ fsubs f0, f1, f0
/* 80020260 0001C180 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80020264 0001C184 C0 3C 00 08 */ lfs f1, 8(r28)
/* 80020268 0001C188 C0 01 00 6C */ lfs f0, 0x6c(r1)
/* 8002026C 0001C18C EC 01 00 28 */ fsubs f0, f1, f0
/* 80020270 0001C190 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 80020274 0001C194 C0 21 00 30 */ lfs f1, 0x30(r1)
/* 80020278 0001C198 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 8002027C 0001C19C EC 00 00 32 */ fmuls f0, f0, f0
/* 80020280 0001C1A0 EC 01 00 7A */ fmadds f0, f1, f1, f0
/* 80020284 0001C1A4 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020288 0001C1A8 40 81 00 08 */ ble lbl_80020290
/* 8002028C 0001C1AC FF E0 00 90 */ fmr f31, f0
lbl_80020290:
/* 80020290 0001C1B0 FC 20 F8 90 */ fmr f1, f31
/* 80020294 0001C1B4 4B FE 6E 65 */ bl mathutil_sqrt
/* 80020298 0001C1B8 C8 42 87 28 */ lfd f2, lbl_802F2F28@sda21(r2)
/* 8002029C 0001C1BC C8 02 86 90 */ lfd f0, lbl_802F2E90@sda21(r2)
/* 800202A0 0001C1C0 FF E2 00 72 */ fmul f31, f2, f1
/* 800202A4 0001C1C4 FF E0 F8 18 */ frsp f31, f31
/* 800202A8 0001C1C8 FC 1F 00 40 */ fcmpo cr0, f31, f0
/* 800202AC 0001C1CC 40 80 00 08 */ bge lbl_800202B4
/* 800202B0 0001C1D0 C3 E2 86 F0 */ lfs f31, lbl_802F2EF0@sda21(r2)
lbl_800202B4:
/* 800202B4 0001C1D4 7F 83 E3 78 */ mr r3, r28
/* 800202B8 0001C1D8 4B FE 73 05 */ bl mathutil_mtxA_from_translate
/* 800202BC 0001C1DC 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 800202C0 0001C1E0 80 63 00 10 */ lwz r3, 0x10(r3)
/* 800202C4 0001C1E4 A8 63 00 0E */ lha r3, 0xe(r3)
/* 800202C8 0001C1E8 38 63 40 00 */ addi r3, r3, 0x4000
/* 800202CC 0001C1EC 4B FE 7D 31 */ bl mathutil_mtxA_rotate_y
/* 800202D0 0001C1F0 38 60 C0 00 */ li r3, -16384
/* 800202D4 0001C1F4 4B FE 7C B5 */ bl mathutil_mtxA_rotate_x
/* 800202D8 0001C1F8 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 800202DC 0001C1FC FC 60 F8 90 */ fmr f3, f31
/* 800202E0 0001C200 FC 40 08 90 */ fmr f2, f1
/* 800202E4 0001C204 4B FE 7A 4D */ bl mathutil_mtxA_translate_xyz
/* 800202E8 0001C208 38 9B 00 04 */ addi r4, r27, 4
/* 800202EC 0001C20C 38 7B 00 08 */ addi r3, r27, 8
/* 800202F0 0001C210 3C A0 E0 00 */ lis r5, 0xE000000C@ha
/* 800202F4 0001C214 C0 45 00 0C */ lfs f2, 0xE000000C@l(r5)
/* 800202F8 0001C218 C0 25 00 1C */ lfs f1, 0x1c(r5)
/* 800202FC 0001C21C C0 05 00 2C */ lfs f0, 0x2c(r5)
/* 80020300 0001C220 D0 5B 00 00 */ stfs f2, 0(r27)
/* 80020304 0001C224 D0 24 00 00 */ stfs f1, 0(r4)
/* 80020308 0001C228 D0 03 00 00 */ stfs f0, 0(r3)
/* 8002030C 0001C22C 38 7E 00 00 */ addi r3, r30, 0
/* 80020310 0001C230 38 9D 00 00 */ addi r4, r29, 0
/* 80020314 0001C234 38 BF 00 00 */ addi r5, r31, 0
/* 80020318 0001C238 4B FE 8D D9 */ bl mathutil_mtxA_to_euler_yxz
/* 8002031C 0001C23C BB 61 00 7C */ lmw r27, 0x7c(r1)
/* 80020320 0001C240 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 80020324 0001C244 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 80020328 0001C248 38 21 00 98 */ addi r1, r1, 0x98
/* 8002032C 0001C24C 7C 08 03 A6 */ mtlr r0
/* 80020330 0001C250 4E 80 00 20 */ blr
.global func_80020334
func_80020334:
/* 80020334 0001C254 7C 08 02 A6 */ mflr r0
/* 80020338 0001C258 3C 80 80 17 */ lis r4, lbl_80177214@ha
/* 8002033C 0001C25C 90 01 00 04 */ stw r0, 4(r1)
/* 80020340 0001C260 38 84 72 14 */ addi r4, r4, lbl_80177214@l
/* 80020344 0001C264 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80020348 0001C268 93 E1 00 44 */ stw r31, 0x44(r1)
/* 8002034C 0001C26C 3B E9 00 00 */ addi r31, r9, 0
/* 80020350 0001C270 93 C1 00 40 */ stw r30, 0x40(r1)
/* 80020354 0001C274 3B C8 00 00 */ addi r30, r8, 0
/* 80020358 0001C278 93 A1 00 3C */ stw r29, 0x3c(r1)
/* 8002035C 0001C27C 3B A7 00 00 */ addi r29, r7, 0
/* 80020360 0001C280 93 81 00 38 */ stw r28, 0x38(r1)
/* 80020364 0001C284 3B 85 00 00 */ addi r28, r5, 0
/* 80020368 0001C288 A8 6D 9D 78 */ lha r3, currStageId@sda21(r13)
/* 8002036C 0001C28C 48 00 00 38 */ b lbl_800203A4
lbl_80020370:
/* 80020370 0001C290 80 04 00 00 */ lwz r0, 0(r4)
/* 80020374 0001C294 7C 00 18 00 */ cmpw r0, r3
/* 80020378 0001C298 40 82 00 28 */ bne lbl_800203A0
/* 8002037C 0001C29C 80 64 00 04 */ lwz r3, 4(r4)
/* 80020380 0001C2A0 80 04 00 08 */ lwz r0, 8(r4)
/* 80020384 0001C2A4 90 61 00 24 */ stw r3, 0x24(r1)
/* 80020388 0001C2A8 90 01 00 28 */ stw r0, 0x28(r1)
/* 8002038C 0001C2AC 80 64 00 0C */ lwz r3, 0xc(r4)
/* 80020390 0001C2B0 80 04 00 10 */ lwz r0, 0x10(r4)
/* 80020394 0001C2B4 90 61 00 2C */ stw r3, 0x2c(r1)
/* 80020398 0001C2B8 90 01 00 30 */ stw r0, 0x30(r1)
/* 8002039C 0001C2BC 48 00 00 54 */ b lbl_800203F0
lbl_800203A0:
/* 800203A0 0001C2C0 38 84 00 14 */ addi r4, r4, 0x14
lbl_800203A4:
/* 800203A4 0001C2C4 80 04 00 00 */ lwz r0, 0(r4)
/* 800203A8 0001C2C8 2C 00 00 00 */ cmpwi r0, 0
/* 800203AC 0001C2CC 41 81 FF C4 */ bgt lbl_80020370
/* 800203B0 0001C2D0 3C 60 80 21 */ lis r3, lbl_8020ADD4@ha
/* 800203B4 0001C2D4 C8 02 85 30 */ lfd f0, lbl_802F2D30@sda21(r2)
/* 800203B8 0001C2D8 38 83 AD D4 */ addi r4, r3, lbl_8020ADD4@l
/* 800203BC 0001C2DC 80 64 00 00 */ lwz r3, 0(r4)
/* 800203C0 0001C2E0 80 04 00 04 */ lwz r0, 4(r4)
/* 800203C4 0001C2E4 90 61 00 24 */ stw r3, 0x24(r1)
/* 800203C8 0001C2E8 90 01 00 28 */ stw r0, 0x28(r1)
/* 800203CC 0001C2EC 80 64 00 08 */ lwz r3, 8(r4)
/* 800203D0 0001C2F0 80 04 00 0C */ lwz r0, 0xc(r4)
/* 800203D4 0001C2F4 90 61 00 2C */ stw r3, 0x2c(r1)
/* 800203D8 0001C2F8 90 01 00 30 */ stw r0, 0x30(r1)
/* 800203DC 0001C2FC C0 21 00 30 */ lfs f1, 0x30(r1)
/* 800203E0 0001C300 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800203E4 0001C304 40 80 00 0C */ bge lbl_800203F0
/* 800203E8 0001C308 C0 02 85 38 */ lfs f0, lbl_802F2D38@sda21(r2)
/* 800203EC 0001C30C D0 01 00 30 */ stfs f0, 0x30(r1)
lbl_800203F0:
/* 800203F0 0001C310 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 800203F4 0001C314 7C C3 33 78 */ mr r3, r6
/* 800203F8 0001C318 D0 06 00 00 */ stfs f0, 0(r6)
/* 800203FC 0001C31C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80020400 0001C320 D0 06 00 04 */ stfs f0, 4(r6)
/* 80020404 0001C324 C0 01 00 2C */ lfs f0, 0x2c(r1)
/* 80020408 0001C328 D0 06 00 08 */ stfs f0, 8(r6)
/* 8002040C 0001C32C 4B FE 71 B1 */ bl mathutil_mtxA_from_translate
/* 80020410 0001C330 80 6D 9D 50 */ lwz r3, decodedStageLzPtr@sda21(r13)
/* 80020414 0001C334 80 63 00 10 */ lwz r3, 0x10(r3)
/* 80020418 0001C338 A8 63 00 0E */ lha r3, 0xe(r3)
/* 8002041C 0001C33C 38 63 40 00 */ addi r3, r3, 0x4000
/* 80020420 0001C340 4B FE 7B DD */ bl mathutil_mtxA_rotate_y
/* 80020424 0001C344 38 60 C0 00 */ li r3, -16384
/* 80020428 0001C348 4B FE 7B 61 */ bl mathutil_mtxA_rotate_x
/* 8002042C 0001C34C C8 42 87 30 */ lfd f2, lbl_802F2F30@sda21(r2)
/* 80020430 0001C350 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 80020434 0001C354 C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80020438 0001C358 FC 62 00 32 */ fmul f3, f2, f0
/* 8002043C 0001C35C FC 40 08 90 */ fmr f2, f1
/* 80020440 0001C360 FC 60 18 18 */ frsp f3, f3
/* 80020444 0001C364 4B FE 78 ED */ bl mathutil_mtxA_translate_xyz
/* 80020448 0001C368 38 9C 00 04 */ addi r4, r28, 4
/* 8002044C 0001C36C 38 7C 00 08 */ addi r3, r28, 8
/* 80020450 0001C370 3C A0 E0 00 */ lis r5, 0xE000000C@ha
/* 80020454 0001C374 C0 45 00 0C */ lfs f2, 0xE000000C@l(r5)
/* 80020458 0001C378 C0 25 00 1C */ lfs f1, 0x1c(r5)
/* 8002045C 0001C37C C0 05 00 2C */ lfs f0, 0x2c(r5)
/* 80020460 0001C380 D0 5C 00 00 */ stfs f2, 0(r28)
/* 80020464 0001C384 D0 24 00 00 */ stfs f1, 0(r4)
/* 80020468 0001C388 D0 03 00 00 */ stfs f0, 0(r3)
/* 8002046C 0001C38C 38 7E 00 00 */ addi r3, r30, 0
/* 80020470 0001C390 38 9D 00 00 */ addi r4, r29, 0
/* 80020474 0001C394 38 BF 00 00 */ addi r5, r31, 0
/* 80020478 0001C398 4B FE 8C 79 */ bl mathutil_mtxA_to_euler_yxz
/* 8002047C 0001C39C 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80020480 0001C3A0 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 80020484 0001C3A4 83 C1 00 40 */ lwz r30, 0x40(r1)
/* 80020488 0001C3A8 7C 08 03 A6 */ mtlr r0
/* 8002048C 0001C3AC 83 A1 00 3C */ lwz r29, 0x3c(r1)
/* 80020490 0001C3B0 83 81 00 38 */ lwz r28, 0x38(r1)
/* 80020494 0001C3B4 38 21 00 48 */ addi r1, r1, 0x48
/* 80020498 0001C3B8 4E 80 00 20 */ blr
.global func_8002049C
func_8002049C:
/* 8002049C 0001C3BC 7C 08 02 A6 */ mflr r0
/* 800204A0 0001C3C0 90 01 00 04 */ stw r0, 4(r1)
/* 800204A4 0001C3C4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800204A8 0001C3C8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800204AC 0001C3CC 3B E4 00 00 */ addi r31, r4, 0
/* 800204B0 0001C3D0 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800204B4 0001C3D4 3B C3 00 00 */ addi r30, r3, 0
/* 800204B8 0001C3D8 4B FF 86 39 */ bl camera_clear
/* 800204BC 0001C3DC 38 00 00 00 */ li r0, 0
/* 800204C0 0001C3E0 98 1E 00 26 */ stb r0, 0x26(r30)
/* 800204C4 0001C3E4 38 00 2A AA */ li r0, 0x2aaa
/* 800204C8 0001C3E8 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 800204CC 0001C3EC D0 1E 00 28 */ stfs f0, 0x28(r30)
/* 800204D0 0001C3F0 D0 1E 00 2C */ stfs f0, 0x2c(r30)
/* 800204D4 0001C3F4 B0 1E 00 30 */ sth r0, 0x30(r30)
/* 800204D8 0001C3F8 48 07 D2 F5 */ bl func_8009D7CC
/* 800204DC 0001C3FC 2C 03 00 00 */ cmpwi r3, 0
/* 800204E0 0001C400 40 82 00 10 */ bne lbl_800204F0
/* 800204E4 0001C404 48 07 D3 05 */ bl func_8009D7E8
/* 800204E8 0001C408 1C 03 01 10 */ mulli r0, r3, 0x110
/* 800204EC 0001C40C B0 1E 00 50 */ sth r0, 0x50(r30)
lbl_800204F0:
/* 800204F0 0001C410 38 7E 00 00 */ addi r3, r30, 0
/* 800204F4 0001C414 38 9F 00 00 */ addi r4, r31, 0
/* 800204F8 0001C418 48 00 00 25 */ bl camera_sub_71
/* 800204FC 0001C41C 38 00 00 47 */ li r0, 0x47
/* 80020500 0001C420 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 80020504 0001C424 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80020508 0001C428 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8002050C 0001C42C 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 80020510 0001C430 7C 08 03 A6 */ mtlr r0
/* 80020514 0001C434 38 21 00 18 */ addi r1, r1, 0x18
/* 80020518 0001C438 4E 80 00 20 */ blr
.global camera_sub_71
camera_sub_71:
/* 8002051C 0001C43C 7C 08 02 A6 */ mflr r0
/* 80020520 0001C440 90 01 00 04 */ stw r0, 4(r1)
/* 80020524 0001C444 94 21 FF C8 */ stwu r1, -0x38(r1)
/* 80020528 0001C448 93 E1 00 34 */ stw r31, 0x34(r1)
/* 8002052C 0001C44C 93 C1 00 30 */ stw r30, 0x30(r1)
/* 80020530 0001C450 3B C3 00 00 */ addi r30, r3, 0
/* 80020534 0001C454 93 A1 00 2C */ stw r29, 0x2c(r1)
/* 80020538 0001C458 80 0D 9D 00 */ lwz r0, lbl_802F1EE0@sda21(r13)
/* 8002053C 0001C45C 70 00 00 0A */ andi. r0, r0, 0xa
/* 80020540 0001C460 41 82 00 10 */ beq lbl_80020550
/* 80020544 0001C464 88 1E 00 1E */ lbz r0, 0x1e(r30)
/* 80020548 0001C468 2C 00 00 47 */ cmpwi r0, 0x47
/* 8002054C 0001C46C 41 82 03 A8 */ beq lbl_800208F4
lbl_80020550:
/* 80020550 0001C470 48 07 D2 99 */ bl func_8009D7E8
/* 80020554 0001C474 7C 7F 1B 79 */ or. r31, r3, r3
/* 80020558 0001C478 40 81 03 9C */ ble lbl_800208F4
/* 8002055C 0001C47C 1F BF 01 10 */ mulli r29, r31, 0x110
/* 80020560 0001C480 A8 9E 00 50 */ lha r4, 0x50(r30)
/* 80020564 0001C484 7C 04 E8 00 */ cmpw r4, r29
/* 80020568 0001C488 40 80 01 A4 */ bge lbl_8002070C
/* 8002056C 0001C48C 3C 60 78 78 */ lis r3, 0x78787879@ha
/* 80020570 0001C490 38 03 78 79 */ addi r0, r3, 0x78787879@l
/* 80020574 0001C494 7C 00 20 96 */ mulhw r0, r0, r4
/* 80020578 0001C498 7C 00 3E 70 */ srawi r0, r0, 7
/* 8002057C 0001C49C 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80020580 0001C4A0 7C 60 1A 14 */ add r3, r0, r3
/* 80020584 0001C4A4 1C 03 01 10 */ mulli r0, r3, 0x110
/* 80020588 0001C4A8 2C 1F 00 02 */ cmpwi r31, 2
/* 8002058C 0001C4AC 7F A0 20 50 */ subf r29, r0, r4
/* 80020590 0001C4B0 40 81 00 6C */ ble lbl_800205FC
/* 80020594 0001C4B4 2C 03 00 02 */ cmpwi r3, 2
/* 80020598 0001C4B8 41 82 00 44 */ beq lbl_800205DC
/* 8002059C 0001C4BC 40 80 00 14 */ bge lbl_800205B0
/* 800205A0 0001C4C0 2C 03 00 00 */ cmpwi r3, 0
/* 800205A4 0001C4C4 41 82 00 18 */ beq lbl_800205BC
/* 800205A8 0001C4C8 40 80 00 24 */ bge lbl_800205CC
/* 800205AC 0001C4CC 48 00 00 58 */ b lbl_80020604
lbl_800205B0:
/* 800205B0 0001C4D0 2C 03 00 04 */ cmpwi r3, 4
/* 800205B4 0001C4D4 40 80 00 50 */ bge lbl_80020604
/* 800205B8 0001C4D8 48 00 00 34 */ b lbl_800205EC
lbl_800205BC:
/* 800205BC 0001C4DC 38 60 00 01 */ li r3, 1
/* 800205C0 0001C4E0 38 81 00 10 */ addi r4, r1, 0x10
/* 800205C4 0001C4E4 48 07 D2 39 */ bl func_8009D7FC
/* 800205C8 0001C4E8 48 00 00 3C */ b lbl_80020604
lbl_800205CC:
/* 800205CC 0001C4EC 38 60 00 00 */ li r3, 0
/* 800205D0 0001C4F0 38 81 00 10 */ addi r4, r1, 0x10
/* 800205D4 0001C4F4 48 07 D2 29 */ bl func_8009D7FC
/* 800205D8 0001C4F8 48 00 00 2C */ b lbl_80020604
lbl_800205DC:
/* 800205DC 0001C4FC 38 60 00 02 */ li r3, 2
/* 800205E0 0001C500 38 81 00 10 */ addi r4, r1, 0x10
/* 800205E4 0001C504 48 07 D2 19 */ bl func_8009D7FC
/* 800205E8 0001C508 48 00 00 1C */ b lbl_80020604
lbl_800205EC:
/* 800205EC 0001C50C 38 60 00 03 */ li r3, 3
/* 800205F0 0001C510 38 81 00 10 */ addi r4, r1, 0x10
/* 800205F4 0001C514 48 07 D2 09 */ bl func_8009D7FC
/* 800205F8 0001C518 48 00 00 0C */ b lbl_80020604
lbl_800205FC:
/* 800205FC 0001C51C 38 81 00 10 */ addi r4, r1, 0x10
/* 80020600 0001C520 48 07 D1 FD */ bl func_8009D7FC
lbl_80020604:
/* 80020604 0001C524 2C 1D 00 CC */ cmpwi r29, 0xcc
/* 80020608 0001C528 41 80 00 50 */ blt lbl_80020658
/* 8002060C 0001C52C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80020610 0001C530 38 60 00 00 */ li r3, 0
/* 80020614 0001C534 38 00 80 00 */ li r0, -32768
/* 80020618 0001C538 FC 00 00 18 */ frsp f0, f0
/* 8002061C 0001C53C D0 1E 00 00 */ stfs f0, 0(r30)
/* 80020620 0001C540 C8 22 85 70 */ lfd f1, lbl_802F2D70@sda21(r2)
/* 80020624 0001C544 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80020628 0001C548 FC 01 00 2A */ fadd f0, f1, f0
/* 8002062C 0001C54C FC 00 00 18 */ frsp f0, f0
/* 80020630 0001C550 D0 1E 00 04 */ stfs f0, 4(r30)
/* 80020634 0001C554 C0 21 00 18 */ lfs f1, 0x18(r1)
/* 80020638 0001C558 C8 02 87 30 */ lfd f0, lbl_802F2F30@sda21(r2)
/* 8002063C 0001C55C FC 01 00 28 */ fsub f0, f1, f0
/* 80020640 0001C560 FC 00 00 18 */ frsp f0, f0
/* 80020644 0001C564 D0 1E 00 08 */ stfs f0, 8(r30)
/* 80020648 0001C568 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 8002064C 0001C56C B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 80020650 0001C570 B0 7E 00 1C */ sth r3, 0x1c(r30)
/* 80020654 0001C574 48 00 01 7C */ b lbl_800207D0
lbl_80020658:
/* 80020658 0001C578 6F A0 80 00 */ xoris r0, r29, 0x8000
/* 8002065C 0001C57C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80020660 0001C580 90 01 00 24 */ stw r0, 0x24(r1)
/* 80020664 0001C584 3C 00 43 30 */ lis r0, 0x4330
/* 80020668 0001C588 C8 82 84 68 */ lfd f4, lbl_802F2C68@sda21(r2)
/* 8002066C 0001C58C FC 00 00 18 */ frsp f0, f0
/* 80020670 0001C590 90 01 00 20 */ stw r0, 0x20(r1)
/* 80020674 0001C594 C0 22 87 38 */ lfs f1, lbl_802F2F38@sda21(r2)
/* 80020678 0001C598 38 60 00 00 */ li r3, 0
/* 8002067C 0001C59C C8 61 00 20 */ lfd f3, 0x20(r1)
/* 80020680 0001C5A0 C8 42 85 28 */ lfd f2, lbl_802F2D28@sda21(r2)
/* 80020684 0001C5A4 38 00 80 00 */ li r0, -32768
/* 80020688 0001C5A8 EC 63 20 28 */ fsubs f3, f3, f4
/* 8002068C 0001C5AC C8 E2 85 20 */ lfd f7, lbl_802F2D20@sda21(r2)
/* 80020690 0001C5B0 D0 1E 00 00 */ stfs f0, 0(r30)
/* 80020694 0001C5B4 EC A3 08 24 */ fdivs f5, f3, f1
/* 80020698 0001C5B8 C0 61 00 14 */ lfs f3, 0x14(r1)
/* 8002069C 0001C5BC C8 22 84 B0 */ lfd f1, lbl_802F2CB0@sda21(r2)
/* 800206A0 0001C5C0 C8 02 84 60 */ lfd f0, lbl_802F2C60@sda21(r2)
/* 800206A4 0001C5C4 C8 82 85 70 */ lfd f4, lbl_802F2D70@sda21(r2)
/* 800206A8 0001C5C8 FC C2 01 72 */ fmul f6, f2, f5
/* 800206AC 0001C5CC EC A5 01 72 */ fmuls f5, f5, f5
/* 800206B0 0001C5D0 FC 41 00 F2 */ fmul f2, f1, f3
/* 800206B4 0001C5D4 FC 27 30 2A */ fadd f1, f7, f6
/* 800206B8 0001C5D8 FC A1 01 72 */ fmul f5, f1, f5
/* 800206BC 0001C5DC FC A0 28 18 */ frsp f5, f5
/* 800206C0 0001C5E0 FC 20 28 28 */ fsub f1, f0, f5
/* 800206C4 0001C5E4 FC 84 01 72 */ fmul f4, f4, f5
/* 800206C8 0001C5E8 FC 02 00 72 */ fmul f0, f2, f1
/* 800206CC 0001C5EC FC 03 00 28 */ fsub f0, f3, f0
/* 800206D0 0001C5F0 FC 04 00 2A */ fadd f0, f4, f0
/* 800206D4 0001C5F4 FC 00 00 18 */ frsp f0, f0
/* 800206D8 0001C5F8 D0 1E 00 04 */ stfs f0, 4(r30)
/* 800206DC 0001C5FC C8 02 87 30 */ lfd f0, lbl_802F2F30@sda21(r2)
/* 800206E0 0001C600 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 800206E4 0001C604 FC 20 00 72 */ fmul f1, f0, f1
/* 800206E8 0001C608 FC 00 01 72 */ fmul f0, f0, f5
/* 800206EC 0001C60C FC 22 08 28 */ fsub f1, f2, f1
/* 800206F0 0001C610 FC 01 00 28 */ fsub f0, f1, f0
/* 800206F4 0001C614 FC 00 00 18 */ frsp f0, f0
/* 800206F8 0001C618 D0 1E 00 08 */ stfs f0, 8(r30)
/* 800206FC 0001C61C B0 7E 00 18 */ sth r3, 0x18(r30)
/* 80020700 0001C620 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 80020704 0001C624 B0 7E 00 1C */ sth r3, 0x1c(r30)
/* 80020708 0001C628 48 00 00 C8 */ b lbl_800207D0
lbl_8002070C:
/* 8002070C 0001C62C 38 61 00 10 */ addi r3, r1, 0x10
/* 80020710 0001C630 48 07 D2 7D */ bl func_8009D98C
/* 80020714 0001C634 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80020718 0001C638 D0 1E 00 0C */ stfs f0, 0xc(r30)
/* 8002071C 0001C63C C8 22 87 40 */ lfd f1, lbl_802F2F40@sda21(r2)
/* 80020720 0001C640 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80020724 0001C644 FC 01 00 2A */ fadd f0, f1, f0
/* 80020728 0001C648 FC 00 00 18 */ frsp f0, f0
/* 8002072C 0001C64C D0 1E 00 10 */ stfs f0, 0x10(r30)
/* 80020730 0001C650 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 80020734 0001C654 D0 1E 00 14 */ stfs f0, 0x14(r30)
/* 80020738 0001C658 A8 1E 00 50 */ lha r0, 0x50(r30)
/* 8002073C 0001C65C 7F BD 00 50 */ subf r29, r29, r0
/* 80020740 0001C660 2C 1D 00 08 */ cmpwi r29, 8
/* 80020744 0001C664 40 80 00 30 */ bge lbl_80020774
/* 80020748 0001C668 6F A0 80 00 */ xoris r0, r29, 0x8000
/* 8002074C 0001C66C C8 42 84 68 */ lfd f2, lbl_802F2C68@sda21(r2)
/* 80020750 0001C670 90 01 00 24 */ stw r0, 0x24(r1)
/* 80020754 0001C674 3C 00 43 30 */ lis r0, 0x4330
/* 80020758 0001C678 C8 02 86 C0 */ lfd f0, lbl_802F2EC0@sda21(r2)
/* 8002075C 0001C67C 90 01 00 20 */ stw r0, 0x20(r1)
/* 80020760 0001C680 C8 21 00 20 */ lfd f1, 0x20(r1)
/* 80020764 0001C684 EC 21 10 28 */ fsubs f1, f1, f2
/* 80020768 0001C688 FC A1 00 32 */ fmul f5, f1, f0
/* 8002076C 0001C68C FC A0 28 18 */ frsp f5, f5
/* 80020770 0001C690 48 00 00 08 */ b lbl_80020778
lbl_80020774:
/* 80020774 0001C694 C0 A2 84 20 */ lfs f5, lbl_802F2C20@sda21(r2)
lbl_80020778:
/* 80020778 0001C698 C8 62 84 60 */ lfd f3, lbl_802F2C60@sda21(r2)
/* 8002077C 0001C69C 38 60 00 00 */ li r3, 0
/* 80020780 0001C6A0 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 80020784 0001C6A4 38 00 80 00 */ li r0, -32768
/* 80020788 0001C6A8 FC 23 28 28 */ fsub f1, f3, f5
/* 8002078C 0001C6AC D0 1E 00 00 */ stfs f0, 0(r30)
/* 80020790 0001C6B0 FC 21 00 72 */ fmul f1, f1, f1
/* 80020794 0001C6B4 C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 80020798 0001C6B8 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8002079C 0001C6BC FC A3 08 28 */ fsub f5, f3, f1
/* 800207A0 0001C6C0 C8 02 85 20 */ lfd f0, lbl_802F2D20@sda21(r2)
/* 800207A4 0001C6C4 C0 5E 00 14 */ lfs f2, 0x14(r30)
/* 800207A8 0001C6C8 FC A0 28 18 */ frsp f5, f5
/* 800207AC 0001C6CC FC 23 28 28 */ fsub f1, f3, f5
/* 800207B0 0001C6D0 FC 00 01 72 */ fmul f0, f0, f5
/* 800207B4 0001C6D4 FC 22 08 28 */ fsub f1, f2, f1
/* 800207B8 0001C6D8 FC 01 00 28 */ fsub f0, f1, f0
/* 800207BC 0001C6DC FC 00 00 18 */ frsp f0, f0
/* 800207C0 0001C6E0 D0 1E 00 08 */ stfs f0, 8(r30)
/* 800207C4 0001C6E4 B0 7E 00 18 */ sth r3, 0x18(r30)
/* 800207C8 0001C6E8 B0 1E 00 1A */ sth r0, 0x1a(r30)
/* 800207CC 0001C6EC B0 7E 00 1C */ sth r3, 0x1c(r30)
lbl_800207D0:
/* 800207D0 0001C6F0 80 6D 99 80 */ lwz r3, mathutilData@sda21(r13)
/* 800207D4 0001C6F4 48 07 D3 99 */ bl func_8009DB6C
/* 800207D8 0001C6F8 7F C3 F3 78 */ mr r3, r30
/* 800207DC 0001C6FC 4B FE 75 45 */ bl mathutil_mtxA_translate
/* 800207E0 0001C700 A8 7E 00 1A */ lha r3, 0x1a(r30)
/* 800207E4 0001C704 4B FE 78 19 */ bl mathutil_mtxA_rotate_y
/* 800207E8 0001C708 A8 7E 00 18 */ lha r3, 0x18(r30)
/* 800207EC 0001C70C 4B FE 77 9D */ bl mathutil_mtxA_rotate_x
/* 800207F0 0001C710 A8 7E 00 1C */ lha r3, 0x1c(r30)
/* 800207F4 0001C714 4B FE 78 95 */ bl mathutil_mtxA_rotate_z
/* 800207F8 0001C718 38 9E 00 04 */ addi r4, r30, 4
/* 800207FC 0001C71C 38 7E 00 08 */ addi r3, r30, 8
/* 80020800 0001C720 3C A0 E0 00 */ lis r5, 0xE000000C@ha
/* 80020804 0001C724 C0 45 00 0C */ lfs f2, 0xE000000C@l(r5)
/* 80020808 0001C728 C0 25 00 1C */ lfs f1, 0x1c(r5)
/* 8002080C 0001C72C C0 05 00 2C */ lfs f0, 0x2c(r5)
/* 80020810 0001C730 D0 5E 00 00 */ stfs f2, 0(r30)
/* 80020814 0001C734 D0 24 00 00 */ stfs f1, 0(r4)
/* 80020818 0001C738 D0 03 00 00 */ stfs f0, 0(r3)
/* 8002081C 0001C73C 38 7E 00 1A */ addi r3, r30, 0x1a
/* 80020820 0001C740 38 9E 00 18 */ addi r4, r30, 0x18
/* 80020824 0001C744 38 BE 00 1C */ addi r5, r30, 0x1c
/* 80020828 0001C748 4B FE 88 C9 */ bl mathutil_mtxA_to_euler_yxz
/* 8002082C 0001C74C C0 22 84 18 */ lfs f1, lbl_802F2C18@sda21(r2)
/* 80020830 0001C750 38 7E 00 0C */ addi r3, r30, 0xc
/* 80020834 0001C754 C0 62 87 48 */ lfs f3, lbl_802F2F48@sda21(r2)
/* 80020838 0001C758 FC 40 08 90 */ fmr f2, f1
/* 8002083C 0001C75C 4B FE 76 19 */ bl mathutil_mtxA_tf_point_xyz
/* 80020840 0001C760 A8 BE 00 50 */ lha r5, 0x50(r30)
/* 80020844 0001C764 3C 80 80 20 */ lis r4, spritePoolInfo@ha
/* 80020848 0001C768 3C 60 80 1F */ lis r3, lbl_801F3B70@ha
/* 8002084C 0001C76C 38 05 00 01 */ addi r0, r5, 1
/* 80020850 0001C770 B0 1E 00 50 */ sth r0, 0x50(r30)
/* 80020854 0001C774 38 E4 59 88 */ addi r7, r4, spritePoolInfo@l
/* 80020858 0001C778 38 C3 3B 70 */ addi r6, r3, lbl_801F3B70@l
/* 8002085C 0001C77C 81 07 00 0C */ lwz r8, 0xc(r7)
/* 80020860 0001C780 39 20 00 00 */ li r9, 0
/* 80020864 0001C784 38 60 00 00 */ li r3, 0
/* 80020868 0001C788 38 80 00 00 */ li r4, 0
/* 8002086C 0001C78C 48 00 00 44 */ b lbl_800208B0
lbl_80020870:
/* 80020870 0001C790 88 08 00 00 */ lbz r0, 0(r8)
/* 80020874 0001C794 7C 00 07 74 */ extsb r0, r0
/* 80020878 0001C798 2C 00 00 02 */ cmpwi r0, 2
/* 8002087C 0001C79C 41 82 00 0C */ beq lbl_80020888
/* 80020880 0001C7A0 2C 00 00 04 */ cmpwi r0, 4
/* 80020884 0001C7A4 40 82 00 20 */ bne lbl_800208A4
lbl_80020888:
/* 80020888 0001C7A8 7C A6 22 14 */ add r5, r6, r4
/* 8002088C 0001C7AC A0 05 00 18 */ lhz r0, 0x18(r5)
/* 80020890 0001C7B0 54 00 05 EE */ rlwinm r0, r0, 0, 0x17, 0x17
/* 80020894 0001C7B4 7C A0 00 D0 */ neg r5, r0
/* 80020898 0001C7B8 30 05 FF FF */ addic r0, r5, -1
/* 8002089C 0001C7BC 7C 00 29 10 */ subfe r0, r0, r5
/* 800208A0 0001C7C0 7D 29 03 78 */ or r9, r9, r0
lbl_800208A4:
/* 800208A4 0001C7C4 38 63 00 01 */ addi r3, r3, 1
/* 800208A8 0001C7C8 38 84 00 3C */ addi r4, r4, 0x3c
/* 800208AC 0001C7CC 39 08 00 01 */ addi r8, r8, 1
lbl_800208B0:
/* 800208B0 0001C7D0 80 07 00 08 */ lwz r0, 8(r7)
/* 800208B4 0001C7D4 7C 03 00 00 */ cmpw r3, r0
/* 800208B8 0001C7D8 41 80 FF B8 */ blt lbl_80020870
/* 800208BC 0001C7DC 2C 09 00 00 */ cmpwi r9, 0
/* 800208C0 0001C7E0 41 82 00 20 */ beq lbl_800208E0
/* 800208C4 0001C7E4 A8 7E 00 50 */ lha r3, 0x50(r30)
/* 800208C8 0001C7E8 2C 03 00 08 */ cmpwi r3, 8
/* 800208CC 0001C7EC 40 81 00 14 */ ble lbl_800208E0
/* 800208D0 0001C7F0 1C 1F 01 10 */ mulli r0, r31, 0x110
/* 800208D4 0001C7F4 7C 03 00 00 */ cmpw r3, r0
/* 800208D8 0001C7F8 40 80 00 08 */ bge lbl_800208E0
/* 800208DC 0001C7FC B0 1E 00 50 */ sth r0, 0x50(r30)
lbl_800208E0:
/* 800208E0 0001C800 A8 1E 00 50 */ lha r0, 0x50(r30)
/* 800208E4 0001C804 2C 00 08 80 */ cmpwi r0, 0x880
/* 800208E8 0001C808 40 81 00 0C */ ble lbl_800208F4
/* 800208EC 0001C80C 38 00 08 80 */ li r0, 0x880
/* 800208F0 0001C810 B0 1E 00 50 */ sth r0, 0x50(r30)
lbl_800208F4:
/* 800208F4 0001C814 80 01 00 3C */ lwz r0, 0x3c(r1)
/* 800208F8 0001C818 83 E1 00 34 */ lwz r31, 0x34(r1)
/* 800208FC 0001C81C 83 C1 00 30 */ lwz r30, 0x30(r1)
/* 80020900 0001C820 7C 08 03 A6 */ mtlr r0
/* 80020904 0001C824 83 A1 00 2C */ lwz r29, 0x2c(r1)
/* 80020908 0001C828 38 21 00 38 */ addi r1, r1, 0x38
/* 8002090C 0001C82C 4E 80 00 20 */ blr
.global func_80020910
func_80020910:
/* 80020910 0001C830 7C 08 02 A6 */ mflr r0
/* 80020914 0001C834 90 01 00 04 */ stw r0, 4(r1)
/* 80020918 0001C838 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 8002091C 0001C83C 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80020920 0001C840 3B E4 00 00 */ addi r31, r4, 0
/* 80020924 0001C844 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80020928 0001C848 3B C3 00 00 */ addi r30, r3, 0
/* 8002092C 0001C84C 4B FF 81 C5 */ bl camera_clear
/* 80020930 0001C850 38 00 00 00 */ li r0, 0
/* 80020934 0001C854 98 1E 00 26 */ stb r0, 0x26(r30)
/* 80020938 0001C858 38 00 0B 60 */ li r0, 0xb60
/* 8002093C 0001C85C 38 7E 00 00 */ addi r3, r30, 0
/* 80020940 0001C860 C0 02 84 18 */ lfs f0, lbl_802F2C18@sda21(r2)
/* 80020944 0001C864 7F E4 FB 78 */ mr r4, r31
/* 80020948 0001C868 D0 1E 00 28 */ stfs f0, 0x28(r30)
/* 8002094C 0001C86C D0 1E 00 2C */ stfs f0, 0x2c(r30)
/* 80020950 0001C870 B0 1E 00 30 */ sth r0, 0x30(r30)
/* 80020954 0001C874 48 00 00 25 */ bl camera_sub_73
/* 80020958 0001C878 38 00 00 49 */ li r0, 0x49
/* 8002095C 0001C87C 98 1E 00 1E */ stb r0, 0x1e(r30)
/* 80020960 0001C880 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80020964 0001C884 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80020968 0001C888 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 8002096C 0001C88C 7C 08 03 A6 */ mtlr r0
/* 80020970 0001C890 38 21 00 18 */ addi r1, r1, 0x18
/* 80020974 0001C894 4E 80 00 20 */ blr
.global camera_sub_73
camera_sub_73:
/* 80020978 0001C898 7C 08 02 A6 */ mflr r0
/* 8002097C 0001C89C 3C 80 80 17 */ lis r4, lbl_80177214@ha
/* 80020980 0001C8A0 90 01 00 04 */ stw r0, 4(r1)
/* 80020984 0001C8A4 38 84 72 14 */ addi r4, r4, lbl_80177214@l
/* 80020988 0001C8A8 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 8002098C 0001C8AC 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80020990 0001C8B0 3B E3 00 00 */ addi r31, r3, 0
/* 80020994 0001C8B4 A8 AD 9D 78 */ lha r5, currStageId@sda21(r13)
/* 80020998 0001C8B8 48 00 00 38 */ b lbl_800209D0
lbl_8002099C:
/* 8002099C 0001C8BC 80 04 00 00 */ lwz r0, 0(r4)
/* 800209A0 0001C8C0 7C 00 28 00 */ cmpw r0, r5
/* 800209A4 0001C8C4 40 82 00 28 */ bne lbl_800209CC
/* 800209A8 0001C8C8 80 64 00 04 */ lwz r3, 4(r4)
/* 800209AC 0001C8CC 80 04 00 08 */ lwz r0, 8(r4)
/* 800209B0 0001C8D0 90 61 00 10 */ stw r3, 0x10(r1)
/* 800209B4 0001C8D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800209B8 0001C8D8 80 64 00 0C */ lwz r3, 0xc(r4)
/* 800209BC 0001C8DC 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800209C0 0001C8E0 90 61 00 18 */ stw r3, 0x18(r1)
/* 800209C4 0001C8E4 90 01 00 1C */ stw r0, 0x1c(r1)
/* 800209C8 0001C8E8 48 00 00 54 */ b lbl_80020A1C
lbl_800209CC:
/* 800209CC 0001C8EC 38 84 00 14 */ addi r4, r4, 0x14
lbl_800209D0:
/* 800209D0 0001C8F0 80 04 00 00 */ lwz r0, 0(r4)
/* 800209D4 0001C8F4 2C 00 00 00 */ cmpwi r0, 0
/* 800209D8 0001C8F8 41 81 FF C4 */ bgt lbl_8002099C
/* 800209DC 0001C8FC 3C 60 80 21 */ lis r3, lbl_8020ADD4@ha
/* 800209E0 0001C900 C8 02 85 30 */ lfd f0, lbl_802F2D30@sda21(r2)
/* 800209E4 0001C904 38 83 AD D4 */ addi r4, r3, lbl_8020ADD4@l
/* 800209E8 0001C908 80 64 00 00 */ lwz r3, 0(r4)
/* 800209EC 0001C90C 80 04 00 04 */ lwz r0, 4(r4)
/* 800209F0 0001C910 90 61 00 10 */ stw r3, 0x10(r1)
/* 800209F4 0001C914 90 01 00 14 */ stw r0, 0x14(r1)
/* 800209F8 0001C918 80 64 00 08 */ lwz r3, 8(r4)
/* 800209FC 0001C91C 80 04 00 0C */ lwz r0, 0xc(r4)
/* 80020A00 0001C920 90 61 00 18 */ stw r3, 0x18(r1)
/* 80020A04 0001C924 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80020A08 0001C928 C0 21 00 1C */ lfs f1, 0x1c(r1)
/* 80020A0C 0001C92C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80020A10 0001C930 40 80 00 0C */ bge lbl_80020A1C
/* 80020A14 0001C934 C0 02 85 38 */ lfs f0, lbl_802F2D38@sda21(r2)
/* 80020A18 0001C938 D0 01 00 1C */ stfs f0, 0x1c(r1)
lbl_80020A1C:
/* 80020A1C 0001C93C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80020A20 0001C940 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 80020A24 0001C944 C0 41 00 14 */ lfs f2, 0x14(r1)
/* 80020A28 0001C948 D0 5F 00 10 */ stfs f2, 0x10(r31)
/* 80020A2C 0001C94C C0 61 00 18 */ lfs f3, 0x18(r1)
/* 80020A30 0001C950 D0 7F 00 14 */ stfs f3, 0x14(r31)
/* 80020A34 0001C954 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 80020A38 0001C958 D0 1F 00 00 */ stfs f0, 0(r31)
/* 80020A3C 0001C95C C8 22 85 48 */ lfd f1, lbl_802F2D48@sda21(r2)
/* 80020A40 0001C960 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80020A44 0001C964 FC 01 00 32 */ fmul f0, f1, f0
/* 80020A48 0001C968 FC 02 00 28 */ fsub f0, f2, f0
/* 80020A4C 0001C96C FC 00 00 18 */ frsp f0, f0
/* 80020A50 0001C970 D0 1F 00 04 */ stfs f0, 4(r31)
/* 80020A54 0001C974 D0 7F 00 08 */ stfs f3, 8(r31)
/* 80020A58 0001C978 4B FE 6B 0D */ bl mathutil_mtxA_from_identity
/* 80020A5C 0001C97C 38 60 40 00 */ li r3, 0x4000
/* 80020A60 0001C980 4B FE 75 29 */ bl mathutil_mtxA_rotate_x
/* 80020A64 0001C984 38 7F 00 1A */ addi r3, r31, 0x1a
/* 80020A68 0001C988 38 9F 00 18 */ addi r4, r31, 0x18
/* 80020A6C 0001C98C 38 BF 00 1C */ addi r5, r31, 0x1c
/* 80020A70 0001C990 4B FE 86 81 */ bl mathutil_mtxA_to_euler_yxz
/* 80020A74 0001C994 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80020A78 0001C998 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 80020A7C 0001C99C 38 21 00 28 */ addi r1, r1, 0x28
/* 80020A80 0001C9A0 7C 08 03 A6 */ mtlr r0
/* 80020A84 0001C9A4 4E 80 00 20 */ blr
.global func_80020A88
func_80020A88:
/* 80020A88 0001C9A8 7C 08 02 A6 */ mflr r0
/* 80020A8C 0001C9AC 90 01 00 04 */ stw r0, 4(r1)
/* 80020A90 0001C9B0 94 21 FF F8 */ stwu r1, -8(r1)
/* 80020A94 0001C9B4 81 8D 9A 58 */ lwz r12, minigameRelCameraCallback@sda21(r13)
/* 80020A98 0001C9B8 28 0C 00 00 */ cmplwi r12, 0
/* 80020A9C 0001C9BC 41 82 00 0C */ beq lbl_80020AA8
/* 80020AA0 0001C9C0 7D 88 03 A6 */ mtlr r12
/* 80020AA4 0001C9C4 4E 80 00 21 */ blrl
lbl_80020AA8:
/* 80020AA8 0001C9C8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80020AAC 0001C9CC 38 21 00 08 */ addi r1, r1, 8
/* 80020AB0 0001C9D0 7C 08 03 A6 */ mtlr r0
/* 80020AB4 0001C9D4 4E 80 00 20 */ blr
.global func_80020AB8
func_80020AB8:
/* 80020AB8 0001C9D8 7C 08 02 A6 */ mflr r0
/* 80020ABC 0001C9DC 3C A0 80 1F */ lis r5, lbl_801EFC18@ha
/* 80020AC0 0001C9E0 90 01 00 04 */ stw r0, 4(r1)
/* 80020AC4 0001C9E4 94 21 FF 80 */ stwu r1, -0x80(r1)
/* 80020AC8 0001C9E8 DB E1 00 78 */ stfd f31, 0x78(r1)
/* 80020ACC 0001C9EC FF E0 20 90 */ fmr f31, f4
/* 80020AD0 0001C9F0 DB C1 00 70 */ stfd f30, 0x70(r1)
/* 80020AD4 0001C9F4 FF C0 18 90 */ fmr f30, f3
/* 80020AD8 0001C9F8 DB A1 00 68 */ stfd f29, 0x68(r1)
/* 80020ADC 0001C9FC FF A0 10 90 */ fmr f29, f2
/* 80020AE0 0001CA00 DB 81 00 60 */ stfd f28, 0x60(r1)
/* 80020AE4 0001CA04 FF 80 08 90 */ fmr f28, f1
/* 80020AE8 0001CA08 DB 61 00 58 */ stfd f27, 0x58(r1)
/* 80020AEC 0001CA0C BF 21 00 3C */ stmw r25, 0x3c(r1)
/* 80020AF0 0001CA10 7C 7B 1B 78 */ mr r27, r3
/* 80020AF4 0001CA14 3B E5 FC 18 */ addi r31, r5, lbl_801EFC18@l
/* 80020AF8 0001CA18 7C 9C 23 78 */ mr r28, r4
/* 80020AFC 0001CA1C 80 63 00 00 */ lwz r3, 0(r3)
/* 80020B00 0001CA20 80 1B 00 04 */ lwz r0, 4(r27)
/* 80020B04 0001CA24 90 7F 00 00 */ stw r3, 0(r31)
/* 80020B08 0001CA28 90 1F 00 04 */ stw r0, 4(r31)
/* 80020B0C 0001CA2C 80 1B 00 08 */ lwz r0, 8(r27)
/* 80020B10 0001CA30 90 1F 00 08 */ stw r0, 8(r31)
/* 80020B14 0001CA34 C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020B18 0001CA38 FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 80020B1C 0001CA3C 40 82 00 3C */ bne lbl_80020B58
/* 80020B20 0001CA40 C0 02 87 60 */ lfs f0, lbl_802F2F60@sda21(r2)
/* 80020B24 0001CA44 EC 00 07 32 */ fmuls f0, f0, f28
/* 80020B28 0001CA48 FC 00 00 1E */ fctiwz f0, f0
/* 80020B2C 0001CA4C D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80020B30 0001CA50 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020B34 0001CA54 7C 04 07 34 */ extsh r4, r0
/* 80020B38 0001CA58 7C 04 00 D0 */ neg r0, r4
/* 80020B3C 0001CA5C 7C 03 0E 70 */ srawi r3, r0, 1
/* 80020B40 0001CA60 7C 63 01 94 */ addze r3, r3
/* 80020B44 0001CA64 7C 80 0E 70 */ srawi r0, r4, 1
/* 80020B48 0001CA68 7C 00 01 94 */ addze r0, r0
/* 80020B4C 0001CA6C 7C 7E 07 34 */ extsh r30, r3
/* 80020B50 0001CA70 7C 1D 07 34 */ extsh r29, r0
/* 80020B54 0001CA74 48 00 00 5C */ b lbl_80020BB0
lbl_80020B58:
/* 80020B58 0001CA78 C0 02 87 68 */ lfs f0, lbl_802F2F68@sda21(r2)
/* 80020B5C 0001CA7C C0 22 87 60 */ lfs f1, lbl_802F2F60@sda21(r2)
/* 80020B60 0001CA80 EC 00 07 32 */ fmuls f0, f0, f28
/* 80020B64 0001CA84 EC 01 00 32 */ fmuls f0, f1, f0
/* 80020B68 0001CA88 FC 00 00 1E */ fctiwz f0, f0
/* 80020B6C 0001CA8C D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80020B70 0001CA90 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020B74 0001CA94 7C 03 07 34 */ extsh r3, r0
/* 80020B78 0001CA98 4B FE 66 FD */ bl mathutil_tan
/* 80020B7C 0001CA9C C8 02 87 70 */ lfd f0, lbl_802F2F70@sda21(r2)
/* 80020B80 0001CAA0 FF 60 08 90 */ fmr f27, f1
/* 80020B84 0001CAA4 FC 00 F8 28 */ fsub f0, f0, f31
/* 80020B88 0001CAA8 FC 3B 00 32 */ fmul f1, f27, f0
/* 80020B8C 0001CAAC FC 20 08 18 */ frsp f1, f1
/* 80020B90 0001CAB0 4B FE 67 71 */ bl mathutil_atan
/* 80020B94 0001CAB4 C8 02 87 70 */ lfd f0, lbl_802F2F70@sda21(r2)
/* 80020B98 0001CAB8 7F C3 00 D0 */ neg r30, r3
/* 80020B9C 0001CABC FC 00 F8 2A */ fadd f0, f0, f31
/* 80020BA0 0001CAC0 FC 3B 00 32 */ fmul f1, f27, f0
/* 80020BA4 0001CAC4 FC 20 08 18 */ frsp f1, f1
/* 80020BA8 0001CAC8 4B FE 67 59 */ bl mathutil_atan
/* 80020BAC 0001CACC 7C 7D 1B 78 */ mr r29, r3
lbl_80020BB0:
/* 80020BB0 0001CAD0 C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020BB4 0001CAD4 FC 00 F0 00 */ fcmpu cr0, f0, f30
/* 80020BB8 0001CAD8 40 82 00 5C */ bne lbl_80020C14
/* 80020BBC 0001CADC C8 02 87 58 */ lfd f0, lbl_802F2F58@sda21(r2)
/* 80020BC0 0001CAE0 C8 22 87 50 */ lfd f1, lbl_802F2F50@sda21(r2)
/* 80020BC4 0001CAE4 FC 00 07 32 */ fmul f0, f0, f28
/* 80020BC8 0001CAE8 FC 01 00 32 */ fmul f0, f1, f0
/* 80020BCC 0001CAEC FC 00 00 1E */ fctiwz f0, f0
/* 80020BD0 0001CAF0 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80020BD4 0001CAF4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020BD8 0001CAF8 7C 03 07 34 */ extsh r3, r0
/* 80020BDC 0001CAFC 4B FE 66 99 */ bl mathutil_tan
/* 80020BE0 0001CB00 EC 3D 00 72 */ fmuls f1, f29, f1
/* 80020BE4 0001CB04 4B FE 67 1D */ bl mathutil_atan
/* 80020BE8 0001CB08 7C 60 07 34 */ extsh r0, r3
/* 80020BEC 0001CB0C 54 00 08 3C */ slwi r0, r0, 1
/* 80020BF0 0001CB10 7C 00 07 34 */ extsh r0, r0
/* 80020BF4 0001CB14 7C 03 0E 70 */ srawi r3, r0, 1
/* 80020BF8 0001CB18 7C 63 01 94 */ addze r3, r3
/* 80020BFC 0001CB1C 7C 00 00 D0 */ neg r0, r0
/* 80020C00 0001CB20 7C 00 0E 70 */ srawi r0, r0, 1
/* 80020C04 0001CB24 7C 00 01 94 */ addze r0, r0
/* 80020C08 0001CB28 7C 7A 07 34 */ extsh r26, r3
/* 80020C0C 0001CB2C 7C 19 07 34 */ extsh r25, r0
/* 80020C10 0001CB30 48 00 00 6C */ b lbl_80020C7C
lbl_80020C14:
/* 80020C14 0001CB34 FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 80020C18 0001CB38 40 82 00 30 */ bne lbl_80020C48
/* 80020C1C 0001CB3C C0 02 87 68 */ lfs f0, lbl_802F2F68@sda21(r2)
/* 80020C20 0001CB40 C0 22 87 60 */ lfs f1, lbl_802F2F60@sda21(r2)
/* 80020C24 0001CB44 EC 00 07 32 */ fmuls f0, f0, f28
/* 80020C28 0001CB48 EC 01 00 32 */ fmuls f0, f1, f0
/* 80020C2C 0001CB4C FC 00 00 1E */ fctiwz f0, f0
/* 80020C30 0001CB50 D8 01 00 30 */ stfd f0, 0x30(r1)
/* 80020C34 0001CB54 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020C38 0001CB58 7C 03 07 34 */ extsh r3, r0
/* 80020C3C 0001CB5C 4B FE 66 39 */ bl mathutil_tan
/* 80020C40 0001CB60 EF 9D 00 72 */ fmuls f28, f29, f1
/* 80020C44 0001CB64 48 00 00 08 */ b lbl_80020C4C
lbl_80020C48:
/* 80020C48 0001CB68 EF 9B 07 72 */ fmuls f28, f27, f29
lbl_80020C4C:
/* 80020C4C 0001CB6C C8 02 87 70 */ lfd f0, lbl_802F2F70@sda21(r2)
/* 80020C50 0001CB70 FC 00 F0 2A */ fadd f0, f0, f30
/* 80020C54 0001CB74 FC 3C 00 32 */ fmul f1, f28, f0
/* 80020C58 0001CB78 FC 20 08 18 */ frsp f1, f1
/* 80020C5C 0001CB7C 4B FE 66 A5 */ bl mathutil_atan
/* 80020C60 0001CB80 C8 02 87 70 */ lfd f0, lbl_802F2F70@sda21(r2)
/* 80020C64 0001CB84 7C 7A 1B 78 */ mr r26, r3
/* 80020C68 0001CB88 FC 00 F0 28 */ fsub f0, f0, f30
/* 80020C6C 0001CB8C FC 3C 00 32 */ fmul f1, f28, f0
/* 80020C70 0001CB90 FC 20 08 18 */ frsp f1, f1
/* 80020C74 0001CB94 4B FE 66 8D */ bl mathutil_atan
/* 80020C78 0001CB98 7F 23 00 D0 */ neg r25, r3
lbl_80020C7C:
/* 80020C7C 0001CB9C 7F 63 DB 78 */ mr r3, r27
/* 80020C80 0001CBA0 4B FE 69 3D */ bl mathutil_mtxA_from_translate
/* 80020C84 0001CBA4 A8 7C 00 02 */ lha r3, 2(r28)
/* 80020C88 0001CBA8 4B FE 73 75 */ bl mathutil_mtxA_rotate_y
/* 80020C8C 0001CBAC A8 7C 00 00 */ lha r3, 0(r28)
/* 80020C90 0001CBB0 4B FE 72 F9 */ bl mathutil_mtxA_rotate_x
/* 80020C94 0001CBB4 A8 7C 00 04 */ lha r3, 4(r28)
/* 80020C98 0001CBB8 4B FE 73 F1 */ bl mathutil_mtxA_rotate_z
/* 80020C9C 0001CBBC 7F 43 07 34 */ extsh r3, r26
/* 80020CA0 0001CBC0 38 63 C0 00 */ addi r3, r3, -16384
/* 80020CA4 0001CBC4 38 81 00 20 */ addi r4, r1, 0x20
/* 80020CA8 0001CBC8 4B FE 65 69 */ bl mathutil_sin_cos_v
/* 80020CAC 0001CBCC C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80020CB0 0001CBD0 38 7F 00 3C */ addi r3, r31, 0x3c
/* 80020CB4 0001CBD4 38 9F 00 0C */ addi r4, r31, 0xc
/* 80020CB8 0001CBD8 FC 00 00 50 */ fneg f0, f0
/* 80020CBC 0001CBDC D0 1F 00 3C */ stfs f0, 0x3c(r31)
/* 80020CC0 0001CBE0 C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020CC4 0001CBE4 D0 1F 00 40 */ stfs f0, 0x40(r31)
/* 80020CC8 0001CBE8 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 80020CCC 0001CBEC FC 00 00 50 */ fneg f0, f0
/* 80020CD0 0001CBF0 D0 1F 00 44 */ stfs f0, 0x44(r31)
/* 80020CD4 0001CBF4 4B FE 71 69 */ bl mathutil_mtxA_tf_vec
/* 80020CD8 0001CBF8 7F 23 07 34 */ extsh r3, r25
/* 80020CDC 0001CBFC 38 63 40 00 */ addi r3, r3, 0x4000
/* 80020CE0 0001CC00 38 81 00 20 */ addi r4, r1, 0x20
/* 80020CE4 0001CC04 4B FE 65 2D */ bl mathutil_sin_cos_v
/* 80020CE8 0001CC08 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80020CEC 0001CC0C 38 7F 00 48 */ addi r3, r31, 0x48
/* 80020CF0 0001CC10 38 9F 00 18 */ addi r4, r31, 0x18
/* 80020CF4 0001CC14 FC 00 00 50 */ fneg f0, f0
/* 80020CF8 0001CC18 D0 1F 00 48 */ stfs f0, 0x48(r31)
/* 80020CFC 0001CC1C C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020D00 0001CC20 D0 1F 00 4C */ stfs f0, 0x4c(r31)
/* 80020D04 0001CC24 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 80020D08 0001CC28 FC 00 00 50 */ fneg f0, f0
/* 80020D0C 0001CC2C D0 1F 00 50 */ stfs f0, 0x50(r31)
/* 80020D10 0001CC30 4B FE 71 2D */ bl mathutil_mtxA_tf_vec
/* 80020D14 0001CC34 7F C3 07 34 */ extsh r3, r30
/* 80020D18 0001CC38 38 63 40 00 */ addi r3, r3, 0x4000
/* 80020D1C 0001CC3C 38 81 00 20 */ addi r4, r1, 0x20
/* 80020D20 0001CC40 4B FE 64 F1 */ bl mathutil_sin_cos_v
/* 80020D24 0001CC44 C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020D28 0001CC48 38 7F 00 54 */ addi r3, r31, 0x54
/* 80020D2C 0001CC4C 38 9F 00 24 */ addi r4, r31, 0x24
/* 80020D30 0001CC50 D0 1F 00 54 */ stfs f0, 0x54(r31)
/* 80020D34 0001CC54 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80020D38 0001CC58 FC 00 00 50 */ fneg f0, f0
/* 80020D3C 0001CC5C D0 1F 00 58 */ stfs f0, 0x58(r31)
/* 80020D40 0001CC60 C0 01 00 24 */ lfs f0, 0x24(r1)
/* 80020D44 0001CC64 FC 00 00 50 */ fneg f0, f0
/* 80020D48 0001CC68 D0 1F 00 5C */ stfs f0, 0x5c(r31)
/* 80020D4C 0001CC6C 4B FE 70 F1 */ bl mathutil_mtxA_tf_vec
/* 80020D50 0001CC70 7F A3 07 34 */ extsh r3, r29
/* 80020D54 0001CC74 38 63 C0 00 */ addi r3, r3, -16384
/* 80020D58 0001CC78 38 81 00 20 */ addi r4, r1, 0x20
/* 80020D5C 0001CC7C 4B FE 64 B5 */ bl mathutil_sin_cos_v
/* 80020D60 0001CC80 C0 02 87 64 */ lfs f0, lbl_802F2F64@sda21(r2)
/* 80020D64 0001CC84 38 7F 00 60 */ addi r3, r31, 0x60
/* 80020D68 0001CC88 38 9F 00 30 */ addi r4, r31, 0x30
/* 80020D6C 0001CC8C D0 1F 00 60 */ stfs f0, 0x60(r31)
/* 80020D70 0001CC90 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80020D74 0001CC94 FC 00 00 50 */ fneg f0, f0
/* 80020D78 0001CC98 D0 1F 00 64 */ stfs f0, 0x64(r31)
/* 80020D7C 0001CC9C C0 01 00 24 */ lfs f0, 0x24(r1)
/* 80020D80 0001CCA0 FC 00 00 50 */ fneg f0, f0
/* 80020D84 0001CCA4 D0 1F 00 68 */ stfs f0, 0x68(r31)
/* 80020D88 0001CCA8 4B FE 70 B5 */ bl mathutil_mtxA_tf_vec
/* 80020D8C 0001CCAC BB 21 00 3C */ lmw r25, 0x3c(r1)
/* 80020D90 0001CCB0 80 01 00 84 */ lwz r0, 0x84(r1)
/* 80020D94 0001CCB4 CB E1 00 78 */ lfd f31, 0x78(r1)
/* 80020D98 0001CCB8 CB C1 00 70 */ lfd f30, 0x70(r1)
/* 80020D9C 0001CCBC 7C 08 03 A6 */ mtlr r0
/* 80020DA0 0001CCC0 CB A1 00 68 */ lfd f29, 0x68(r1)
/* 80020DA4 0001CCC4 CB 81 00 60 */ lfd f28, 0x60(r1)
/* 80020DA8 0001CCC8 CB 61 00 58 */ lfd f27, 0x58(r1)
/* 80020DAC 0001CCCC 38 21 00 80 */ addi r1, r1, 0x80
/* 80020DB0 0001CCD0 4E 80 00 20 */ blr
.global func_80020DB4
func_80020DB4:
/* 80020DB4 0001CCD4 3C 80 80 1F */ lis r4, lbl_801EFC18@ha
/* 80020DB8 0001CCD8 C4 64 FC 18 */ lfsu f3, lbl_801EFC18@l(r4)
/* 80020DBC 0001CCDC C0 83 00 00 */ lfs f4, 0(r3)
/* 80020DC0 0001CCE0 FC E0 08 50 */ fneg f7, f1
/* 80020DC4 0001CCE4 C0 43 00 04 */ lfs f2, 4(r3)
/* 80020DC8 0001CCE8 38 A4 00 0C */ addi r5, r4, 0xc
/* 80020DCC 0001CCEC C0 04 00 04 */ lfs f0, 4(r4)
/* 80020DD0 0001CCF0 EC A4 18 28 */ fsubs f5, f4, f3
/* 80020DD4 0001CCF4 EC C2 00 28 */ fsubs f6, f2, f0
/* 80020DD8 0001CCF8 C0 24 00 0C */ lfs f1, 0xc(r4)
/* 80020DDC 0001CCFC C0 04 00 10 */ lfs f0, 0x10(r4)
/* 80020DE0 0001CD00 C0 83 00 08 */ lfs f4, 8(r3)
/* 80020DE4 0001CD04 C0 64 00 08 */ lfs f3, 8(r4)
/* 80020DE8 0001CD08 EC 25 00 72 */ fmuls f1, f5, f1
/* 80020DEC 0001CD0C C0 44 00 14 */ lfs f2, 0x14(r4)
/* 80020DF0 0001CD10 EC 06 00 32 */ fmuls f0, f6, f0
/* 80020DF4 0001CD14 EC 64 18 28 */ fsubs f3, f4, f3
/* 80020DF8 0001CD18 EC 01 00 2A */ fadds f0, f1, f0
/* 80020DFC 0001CD1C EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020E00 0001CD20 EC 02 00 2A */ fadds f0, f2, f0
/* 80020E04 0001CD24 FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80020E08 0001CD28 40 80 00 0C */ bge lbl_80020E14
/* 80020E0C 0001CD2C 38 60 00 00 */ li r3, 0
/* 80020E10 0001CD30 4E 80 00 20 */ blr
lbl_80020E14:
/* 80020E14 0001CD34 C0 25 00 0C */ lfs f1, 0xc(r5)
/* 80020E18 0001CD38 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 80020E1C 0001CD3C EC 25 00 72 */ fmuls f1, f5, f1
/* 80020E20 0001CD40 C0 45 00 14 */ lfs f2, 0x14(r5)
/* 80020E24 0001CD44 EC 06 00 32 */ fmuls f0, f6, f0
/* 80020E28 0001CD48 38 A5 00 0C */ addi r5, r5, 0xc
/* 80020E2C 0001CD4C EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020E30 0001CD50 EC 01 00 2A */ fadds f0, f1, f0
/* 80020E34 0001CD54 EC 02 00 2A */ fadds f0, f2, f0
/* 80020E38 0001CD58 FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80020E3C 0001CD5C 40 80 00 0C */ bge lbl_80020E48
/* 80020E40 0001CD60 38 60 00 00 */ li r3, 0
/* 80020E44 0001CD64 4E 80 00 20 */ blr
lbl_80020E48:
/* 80020E48 0001CD68 C0 25 00 0C */ lfs f1, 0xc(r5)
/* 80020E4C 0001CD6C C0 05 00 10 */ lfs f0, 0x10(r5)
/* 80020E50 0001CD70 EC 25 00 72 */ fmuls f1, f5, f1
/* 80020E54 0001CD74 C0 45 00 14 */ lfs f2, 0x14(r5)
/* 80020E58 0001CD78 EC 06 00 32 */ fmuls f0, f6, f0
/* 80020E5C 0001CD7C 38 A5 00 0C */ addi r5, r5, 0xc
/* 80020E60 0001CD80 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020E64 0001CD84 EC 01 00 2A */ fadds f0, f1, f0
/* 80020E68 0001CD88 EC 02 00 2A */ fadds f0, f2, f0
/* 80020E6C 0001CD8C FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80020E70 0001CD90 40 80 00 0C */ bge lbl_80020E7C
/* 80020E74 0001CD94 38 60 00 00 */ li r3, 0
/* 80020E78 0001CD98 4E 80 00 20 */ blr
lbl_80020E7C:
/* 80020E7C 0001CD9C C0 25 00 0C */ lfs f1, 0xc(r5)
/* 80020E80 0001CDA0 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 80020E84 0001CDA4 EC 25 00 72 */ fmuls f1, f5, f1
/* 80020E88 0001CDA8 C0 45 00 14 */ lfs f2, 0x14(r5)
/* 80020E8C 0001CDAC EC 06 00 32 */ fmuls f0, f6, f0
/* 80020E90 0001CDB0 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020E94 0001CDB4 EC 01 00 2A */ fadds f0, f1, f0
/* 80020E98 0001CDB8 EC 02 00 2A */ fadds f0, f2, f0
/* 80020E9C 0001CDBC FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80020EA0 0001CDC0 40 80 00 0C */ bge lbl_80020EAC
/* 80020EA4 0001CDC4 38 60 00 00 */ li r3, 0
/* 80020EA8 0001CDC8 4E 80 00 20 */ blr
lbl_80020EAC:
/* 80020EAC 0001CDCC 38 60 00 01 */ li r3, 1
/* 80020EB0 0001CDD0 4E 80 00 20 */ blr
.global func_80020EB4
func_80020EB4:
/* 80020EB4 0001CDD4 7C 08 02 A6 */ mflr r0
/* 80020EB8 0001CDD8 90 01 00 04 */ stw r0, 4(r1)
/* 80020EBC 0001CDDC 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80020EC0 0001CDE0 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80020EC4 0001CDE4 FF E0 08 90 */ fmr f31, f1
/* 80020EC8 0001CDE8 38 81 00 10 */ addi r4, r1, 0x10
/* 80020ECC 0001CDEC 4B FE 6F 61 */ bl mathutil_mtxA_tf_point
/* 80020ED0 0001CDF0 C0 61 00 18 */ lfs f3, 0x18(r1)
/* 80020ED4 0001CDF4 C0 81 00 10 */ lfs f4, 0x10(r1)
/* 80020ED8 0001CDF8 FC 03 F8 40 */ fcmpo cr0, f3, f31
/* 80020EDC 0001CDFC C0 A1 00 14 */ lfs f5, 0x14(r1)
/* 80020EE0 0001CE00 40 81 00 0C */ ble lbl_80020EEC
/* 80020EE4 0001CE04 38 60 00 00 */ li r3, 0
/* 80020EE8 0001CE08 48 00 00 D4 */ b lbl_80020FBC
lbl_80020EEC:
/* 80020EEC 0001CE0C 3C 60 80 1F */ lis r3, lbl_801EFC54@ha
/* 80020EF0 0001CE10 C4 23 FC 54 */ lfsu f1, lbl_801EFC54@l(r3)
/* 80020EF4 0001CE14 FF E0 F8 50 */ fneg f31, f31
/* 80020EF8 0001CE18 C0 03 00 04 */ lfs f0, 4(r3)
/* 80020EFC 0001CE1C EC 24 00 72 */ fmuls f1, f4, f1
/* 80020F00 0001CE20 C0 43 00 08 */ lfs f2, 8(r3)
/* 80020F04 0001CE24 EC 05 00 32 */ fmuls f0, f5, f0
/* 80020F08 0001CE28 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020F0C 0001CE2C EC 01 00 2A */ fadds f0, f1, f0
/* 80020F10 0001CE30 EC 02 00 2A */ fadds f0, f2, f0
/* 80020F14 0001CE34 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020F18 0001CE38 40 80 00 0C */ bge lbl_80020F24
/* 80020F1C 0001CE3C 38 60 00 00 */ li r3, 0
/* 80020F20 0001CE40 48 00 00 9C */ b lbl_80020FBC
lbl_80020F24:
/* 80020F24 0001CE44 C4 23 00 0C */ lfsu f1, 0xc(r3)
/* 80020F28 0001CE48 C0 03 00 04 */ lfs f0, 4(r3)
/* 80020F2C 0001CE4C EC 24 00 72 */ fmuls f1, f4, f1
/* 80020F30 0001CE50 C0 43 00 08 */ lfs f2, 8(r3)
/* 80020F34 0001CE54 EC 05 00 32 */ fmuls f0, f5, f0
/* 80020F38 0001CE58 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020F3C 0001CE5C EC 01 00 2A */ fadds f0, f1, f0
/* 80020F40 0001CE60 EC 02 00 2A */ fadds f0, f2, f0
/* 80020F44 0001CE64 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020F48 0001CE68 40 80 00 0C */ bge lbl_80020F54
/* 80020F4C 0001CE6C 38 60 00 00 */ li r3, 0
/* 80020F50 0001CE70 48 00 00 6C */ b lbl_80020FBC
lbl_80020F54:
/* 80020F54 0001CE74 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80020F58 0001CE78 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80020F5C 0001CE7C EC 24 00 72 */ fmuls f1, f4, f1
/* 80020F60 0001CE80 C0 43 00 14 */ lfs f2, 0x14(r3)
/* 80020F64 0001CE84 EC 05 00 32 */ fmuls f0, f5, f0
/* 80020F68 0001CE88 38 63 00 0C */ addi r3, r3, 0xc
/* 80020F6C 0001CE8C EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020F70 0001CE90 EC 01 00 2A */ fadds f0, f1, f0
/* 80020F74 0001CE94 EC 02 00 2A */ fadds f0, f2, f0
/* 80020F78 0001CE98 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020F7C 0001CE9C 40 80 00 0C */ bge lbl_80020F88
/* 80020F80 0001CEA0 38 60 00 00 */ li r3, 0
/* 80020F84 0001CEA4 48 00 00 38 */ b lbl_80020FBC
lbl_80020F88:
/* 80020F88 0001CEA8 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80020F8C 0001CEAC C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80020F90 0001CEB0 EC 24 00 72 */ fmuls f1, f4, f1
/* 80020F94 0001CEB4 C0 43 00 14 */ lfs f2, 0x14(r3)
/* 80020F98 0001CEB8 EC 05 00 32 */ fmuls f0, f5, f0
/* 80020F9C 0001CEBC EC 43 00 B2 */ fmuls f2, f3, f2
/* 80020FA0 0001CEC0 EC 01 00 2A */ fadds f0, f1, f0
/* 80020FA4 0001CEC4 EC 02 00 2A */ fadds f0, f2, f0
/* 80020FA8 0001CEC8 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 80020FAC 0001CECC 40 80 00 0C */ bge lbl_80020FB8
/* 80020FB0 0001CED0 38 60 00 00 */ li r3, 0
/* 80020FB4 0001CED4 48 00 00 08 */ b lbl_80020FBC
lbl_80020FB8:
/* 80020FB8 0001CED8 38 60 00 01 */ li r3, 1
lbl_80020FBC:
/* 80020FBC 0001CEDC 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80020FC0 0001CEE0 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80020FC4 0001CEE4 38 21 00 28 */ addi r1, r1, 0x28
/* 80020FC8 0001CEE8 7C 08 03 A6 */ mtlr r0
/* 80020FCC 0001CEEC 4E 80 00 20 */ blr
.global func_80020FD0
func_80020FD0:
/* 80020FD0 0001CEF0 7C 08 02 A6 */ mflr r0
/* 80020FD4 0001CEF4 90 01 00 04 */ stw r0, 4(r1)
/* 80020FD8 0001CEF8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80020FDC 0001CEFC DB E1 00 28 */ stfd f31, 0x28(r1)
/* 80020FE0 0001CF00 FF E0 10 90 */ fmr f31, f2
/* 80020FE4 0001CF04 38 81 00 14 */ addi r4, r1, 0x14
/* 80020FE8 0001CF08 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 80020FEC 0001CF0C FF C0 08 90 */ fmr f30, f1
/* 80020FF0 0001CF10 4B FE 6E 3D */ bl mathutil_mtxA_tf_point
/* 80020FF4 0001CF14 EF DE 07 F2 */ fmuls f30, f30, f31
/* 80020FF8 0001CF18 C0 61 00 1C */ lfs f3, 0x1c(r1)
/* 80020FFC 0001CF1C C0 81 00 14 */ lfs f4, 0x14(r1)
/* 80021000 0001CF20 C0 A1 00 18 */ lfs f5, 0x18(r1)
/* 80021004 0001CF24 FC 03 F0 40 */ fcmpo cr0, f3, f30
/* 80021008 0001CF28 40 81 00 0C */ ble lbl_80021014
/* 8002100C 0001CF2C 38 60 00 00 */ li r3, 0
/* 80021010 0001CF30 48 00 00 D4 */ b lbl_800210E4
lbl_80021014:
/* 80021014 0001CF34 3C 60 80 1F */ lis r3, lbl_801EFC54@ha
/* 80021018 0001CF38 C4 23 FC 54 */ lfsu f1, lbl_801EFC54@l(r3)
/* 8002101C 0001CF3C FF C0 F0 50 */ fneg f30, f30
/* 80021020 0001CF40 C0 03 00 04 */ lfs f0, 4(r3)
/* 80021024 0001CF44 EC 24 00 72 */ fmuls f1, f4, f1
/* 80021028 0001CF48 C0 43 00 08 */ lfs f2, 8(r3)
/* 8002102C 0001CF4C EC 05 00 32 */ fmuls f0, f5, f0
/* 80021030 0001CF50 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80021034 0001CF54 EC 01 00 2A */ fadds f0, f1, f0
/* 80021038 0001CF58 EC 02 00 2A */ fadds f0, f2, f0
/* 8002103C 0001CF5C FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 80021040 0001CF60 40 80 00 0C */ bge lbl_8002104C
/* 80021044 0001CF64 38 60 00 00 */ li r3, 0
/* 80021048 0001CF68 48 00 00 9C */ b lbl_800210E4
lbl_8002104C:
/* 8002104C 0001CF6C C4 23 00 0C */ lfsu f1, 0xc(r3)
/* 80021050 0001CF70 C0 03 00 04 */ lfs f0, 4(r3)
/* 80021054 0001CF74 EC 24 00 72 */ fmuls f1, f4, f1
/* 80021058 0001CF78 C0 43 00 08 */ lfs f2, 8(r3)
/* 8002105C 0001CF7C EC 05 00 32 */ fmuls f0, f5, f0
/* 80021060 0001CF80 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80021064 0001CF84 EC 01 00 2A */ fadds f0, f1, f0
/* 80021068 0001CF88 EC 02 00 2A */ fadds f0, f2, f0
/* 8002106C 0001CF8C FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 80021070 0001CF90 40 80 00 0C */ bge lbl_8002107C
/* 80021074 0001CF94 38 60 00 00 */ li r3, 0
/* 80021078 0001CF98 48 00 00 6C */ b lbl_800210E4
lbl_8002107C:
/* 8002107C 0001CF9C C0 23 00 0C */ lfs f1, 0xc(r3)
/* 80021080 0001CFA0 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80021084 0001CFA4 EC 24 00 72 */ fmuls f1, f4, f1
/* 80021088 0001CFA8 C0 43 00 14 */ lfs f2, 0x14(r3)
/* 8002108C 0001CFAC EC 05 00 32 */ fmuls f0, f5, f0
/* 80021090 0001CFB0 38 63 00 0C */ addi r3, r3, 0xc
/* 80021094 0001CFB4 EC 43 00 B2 */ fmuls f2, f3, f2
/* 80021098 0001CFB8 EC 01 00 2A */ fadds f0, f1, f0
/* 8002109C 0001CFBC EC 02 00 2A */ fadds f0, f2, f0
/* 800210A0 0001CFC0 FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 800210A4 0001CFC4 40 80 00 0C */ bge lbl_800210B0
/* 800210A8 0001CFC8 38 60 00 00 */ li r3, 0
/* 800210AC 0001CFCC 48 00 00 38 */ b lbl_800210E4
lbl_800210B0:
/* 800210B0 0001CFD0 C0 23 00 0C */ lfs f1, 0xc(r3)
/* 800210B4 0001CFD4 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 800210B8 0001CFD8 EC 24 00 72 */ fmuls f1, f4, f1
/* 800210BC 0001CFDC C0 43 00 14 */ lfs f2, 0x14(r3)
/* 800210C0 0001CFE0 EC 05 00 32 */ fmuls f0, f5, f0
/* 800210C4 0001CFE4 EC 43 00 B2 */ fmuls f2, f3, f2
/* 800210C8 0001CFE8 EC 01 00 2A */ fadds f0, f1, f0
/* 800210CC 0001CFEC EC 02 00 2A */ fadds f0, f2, f0
/* 800210D0 0001CFF0 FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 800210D4 0001CFF4 40 80 00 0C */ bge lbl_800210E0
/* 800210D8 0001CFF8 38 60 00 00 */ li r3, 0
/* 800210DC 0001CFFC 48 00 00 08 */ b lbl_800210E4
lbl_800210E0:
/* 800210E0 0001D000 38 60 00 01 */ li r3, 1
lbl_800210E4:
/* 800210E4 0001D004 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800210E8 0001D008 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 800210EC 0001D00C CB C1 00 20 */ lfd f30, 0x20(r1)
/* 800210F0 0001D010 7C 08 03 A6 */ mtlr r0
/* 800210F4 0001D014 38 21 00 30 */ addi r1, r1, 0x30
/* 800210F8 0001D018 4E 80 00 20 */ blr
.global func_800210FC
func_800210FC:
/* 800210FC 0001D01C 7C 08 02 A6 */ mflr r0
/* 80021100 0001D020 3C 80 80 17 */ lis r4, lbl_8017748C@ha
/* 80021104 0001D024 90 01 00 04 */ stw r0, 4(r1)
/* 80021108 0001D028 38 04 74 8C */ addi r0, r4, lbl_8017748C@l
/* 8002110C 0001D02C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021110 0001D030 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021114 0001D034 7C 1F 03 78 */ mr r31, r0
/* 80021118 0001D038 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8002111C 0001D03C 3B C3 00 00 */ addi r30, r3, 0
/* 80021120 0001D040 48 00 00 1C */ b lbl_8002113C
lbl_80021124:
/* 80021124 0001D044 88 1F 00 08 */ lbz r0, 8(r31)
/* 80021128 0001D048 7C 00 F0 00 */ cmpw r0, r30
/* 8002112C 0001D04C 40 82 00 0C */ bne lbl_80021138
/* 80021130 0001D050 7F E3 FB 78 */ mr r3, r31
/* 80021134 0001D054 48 00 10 0D */ bl func_80022140
lbl_80021138:
/* 80021138 0001D058 3B FF 00 4C */ addi r31, r31, 0x4c
lbl_8002113C:
/* 8002113C 0001D05C 88 1F 00 00 */ lbz r0, 0(r31)
/* 80021140 0001D060 7C 00 07 74 */ extsb r0, r0
/* 80021144 0001D064 2C 00 FF FF */ cmpwi r0, -1
/* 80021148 0001D068 40 82 FF DC */ bne lbl_80021124
/* 8002114C 0001D06C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80021150 0001D070 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80021154 0001D074 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80021158 0001D078 7C 08 03 A6 */ mtlr r0
/* 8002115C 0001D07C 38 21 00 20 */ addi r1, r1, 0x20
/* 80021160 0001D080 4E 80 00 20 */ blr
.global func_80021164
func_80021164:
/* 80021164 0001D084 80 ED 9A 68 */ lwz r7, lbl_802F1C48@sda21(r13)
/* 80021168 0001D088 3C C0 80 1F */ lis r6, lbl_801EFC94@ha
/* 8002116C 0001D08C 38 06 FC 94 */ addi r0, r6, lbl_801EFC94@l
/* 80021170 0001D090 2C 07 00 00 */ cmpwi r7, 0
/* 80021174 0001D094 7C E9 03 A6 */ mtctr r7
/* 80021178 0001D098 7C 07 03 78 */ mr r7, r0
/* 8002117C 0001D09C 38 C0 00 00 */ li r6, 0
/* 80021180 0001D0A0 40 81 00 34 */ ble lbl_800211B4
lbl_80021184:
/* 80021184 0001D0A4 88 07 00 01 */ lbz r0, 1(r7)
/* 80021188 0001D0A8 7C 00 07 74 */ extsb r0, r0
/* 8002118C 0001D0AC 7C 00 20 00 */ cmpw r0, r4
/* 80021190 0001D0B0 40 82 00 18 */ bne lbl_800211A8
/* 80021194 0001D0B4 A8 07 00 02 */ lha r0, 2(r7)
/* 80021198 0001D0B8 7C 00 28 00 */ cmpw r0, r5
/* 8002119C 0001D0BC 40 82 00 0C */ bne lbl_800211A8
/* 800211A0 0001D0C0 7C C3 07 74 */ extsb r3, r6
/* 800211A4 0001D0C4 4E 80 00 20 */ blr
lbl_800211A8:
/* 800211A8 0001D0C8 38 C6 00 01 */ addi r6, r6, 1
/* 800211AC 0001D0CC 38 E7 00 4C */ addi r7, r7, 0x4c
/* 800211B0 0001D0D0 42 00 FF D4 */ bdnz lbl_80021184
lbl_800211B4:
/* 800211B4 0001D0D4 2C 03 00 01 */ cmpwi r3, 1
/* 800211B8 0001D0D8 40 82 00 0C */ bne lbl_800211C4
/* 800211BC 0001D0DC 38 60 FF FF */ li r3, -1
/* 800211C0 0001D0E0 4E 80 00 20 */ blr
lbl_800211C4:
/* 800211C4 0001D0E4 38 00 00 04 */ li r0, 4
/* 800211C8 0001D0E8 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 800211CC 0001D0EC 7C 09 03 A6 */ mtctr r0
/* 800211D0 0001D0F0 38 63 FC 94 */ addi r3, r3, lbl_801EFC94@l
/* 800211D4 0001D0F4 38 80 00 00 */ li r4, 0
lbl_800211D8:
/* 800211D8 0001D0F8 88 03 00 00 */ lbz r0, 0(r3)
/* 800211DC 0001D0FC 7C 00 07 75 */ extsb. r0, r0
/* 800211E0 0001D100 40 82 00 0C */ bne lbl_800211EC
/* 800211E4 0001D104 7C 83 07 74 */ extsb r3, r4
/* 800211E8 0001D108 4E 80 00 20 */ blr
lbl_800211EC:
/* 800211EC 0001D10C 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 800211F0 0001D110 38 84 00 01 */ addi r4, r4, 1
/* 800211F4 0001D114 7C 00 07 75 */ extsb. r0, r0
/* 800211F8 0001D118 40 82 00 0C */ bne lbl_80021204
/* 800211FC 0001D11C 7C 83 07 74 */ extsb r3, r4
/* 80021200 0001D120 4E 80 00 20 */ blr
lbl_80021204:
/* 80021204 0001D124 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021208 0001D128 38 84 00 01 */ addi r4, r4, 1
/* 8002120C 0001D12C 7C 00 07 75 */ extsb. r0, r0
/* 80021210 0001D130 40 82 00 0C */ bne lbl_8002121C
/* 80021214 0001D134 7C 83 07 74 */ extsb r3, r4
/* 80021218 0001D138 4E 80 00 20 */ blr
lbl_8002121C:
/* 8002121C 0001D13C 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021220 0001D140 38 84 00 01 */ addi r4, r4, 1
/* 80021224 0001D144 7C 00 07 75 */ extsb. r0, r0
/* 80021228 0001D148 40 82 00 0C */ bne lbl_80021234
/* 8002122C 0001D14C 7C 83 07 74 */ extsb r3, r4
/* 80021230 0001D150 4E 80 00 20 */ blr
lbl_80021234:
/* 80021234 0001D154 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021238 0001D158 38 84 00 01 */ addi r4, r4, 1
/* 8002123C 0001D15C 7C 00 07 75 */ extsb. r0, r0
/* 80021240 0001D160 40 82 00 0C */ bne lbl_8002124C
/* 80021244 0001D164 7C 83 07 74 */ extsb r3, r4
/* 80021248 0001D168 4E 80 00 20 */ blr
lbl_8002124C:
/* 8002124C 0001D16C 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021250 0001D170 38 84 00 01 */ addi r4, r4, 1
/* 80021254 0001D174 7C 00 07 75 */ extsb. r0, r0
/* 80021258 0001D178 40 82 00 0C */ bne lbl_80021264
/* 8002125C 0001D17C 7C 83 07 74 */ extsb r3, r4
/* 80021260 0001D180 4E 80 00 20 */ blr
lbl_80021264:
/* 80021264 0001D184 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021268 0001D188 38 84 00 01 */ addi r4, r4, 1
/* 8002126C 0001D18C 7C 00 07 75 */ extsb. r0, r0
/* 80021270 0001D190 40 82 00 0C */ bne lbl_8002127C
/* 80021274 0001D194 7C 83 07 74 */ extsb r3, r4
/* 80021278 0001D198 4E 80 00 20 */ blr
lbl_8002127C:
/* 8002127C 0001D19C 8C 03 00 4C */ lbzu r0, 0x4c(r3)
/* 80021280 0001D1A0 38 84 00 01 */ addi r4, r4, 1
/* 80021284 0001D1A4 7C 00 07 75 */ extsb. r0, r0
/* 80021288 0001D1A8 40 82 00 0C */ bne lbl_80021294
/* 8002128C 0001D1AC 7C 83 07 74 */ extsb r3, r4
/* 80021290 0001D1B0 4E 80 00 20 */ blr
lbl_80021294:
/* 80021294 0001D1B4 38 84 00 01 */ addi r4, r4, 1
/* 80021298 0001D1B8 38 63 00 4C */ addi r3, r3, 0x4c
/* 8002129C 0001D1BC 42 00 FF 3C */ bdnz lbl_800211D8
/* 800212A0 0001D1C0 38 60 FF FF */ li r3, -1
/* 800212A4 0001D1C4 4E 80 00 20 */ blr
.global func_800212A8
func_800212A8:
/* 800212A8 0001D1C8 7C 08 02 A6 */ mflr r0
/* 800212AC 0001D1CC 90 01 00 04 */ stw r0, 4(r1)
/* 800212B0 0001D1D0 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800212B4 0001D1D4 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800212B8 0001D1D8 7C 7F 1B 78 */ mr r31, r3
/* 800212BC 0001D1DC 88 03 00 04 */ lbz r0, 4(r3)
/* 800212C0 0001D1E0 7C 00 07 74 */ extsb r0, r0
/* 800212C4 0001D1E4 28 00 00 08 */ cmplwi r0, 8
/* 800212C8 0001D1E8 41 81 00 BC */ bgt lbl_80021384
/* 800212CC 0001D1EC 3C 60 80 18 */ lis r3, lbl_80180D08@ha
/* 800212D0 0001D1F0 38 63 0D 08 */ addi r3, r3, lbl_80180D08@l
/* 800212D4 0001D1F4 54 00 10 3A */ slwi r0, r0, 2
/* 800212D8 0001D1F8 7C 03 00 2E */ lwzx r0, r3, r0
/* 800212DC 0001D1FC 7C 09 03 A6 */ mtctr r0
/* 800212E0 0001D200 4E 80 04 20 */ bctr
.global lbl_800212E4
lbl_800212E4:
/* 800212E4 0001D204 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 800212E8 0001D208 D0 1F 00 30 */ stfs f0, 0x30(r31)
/* 800212EC 0001D20C D0 1F 00 2C */ stfs f0, 0x2c(r31)
/* 800212F0 0001D210 C0 02 87 7C */ lfs f0, lbl_802F2F7C@sda21(r2)
/* 800212F4 0001D214 D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 800212F8 0001D218 4B FE 62 6D */ bl mathutil_mtxA_from_identity
/* 800212FC 0001D21C A8 7F 00 26 */ lha r3, 0x26(r31)
/* 80021300 0001D220 4B FE 6C FD */ bl mathutil_mtxA_rotate_y
/* 80021304 0001D224 A8 7F 00 24 */ lha r3, 0x24(r31)
/* 80021308 0001D228 4B FE 6C 81 */ bl mathutil_mtxA_rotate_x
/* 8002130C 0001D22C 38 7F 00 2C */ addi r3, r31, 0x2c
/* 80021310 0001D230 38 83 00 00 */ addi r4, r3, 0
/* 80021314 0001D234 4B FE 6B 29 */ bl mathutil_mtxA_tf_vec
/* 80021318 0001D238 C0 1F 00 2C */ lfs f0, 0x2c(r31)
/* 8002131C 0001D23C C0 22 87 80 */ lfs f1, lbl_802F2F80@sda21(r2)
/* 80021320 0001D240 EC 00 00 72 */ fmuls f0, f0, f1
/* 80021324 0001D244 D0 1F 00 2C */ stfs f0, 0x2c(r31)
/* 80021328 0001D248 C0 1F 00 30 */ lfs f0, 0x30(r31)
/* 8002132C 0001D24C EC 00 00 72 */ fmuls f0, f0, f1
/* 80021330 0001D250 D0 1F 00 30 */ stfs f0, 0x30(r31)
/* 80021334 0001D254 C0 1F 00 34 */ lfs f0, 0x34(r31)
/* 80021338 0001D258 EC 00 00 72 */ fmuls f0, f0, f1
/* 8002133C 0001D25C D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 80021340 0001D260 48 00 00 44 */ b lbl_80021384
.global lbl_80021344
lbl_80021344:
/* 80021344 0001D264 88 1F 00 01 */ lbz r0, 1(r31)
/* 80021348 0001D268 2C 00 00 05 */ cmpwi r0, 5
/* 8002134C 0001D26C 41 82 00 38 */ beq lbl_80021384
/* 80021350 0001D270 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 80021354 0001D274 D0 1F 00 30 */ stfs f0, 0x30(r31)
/* 80021358 0001D278 D0 1F 00 2C */ stfs f0, 0x2c(r31)
/* 8002135C 0001D27C C0 02 87 7C */ lfs f0, lbl_802F2F7C@sda21(r2)
/* 80021360 0001D280 D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 80021364 0001D284 4B FE 62 01 */ bl mathutil_mtxA_from_identity
/* 80021368 0001D288 A8 7F 00 26 */ lha r3, 0x26(r31)
/* 8002136C 0001D28C 4B FE 6C 91 */ bl mathutil_mtxA_rotate_y
/* 80021370 0001D290 A8 7F 00 24 */ lha r3, 0x24(r31)
/* 80021374 0001D294 4B FE 6C 15 */ bl mathutil_mtxA_rotate_x
/* 80021378 0001D298 38 7F 00 2C */ addi r3, r31, 0x2c
/* 8002137C 0001D29C 38 83 00 00 */ addi r4, r3, 0
/* 80021380 0001D2A0 4B FE 6A BD */ bl mathutil_mtxA_tf_vec
lbl_80021384:
.global lbl_80021384
/* 80021384 0001D2A4 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80021388 0001D2A8 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8002138C 0001D2AC 38 21 00 18 */ addi r1, r1, 0x18
/* 80021390 0001D2B0 7C 08 03 A6 */ mtlr r0
/* 80021394 0001D2B4 4E 80 00 20 */ blr
.global func_80021398
func_80021398:
/* 80021398 0001D2B8 7C 08 02 A6 */ mflr r0
/* 8002139C 0001D2BC 90 01 00 04 */ stw r0, 4(r1)
/* 800213A0 0001D2C0 38 00 00 FF */ li r0, 0xff
/* 800213A4 0001D2C4 94 21 FF 68 */ stwu r1, -0x98(r1)
/* 800213A8 0001D2C8 93 E1 00 94 */ stw r31, 0x94(r1)
/* 800213AC 0001D2CC 7C BF 2B 78 */ mr r31, r5
/* 800213B0 0001D2D0 93 C1 00 90 */ stw r30, 0x90(r1)
/* 800213B4 0001D2D4 7C 9E 23 78 */ mr r30, r4
/* 800213B8 0001D2D8 93 A1 00 8C */ stw r29, 0x8c(r1)
/* 800213BC 0001D2DC 3B A3 00 00 */ addi r29, r3, 0
/* 800213C0 0001D2E0 C0 22 87 84 */ lfs f1, lbl_802F2F84@sda21(r2)
/* 800213C4 0001D2E4 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 800213C8 0001D2E8 EC 01 00 32 */ fmuls f0, f1, f0
/* 800213CC 0001D2EC FC 00 00 1E */ fctiwz f0, f0
/* 800213D0 0001D2F0 D8 01 00 80 */ stfd f0, 0x80(r1)
/* 800213D4 0001D2F4 80 61 00 84 */ lwz r3, 0x84(r1)
/* 800213D8 0001D2F8 98 61 00 58 */ stb r3, 0x58(r1)
/* 800213DC 0001D2FC C0 05 00 10 */ lfs f0, 0x10(r5)
/* 800213E0 0001D300 EC 01 00 32 */ fmuls f0, f1, f0
/* 800213E4 0001D304 FC 00 00 1E */ fctiwz f0, f0
/* 800213E8 0001D308 D8 01 00 78 */ stfd f0, 0x78(r1)
/* 800213EC 0001D30C 80 61 00 7C */ lwz r3, 0x7c(r1)
/* 800213F0 0001D310 98 61 00 59 */ stb r3, 0x59(r1)
/* 800213F4 0001D314 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 800213F8 0001D318 EC 01 00 32 */ fmuls f0, f1, f0
/* 800213FC 0001D31C FC 00 00 1E */ fctiwz f0, f0
/* 80021400 0001D320 D8 01 00 70 */ stfd f0, 0x70(r1)
/* 80021404 0001D324 80 61 00 74 */ lwz r3, 0x74(r1)
/* 80021408 0001D328 98 61 00 5A */ stb r3, 0x5a(r1)
/* 8002140C 0001D32C 98 01 00 5B */ stb r0, 0x5b(r1)
/* 80021410 0001D330 88 05 00 04 */ lbz r0, 4(r5)
/* 80021414 0001D334 7C 00 07 74 */ extsb r0, r0
/* 80021418 0001D338 28 00 00 08 */ cmplwi r0, 8
/* 8002141C 0001D33C 41 81 00 40 */ bgt lbl_8002145C
/* 80021420 0001D340 3C 60 80 18 */ lis r3, lbl_80180D50@ha
/* 80021424 0001D344 38 63 0D 50 */ addi r3, r3, lbl_80180D50@l
/* 80021428 0001D348 54 00 10 3A */ slwi r0, r0, 2
/* 8002142C 0001D34C 7C 03 00 2E */ lwzx r0, r3, r0
/* 80021430 0001D350 7C 09 03 A6 */ mtctr r0
/* 80021434 0001D354 4E 80 04 20 */ bctr
.global lbl_80021438
lbl_80021438:
/* 80021438 0001D358 C0 22 87 78 */ lfs f1, lbl_802F2F78@sda21(r2)
/* 8002143C 0001D35C 38 61 00 18 */ addi r3, r1, 0x18
/* 80021440 0001D360 38 80 00 00 */ li r4, 0
/* 80021444 0001D364 48 0B F1 8D */ bl GXInitLightSpot
/* 80021448 0001D368 48 00 00 14 */ b lbl_8002145C
.global lbl_8002144C
lbl_8002144C:
/* 8002144C 0001D36C C0 3F 00 48 */ lfs f1, 0x48(r31)
/* 80021450 0001D370 38 61 00 18 */ addi r3, r1, 0x18
/* 80021454 0001D374 A8 9F 00 06 */ lha r4, 6(r31)
/* 80021458 0001D378 48 0B F1 79 */ bl GXInitLightSpot
lbl_8002145C:
/* 8002145C 0001D37C 80 0D 9A B8 */ lwz r0, lbl_802F1C98@sda21(r13)
/* 80021460 0001D380 2C 00 00 03 */ cmpwi r0, 3
/* 80021464 0001D384 41 82 00 0C */ beq lbl_80021470
/* 80021468 0001D388 C0 7F 00 38 */ lfs f3, 0x38(r31)
/* 8002146C 0001D38C 48 00 00 10 */ b lbl_8002147C
lbl_80021470:
/* 80021470 0001D390 C0 3F 00 38 */ lfs f1, 0x38(r31)
/* 80021474 0001D394 C0 0D 9A 74 */ lfs f0, lbl_802F1C54@sda21(r13)
/* 80021478 0001D398 EC 61 00 32 */ fmuls f3, f1, f0
lbl_8002147C:
/* 8002147C 0001D39C 88 7F 00 04 */ lbz r3, 4(r31)
/* 80021480 0001D3A0 7C 60 07 74 */ extsb r0, r3
/* 80021484 0001D3A4 2C 00 00 05 */ cmpwi r0, 5
/* 80021488 0001D3A8 40 80 00 18 */ bge lbl_800214A0
/* 8002148C 0001D3AC 2C 00 00 03 */ cmpwi r0, 3
/* 80021490 0001D3B0 40 80 00 70 */ bge lbl_80021500
/* 80021494 0001D3B4 2C 00 00 00 */ cmpwi r0, 0
/* 80021498 0001D3B8 40 80 00 1C */ bge lbl_800214B4
/* 8002149C 0001D3BC 48 00 01 1C */ b lbl_800215B8
lbl_800214A0:
/* 800214A0 0001D3C0 2C 00 00 09 */ cmpwi r0, 9
/* 800214A4 0001D3C4 40 80 01 14 */ bge lbl_800215B8
/* 800214A8 0001D3C8 2C 00 00 07 */ cmpwi r0, 7
/* 800214AC 0001D3CC 40 80 00 D0 */ bge lbl_8002157C
/* 800214B0 0001D3D0 48 00 00 94 */ b lbl_80021544
lbl_800214B4:
/* 800214B4 0001D3D4 7C 60 07 75 */ extsb. r0, r3
/* 800214B8 0001D3D8 40 82 00 0C */ bne lbl_800214C4
/* 800214BC 0001D3DC 38 80 00 00 */ li r4, 0
/* 800214C0 0001D3E0 48 00 00 20 */ b lbl_800214E0
lbl_800214C4:
/* 800214C4 0001D3E4 C8 22 87 88 */ lfd f1, lbl_802F2F88@sda21(r2)
/* 800214C8 0001D3E8 C0 1F 00 44 */ lfs f0, 0x44(r31)
/* 800214CC 0001D3EC FC 01 00 32 */ fmul f0, f1, f0
/* 800214D0 0001D3F0 FC 00 00 1E */ fctiwz f0, f0
/* 800214D4 0001D3F4 D8 01 00 70 */ stfd f0, 0x70(r1)
/* 800214D8 0001D3F8 80 61 00 74 */ lwz r3, 0x74(r1)
/* 800214DC 0001D3FC 38 83 00 03 */ addi r4, r3, 3
lbl_800214E0:
/* 800214E0 0001D400 C0 3F 00 3C */ lfs f1, 0x3c(r31)
/* 800214E4 0001D404 38 61 00 18 */ addi r3, r1, 0x18
/* 800214E8 0001D408 C0 42 87 90 */ lfs f2, lbl_802F2F90@sda21(r2)
/* 800214EC 0001D40C C0 1F 00 40 */ lfs f0, 0x40(r31)
/* 800214F0 0001D410 EC 23 00 72 */ fmuls f1, f3, f1
/* 800214F4 0001D414 EC 42 00 2A */ fadds f2, f2, f0
/* 800214F8 0001D418 48 0B F2 59 */ bl GXInitLightDistAttn
/* 800214FC 0001D41C 48 00 00 BC */ b lbl_800215B8
lbl_80021500:
/* 80021500 0001D420 EC 63 00 F2 */ fmuls f3, f3, f3
/* 80021504 0001D424 C0 42 87 98 */ lfs f2, lbl_802F2F98@sda21(r2)
/* 80021508 0001D428 C0 02 87 90 */ lfs f0, lbl_802F2F90@sda21(r2)
/* 8002150C 0001D42C 38 61 00 18 */ addi r3, r1, 0x18
/* 80021510 0001D430 C0 22 87 9C */ lfs f1, lbl_802F2F9C@sda21(r2)
/* 80021514 0001D434 EC 00 00 F2 */ fmuls f0, f0, f3
/* 80021518 0001D438 C0 A2 87 94 */ lfs f5, lbl_802F2F94@sda21(r2)
/* 8002151C 0001D43C EC 82 18 24 */ fdivs f4, f2, f3
/* 80021520 0001D440 C0 DF 00 3C */ lfs f6, 0x3c(r31)
/* 80021524 0001D444 C0 7F 00 44 */ lfs f3, 0x44(r31)
/* 80021528 0001D448 C0 5F 00 40 */ lfs f2, 0x40(r31)
/* 8002152C 0001D44C EC 01 00 24 */ fdivs f0, f1, f0
/* 80021530 0001D450 EC 25 01 32 */ fmuls f1, f5, f4
/* 80021534 0001D454 EC 63 00 2A */ fadds f3, f3, f0
/* 80021538 0001D458 EC 26 00 72 */ fmuls f1, f6, f1
/* 8002153C 0001D45C 48 0B F0 85 */ bl GXInitLightAttnK
/* 80021540 0001D460 48 00 00 78 */ b lbl_800215B8
lbl_80021544:
/* 80021544 0001D464 EC 03 00 F2 */ fmuls f0, f3, f3
/* 80021548 0001D468 C0 22 87 90 */ lfs f1, lbl_802F2F90@sda21(r2)
/* 8002154C 0001D46C C0 62 87 9C */ lfs f3, lbl_802F2F9C@sda21(r2)
/* 80021550 0001D470 38 61 00 18 */ addi r3, r1, 0x18
/* 80021554 0001D474 C0 82 87 A0 */ lfs f4, lbl_802F2FA0@sda21(r2)
/* 80021558 0001D478 EC 01 00 32 */ fmuls f0, f1, f0
/* 8002155C 0001D47C C0 5F 00 44 */ lfs f2, 0x44(r31)
/* 80021560 0001D480 C0 3F 00 3C */ lfs f1, 0x3c(r31)
/* 80021564 0001D484 EC 84 10 2A */ fadds f4, f4, f2
/* 80021568 0001D488 C0 5F 00 40 */ lfs f2, 0x40(r31)
/* 8002156C 0001D48C EC 03 00 24 */ fdivs f0, f3, f0
/* 80021570 0001D490 EC 64 00 32 */ fmuls f3, f4, f0
/* 80021574 0001D494 48 0B F0 4D */ bl GXInitLightAttnK
/* 80021578 0001D498 48 00 00 40 */ b lbl_800215B8
lbl_8002157C:
/* 8002157C 0001D49C EC 03 00 F2 */ fmuls f0, f3, f3
/* 80021580 0001D4A0 C0 22 87 90 */ lfs f1, lbl_802F2F90@sda21(r2)
/* 80021584 0001D4A4 C0 42 87 9C */ lfs f2, lbl_802F2F9C@sda21(r2)
/* 80021588 0001D4A8 38 61 00 18 */ addi r3, r1, 0x18
/* 8002158C 0001D4AC C0 62 87 A0 */ lfs f3, lbl_802F2FA0@sda21(r2)
/* 80021590 0001D4B0 EC 01 00 32 */ fmuls f0, f1, f0
/* 80021594 0001D4B4 C0 3F 00 44 */ lfs f1, 0x44(r31)
/* 80021598 0001D4B8 C0 A2 87 7C */ lfs f5, lbl_802F2F7C@sda21(r2)
/* 8002159C 0001D4BC C0 9F 00 3C */ lfs f4, 0x3c(r31)
/* 800215A0 0001D4C0 EC 63 08 2A */ fadds f3, f3, f1
/* 800215A4 0001D4C4 EC 02 00 24 */ fdivs f0, f2, f0
/* 800215A8 0001D4C8 C0 5F 00 40 */ lfs f2, 0x40(r31)
/* 800215AC 0001D4CC EC 25 20 2A */ fadds f1, f5, f4
/* 800215B0 0001D4D0 EC 63 00 32 */ fmuls f3, f3, f0
/* 800215B4 0001D4D4 48 0B F0 0D */ bl GXInitLightAttnK
lbl_800215B8:
/* 800215B8 0001D4D8 80 01 00 58 */ lwz r0, 0x58(r1)
/* 800215BC 0001D4DC 38 81 00 14 */ addi r4, r1, 0x14
/* 800215C0 0001D4E0 38 61 00 18 */ addi r3, r1, 0x18
/* 800215C4 0001D4E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 800215C8 0001D4E8 48 0B F2 A1 */ bl GXInitLightColor
/* 800215CC 0001D4EC 80 0D 9A B8 */ lwz r0, lbl_802F1C98@sda21(r13)
/* 800215D0 0001D4F0 2C 00 00 03 */ cmpwi r0, 3
/* 800215D4 0001D4F4 41 82 00 0C */ beq lbl_800215E0
/* 800215D8 0001D4F8 C8 02 87 A8 */ lfd f0, lbl_802F2FA8@sda21(r2)
/* 800215DC 0001D4FC 48 00 00 1C */ b lbl_800215F8
lbl_800215E0:
/* 800215E0 0001D500 C0 22 87 98 */ lfs f1, lbl_802F2F98@sda21(r2)
/* 800215E4 0001D504 C0 0D 9A 74 */ lfs f0, lbl_802F1C54@sda21(r13)
/* 800215E8 0001D508 C0 42 87 B0 */ lfs f2, lbl_802F2FB0@sda21(r2)
/* 800215EC 0001D50C EC 01 00 24 */ fdivs f0, f1, f0
/* 800215F0 0001D510 EC 00 08 28 */ fsubs f0, f0, f1
/* 800215F4 0001D514 EC 02 00 32 */ fmuls f0, f2, f0
lbl_800215F8:
/* 800215F8 0001D518 C0 3F 00 18 */ lfs f1, 0x18(r31)
/* 800215FC 0001D51C FC 00 00 18 */ frsp f0, f0
/* 80021600 0001D520 D0 21 00 60 */ stfs f1, 0x60(r1)
/* 80021604 0001D524 C0 3F 00 1C */ lfs f1, 0x1c(r31)
/* 80021608 0001D528 EC 01 00 2A */ fadds f0, f1, f0
/* 8002160C 0001D52C D0 01 00 64 */ stfs f0, 0x64(r1)
/* 80021610 0001D530 C0 1F 00 20 */ lfs f0, 0x20(r31)
/* 80021614 0001D534 D0 01 00 68 */ stfs f0, 0x68(r1)
/* 80021618 0001D538 88 1F 00 04 */ lbz r0, 4(r31)
/* 8002161C 0001D53C 7C 00 07 74 */ extsb r0, r0
/* 80021620 0001D540 28 00 00 08 */ cmplwi r0, 8
/* 80021624 0001D544 41 81 00 A4 */ bgt lbl_800216C8
/* 80021628 0001D548 3C 60 80 18 */ lis r3, lbl_80180D2C@ha
/* 8002162C 0001D54C 38 63 0D 2C */ addi r3, r3, lbl_80180D2C@l
/* 80021630 0001D550 54 00 10 3A */ slwi r0, r0, 2
/* 80021634 0001D554 7C 03 00 2E */ lwzx r0, r3, r0
/* 80021638 0001D558 7C 09 03 A6 */ mtctr r0
/* 8002163C 0001D55C 4E 80 04 20 */ bctr
.global lbl_80021640
lbl_80021640:
/* 80021640 0001D560 38 7F 00 2C */ addi r3, r31, 0x2c
/* 80021644 0001D564 38 81 00 60 */ addi r4, r1, 0x60
/* 80021648 0001D568 4B FE 67 E5 */ bl mathutil_mtxA_tf_point
/* 8002164C 0001D56C C0 21 00 60 */ lfs f1, 0x60(r1)
/* 80021650 0001D570 38 61 00 18 */ addi r3, r1, 0x18
/* 80021654 0001D574 C0 41 00 64 */ lfs f2, 0x64(r1)
/* 80021658 0001D578 C0 61 00 68 */ lfs f3, 0x68(r1)
/* 8002165C 0001D57C 48 0B F1 C5 */ bl GXInitLightPos
/* 80021660 0001D580 48 00 00 68 */ b lbl_800216C8
.global lbl_80021664
lbl_80021664:
/* 80021664 0001D584 38 61 00 60 */ addi r3, r1, 0x60
/* 80021668 0001D588 38 83 00 00 */ addi r4, r3, 0
/* 8002166C 0001D58C 4B FE 67 C1 */ bl mathutil_mtxA_tf_point
/* 80021670 0001D590 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 80021674 0001D594 38 61 00 18 */ addi r3, r1, 0x18
/* 80021678 0001D598 C0 41 00 64 */ lfs f2, 0x64(r1)
/* 8002167C 0001D59C C0 61 00 68 */ lfs f3, 0x68(r1)
/* 80021680 0001D5A0 48 0B F1 A1 */ bl GXInitLightPos
/* 80021684 0001D5A4 48 00 00 44 */ b lbl_800216C8
.global lbl_80021688
lbl_80021688:
/* 80021688 0001D5A8 38 61 00 60 */ addi r3, r1, 0x60
/* 8002168C 0001D5AC 38 83 00 00 */ addi r4, r3, 0
/* 80021690 0001D5B0 4B FE 67 9D */ bl mathutil_mtxA_tf_point
/* 80021694 0001D5B4 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 80021698 0001D5B8 38 61 00 18 */ addi r3, r1, 0x18
/* 8002169C 0001D5BC C0 41 00 64 */ lfs f2, 0x64(r1)
/* 800216A0 0001D5C0 C0 61 00 68 */ lfs f3, 0x68(r1)
/* 800216A4 0001D5C4 48 0B F1 7D */ bl GXInitLightPos
/* 800216A8 0001D5C8 38 7F 00 2C */ addi r3, r31, 0x2c
/* 800216AC 0001D5CC 38 81 00 60 */ addi r4, r1, 0x60
/* 800216B0 0001D5D0 4B FE 67 8D */ bl mathutil_mtxA_tf_vec
/* 800216B4 0001D5D4 C0 21 00 60 */ lfs f1, 0x60(r1)
/* 800216B8 0001D5D8 38 61 00 18 */ addi r3, r1, 0x18
/* 800216BC 0001D5DC C0 41 00 64 */ lfs f2, 0x64(r1)
/* 800216C0 0001D5E0 C0 61 00 68 */ lfs f3, 0x68(r1)
/* 800216C4 0001D5E4 48 0B F1 89 */ bl GXInitLightDir
lbl_800216C8:
/* 800216C8 0001D5E8 38 00 00 01 */ li r0, 1
/* 800216CC 0001D5EC 38 61 00 18 */ addi r3, r1, 0x18
/* 800216D0 0001D5F0 7C 04 F0 30 */ slw r4, r0, r30
/* 800216D4 0001D5F4 48 0B F1 ED */ bl GXLoadLightObjImm
/* 800216D8 0001D5F8 57 C3 30 32 */ slwi r3, r30, 6
/* 800216DC 0001D5FC 38 63 00 14 */ addi r3, r3, 0x14
/* 800216E0 0001D600 7C 7D 1A 14 */ add r3, r29, r3
/* 800216E4 0001D604 38 81 00 18 */ addi r4, r1, 0x18
/* 800216E8 0001D608 38 A0 00 40 */ li r5, 0x40
/* 800216EC 0001D60C 4B FE 1D 29 */ bl memcpy
/* 800216F0 0001D610 80 01 00 9C */ lwz r0, 0x9c(r1)
/* 800216F4 0001D614 83 E1 00 94 */ lwz r31, 0x94(r1)
/* 800216F8 0001D618 83 C1 00 90 */ lwz r30, 0x90(r1)
/* 800216FC 0001D61C 7C 08 03 A6 */ mtlr r0
/* 80021700 0001D620 83 A1 00 8C */ lwz r29, 0x8c(r1)
/* 80021704 0001D624 38 21 00 98 */ addi r1, r1, 0x98
/* 80021708 0001D628 4E 80 00 20 */ blr
.global func_8002170C
func_8002170C:
/* 8002170C 0001D62C 7C 08 02 A6 */ mflr r0
/* 80021710 0001D630 3C 80 80 1C */ lis r4, backgroundInfo@ha
/* 80021714 0001D634 90 01 00 04 */ stw r0, 4(r1)
/* 80021718 0001D638 94 21 FF 98 */ stwu r1, -0x68(r1)
/* 8002171C 0001D63C 93 E1 00 64 */ stw r31, 0x64(r1)
/* 80021720 0001D640 93 C1 00 60 */ stw r30, 0x60(r1)
/* 80021724 0001D644 93 A1 00 5C */ stw r29, 0x5c(r1)
/* 80021728 0001D648 3B A3 00 00 */ addi r29, r3, 0
/* 8002172C 0001D64C A8 C4 91 78 */ lha r6, backgroundInfo@l(r4)
/* 80021730 0001D650 3C 80 80 1F */ lis r4, lbl_801EFC88@ha
/* 80021734 0001D654 3B E4 FC 88 */ addi r31, r4, lbl_801EFC88@l
/* 80021738 0001D658 7C C0 07 35 */ extsh. r0, r6
/* 8002173C 0001D65C 38 00 00 01 */ li r0, 1
/* 80021740 0001D660 41 80 00 10 */ blt lbl_80021750
/* 80021744 0001D664 2C 1D 00 00 */ cmpwi r29, 0
/* 80021748 0001D668 41 82 00 08 */ beq lbl_80021750
/* 8002174C 0001D66C 38 00 00 00 */ li r0, 0
lbl_80021750:
/* 80021750 0001D670 2C 00 00 00 */ cmpwi r0, 0
/* 80021754 0001D674 41 82 00 0C */ beq lbl_80021760
/* 80021758 0001D678 38 00 00 00 */ li r0, 0
/* 8002175C 0001D67C 48 00 00 08 */ b lbl_80021764
lbl_80021760:
/* 80021760 0001D680 7C C0 33 78 */ mr r0, r6
lbl_80021764:
/* 80021764 0001D684 1C 80 00 48 */ mulli r4, r0, 0x48
/* 80021768 0001D688 3C 60 80 18 */ lis r3, lbl_80180F64@ha
/* 8002176C 0001D68C 38 63 0F 64 */ addi r3, r3, lbl_80180F64@l
/* 80021770 0001D690 38 00 00 09 */ li r0, 9
/* 80021774 0001D694 7C 63 22 14 */ add r3, r3, r4
/* 80021778 0001D698 7C 09 03 A6 */ mtctr r0
/* 8002177C 0001D69C 38 BF 09 84 */ addi r5, r31, 0x984
/* 80021780 0001D6A0 38 83 FF F8 */ addi r4, r3, -8
lbl_80021784:
/* 80021784 0001D6A4 84 64 00 08 */ lwzu r3, 8(r4)
/* 80021788 0001D6A8 80 04 00 04 */ lwz r0, 4(r4)
/* 8002178C 0001D6AC 94 65 00 08 */ stwu r3, 8(r5)
/* 80021790 0001D6B0 90 05 00 04 */ stw r0, 4(r5)
/* 80021794 0001D6B4 42 00 FF F0 */ bdnz lbl_80021784
/* 80021798 0001D6B8 3B DF 09 C0 */ addi r30, r31, 0x9c0
/* 8002179C 0001D6BC C8 22 87 A8 */ lfd f1, lbl_802F2FA8@sda21(r2)
/* 800217A0 0001D6C0 C0 1F 09 C0 */ lfs f0, 0x9c0(r31)
/* 800217A4 0001D6C4 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 800217A8 0001D6C8 40 82 00 1C */ bne lbl_800217C4
/* 800217AC 0001D6CC C0 1F 09 C4 */ lfs f0, 0x9c4(r31)
/* 800217B0 0001D6D0 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 800217B4 0001D6D4 40 82 00 10 */ bne lbl_800217C4
/* 800217B8 0001D6D8 C0 1F 09 C8 */ lfs f0, 0x9c8(r31)
/* 800217BC 0001D6DC FC 01 00 00 */ fcmpu cr0, f1, f0
/* 800217C0 0001D6E0 41 82 01 7C */ beq lbl_8002193C
lbl_800217C4:
/* 800217C4 0001D6E4 2C 1D 00 00 */ cmpwi r29, 0
/* 800217C8 0001D6E8 41 82 01 20 */ beq lbl_800218E8
/* 800217CC 0001D6EC 2C 1D 00 63 */ cmpwi r29, 0x63
/* 800217D0 0001D6F0 40 82 00 20 */ bne lbl_800217F0
/* 800217D4 0001D6F4 3C 60 80 1F */ lis r3, lbl_801EED2C@ha
/* 800217D8 0001D6F8 38 63 ED 2C */ addi r3, r3, lbl_801EED2C@l
/* 800217DC 0001D6FC 80 03 00 04 */ lwz r0, 4(r3)
/* 800217E0 0001D700 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 800217E4 0001D704 41 82 00 0C */ beq lbl_800217F0
/* 800217E8 0001D708 38 00 20 00 */ li r0, 0x2000
/* 800217EC 0001D70C B0 1F 09 CE */ sth r0, 0x9ce(r31)
lbl_800217F0:
/* 800217F0 0001D710 A8 6D 99 AE */ lha r3, gameSubmode@sda21(r13)
/* 800217F4 0001D714 38 03 FF BF */ addi r0, r3, -65
/* 800217F8 0001D718 54 00 04 3E */ clrlwi r0, r0, 0x10
/* 800217FC 0001D71C 28 00 00 01 */ cmplwi r0, 1
/* 80021800 0001D720 41 81 00 14 */ bgt lbl_80021814
/* 80021804 0001D724 38 00 00 00 */ li r0, 0
/* 80021808 0001D728 B0 1F 09 CC */ sth r0, 0x9cc(r31)
/* 8002180C 0001D72C 38 00 40 00 */ li r0, 0x4000
/* 80021810 0001D730 B0 1F 09 CE */ sth r0, 0x9ce(r31)
lbl_80021814:
/* 80021814 0001D734 2C 06 00 0E */ cmpwi r6, 0xe
/* 80021818 0001D738 40 82 00 28 */ bne lbl_80021840
/* 8002181C 0001D73C 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 80021820 0001D740 38 63 EC 20 */ addi r3, r3, modeCtrl@l
/* 80021824 0001D744 80 03 00 30 */ lwz r0, 0x30(r3)
/* 80021828 0001D748 2C 00 00 01 */ cmpwi r0, 1
/* 8002182C 0001D74C 40 81 00 14 */ ble lbl_80021840
/* 80021830 0001D750 C0 22 87 B4 */ lfs f1, lbl_802F2FB4@sda21(r2)
/* 80021834 0001D754 C0 42 87 B8 */ lfs f2, lbl_802F2FB8@sda21(r2)
/* 80021838 0001D758 C0 62 87 BC */ lfs f3, lbl_802F2FBC@sda21(r2)
/* 8002183C 0001D75C 48 00 0D C1 */ bl func_800225FC
lbl_80021840:
/* 80021840 0001D760 38 1D FF 7D */ addi r0, r29, -131
/* 80021844 0001D764 28 00 00 0E */ cmplwi r0, 0xe
/* 80021848 0001D768 41 81 00 68 */ bgt lbl_800218B0
/* 8002184C 0001D76C 3C 60 80 18 */ lis r3, lbl_80180D74@ha
/* 80021850 0001D770 38 63 0D 74 */ addi r3, r3, lbl_80180D74@l
/* 80021854 0001D774 54 00 10 3A */ slwi r0, r0, 2
/* 80021858 0001D778 7C 03 00 2E */ lwzx r0, r3, r0
/* 8002185C 0001D77C 7C 09 03 A6 */ mtctr r0
/* 80021860 0001D780 4E 80 04 20 */ bctr
.global lbl_80021864
lbl_80021864:
/* 80021864 0001D784 C0 22 87 B4 */ lfs f1, lbl_802F2FB4@sda21(r2)
/* 80021868 0001D788 C0 42 87 C0 */ lfs f2, lbl_802F2FC0@sda21(r2)
/* 8002186C 0001D78C C0 62 87 C4 */ lfs f3, lbl_802F2FC4@sda21(r2)
/* 80021870 0001D790 48 00 0D 8D */ bl func_800225FC
/* 80021874 0001D794 48 00 00 3C */ b lbl_800218B0
.global lbl_80021878
lbl_80021878:
/* 80021878 0001D798 C0 22 87 B4 */ lfs f1, lbl_802F2FB4@sda21(r2)
/* 8002187C 0001D79C C0 42 87 C0 */ lfs f2, lbl_802F2FC0@sda21(r2)
/* 80021880 0001D7A0 C0 62 87 C4 */ lfs f3, lbl_802F2FC4@sda21(r2)
/* 80021884 0001D7A4 48 00 0D 79 */ bl func_800225FC
/* 80021888 0001D7A8 48 00 00 28 */ b lbl_800218B0
.global lbl_8002188C
lbl_8002188C:
/* 8002188C 0001D7AC C0 22 87 B4 */ lfs f1, lbl_802F2FB4@sda21(r2)
/* 80021890 0001D7B0 C0 42 87 C0 */ lfs f2, lbl_802F2FC0@sda21(r2)
/* 80021894 0001D7B4 C0 62 87 C8 */ lfs f3, lbl_802F2FC8@sda21(r2)
/* 80021898 0001D7B8 48 00 0D 65 */ bl func_800225FC
/* 8002189C 0001D7BC 48 00 00 14 */ b lbl_800218B0
.global lbl_800218A0
lbl_800218A0:
/* 800218A0 0001D7C0 C0 22 87 CC */ lfs f1, lbl_802F2FCC@sda21(r2)
/* 800218A4 0001D7C4 C0 62 87 D0 */ lfs f3, lbl_802F2FD0@sda21(r2)
/* 800218A8 0001D7C8 FC 40 08 90 */ fmr f2, f1
/* 800218AC 0001D7CC 48 00 0D 51 */ bl func_800225FC
lbl_800218B0:
.global lbl_800218B0
/* 800218B0 0001D7D0 3C 60 80 1C */ lis r3, backgroundInfo@ha
/* 800218B4 0001D7D4 A8 03 91 78 */ lha r0, backgroundInfo@l(r3)
/* 800218B8 0001D7D8 2C 00 00 1B */ cmpwi r0, 0x1b
/* 800218BC 0001D7DC 40 82 00 2C */ bne lbl_800218E8
/* 800218C0 0001D7E0 3C 60 80 1F */ lis r3, modeCtrl@ha
/* 800218C4 0001D7E4 38 63 EC 20 */ addi r3, r3, modeCtrl@l
/* 800218C8 0001D7E8 80 03 00 04 */ lwz r0, 4(r3)
/* 800218CC 0001D7EC 2C 00 00 00 */ cmpwi r0, 0
/* 800218D0 0001D7F0 41 82 00 08 */ beq lbl_800218D8
/* 800218D4 0001D7F4 48 00 00 14 */ b lbl_800218E8
lbl_800218D8:
/* 800218D8 0001D7F8 A8 7F 09 CE */ lha r3, 0x9ce(r31)
/* 800218DC 0001D7FC 3C 63 00 01 */ addis r3, r3, 1
/* 800218E0 0001D800 38 03 B0 00 */ addi r0, r3, -20480
/* 800218E4 0001D804 B0 1F 09 CE */ sth r0, 0x9ce(r31)
lbl_800218E8:
/* 800218E8 0001D808 38 61 00 0C */ addi r3, r1, 0xc
/* 800218EC 0001D80C 38 80 00 00 */ li r4, 0
/* 800218F0 0001D810 38 A0 00 4C */ li r5, 0x4c
/* 800218F4 0001D814 4B FE 1A 2D */ bl memset
/* 800218F8 0001D818 38 00 00 01 */ li r0, 1
/* 800218FC 0001D81C 98 01 00 0D */ stb r0, 0xd(r1)
/* 80021900 0001D820 38 00 00 00 */ li r0, 0
/* 80021904 0001D824 38 61 00 0C */ addi r3, r1, 0xc
/* 80021908 0001D828 B0 01 00 0E */ sth r0, 0xe(r1)
/* 8002190C 0001D82C 98 01 00 10 */ stb r0, 0x10(r1)
/* 80021910 0001D830 C0 1E 00 00 */ lfs f0, 0(r30)
/* 80021914 0001D834 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80021918 0001D838 C0 1F 09 C4 */ lfs f0, 0x9c4(r31)
/* 8002191C 0001D83C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80021920 0001D840 C0 1F 09 C8 */ lfs f0, 0x9c8(r31)
/* 80021924 0001D844 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 80021928 0001D848 A8 1F 09 CC */ lha r0, 0x9cc(r31)
/* 8002192C 0001D84C B0 01 00 30 */ sth r0, 0x30(r1)
/* 80021930 0001D850 A8 1F 09 CE */ lha r0, 0x9ce(r31)
/* 80021934 0001D854 B0 01 00 32 */ sth r0, 0x32(r1)
/* 80021938 0001D858 48 00 08 09 */ bl func_80022140
lbl_8002193C:
/* 8002193C 0001D85C 80 01 00 6C */ lwz r0, 0x6c(r1)
/* 80021940 0001D860 83 E1 00 64 */ lwz r31, 0x64(r1)
/* 80021944 0001D864 83 C1 00 60 */ lwz r30, 0x60(r1)
/* 80021948 0001D868 7C 08 03 A6 */ mtlr r0
/* 8002194C 0001D86C 83 A1 00 5C */ lwz r29, 0x5c(r1)
/* 80021950 0001D870 38 21 00 68 */ addi r1, r1, 0x68
/* 80021954 0001D874 4E 80 00 20 */ blr
.global func_80021958
func_80021958:
/* 80021958 0001D878 7C 08 02 A6 */ mflr r0
/* 8002195C 0001D87C 3C 60 80 1F */ lis r3, lbl_801EFC88@ha
/* 80021960 0001D880 90 01 00 04 */ stw r0, 4(r1)
/* 80021964 0001D884 38 00 00 0B */ li r0, 0xb
/* 80021968 0001D888 7C 09 03 A6 */ mtctr r0
/* 8002196C 0001D88C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80021970 0001D890 BF 21 00 14 */ stmw r25, 0x14(r1)
/* 80021974 0001D894 3B E3 FC 88 */ addi r31, r3, lbl_801EFC88@l
/* 80021978 0001D898 38 7F 09 D4 */ addi r3, r31, 0x9d4
lbl_8002197C:
/* 8002197C 0001D89C 38 00 FF FF */ li r0, -1
/* 80021980 0001D8A0 B0 03 00 00 */ sth r0, 0(r3)
/* 80021984 0001D8A4 B0 03 00 02 */ sth r0, 2(r3)
/* 80021988 0001D8A8 B0 03 00 04 */ sth r0, 4(r3)
/* 8002198C 0001D8AC B0 03 00 06 */ sth r0, 6(r3)
/* 80021990 0001D8B0 B0 03 00 08 */ sth r0, 8(r3)
/* 80021994 0001D8B4 B0 03 00 0A */ sth r0, 0xa(r3)
/* 80021998 0001D8B8 B0 03 00 0C */ sth r0, 0xc(r3)
/* 8002199C 0001D8BC B0 03 00 0E */ sth r0, 0xe(r3)
/* 800219A0 0001D8C0 C0 1F 09 90 */ lfs f0, 0x990(r31)
/* 800219A4 0001D8C4 D0 03 02 18 */ stfs f0, 0x218(r3)
/* 800219A8 0001D8C8 C0 1F 09 94 */ lfs f0, 0x994(r31)
/* 800219AC 0001D8CC D0 03 02 1C */ stfs f0, 0x21c(r3)
/* 800219B0 0001D8D0 C0 1F 09 98 */ lfs f0, 0x998(r31)
/* 800219B4 0001D8D4 D0 03 02 20 */ stfs f0, 0x220(r3)
/* 800219B8 0001D8D8 B0 03 02 58 */ sth r0, 0x258(r3)
/* 800219BC 0001D8DC B0 03 02 5A */ sth r0, 0x25a(r3)
/* 800219C0 0001D8E0 B0 03 02 5C */ sth r0, 0x25c(r3)
/* 800219C4 0001D8E4 B0 03 02 5E */ sth r0, 0x25e(r3)
/* 800219C8 0001D8E8 B0 03 02 60 */ sth r0, 0x260(r3)
/* 800219CC 0001D8EC B0 03 02 62 */ sth r0, 0x262(r3)
/* 800219D0 0001D8F0 B0 03 02 64 */ sth r0, 0x264(r3)
/* 800219D4 0001D8F4 B0 03 02 66 */ sth r0, 0x266(r3)
/* 800219D8 0001D8F8 C0 1F 09 90 */ lfs f0, 0x990(r31)
/* 800219DC 0001D8FC D0 03 04 70 */ stfs f0, 0x470(r3)
/* 800219E0 0001D900 C0 1F 09 94 */ lfs f0, 0x994(r31)
/* 800219E4 0001D904 D0 03 04 74 */ stfs f0, 0x474(r3)
/* 800219E8 0001D908 38 63 02 58 */ addi r3, r3, 0x258
/* 800219EC 0001D90C C0 1F 09 98 */ lfs f0, 0x998(r31)
/* 800219F0 0001D910 D0 03 02 20 */ stfs f0, 0x220(r3)
/* 800219F4 0001D914 38 63 02 58 */ addi r3, r3, 0x258
/* 800219F8 0001D918 42 00 FF 84 */ bdnz lbl_8002197C
/* 800219FC 0001D91C 38 00 00 08 */ li r0, 8
/* 80021A00 0001D920 7C 09 03 A6 */ mtctr r0
/* 80021A04 0001D924 38 FF 00 0C */ addi r7, r31, 0xc
/* 80021A08 0001D928 38 9F 09 D4 */ addi r4, r31, 0x9d4
/* 80021A0C 0001D92C 38 C0 00 00 */ li r6, 0
/* 80021A10 0001D930 38 A0 00 00 */ li r5, 0
lbl_80021A14:
/* 80021A14 0001D934 88 07 00 00 */ lbz r0, 0(r7)
/* 80021A18 0001D938 7C 00 07 75 */ extsb. r0, r0
/* 80021A1C 0001D93C 41 82 00 3C */ beq lbl_80021A58
/* 80021A20 0001D940 88 07 00 01 */ lbz r0, 1(r7)
/* 80021A24 0001D944 7C 03 07 74 */ extsb r3, r0
/* 80021A28 0001D948 2C 03 00 01 */ cmpwi r3, 1
/* 80021A2C 0001D94C 41 82 00 14 */ beq lbl_80021A40
/* 80021A30 0001D950 7C 00 07 75 */ extsb. r0, r0
/* 80021A34 0001D954 41 82 00 0C */ beq lbl_80021A40
/* 80021A38 0001D958 2C 03 00 03 */ cmpwi r3, 3
/* 80021A3C 0001D95C 40 82 00 1C */ bne lbl_80021A58
lbl_80021A40:
/* 80021A40 0001D960 38 C6 00 01 */ addi r6, r6, 1
/* 80021A44 0001D964 7C A0 07 34 */ extsh r0, r5
/* 80021A48 0001D968 B0 04 00 00 */ sth r0, 0(r4)
/* 80021A4C 0001D96C 2C 06 00 08 */ cmpwi r6, 8
/* 80021A50 0001D970 38 84 00 02 */ addi r4, r4, 2
/* 80021A54 0001D974 41 82 00 E8 */ beq lbl_80021B3C
lbl_80021A58:
/* 80021A58 0001D978 8C 07 00 4C */ lbzu r0, 0x4c(r7)
/* 80021A5C 0001D97C 38 A5 00 01 */ addi r5, r5, 1
/* 80021A60 0001D980 7C 00 07 75 */ extsb. r0, r0
/* 80021A64 0001D984 41 82 00 3C */ beq lbl_80021AA0
/* 80021A68 0001D988 88 07 00 01 */ lbz r0, 1(r7)
/* 80021A6C 0001D98C 7C 03 07 74 */ extsb r3, r0
/* 80021A70 0001D990 2C 03 00 01 */ cmpwi r3, 1
/* 80021A74 0001D994 41 82 00 14 */ beq lbl_80021A88
/* 80021A78 0001D998 7C 00 07 75 */ extsb. r0, r0
/* 80021A7C 0001D99C 41 82 00 0C */ beq lbl_80021A88
/* 80021A80 0001D9A0 2C 03 00 03 */ cmpwi r3, 3
/* 80021A84 0001D9A4 40 82 00 1C */ bne lbl_80021AA0
lbl_80021A88:
/* 80021A88 0001D9A8 38 C6 00 01 */ addi r6, r6, 1
/* 80021A8C 0001D9AC 7C A0 07 34 */ extsh r0, r5
/* 80021A90 0001D9B0 B0 04 00 00 */ sth r0, 0(r4)
/* 80021A94 0001D9B4 2C 06 00 08 */ cmpwi r6, 8
/* 80021A98 0001D9B8 38 84 00 02 */ addi r4, r4, 2
/* 80021A9C 0001D9BC 41 82 00 A0 */ beq lbl_80021B3C
lbl_80021AA0:
/* 80021AA0 0001D9C0 8C 07 00 4C */ lbzu r0, 0x4c(r7)
/* 80021AA4 0001D9C4 38 A5 00 01 */ addi r5, r5, 1
/* 80021AA8 0001D9C8 7C 00 07 75 */ extsb. r0, r0
/* 80021AAC 0001D9CC 41 82 00 3C */ beq lbl_80021AE8
/* 80021AB0 0001D9D0 88 07 00 01 */ lbz r0, 1(r7)
/* 80021AB4 0001D9D4 7C 03 07 74 */ extsb r3, r0
/* 80021AB8 0001D9D8 2C 03 00 01 */ cmpwi r3, 1
/* 80021ABC 0001D9DC 41 82 00 14 */ beq lbl_80021AD0
/* 80021AC0 0001D9E0 7C 00 07 75 */ extsb. r0, r0
/* 80021AC4 0001D9E4 41 82 00 0C */ beq lbl_80021AD0
/* 80021AC8 0001D9E8 2C 03 00 03 */ cmpwi r3, 3
/* 80021ACC 0001D9EC 40 82 00 1C */ bne lbl_80021AE8
lbl_80021AD0:
/* 80021AD0 0001D9F0 38 C6 00 01 */ addi r6, r6, 1
/* 80021AD4 0001D9F4 7C A0 07 34 */ extsh r0, r5
/* 80021AD8 0001D9F8 B0 04 00 00 */ sth r0, 0(r4)
/* 80021ADC 0001D9FC 2C 06 00 08 */ cmpwi r6, 8
/* 80021AE0 0001DA00 38 84 00 02 */ addi r4, r4, 2
/* 80021AE4 0001DA04 41 82 00 58 */ beq lbl_80021B3C
lbl_80021AE8:
/* 80021AE8 0001DA08 8C 07 00 4C */ lbzu r0, 0x4c(r7)
/* 80021AEC 0001DA0C 38 A5 00 01 */ addi r5, r5, 1
/* 80021AF0 0001DA10 7C 00 07 75 */ extsb. r0, r0
/* 80021AF4 0001DA14 41 82 00 3C */ beq lbl_80021B30
/* 80021AF8 0001DA18 88 07 00 01 */ lbz r0, 1(r7)
/* 80021AFC 0001DA1C 7C 03 07 74 */ extsb r3, r0
/* 80021B00 0001DA20 2C 03 00 01 */ cmpwi r3, 1
/* 80021B04 0001DA24 41 82 00 14 */ beq lbl_80021B18
/* 80021B08 0001DA28 7C 00 07 75 */ extsb. r0, r0
/* 80021B0C 0001DA2C 41 82 00 0C */ beq lbl_80021B18
/* 80021B10 0001DA30 2C 03 00 03 */ cmpwi r3, 3
/* 80021B14 0001DA34 40 82 00 1C */ bne lbl_80021B30
lbl_80021B18:
/* 80021B18 0001DA38 38 C6 00 01 */ addi r6, r6, 1
/* 80021B1C 0001DA3C 7C A0 07 34 */ extsh r0, r5
/* 80021B20 0001DA40 B0 04 00 00 */ sth r0, 0(r4)
/* 80021B24 0001DA44 2C 06 00 08 */ cmpwi r6, 8
/* 80021B28 0001DA48 38 84 00 02 */ addi r4, r4, 2
/* 80021B2C 0001DA4C 41 82 00 10 */ beq lbl_80021B3C
lbl_80021B30:
/* 80021B30 0001DA50 38 A5 00 01 */ addi r5, r5, 1
/* 80021B34 0001DA54 38 E7 00 4C */ addi r7, r7, 0x4c
/* 80021B38 0001DA58 42 00 FE DC */ bdnz lbl_80021A14
lbl_80021B3C:
/* 80021B3C 0001DA5C 88 1F 00 0C */ lbz r0, 0xc(r31)
/* 80021B40 0001DA60 7C 00 07 75 */ extsb. r0, r0
/* 80021B44 0001DA64 41 82 00 0C */ beq lbl_80021B50
/* 80021B48 0001DA68 38 00 00 00 */ li r0, 0
/* 80021B4C 0001DA6C B0 1F 0C 2C */ sth r0, 0xc2c(r31)
lbl_80021B50:
/* 80021B50 0001DA70 3B 40 00 02 */ li r26, 2
/* 80021B54 0001DA74 1C 1A 02 58 */ mulli r0, r26, 0x258
/* 80021B58 0001DA78 3C 60 80 11 */ lis r3, lbl_80110260@ha
/* 80021B5C 0001DA7C 38 63 02 60 */ addi r3, r3, lbl_80110260@l
/* 80021B60 0001DA80 7F DF 02 14 */ add r30, r31, r0
/* 80021B64 0001DA84 3B 23 00 10 */ addi r25, r3, 0x10
/* 80021B68 0001DA88 3B DE 09 D4 */ addi r30, r30, 0x9d4
lbl_80021B6C:
/* 80021B6C 0001DA8C 80 19 00 00 */ lwz r0, 0(r25)
/* 80021B70 0001DA90 38 7E 00 00 */ addi r3, r30, 0
/* 80021B74 0001DA94 38 A0 02 58 */ li r5, 0x258
/* 80021B78 0001DA98 1C 00 02 58 */ mulli r0, r0, 0x258
/* 80021B7C 0001DA9C 7C 9F 02 14 */ add r4, r31, r0
/* 80021B80 0001DAA0 38 84 09 D4 */ addi r4, r4, 0x9d4
/* 80021B84 0001DAA4 4B FE 18 91 */ bl memcpy
/* 80021B88 0001DAA8 3B 5A 00 01 */ addi r26, r26, 1
/* 80021B8C 0001DAAC 2C 1A 00 06 */ cmpwi r26, 6
/* 80021B90 0001DAB0 3B DE 02 58 */ addi r30, r30, 0x258
/* 80021B94 0001DAB4 3B 39 00 08 */ addi r25, r25, 8
/* 80021B98 0001DAB8 41 80 FF D4 */ blt lbl_80021B6C
/* 80021B9C 0001DABC 3B 9F 09 D0 */ addi r28, r31, 0x9d0
/* 80021BA0 0001DAC0 80 1F 09 D0 */ lwz r0, 0x9d0(r31)
/* 80021BA4 0001DAC4 28 00 00 00 */ cmplwi r0, 0
/* 80021BA8 0001DAC8 41 82 00 88 */ beq lbl_80021C30
/* 80021BAC 0001DACC 3B 7F 1A 3C */ addi r27, r31, 0x1a3c
/* 80021BB0 0001DAD0 3B 40 00 07 */ li r26, 7
lbl_80021BB4:
/* 80021BB4 0001DAD4 38 1A FF F9 */ addi r0, r26, -7
/* 80021BB8 0001DAD8 80 7C 00 00 */ lwz r3, 0(r28)
/* 80021BBC 0001DADC 54 1F 10 3A */ slwi r31, r0, 2
/* 80021BC0 0001DAE0 7C 03 F8 2E */ lwzx r0, r3, r31
/* 80021BC4 0001DAE4 28 00 00 00 */ cmplwi r0, 0
/* 80021BC8 0001DAE8 41 82 00 68 */ beq lbl_80021C30
/* 80021BCC 0001DAEC 3B 20 00 00 */ li r25, 0
/* 80021BD0 0001DAF0 3B D9 00 00 */ addi r30, r25, 0
/* 80021BD4 0001DAF4 3B BB 00 00 */ addi r29, r27, 0
lbl_80021BD8:
/* 80021BD8 0001DAF8 80 1C 00 00 */ lwz r0, 0(r28)
/* 80021BDC 0001DAFC 7C 1F 00 2E */ lwzx r0, r31, r0
/* 80021BE0 0001DB00 7C 60 F2 14 */ add r3, r0, r30
/* 80021BE4 0001DB04 88 03 00 00 */ lbz r0, 0(r3)
/* 80021BE8 0001DB08 7C 04 07 74 */ extsb r4, r0
/* 80021BEC 0001DB0C 2C 04 FF FF */ cmpwi r4, -1
/* 80021BF0 0001DB10 41 82 00 30 */ beq lbl_80021C20
/* 80021BF4 0001DB14 88 A3 00 01 */ lbz r5, 1(r3)
/* 80021BF8 0001DB18 38 60 00 01 */ li r3, 1
/* 80021BFC 0001DB1C 7C A5 07 74 */ extsb r5, r5
/* 80021C00 0001DB20 4B FF F5 65 */ bl func_80021164
/* 80021C04 0001DB24 3B 39 00 01 */ addi r25, r25, 1
/* 80021C08 0001DB28 7C 60 07 74 */ extsb r0, r3
/* 80021C0C 0001DB2C B0 1D 00 00 */ sth r0, 0(r29)
/* 80021C10 0001DB30 2C 19 00 08 */ cmpwi r25, 8
/* 80021C14 0001DB34 3B DE 00 02 */ addi r30, r30, 2
/* 80021C18 0001DB38 3B BD 00 02 */ addi r29, r29, 2
/* 80021C1C 0001DB3C 41 80 FF BC */ blt lbl_80021BD8
lbl_80021C20:
/* 80021C20 0001DB40 3B 5A 00 01 */ addi r26, r26, 1
/* 80021C24 0001DB44 2C 1A 00 16 */ cmpwi r26, 0x16
/* 80021C28 0001DB48 3B 7B 02 58 */ addi r27, r27, 0x258
/* 80021C2C 0001DB4C 41 80 FF 88 */ blt lbl_80021BB4
lbl_80021C30:
/* 80021C30 0001DB50 BB 21 00 14 */ lmw r25, 0x14(r1)
/* 80021C34 0001DB54 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80021C38 0001DB58 38 21 00 30 */ addi r1, r1, 0x30
/* 80021C3C 0001DB5C 7C 08 03 A6 */ mtlr r0
/* 80021C40 0001DB60 4E 80 00 20 */ blr
.global func_80021C44
func_80021C44:
/* 80021C44 0001DB64 7C 08 02 A6 */ mflr r0
/* 80021C48 0001DB68 38 A0 00 01 */ li r5, 1
/* 80021C4C 0001DB6C 90 01 00 04 */ stw r0, 4(r1)
/* 80021C50 0001DB70 94 21 FF B8 */ stwu r1, -0x48(r1)
/* 80021C54 0001DB74 93 E1 00 44 */ stw r31, 0x44(r1)
/* 80021C58 0001DB78 7C 7F 1B 78 */ mr r31, r3
/* 80021C5C 0001DB7C A8 03 00 00 */ lha r0, 0(r3)
/* 80021C60 0001DB80 2C 00 FF FF */ cmpwi r0, -1
/* 80021C64 0001DB84 40 82 00 0C */ bne lbl_80021C70
/* 80021C68 0001DB88 38 A0 00 00 */ li r5, 0
/* 80021C6C 0001DB8C 48 00 00 30 */ b lbl_80021C9C
lbl_80021C70:
/* 80021C70 0001DB90 1C 80 00 4C */ mulli r4, r0, 0x4c
/* 80021C74 0001DB94 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 80021C78 0001DB98 38 03 FC 94 */ addi r0, r3, lbl_801EFC94@l
/* 80021C7C 0001DB9C 7C 60 22 14 */ add r3, r0, r4
/* 80021C80 0001DBA0 88 03 00 00 */ lbz r0, 0(r3)
/* 80021C84 0001DBA4 7C 00 07 75 */ extsb. r0, r0
/* 80021C88 0001DBA8 41 82 00 10 */ beq lbl_80021C98
/* 80021C8C 0001DBAC 88 03 00 04 */ lbz r0, 4(r3)
/* 80021C90 0001DBB0 7C 00 07 75 */ extsb. r0, r0
/* 80021C94 0001DBB4 41 82 00 08 */ beq lbl_80021C9C
lbl_80021C98:
/* 80021C98 0001DBB8 38 A0 00 00 */ li r5, 0
lbl_80021C9C:
/* 80021C9C 0001DBBC 2C 05 00 00 */ cmpwi r5, 0
/* 80021CA0 0001DBC0 41 82 00 88 */ beq lbl_80021D28
/* 80021CA4 0001DBC4 38 7F 00 14 */ addi r3, r31, 0x14
/* 80021CA8 0001DBC8 38 81 00 1C */ addi r4, r1, 0x1c
/* 80021CAC 0001DBCC 38 A1 00 20 */ addi r5, r1, 0x20
/* 80021CB0 0001DBD0 38 C1 00 24 */ addi r6, r1, 0x24
/* 80021CB4 0001DBD4 48 0B EB 7D */ bl GXGetLightPos
/* 80021CB8 0001DBD8 38 7F 00 14 */ addi r3, r31, 0x14
/* 80021CBC 0001DBDC 38 81 00 18 */ addi r4, r1, 0x18
/* 80021CC0 0001DBE0 48 0B EB D1 */ bl GXGetLightColor
/* 80021CC4 0001DBE4 38 61 00 1C */ addi r3, r1, 0x1c
/* 80021CC8 0001DBE8 48 06 C8 AD */ bl func_8008E574
/* 80021CCC 0001DBEC 88 A1 00 18 */ lbz r5, 0x18(r1)
/* 80021CD0 0001DBF0 3C 80 43 30 */ lis r4, 0x4330
/* 80021CD4 0001DBF4 88 61 00 19 */ lbz r3, 0x19(r1)
/* 80021CD8 0001DBF8 88 01 00 1A */ lbz r0, 0x1a(r1)
/* 80021CDC 0001DBFC 90 A1 00 3C */ stw r5, 0x3c(r1)
/* 80021CE0 0001DC00 C8 A2 87 D8 */ lfd f5, lbl_802F2FD8@sda21(r2)
/* 80021CE4 0001DC04 90 61 00 34 */ stw r3, 0x34(r1)
/* 80021CE8 0001DC08 C0 62 87 84 */ lfs f3, lbl_802F2F84@sda21(r2)
/* 80021CEC 0001DC0C 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80021CF0 0001DC10 90 81 00 38 */ stw r4, 0x38(r1)
/* 80021CF4 0001DC14 90 81 00 30 */ stw r4, 0x30(r1)
/* 80021CF8 0001DC18 C8 01 00 38 */ lfd f0, 0x38(r1)
/* 80021CFC 0001DC1C 90 81 00 28 */ stw r4, 0x28(r1)
/* 80021D00 0001DC20 C8 21 00 30 */ lfd f1, 0x30(r1)
/* 80021D04 0001DC24 EC 80 28 28 */ fsubs f4, f0, f5
/* 80021D08 0001DC28 C8 01 00 28 */ lfd f0, 0x28(r1)
/* 80021D0C 0001DC2C EC 41 28 28 */ fsubs f2, f1, f5
/* 80021D10 0001DC30 EC 00 28 28 */ fsubs f0, f0, f5
/* 80021D14 0001DC34 EC 24 18 24 */ fdivs f1, f4, f3
/* 80021D18 0001DC38 EC 42 18 24 */ fdivs f2, f2, f3
/* 80021D1C 0001DC3C EC 60 18 24 */ fdivs f3, f0, f3
/* 80021D20 0001DC40 48 06 C8 99 */ bl func_8008E5B8
/* 80021D24 0001DC44 48 00 00 7C */ b lbl_80021DA0
lbl_80021D28:
/* 80021D28 0001DC48 48 07 B8 B1 */ bl func_8009D5D8
/* 80021D2C 0001DC4C 2C 03 00 00 */ cmpwi r3, 0
/* 80021D30 0001DC50 41 82 00 60 */ beq lbl_80021D90
/* 80021D34 0001DC54 3C 60 80 11 */ lis r3, lbl_80110310@ha
/* 80021D38 0001DC58 38 83 03 10 */ addi r4, r3, lbl_80110310@l
/* 80021D3C 0001DC5C 80 64 00 00 */ lwz r3, 0(r4)
/* 80021D40 0001DC60 80 04 00 04 */ lwz r0, 4(r4)
/* 80021D44 0001DC64 90 61 00 0C */ stw r3, 0xc(r1)
/* 80021D48 0001DC68 90 01 00 10 */ stw r0, 0x10(r1)
/* 80021D4C 0001DC6C 80 04 00 08 */ lwz r0, 8(r4)
/* 80021D50 0001DC70 90 01 00 14 */ stw r0, 0x14(r1)
/* 80021D54 0001DC74 4B FE 5A 9D */ bl mathutil_mtxA_push
/* 80021D58 0001DC78 80 6D 9A 5C */ lwz r3, currentCameraStructPtr@sda21(r13)
/* 80021D5C 0001DC7C A8 63 00 1A */ lha r3, 0x1a(r3)
/* 80021D60 0001DC80 4B FE 58 F9 */ bl mathutil_mtxA_from_rotate_y
/* 80021D64 0001DC84 38 61 00 0C */ addi r3, r1, 0xc
/* 80021D68 0001DC88 38 83 00 00 */ addi r4, r3, 0
/* 80021D6C 0001DC8C 4B FE 60 D1 */ bl mathutil_mtxA_tf_vec
/* 80021D70 0001DC90 4B FE 5A C5 */ bl mathutil_mtxA_pop
/* 80021D74 0001DC94 38 61 00 0C */ addi r3, r1, 0xc
/* 80021D78 0001DC98 48 06 C7 FD */ bl func_8008E574
/* 80021D7C 0001DC9C C0 22 87 98 */ lfs f1, lbl_802F2F98@sda21(r2)
/* 80021D80 0001DCA0 FC 40 08 90 */ fmr f2, f1
/* 80021D84 0001DCA4 FC 60 08 90 */ fmr f3, f1
/* 80021D88 0001DCA8 48 06 C8 31 */ bl func_8008E5B8
/* 80021D8C 0001DCAC 48 00 00 14 */ b lbl_80021DA0
lbl_80021D90:
/* 80021D90 0001DCB0 C0 22 87 78 */ lfs f1, lbl_802F2F78@sda21(r2)
/* 80021D94 0001DCB4 FC 40 08 90 */ fmr f2, f1
/* 80021D98 0001DCB8 FC 60 08 90 */ fmr f3, f1
/* 80021D9C 0001DCBC 48 06 C8 1D */ bl func_8008E5B8
lbl_80021DA0:
/* 80021DA0 0001DCC0 80 01 00 4C */ lwz r0, 0x4c(r1)
/* 80021DA4 0001DCC4 83 E1 00 44 */ lwz r31, 0x44(r1)
/* 80021DA8 0001DCC8 38 21 00 48 */ addi r1, r1, 0x48
/* 80021DAC 0001DCCC 7C 08 03 A6 */ mtlr r0
/* 80021DB0 0001DCD0 4E 80 00 20 */ blr
.global func_80021DB4
func_80021DB4:
/* 80021DB4 0001DCD4 7C 08 02 A6 */ mflr r0
/* 80021DB8 0001DCD8 3C 80 80 1F */ lis r4, lbl_801EFC94@ha
/* 80021DBC 0001DCDC 90 01 00 04 */ stw r0, 4(r1)
/* 80021DC0 0001DCE0 38 04 FC 94 */ addi r0, r4, lbl_801EFC94@l
/* 80021DC4 0001DCE4 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80021DC8 0001DCE8 DB E1 00 48 */ stfd f31, 0x48(r1)
/* 80021DCC 0001DCEC DB C1 00 40 */ stfd f30, 0x40(r1)
/* 80021DD0 0001DCF0 DB A1 00 38 */ stfd f29, 0x38(r1)
/* 80021DD4 0001DCF4 DB 81 00 30 */ stfd f28, 0x30(r1)
/* 80021DD8 0001DCF8 BF 41 00 18 */ stmw r26, 0x18(r1)
/* 80021DDC 0001DCFC 7C 7A 1B 78 */ mr r26, r3
/* 80021DE0 0001DD00 7C 1B 03 78 */ mr r27, r0
/* 80021DE4 0001DD04 3B 80 00 00 */ li r28, 0
/* 80021DE8 0001DD08 3B E0 00 03 */ li r31, 3
/* 80021DEC 0001DD0C 3B A0 00 00 */ li r29, 0
/* 80021DF0 0001DD10 3B C0 00 01 */ li r30, 1
/* 80021DF4 0001DD14 C3 82 87 E0 */ lfs f28, lbl_802F2FE0@sda21(r2)
/* 80021DF8 0001DD18 C3 A2 87 98 */ lfs f29, lbl_802F2F98@sda21(r2)
/* 80021DFC 0001DD1C C3 C2 87 78 */ lfs f30, lbl_802F2F78@sda21(r2)
/* 80021E00 0001DD20 C3 E2 87 E4 */ lfs f31, lbl_802F2FE4@sda21(r2)
lbl_80021E04:
/* 80021E04 0001DD24 38 7B 00 00 */ addi r3, r27, 0
/* 80021E08 0001DD28 38 80 00 00 */ li r4, 0
/* 80021E0C 0001DD2C 38 A0 00 4C */ li r5, 0x4c
/* 80021E10 0001DD30 4B FE 15 11 */ bl memset
/* 80021E14 0001DD34 9B BB 00 00 */ stb r29, 0(r27)
/* 80021E18 0001DD38 3B 9C 00 01 */ addi r28, r28, 1
/* 80021E1C 0001DD3C 2C 1C 00 20 */ cmpwi r28, 0x20
/* 80021E20 0001DD40 9B BB 00 01 */ stb r29, 1(r27)
/* 80021E24 0001DD44 B3 BB 00 02 */ sth r29, 2(r27)
/* 80021E28 0001DD48 9B DB 00 04 */ stb r30, 4(r27)
/* 80021E2C 0001DD4C D3 9B 00 38 */ stfs f28, 0x38(r27)
/* 80021E30 0001DD50 D3 BB 00 3C */ stfs f29, 0x3c(r27)
/* 80021E34 0001DD54 D3 DB 00 40 */ stfs f30, 0x40(r27)
/* 80021E38 0001DD58 D3 DB 00 44 */ stfs f30, 0x44(r27)
/* 80021E3C 0001DD5C B3 FB 00 06 */ sth r31, 6(r27)
/* 80021E40 0001DD60 D3 FB 00 48 */ stfs f31, 0x48(r27)
/* 80021E44 0001DD64 3B 7B 00 4C */ addi r27, r27, 0x4c
/* 80021E48 0001DD68 41 80 FF BC */ blt lbl_80021E04
/* 80021E4C 0001DD6C 38 00 00 00 */ li r0, 0
/* 80021E50 0001DD70 90 0D 9A 68 */ stw r0, lbl_802F1C48@sda21(r13)
/* 80021E54 0001DD74 7F 43 D3 78 */ mr r3, r26
/* 80021E58 0001DD78 4B FF F8 B5 */ bl func_8002170C
/* 80021E5C 0001DD7C 3C 60 80 17 */ lis r3, lbl_8017748C@ha
/* 80021E60 0001DD80 3B A3 74 8C */ addi r29, r3, lbl_8017748C@l
/* 80021E64 0001DD84 48 00 00 1C */ b lbl_80021E80
lbl_80021E68:
/* 80021E68 0001DD88 88 1D 00 08 */ lbz r0, 8(r29)
/* 80021E6C 0001DD8C 7C 00 D0 00 */ cmpw r0, r26
/* 80021E70 0001DD90 40 82 00 0C */ bne lbl_80021E7C
/* 80021E74 0001DD94 7F A3 EB 78 */ mr r3, r29
/* 80021E78 0001DD98 48 00 02 C9 */ bl func_80022140
lbl_80021E7C:
/* 80021E7C 0001DD9C 3B BD 00 4C */ addi r29, r29, 0x4c
lbl_80021E80:
/* 80021E80 0001DDA0 88 1D 00 00 */ lbz r0, 0(r29)
/* 80021E84 0001DDA4 7C 00 07 74 */ extsb r0, r0
/* 80021E88 0001DDA8 2C 00 FF FF */ cmpwi r0, -1
/* 80021E8C 0001DDAC 40 82 FF DC */ bne lbl_80021E68
/* 80021E90 0001DDB0 2C 1A 00 00 */ cmpwi r26, 0
/* 80021E94 0001DDB4 40 82 00 0C */ bne lbl_80021EA0
/* 80021E98 0001DDB8 A8 0D 9D 78 */ lha r0, currStageId@sda21(r13)
/* 80021E9C 0001DDBC 48 00 00 08 */ b lbl_80021EA4
lbl_80021EA0:
/* 80021EA0 0001DDC0 7F 40 D3 78 */ mr r0, r26
lbl_80021EA4:
/* 80021EA4 0001DDC4 90 0D 9A 9C */ stw r0, lbl_802F1C7C@sda21(r13)
/* 80021EA8 0001DDC8 BB 41 00 18 */ lmw r26, 0x18(r1)
/* 80021EAC 0001DDCC 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80021EB0 0001DDD0 CB E1 00 48 */ lfd f31, 0x48(r1)
/* 80021EB4 0001DDD4 CB C1 00 40 */ lfd f30, 0x40(r1)
/* 80021EB8 0001DDD8 7C 08 03 A6 */ mtlr r0
/* 80021EBC 0001DDDC CB A1 00 38 */ lfd f29, 0x38(r1)
/* 80021EC0 0001DDE0 CB 81 00 30 */ lfd f28, 0x30(r1)
/* 80021EC4 0001DDE4 38 21 00 50 */ addi r1, r1, 0x50
/* 80021EC8 0001DDE8 4E 80 00 20 */ blr
.global func_80021ECC
func_80021ECC:
/* 80021ECC 0001DDEC 7C 08 02 A6 */ mflr r0
/* 80021ED0 0001DDF0 3C 60 80 1F */ lis r3, lbl_801EFC88@ha
/* 80021ED4 0001DDF4 90 01 00 04 */ stw r0, 4(r1)
/* 80021ED8 0001DDF8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021EDC 0001DDFC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021EE0 0001DE00 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80021EE4 0001DE04 3B C3 FC 88 */ addi r30, r3, lbl_801EFC88@l
/* 80021EE8 0001DE08 3C 60 80 17 */ lis r3, lbl_80177358@ha
/* 80021EEC 0001DE0C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80021EF0 0001DE10 3B A0 00 00 */ li r29, 0
/* 80021EF4 0001DE14 3B E3 73 58 */ addi r31, r3, lbl_80177358@l
/* 80021EF8 0001DE18 93 81 00 10 */ stw r28, 0x10(r1)
/* 80021EFC 0001DE1C 93 AD 9A 78 */ stw r29, lbl_802F1C58@sda21(r13)
/* 80021F00 0001DE20 C0 3E 09 A0 */ lfs f1, 0x9a0(r30)
/* 80021F04 0001DE24 C0 5E 09 A4 */ lfs f2, 0x9a4(r30)
/* 80021F08 0001DE28 C0 7E 09 A8 */ lfs f3, 0x9a8(r30)
/* 80021F0C 0001DE2C 4B FE C5 1D */ bl func_8000E428
/* 80021F10 0001DE30 4B FE C4 AD */ bl func_8000E3BC
/* 80021F14 0001DE34 93 AD 9A 68 */ stw r29, lbl_802F1C48@sda21(r13)
/* 80021F18 0001DE38 3B 9E 00 0C */ addi r28, r30, 0xc
/* 80021F1C 0001DE3C 3B A0 00 00 */ li r29, 0
lbl_80021F20:
/* 80021F20 0001DE40 88 1C 00 00 */ lbz r0, 0(r28)
/* 80021F24 0001DE44 7C 00 07 75 */ extsb. r0, r0
/* 80021F28 0001DE48 41 82 00 14 */ beq lbl_80021F3C
/* 80021F2C 0001DE4C 7F 83 E3 78 */ mr r3, r28
/* 80021F30 0001DE50 4B FF F3 79 */ bl func_800212A8
/* 80021F34 0001DE54 38 1D 00 01 */ addi r0, r29, 1
/* 80021F38 0001DE58 90 0D 9A 68 */ stw r0, lbl_802F1C48@sda21(r13)
lbl_80021F3C:
/* 80021F3C 0001DE5C 3B BD 00 01 */ addi r29, r29, 1
/* 80021F40 0001DE60 2C 1D 00 20 */ cmpwi r29, 0x20
/* 80021F44 0001DE64 3B 9C 00 4C */ addi r28, r28, 0x4c
/* 80021F48 0001DE68 41 80 FF D8 */ blt lbl_80021F20
/* 80021F4C 0001DE6C 38 00 FF FF */ li r0, -1
/* 80021F50 0001DE70 90 0D 9A B8 */ stw r0, lbl_802F1C98@sda21(r13)
/* 80021F54 0001DE74 38 60 00 00 */ li r3, 0
/* 80021F58 0001DE78 90 0D 9A 6C */ stw r0, lbl_802F1C4C@sda21(r13)
/* 80021F5C 0001DE7C 90 1E 00 00 */ stw r0, 0(r30)
/* 80021F60 0001DE80 90 1E 00 04 */ stw r0, 4(r30)
/* 80021F64 0001DE84 90 1E 00 08 */ stw r0, 8(r30)
/* 80021F68 0001DE88 80 0D 9A 98 */ lwz r0, lbl_802F1C78@sda21(r13)
/* 80021F6C 0001DE8C C0 02 87 98 */ lfs f0, lbl_802F2F98@sda21(r2)
/* 80021F70 0001DE90 2C 00 00 00 */ cmpwi r0, 0
/* 80021F74 0001DE94 98 6D 9A 70 */ stb r3, lbl_802F1C50@sda21(r13)
/* 80021F78 0001DE98 D0 0D 9A 74 */ stfs f0, lbl_802F1C54@sda21(r13)
/* 80021F7C 0001DE9C 90 6D 9A 88 */ stw r3, lbl_802F1C68@sda21(r13)
/* 80021F80 0001DEA0 90 6D 9A 84 */ stw r3, lbl_802F1C64@sda21(r13)
/* 80021F84 0001DEA4 90 6D 9A 80 */ stw r3, lbl_802F1C60@sda21(r13)
/* 80021F88 0001DEA8 90 6D 9A 7C */ stw r3, lbl_802F1C5C@sda21(r13)
/* 80021F8C 0001DEAC 40 82 00 08 */ bne lbl_80021F94
/* 80021F90 0001DEB0 4B FF F9 C9 */ bl func_80021958
lbl_80021F94:
/* 80021F94 0001DEB4 4B FE 5A 19 */ bl mathutil_mtxA_from_mtxB
/* 80021F98 0001DEB8 38 60 00 00 */ li r3, 0
/* 80021F9C 0001DEBC 48 00 02 D9 */ bl func_80022274
/* 80021FA0 0001DEC0 80 0D 9A A8 */ lwz r0, lbl_802F1C88@sda21(r13)
/* 80021FA4 0001DEC4 2C 00 00 00 */ cmpwi r0, 0
/* 80021FA8 0001DEC8 41 82 01 24 */ beq lbl_800220CC
/* 80021FAC 0001DECC 80 0D 9A B4 */ lwz r0, lbl_802F1C94@sda21(r13)
/* 80021FB0 0001DED0 4C C6 31 82 */ crclr 6
/* 80021FB4 0001DED4 38 6D 82 0C */ addi r3, r13, lbl_802F03EC@sda21(r13)
/* 80021FB8 0001DED8 1C 00 00 4C */ mulli r0, r0, 0x4c
/* 80021FBC 0001DEDC 7F BE 02 14 */ add r29, r30, r0
/* 80021FC0 0001DEE0 3B BD 00 0C */ addi r29, r29, 0xc
/* 80021FC4 0001DEE4 48 0E 2E 29 */ bl printf
/* 80021FC8 0001DEE8 88 1D 00 01 */ lbz r0, 1(r29)
/* 80021FCC 0001DEEC 3C 7F 00 01 */ addis r3, r31, 1
/* 80021FD0 0001DEF0 88 9D 00 00 */ lbz r4, 0(r29)
/* 80021FD4 0001DEF4 4C C6 31 82 */ crclr 6
/* 80021FD8 0001DEF8 7C 00 07 74 */ extsb r0, r0
/* 80021FDC 0001DEFC 54 00 10 3A */ slwi r0, r0, 2
/* 80021FE0 0001DF00 80 CD 9A B4 */ lwz r6, lbl_802F1C94@sda21(r13)
/* 80021FE4 0001DF04 7C BF 02 14 */ add r5, r31, r0
/* 80021FE8 0001DF08 80 A5 00 98 */ lwz r5, 0x98(r5)
/* 80021FEC 0001DF0C 7C 84 07 74 */ extsb r4, r4
/* 80021FF0 0001DF10 38 63 99 34 */ addi r3, r3, -26316
/* 80021FF4 0001DF14 48 0E 2D F9 */ bl printf
/* 80021FF8 0001DF18 88 1D 00 04 */ lbz r0, 4(r29)
/* 80021FFC 0001DF1C 3C 7F 00 01 */ addis r3, r31, 1
/* 80022000 0001DF20 A8 BD 00 06 */ lha r5, 6(r29)
/* 80022004 0001DF24 4C C6 31 82 */ crclr 6
/* 80022008 0001DF28 7C 00 07 74 */ extsb r0, r0
/* 8002200C 0001DF2C 54 00 10 3A */ slwi r0, r0, 2
/* 80022010 0001DF30 A8 CD 9D 78 */ lha r6, currStageId@sda21(r13)
/* 80022014 0001DF34 7C 9F 02 14 */ add r4, r31, r0
/* 80022018 0001DF38 80 84 00 5C */ lwz r4, 0x5c(r4)
/* 8002201C 0001DF3C 38 63 99 48 */ addi r3, r3, -26296
/* 80022020 0001DF40 48 0E 2D CD */ bl printf
/* 80022024 0001DF44 3C 7F 00 01 */ addis r3, r31, 1
/* 80022028 0001DF48 C0 3D 00 0C */ lfs f1, 0xc(r29)
/* 8002202C 0001DF4C C0 5D 00 10 */ lfs f2, 0x10(r29)
/* 80022030 0001DF50 4C C6 32 42 */ crset 6
/* 80022034 0001DF54 C0 7D 00 14 */ lfs f3, 0x14(r29)
/* 80022038 0001DF58 38 63 99 5C */ addi r3, r3, -26276
/* 8002203C 0001DF5C 48 0E 2D B1 */ bl printf
/* 80022040 0001DF60 3C 7F 00 01 */ addis r3, r31, 1
/* 80022044 0001DF64 C0 3D 00 18 */ lfs f1, 0x18(r29)
/* 80022048 0001DF68 C0 5D 00 1C */ lfs f2, 0x1c(r29)
/* 8002204C 0001DF6C 4C C6 32 42 */ crset 6
/* 80022050 0001DF70 C0 7D 00 20 */ lfs f3, 0x20(r29)
/* 80022054 0001DF74 38 63 99 5C */ addi r3, r3, -26276
/* 80022058 0001DF78 48 0E 2D 95 */ bl printf
/* 8002205C 0001DF7C 3C 7F 00 01 */ addis r3, r31, 1
/* 80022060 0001DF80 A8 9D 00 24 */ lha r4, 0x24(r29)
/* 80022064 0001DF84 A8 BD 00 26 */ lha r5, 0x26(r29)
/* 80022068 0001DF88 4C C6 32 42 */ crset 6
/* 8002206C 0001DF8C A8 DD 00 28 */ lha r6, 0x28(r29)
/* 80022070 0001DF90 38 63 99 70 */ addi r3, r3, -26256
/* 80022074 0001DF94 C0 3D 00 2C */ lfs f1, 0x2c(r29)
/* 80022078 0001DF98 C0 5D 00 30 */ lfs f2, 0x30(r29)
/* 8002207C 0001DF9C C0 7D 00 34 */ lfs f3, 0x34(r29)
/* 80022080 0001DFA0 48 0E 2D 6D */ bl printf
/* 80022084 0001DFA4 3C 7F 00 01 */ addis r3, r31, 1
/* 80022088 0001DFA8 C0 3D 00 38 */ lfs f1, 0x38(r29)
/* 8002208C 0001DFAC C0 5D 00 3C */ lfs f2, 0x3c(r29)
/* 80022090 0001DFB0 4C C6 32 42 */ crset 6
/* 80022094 0001DFB4 C0 7D 00 40 */ lfs f3, 0x40(r29)
/* 80022098 0001DFB8 38 63 99 94 */ addi r3, r3, -26220
/* 8002209C 0001DFBC 48 0E 2D 51 */ bl printf
/* 800220A0 0001DFC0 3C 7F 00 01 */ addis r3, r31, 1
/* 800220A4 0001DFC4 C0 3D 00 44 */ lfs f1, 0x44(r29)
/* 800220A8 0001DFC8 C0 5D 00 48 */ lfs f2, 0x48(r29)
/* 800220AC 0001DFCC 4C C6 32 42 */ crset 6
/* 800220B0 0001DFD0 38 63 99 A4 */ addi r3, r3, -26204
/* 800220B4 0001DFD4 48 0E 2D 39 */ bl printf
/* 800220B8 0001DFD8 38 6D 82 10 */ addi r3, r13, lbl_802F03F0@sda21(r13)
/* 800220BC 0001DFDC 4C C6 31 82 */ crclr 6
/* 800220C0 0001DFE0 48 0E 2D 2D */ bl printf
/* 800220C4 0001DFE4 38 00 00 00 */ li r0, 0
/* 800220C8 0001DFE8 90 0D 9A A8 */ stw r0, lbl_802F1C88@sda21(r13)
lbl_800220CC:
/* 800220CC 0001DFEC 80 0D 9A A4 */ lwz r0, lbl_802F1C84@sda21(r13)
/* 800220D0 0001DFF0 2C 00 00 00 */ cmpwi r0, 0
/* 800220D4 0001DFF4 41 82 00 4C */ beq lbl_80022120
/* 800220D8 0001DFF8 80 6D 9A 9C */ lwz r3, lbl_802F1C7C@sda21(r13)
/* 800220DC 0001DFFC A8 0D 9D 78 */ lha r0, currStageId@sda21(r13)
/* 800220E0 0001E000 7C 03 00 00 */ cmpw r3, r0
/* 800220E4 0001E004 40 82 00 30 */ bne lbl_80022114
/* 800220E8 0001E008 80 6D 9A B4 */ lwz r3, lbl_802F1C94@sda21(r13)
/* 800220EC 0001E00C 38 A0 00 4C */ li r5, 0x4c
/* 800220F0 0001E010 80 0D 9A A0 */ lwz r0, lbl_802F1C80@sda21(r13)
/* 800220F4 0001E014 1C 63 00 4C */ mulli r3, r3, 0x4c
/* 800220F8 0001E018 1C 00 00 4C */ mulli r0, r0, 0x4c
/* 800220FC 0001E01C 7C 7E 1A 14 */ add r3, r30, r3
/* 80022100 0001E020 7C 9E 02 14 */ add r4, r30, r0
/* 80022104 0001E024 38 63 00 0C */ addi r3, r3, 0xc
/* 80022108 0001E028 38 84 00 0C */ addi r4, r4, 0xc
/* 8002210C 0001E02C 4B FE 13 09 */ bl memcpy
/* 80022110 0001E030 48 00 00 08 */ b lbl_80022118
lbl_80022114:
/* 80022114 0001E034 4B FF EF E9 */ bl func_800210FC
lbl_80022118:
/* 80022118 0001E038 38 00 00 00 */ li r0, 0
/* 8002211C 0001E03C 90 0D 9A A4 */ stw r0, lbl_802F1C84@sda21(r13)
lbl_80022120:
/* 80022120 0001E040 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80022124 0001E044 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80022128 0001E048 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8002212C 0001E04C 7C 08 03 A6 */ mtlr r0
/* 80022130 0001E050 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80022134 0001E054 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80022138 0001E058 38 21 00 20 */ addi r1, r1, 0x20
/* 8002213C 0001E05C 4E 80 00 20 */ blr
.global func_80022140
func_80022140:
/* 80022140 0001E060 7C 08 02 A6 */ mflr r0
/* 80022144 0001E064 90 01 00 04 */ stw r0, 4(r1)
/* 80022148 0001E068 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8002214C 0001E06C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80022150 0001E070 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80022154 0001E074 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80022158 0001E078 7C 7D 1B 78 */ mr r29, r3
/* 8002215C 0001E07C 88 83 00 01 */ lbz r4, 1(r3)
/* 80022160 0001E080 38 60 00 00 */ li r3, 0
/* 80022164 0001E084 A8 BD 00 02 */ lha r5, 2(r29)
/* 80022168 0001E088 7C 84 07 74 */ extsb r4, r4
/* 8002216C 0001E08C 4B FF EF F9 */ bl func_80021164
/* 80022170 0001E090 7C 7F 07 74 */ extsb r31, r3
/* 80022174 0001E094 2C 1F FF FF */ cmpwi r31, -1
/* 80022178 0001E098 40 82 00 0C */ bne lbl_80022184
/* 8002217C 0001E09C 38 60 00 00 */ li r3, 0
/* 80022180 0001E0A0 48 00 00 88 */ b lbl_80022208
lbl_80022184:
/* 80022184 0001E0A4 1C 9F 00 4C */ mulli r4, r31, 0x4c
/* 80022188 0001E0A8 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 8002218C 0001E0AC 38 03 FC 94 */ addi r0, r3, lbl_801EFC94@l
/* 80022190 0001E0B0 7F C0 22 14 */ add r30, r0, r4
/* 80022194 0001E0B4 38 7E 00 00 */ addi r3, r30, 0
/* 80022198 0001E0B8 38 9D 00 00 */ addi r4, r29, 0
/* 8002219C 0001E0BC 38 A0 00 4C */ li r5, 0x4c
/* 800221A0 0001E0C0 4B FE 12 75 */ bl memcpy
/* 800221A4 0001E0C4 38 00 00 01 */ li r0, 1
/* 800221A8 0001E0C8 98 1E 00 00 */ stb r0, 0(r30)
/* 800221AC 0001E0CC C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 800221B0 0001E0D0 C0 3D 00 3C */ lfs f1, 0x3c(r29)
/* 800221B4 0001E0D4 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 800221B8 0001E0D8 40 82 00 08 */ bne lbl_800221C0
/* 800221BC 0001E0DC C0 22 87 98 */ lfs f1, lbl_802F2F98@sda21(r2)
lbl_800221C0:
/* 800221C0 0001E0E0 D0 3E 00 3C */ stfs f1, 0x3c(r30)
/* 800221C4 0001E0E4 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 800221C8 0001E0E8 C0 3D 00 40 */ lfs f1, 0x40(r29)
/* 800221CC 0001E0EC FC 00 08 00 */ fcmpu cr0, f0, f1
/* 800221D0 0001E0F0 40 82 00 08 */ bne lbl_800221D8
/* 800221D4 0001E0F4 48 00 00 08 */ b lbl_800221DC
lbl_800221D8:
/* 800221D8 0001E0F8 FC 00 08 90 */ fmr f0, f1
lbl_800221DC:
/* 800221DC 0001E0FC D0 1E 00 40 */ stfs f0, 0x40(r30)
/* 800221E0 0001E100 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 800221E4 0001E104 C0 3D 00 44 */ lfs f1, 0x44(r29)
/* 800221E8 0001E108 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 800221EC 0001E10C 40 82 00 08 */ bne lbl_800221F4
/* 800221F0 0001E110 48 00 00 08 */ b lbl_800221F8
lbl_800221F4:
/* 800221F4 0001E114 FC 00 08 90 */ fmr f0, f1
lbl_800221F8:
/* 800221F8 0001E118 D0 1E 00 44 */ stfs f0, 0x44(r30)
/* 800221FC 0001E11C 38 1F 00 01 */ addi r0, r31, 1
/* 80022200 0001E120 38 60 00 01 */ li r3, 1
/* 80022204 0001E124 90 0D 9A 68 */ stw r0, lbl_802F1C48@sda21(r13)
lbl_80022208:
/* 80022208 0001E128 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002220C 0001E12C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80022210 0001E130 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80022214 0001E134 7C 08 03 A6 */ mtlr r0
/* 80022218 0001E138 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8002221C 0001E13C 38 21 00 20 */ addi r1, r1, 0x20
/* 80022220 0001E140 4E 80 00 20 */ blr
/* 80022224 0001E144 7C 08 02 A6 */ mflr r0
/* 80022228 0001E148 38 A4 00 00 */ addi r5, r4, 0
/* 8002222C 0001E14C 90 01 00 04 */ stw r0, 4(r1)
/* 80022230 0001E150 38 83 00 00 */ addi r4, r3, 0
/* 80022234 0001E154 38 60 00 01 */ li r3, 1
/* 80022238 0001E158 94 21 FF F8 */ stwu r1, -8(r1)
/* 8002223C 0001E15C 4B FF EF 29 */ bl func_80021164
/* 80022240 0001E160 7C 63 07 74 */ extsb r3, r3
/* 80022244 0001E164 2C 03 FF FF */ cmpwi r3, -1
/* 80022248 0001E168 40 82 00 0C */ bne lbl_80022254
/* 8002224C 0001E16C 38 60 00 00 */ li r3, 0
/* 80022250 0001E170 48 00 00 14 */ b lbl_80022264
lbl_80022254:
/* 80022254 0001E174 1C 83 00 4C */ mulli r4, r3, 0x4c
/* 80022258 0001E178 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 8002225C 0001E17C 38 03 FC 94 */ addi r0, r3, lbl_801EFC94@l
/* 80022260 0001E180 7C 60 22 14 */ add r3, r0, r4
lbl_80022264:
/* 80022264 0001E184 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80022268 0001E188 38 21 00 08 */ addi r1, r1, 8
/* 8002226C 0001E18C 7C 08 03 A6 */ mtlr r0
/* 80022270 0001E190 4E 80 00 20 */ blr
.global func_80022274
func_80022274:
/* 80022274 0001E194 7C 08 02 A6 */ mflr r0
/* 80022278 0001E198 90 01 00 04 */ stw r0, 4(r1)
/* 8002227C 0001E19C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80022280 0001E1A0 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 80022284 0001E1A4 3B 63 00 00 */ addi r27, r3, 0
/* 80022288 0001E1A8 38 60 00 00 */ li r3, 0
/* 8002228C 0001E1AC 48 00 4E 1D */ bl perf_init_timer
/* 80022290 0001E1B0 80 AD 9A 88 */ lwz r5, lbl_802F1C68@sda21(r13)
/* 80022294 0001E1B4 3C 60 80 1F */ lis r3, lbl_801F065C@ha
/* 80022298 0001E1B8 1C 9B 02 58 */ mulli r4, r27, 0x258
/* 8002229C 0001E1BC 93 6D 9A B8 */ stw r27, lbl_802F1C98@sda21(r13)
/* 800222A0 0001E1C0 38 03 06 5C */ addi r0, r3, lbl_801F065C@l
/* 800222A4 0001E1C4 38 65 00 01 */ addi r3, r5, 1
/* 800222A8 0001E1C8 90 6D 9A 88 */ stw r3, lbl_802F1C68@sda21(r13)
/* 800222AC 0001E1CC 7F C0 22 14 */ add r30, r0, r4
/* 800222B0 0001E1D0 3C 60 80 11 */ lis r3, lbl_80110260@ha
/* 800222B4 0001E1D4 38 03 02 60 */ addi r0, r3, lbl_80110260@l
/* 800222B8 0001E1D8 57 64 18 38 */ slwi r4, r27, 3
/* 800222BC 0001E1DC 7F E0 22 14 */ add r31, r0, r4
/* 800222C0 0001E1E0 38 7E 02 24 */ addi r3, r30, 0x224
/* 800222C4 0001E1E4 4B FE 55 B5 */ bl mathutil_mtxA_to_mtx
/* 800222C8 0001E1E8 80 7F 00 00 */ lwz r3, 0(r31)
/* 800222CC 0001E1EC 80 0D 9A 6C */ lwz r0, lbl_802F1C4C@sda21(r13)
/* 800222D0 0001E1F0 7C 03 00 00 */ cmpw r3, r0
/* 800222D4 0001E1F4 40 82 00 10 */ bne lbl_800222E4
/* 800222D8 0001E1F8 80 1F 00 04 */ lwz r0, 4(r31)
/* 800222DC 0001E1FC 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 800222E0 0001E200 41 82 00 8C */ beq lbl_8002236C
lbl_800222E4:
/* 800222E4 0001E204 38 00 00 00 */ li r0, 0
/* 800222E8 0001E208 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 800222EC 0001E20C 90 1E 02 14 */ stw r0, 0x214(r30)
/* 800222F0 0001E210 3B 9E 00 00 */ addi r28, r30, 0
/* 800222F4 0001E214 3B A3 FC 94 */ addi r29, r3, lbl_801EFC94@l
/* 800222F8 0001E218 3B 60 00 00 */ li r27, 0
lbl_800222FC:
/* 800222FC 0001E21C A8 1C 00 00 */ lha r0, 0(r28)
/* 80022300 0001E220 2C 00 FF FF */ cmpwi r0, -1
/* 80022304 0001E224 41 82 00 48 */ beq lbl_8002234C
/* 80022308 0001E228 1C 00 00 4C */ mulli r0, r0, 0x4c
/* 8002230C 0001E22C 7C 7D 02 14 */ add r3, r29, r0
/* 80022310 0001E230 88 03 00 00 */ lbz r0, 0(r3)
/* 80022314 0001E234 38 A3 00 00 */ addi r5, r3, 0
/* 80022318 0001E238 7C 00 07 75 */ extsb. r0, r0
/* 8002231C 0001E23C 41 82 00 30 */ beq lbl_8002234C
/* 80022320 0001E240 38 7E 00 00 */ addi r3, r30, 0
/* 80022324 0001E244 38 9B 00 00 */ addi r4, r27, 0
/* 80022328 0001E248 4B FF F0 71 */ bl func_80021398
/* 8002232C 0001E24C 38 00 00 01 */ li r0, 1
/* 80022330 0001E250 80 7E 02 14 */ lwz r3, 0x214(r30)
/* 80022334 0001E254 7C 00 D8 30 */ slw r0, r0, r27
/* 80022338 0001E258 7C 60 03 78 */ or r0, r3, r0
/* 8002233C 0001E25C 90 1E 02 14 */ stw r0, 0x214(r30)
/* 80022340 0001E260 80 6D 9A 84 */ lwz r3, lbl_802F1C64@sda21(r13)
/* 80022344 0001E264 38 03 00 01 */ addi r0, r3, 1
/* 80022348 0001E268 90 0D 9A 84 */ stw r0, lbl_802F1C64@sda21(r13)
lbl_8002234C:
/* 8002234C 0001E26C 3B 7B 00 01 */ addi r27, r27, 1
/* 80022350 0001E270 2C 1B 00 08 */ cmpwi r27, 8
/* 80022354 0001E274 3B 9C 00 02 */ addi r28, r28, 2
/* 80022358 0001E278 41 80 FF A4 */ blt lbl_800222FC
/* 8002235C 0001E27C 80 7E 02 14 */ lwz r3, 0x214(r30)
/* 80022360 0001E280 48 01 17 D5 */ bl func_80033B34
/* 80022364 0001E284 80 7E 02 14 */ lwz r3, 0x214(r30)
/* 80022368 0001E288 48 06 C2 05 */ bl func_8008E56C
lbl_8002236C:
/* 8002236C 0001E28C 80 7F 00 00 */ lwz r3, 0(r31)
/* 80022370 0001E290 80 0D 9A 6C */ lwz r0, lbl_802F1C4C@sda21(r13)
/* 80022374 0001E294 7C 03 00 00 */ cmpw r3, r0
/* 80022378 0001E298 40 82 00 10 */ bne lbl_80022388
/* 8002237C 0001E29C 80 1F 00 04 */ lwz r0, 4(r31)
/* 80022380 0001E2A0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 80022384 0001E2A4 41 82 00 14 */ beq lbl_80022398
lbl_80022388:
/* 80022388 0001E2A8 C0 3E 02 18 */ lfs f1, 0x218(r30)
/* 8002238C 0001E2AC C0 5E 02 1C */ lfs f2, 0x21c(r30)
/* 80022390 0001E2B0 C0 7E 02 20 */ lfs f3, 0x220(r30)
/* 80022394 0001E2B4 48 00 02 81 */ bl func_80022614
lbl_80022398:
/* 80022398 0001E2B8 7F C3 F3 78 */ mr r3, r30
/* 8002239C 0001E2BC 4B FF F8 A9 */ bl func_80021C44
/* 800223A0 0001E2C0 80 1F 00 00 */ lwz r0, 0(r31)
/* 800223A4 0001E2C4 38 60 00 00 */ li r3, 0
/* 800223A8 0001E2C8 90 0D 9A 6C */ stw r0, lbl_802F1C4C@sda21(r13)
/* 800223AC 0001E2CC 48 00 4D 3D */ bl perf_stop_timer
/* 800223B0 0001E2D0 80 0D 9A 78 */ lwz r0, lbl_802F1C58@sda21(r13)
/* 800223B4 0001E2D4 7C 00 1A 14 */ add r0, r0, r3
/* 800223B8 0001E2D8 90 0D 9A 78 */ stw r0, lbl_802F1C58@sda21(r13)
/* 800223BC 0001E2DC 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800223C0 0001E2E0 BB 61 00 14 */ lmw r27, 0x14(r1)
/* 800223C4 0001E2E4 38 21 00 28 */ addi r1, r1, 0x28
/* 800223C8 0001E2E8 7C 08 03 A6 */ mtlr r0
/* 800223CC 0001E2EC 4E 80 00 20 */ blr
.global func_800223D0
func_800223D0:
/* 800223D0 0001E2F0 80 6D 9A B8 */ lwz r3, lbl_802F1C98@sda21(r13)
/* 800223D4 0001E2F4 4E 80 00 20 */ blr
.global func_800223D8
func_800223D8:
/* 800223D8 0001E2F8 7C 08 02 A6 */ mflr r0
/* 800223DC 0001E2FC 90 01 00 04 */ stw r0, 4(r1)
/* 800223E0 0001E300 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 800223E4 0001E304 BF 61 00 14 */ stmw r27, 0x14(r1)
/* 800223E8 0001E308 3B 63 00 00 */ addi r27, r3, 0
/* 800223EC 0001E30C 38 60 00 00 */ li r3, 0
/* 800223F0 0001E310 48 00 4C B9 */ bl perf_init_timer
/* 800223F4 0001E314 80 8D 9A 80 */ lwz r4, lbl_802F1C60@sda21(r13)
/* 800223F8 0001E318 3C 60 80 11 */ lis r3, lbl_80110260@ha
/* 800223FC 0001E31C 93 6D 9A B8 */ stw r27, lbl_802F1C98@sda21(r13)
/* 80022400 0001E320 38 63 02 60 */ addi r3, r3, lbl_80110260@l
/* 80022404 0001E324 38 04 00 01 */ addi r0, r4, 1
/* 80022408 0001E328 90 0D 9A 80 */ stw r0, lbl_802F1C60@sda21(r13)
/* 8002240C 0001E32C 57 64 18 38 */ slwi r4, r27, 3
/* 80022410 0001E330 7F A3 22 14 */ add r29, r3, r4
/* 80022414 0001E334 80 0D 9A 6C */ lwz r0, lbl_802F1C4C@sda21(r13)
/* 80022418 0001E338 80 7D 00 00 */ lwz r3, 0(r29)
/* 8002241C 0001E33C 1C DB 02 58 */ mulli r6, r27, 0x258
/* 80022420 0001E340 3C A0 80 1F */ lis r5, lbl_801F065C@ha
/* 80022424 0001E344 38 85 06 5C */ addi r4, r5, lbl_801F065C@l
/* 80022428 0001E348 7C 03 00 00 */ cmpw r3, r0
/* 8002242C 0001E34C 7F 64 32 14 */ add r27, r4, r6
/* 80022430 0001E350 40 82 00 10 */ bne lbl_80022440
/* 80022434 0001E354 80 1D 00 04 */ lwz r0, 4(r29)
/* 80022438 0001E358 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8002243C 0001E35C 41 82 00 58 */ beq lbl_80022494
lbl_80022440:
/* 80022440 0001E360 3B 80 00 00 */ li r28, 0
/* 80022444 0001E364 57 80 30 32 */ slwi r0, r28, 6
/* 80022448 0001E368 7F DB 02 14 */ add r30, r27, r0
/* 8002244C 0001E36C 3B E0 00 01 */ li r31, 1
lbl_80022450:
/* 80022450 0001E370 80 1B 02 14 */ lwz r0, 0x214(r27)
/* 80022454 0001E374 7F E4 E0 30 */ slw r4, r31, r28
/* 80022458 0001E378 7C 00 20 39 */ and. r0, r0, r4
/* 8002245C 0001E37C 41 82 00 18 */ beq lbl_80022474
/* 80022460 0001E380 38 7E 00 14 */ addi r3, r30, 0x14
/* 80022464 0001E384 48 0B E4 5D */ bl GXLoadLightObjImm
/* 80022468 0001E388 80 6D 9A 7C */ lwz r3, lbl_802F1C5C@sda21(r13)
/* 8002246C 0001E38C 38 03 00 01 */ addi r0, r3, 1
/* 80022470 0001E390 90 0D 9A 7C */ stw r0, lbl_802F1C5C@sda21(r13)
lbl_80022474:
/* 80022474 0001E394 3B 9C 00 01 */ addi r28, r28, 1
/* 80022478 0001E398 2C 1C 00 08 */ cmpwi r28, 8
/* 8002247C 0001E39C 3B DE 00 40 */ addi r30, r30, 0x40
/* 80022480 0001E3A0 41 80 FF D0 */ blt lbl_80022450
/* 80022484 0001E3A4 80 7B 02 14 */ lwz r3, 0x214(r27)
/* 80022488 0001E3A8 48 01 16 AD */ bl func_80033B34
/* 8002248C 0001E3AC 80 7B 02 14 */ lwz r3, 0x214(r27)
/* 80022490 0001E3B0 48 06 C0 DD */ bl func_8008E56C
lbl_80022494:
/* 80022494 0001E3B4 7F 63 DB 78 */ mr r3, r27
/* 80022498 0001E3B8 4B FF F7 AD */ bl func_80021C44
/* 8002249C 0001E3BC 80 1D 00 00 */ lwz r0, 0(r29)
/* 800224A0 0001E3C0 38 60 00 00 */ li r3, 0
/* 800224A4 0001E3C4 90 0D 9A 6C */ stw r0, lbl_802F1C4C@sda21(r13)
/* 800224A8 0001E3C8 48 00 4C 41 */ bl perf_stop_timer
/* 800224AC 0001E3CC 80 0D 9A 78 */ lwz r0, lbl_802F1C58@sda21(r13)
/* 800224B0 0001E3D0 7C 00 1A 14 */ add r0, r0, r3
/* 800224B4 0001E3D4 90 0D 9A 78 */ stw r0, lbl_802F1C58@sda21(r13)
/* 800224B8 0001E3D8 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 800224BC 0001E3DC BB 61 00 14 */ lmw r27, 0x14(r1)
/* 800224C0 0001E3E0 38 21 00 28 */ addi r1, r1, 0x28
/* 800224C4 0001E3E4 7C 08 03 A6 */ mtlr r0
/* 800224C8 0001E3E8 4E 80 00 20 */ blr
.global func_800224CC
func_800224CC:
/* 800224CC 0001E3EC 7C 08 02 A6 */ mflr r0
/* 800224D0 0001E3F0 90 01 00 04 */ stw r0, 4(r1)
/* 800224D4 0001E3F4 94 21 FF F8 */ stwu r1, -8(r1)
/* 800224D8 0001E3F8 88 0D 9A 70 */ lbz r0, lbl_802F1C50@sda21(r13)
/* 800224DC 0001E3FC 7C 00 07 74 */ extsb r0, r0
/* 800224E0 0001E400 2C 00 00 03 */ cmpwi r0, 3
/* 800224E4 0001E404 40 82 00 18 */ bne lbl_800224FC
/* 800224E8 0001E408 3C 60 80 18 */ lis r3, lbl_80180DB0@ha
/* 800224EC 0001E40C 4C C6 31 82 */ crclr 6
/* 800224F0 0001E410 38 63 0D B0 */ addi r3, r3, lbl_80180DB0@l
/* 800224F4 0001E414 48 0E 28 F9 */ bl printf
/* 800224F8 0001E418 48 00 00 28 */ b lbl_80022520
lbl_800224FC:
/* 800224FC 0001E41C 3C 60 80 1F */ lis r3, lbl_801EFC88@ha
/* 80022500 0001E420 80 AD 9A B8 */ lwz r5, lbl_802F1C98@sda21(r13)
/* 80022504 0001E424 54 04 10 3A */ slwi r4, r0, 2
/* 80022508 0001E428 38 03 FC 88 */ addi r0, r3, lbl_801EFC88@l
/* 8002250C 0001E42C 7C 60 22 14 */ add r3, r0, r4
/* 80022510 0001E430 90 A3 00 00 */ stw r5, 0(r3)
/* 80022514 0001E434 88 6D 9A 70 */ lbz r3, lbl_802F1C50@sda21(r13)
/* 80022518 0001E438 38 03 00 01 */ addi r0, r3, 1
/* 8002251C 0001E43C 98 0D 9A 70 */ stb r0, lbl_802F1C50@sda21(r13)
lbl_80022520:
/* 80022520 0001E440 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80022524 0001E444 38 21 00 08 */ addi r1, r1, 8
/* 80022528 0001E448 7C 08 03 A6 */ mtlr r0
/* 8002252C 0001E44C 4E 80 00 20 */ blr
.global func_80022530
func_80022530:
/* 80022530 0001E450 7C 08 02 A6 */ mflr r0
/* 80022534 0001E454 3C 80 80 1F */ lis r4, lbl_801EFC88@ha
/* 80022538 0001E458 90 01 00 04 */ stw r0, 4(r1)
/* 8002253C 0001E45C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80022540 0001E460 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80022544 0001E464 3B E4 FC 88 */ addi r31, r4, lbl_801EFC88@l
/* 80022548 0001E468 88 6D 9A 70 */ lbz r3, lbl_802F1C50@sda21(r13)
/* 8002254C 0001E46C 7C 60 07 75 */ extsb. r0, r3
/* 80022550 0001E470 40 82 00 18 */ bne lbl_80022568
/* 80022554 0001E474 3C 60 80 18 */ lis r3, lbl_80180DE0@ha
/* 80022558 0001E478 4C C6 31 82 */ crclr 6
/* 8002255C 0001E47C 38 63 0D E0 */ addi r3, r3, lbl_80180DE0@l
/* 80022560 0001E480 48 0E 28 8D */ bl printf
/* 80022564 0001E484 48 00 00 48 */ b lbl_800225AC
lbl_80022568:
/* 80022568 0001E488 38 03 FF FF */ addi r0, r3, -1
/* 8002256C 0001E48C 98 0D 9A 70 */ stb r0, lbl_802F1C50@sda21(r13)
/* 80022570 0001E490 4B FE 52 81 */ bl mathutil_mtxA_push
/* 80022574 0001E494 88 0D 9A 70 */ lbz r0, lbl_802F1C50@sda21(r13)
/* 80022578 0001E498 7C 00 07 74 */ extsb r0, r0
/* 8002257C 0001E49C 54 00 10 3A */ slwi r0, r0, 2
/* 80022580 0001E4A0 7C 1F 00 2E */ lwzx r0, r31, r0
/* 80022584 0001E4A4 1C 00 02 58 */ mulli r0, r0, 0x258
/* 80022588 0001E4A8 7C 7F 02 14 */ add r3, r31, r0
/* 8002258C 0001E4AC 38 63 0B F8 */ addi r3, r3, 0xbf8
/* 80022590 0001E4B0 4B FE 53 21 */ bl mathutil_mtxA_from_mtx
/* 80022594 0001E4B4 88 0D 9A 70 */ lbz r0, lbl_802F1C50@sda21(r13)
/* 80022598 0001E4B8 7C 00 07 74 */ extsb r0, r0
/* 8002259C 0001E4BC 54 00 10 3A */ slwi r0, r0, 2
/* 800225A0 0001E4C0 7C 7F 00 2E */ lwzx r3, r31, r0
/* 800225A4 0001E4C4 4B FF FC D1 */ bl func_80022274
/* 800225A8 0001E4C8 4B FE 52 8D */ bl mathutil_mtxA_pop
lbl_800225AC:
/* 800225AC 0001E4CC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800225B0 0001E4D0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800225B4 0001E4D4 38 21 00 10 */ addi r1, r1, 0x10
/* 800225B8 0001E4D8 7C 08 03 A6 */ mtlr r0
/* 800225BC 0001E4DC 4E 80 00 20 */ blr
.global func_800225C0
func_800225C0:
/* 800225C0 0001E4E0 7C 08 02 A6 */ mflr r0
/* 800225C4 0001E4E4 90 01 00 04 */ stw r0, 4(r1)
/* 800225C8 0001E4E8 38 00 FF FF */ li r0, -1
/* 800225CC 0001E4EC 94 21 FF F8 */ stwu r1, -8(r1)
/* 800225D0 0001E4F0 90 0D 9A B8 */ stw r0, lbl_802F1C98@sda21(r13)
/* 800225D4 0001E4F4 90 0D 9A 6C */ stw r0, lbl_802F1C4C@sda21(r13)
/* 800225D8 0001E4F8 4B FE 53 D5 */ bl mathutil_mtxA_from_mtxB
/* 800225DC 0001E4FC 38 60 00 00 */ li r3, 0
/* 800225E0 0001E500 4B FF FC 95 */ bl func_80022274
/* 800225E4 0001E504 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800225E8 0001E508 38 21 00 08 */ addi r1, r1, 8
/* 800225EC 0001E50C 7C 08 03 A6 */ mtlr r0
/* 800225F0 0001E510 4E 80 00 20 */ blr
.global func_800225F4
func_800225F4:
/* 800225F4 0001E514 D0 2D 9A 74 */ stfs f1, lbl_802F1C54@sda21(r13)
/* 800225F8 0001E518 4E 80 00 20 */ blr
.global func_800225FC
func_800225FC:
/* 800225FC 0001E51C 3C 60 80 1F */ lis r3, lbl_801EFC88@ha
/* 80022600 0001E520 38 63 FC 88 */ addi r3, r3, lbl_801EFC88@l
/* 80022604 0001E524 D0 23 09 90 */ stfs f1, 0x990(r3)
/* 80022608 0001E528 D0 43 09 94 */ stfs f2, 0x994(r3)
/* 8002260C 0001E52C D0 63 09 98 */ stfs f3, 0x998(r3)
/* 80022610 0001E530 4E 80 00 20 */ blr
.global func_80022614
func_80022614:
/* 80022614 0001E534 7C 08 02 A6 */ mflr r0
/* 80022618 0001E538 90 01 00 04 */ stw r0, 4(r1)
/* 8002261C 0001E53C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80022620 0001E540 DB E1 00 28 */ stfd f31, 0x28(r1)
/* 80022624 0001E544 FF E0 18 90 */ fmr f31, f3
/* 80022628 0001E548 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 8002262C 0001E54C FF C0 10 90 */ fmr f30, f2
/* 80022630 0001E550 DB A1 00 18 */ stfd f29, 0x18(r1)
/* 80022634 0001E554 FF A0 08 90 */ fmr f29, f1
/* 80022638 0001E558 48 01 15 05 */ bl func_80033B3C
/* 8002263C 0001E55C FC 20 E8 90 */ fmr f1, f29
/* 80022640 0001E560 FC 40 F0 90 */ fmr f2, f30
/* 80022644 0001E564 FC 60 F8 90 */ fmr f3, f31
/* 80022648 0001E568 48 06 BD E1 */ bl func_8008E428
/* 8002264C 0001E56C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80022650 0001E570 CB E1 00 28 */ lfd f31, 0x28(r1)
/* 80022654 0001E574 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 80022658 0001E578 7C 08 03 A6 */ mtlr r0
/* 8002265C 0001E57C CB A1 00 18 */ lfd f29, 0x18(r1)
/* 80022660 0001E580 38 21 00 30 */ addi r1, r1, 0x30
/* 80022664 0001E584 4E 80 00 20 */ blr
.global func_80022668
func_80022668:
/* 80022668 0001E588 80 0D 9A B8 */ lwz r0, lbl_802F1C98@sda21(r13)
/* 8002266C 0001E58C 3C 80 80 1F */ lis r4, lbl_801F065C@ha
/* 80022670 0001E590 38 84 06 5C */ addi r4, r4, lbl_801F065C@l
/* 80022674 0001E594 1C 00 02 58 */ mulli r0, r0, 0x258
/* 80022678 0001E598 7C A4 02 14 */ add r5, r4, r0
/* 8002267C 0001E59C 80 85 02 18 */ lwz r4, 0x218(r5)
/* 80022680 0001E5A0 80 05 02 1C */ lwz r0, 0x21c(r5)
/* 80022684 0001E5A4 90 83 00 00 */ stw r4, 0(r3)
/* 80022688 0001E5A8 90 03 00 04 */ stw r0, 4(r3)
/* 8002268C 0001E5AC 80 05 02 20 */ lwz r0, 0x220(r5)
/* 80022690 0001E5B0 90 03 00 08 */ stw r0, 8(r3)
/* 80022694 0001E5B4 4E 80 00 20 */ blr
.global func_80022698
func_80022698:
/* 80022698 0001E5B8 7C 08 02 A6 */ mflr r0
/* 8002269C 0001E5BC 3C 60 80 1F */ lis r3, lbl_801F065C@ha
/* 800226A0 0001E5C0 90 01 00 04 */ stw r0, 4(r1)
/* 800226A4 0001E5C4 38 03 06 5C */ addi r0, r3, lbl_801F065C@l
/* 800226A8 0001E5C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 800226AC 0001E5CC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 800226B0 0001E5D0 80 8D 9A B8 */ lwz r4, lbl_802F1C98@sda21(r13)
/* 800226B4 0001E5D4 1C 64 02 58 */ mulli r3, r4, 0x258
/* 800226B8 0001E5D8 7C 60 1A 14 */ add r3, r0, r3
/* 800226BC 0001E5DC C0 23 02 18 */ lfs f1, 0x218(r3)
/* 800226C0 0001E5E0 3B E3 02 18 */ addi r31, r3, 0x218
/* 800226C4 0001E5E4 C0 43 02 1C */ lfs f2, 0x21c(r3)
/* 800226C8 0001E5E8 C0 63 02 20 */ lfs f3, 0x220(r3)
/* 800226CC 0001E5EC 48 01 14 71 */ bl func_80033B3C
/* 800226D0 0001E5F0 C0 3F 00 00 */ lfs f1, 0(r31)
/* 800226D4 0001E5F4 C0 5F 00 04 */ lfs f2, 4(r31)
/* 800226D8 0001E5F8 C0 7F 00 08 */ lfs f3, 8(r31)
/* 800226DC 0001E5FC 48 06 BD 4D */ bl func_8008E428
/* 800226E0 0001E600 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800226E4 0001E604 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 800226E8 0001E608 38 21 00 10 */ addi r1, r1, 0x10
/* 800226EC 0001E60C 7C 08 03 A6 */ mtlr r0
/* 800226F0 0001E610 4E 80 00 20 */ blr
.global func_800226F4
func_800226F4:
/* 800226F4 0001E614 7C 08 02 A6 */ mflr r0
/* 800226F8 0001E618 90 01 00 04 */ stw r0, 4(r1)
/* 800226FC 0001E61C 94 21 FF D8 */ stwu r1, -0x28(r1)
/* 80022700 0001E620 93 E1 00 24 */ stw r31, 0x24(r1)
/* 80022704 0001E624 80 0D 9A AC */ lwz r0, lbl_802F1C8C@sda21(r13)
/* 80022708 0001E628 2C 00 00 00 */ cmpwi r0, 0
/* 8002270C 0001E62C 41 82 01 88 */ beq lbl_80022894
/* 80022710 0001E630 80 8D 9A B4 */ lwz r4, lbl_802F1C94@sda21(r13)
/* 80022714 0001E634 3C 60 80 1F */ lis r3, lbl_801EFC94@ha
/* 80022718 0001E638 38 03 FC 94 */ addi r0, r3, lbl_801EFC94@l
/* 8002271C 0001E63C 1C 64 00 4C */ mulli r3, r4, 0x4c
/* 80022720 0001E640 7F E0 1A 14 */ add r31, r0, r3
/* 80022724 0001E644 88 1F 00 04 */ lbz r0, 4(r31)
/* 80022728 0001E648 7C 00 07 74 */ extsb r0, r0
/* 8002272C 0001E64C 28 00 00 08 */ cmplwi r0, 8
/* 80022730 0001E650 41 81 01 64 */ bgt lbl_80022894
/* 80022734 0001E654 3C 60 80 18 */ lis r3, lbl_80180E0C@ha
/* 80022738 0001E658 38 63 0E 0C */ addi r3, r3, lbl_80180E0C@l
/* 8002273C 0001E65C 54 00 10 3A */ slwi r0, r0, 2
/* 80022740 0001E660 7C 03 00 2E */ lwzx r0, r3, r0
/* 80022744 0001E664 7C 09 03 A6 */ mtctr r0
/* 80022748 0001E668 4E 80 04 20 */ bctr
.global lbl_8002274C
lbl_8002274C:
/* 8002274C 0001E66C 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 80022750 0001E670 C0 02 87 98 */ lfs f0, lbl_802F2F98@sda21(r2)
/* 80022754 0001E674 80 63 00 08 */ lwz r3, 8(r3)
/* 80022758 0001E678 38 63 00 18 */ addi r3, r3, 0x18
/* 8002275C 0001E67C D0 03 00 30 */ stfs f0, 0x30(r3)
/* 80022760 0001E680 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 80022764 0001E684 D0 03 00 34 */ stfs f0, 0x34(r3)
/* 80022768 0001E688 D0 03 00 38 */ stfs f0, 0x38(r3)
/* 8002276C 0001E68C 4B FE 52 41 */ bl mathutil_mtxA_from_mtxB
/* 80022770 0001E690 38 7F 00 18 */ addi r3, r31, 0x18
/* 80022774 0001E694 4B FE 55 AD */ bl mathutil_mtxA_translate
/* 80022778 0001E698 C8 22 87 E8 */ lfd f1, lbl_802F2FE8@sda21(r2)
/* 8002277C 0001E69C C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 80022780 0001E6A0 FC 21 00 32 */ fmul f1, f1, f0
/* 80022784 0001E6A4 FC 20 08 18 */ frsp f1, f1
/* 80022788 0001E6A8 4B FE 56 41 */ bl mathutil_mtxA_scale_s
/* 8002278C 0001E6AC C8 22 87 E8 */ lfd f1, lbl_802F2FE8@sda21(r2)
/* 80022790 0001E6B0 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 80022794 0001E6B4 FC 21 00 32 */ fmul f1, f1, f0
/* 80022798 0001E6B8 FC 20 08 18 */ frsp f1, f1
/* 8002279C 0001E6BC 48 00 E4 0D */ bl func_80030BA8
/* 800227A0 0001E6C0 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 800227A4 0001E6C4 C0 22 87 C4 */ lfs f1, lbl_802F2FC4@sda21(r2)
/* 800227A8 0001E6C8 80 63 00 08 */ lwz r3, 8(r3)
/* 800227AC 0001E6CC 48 00 ED 0D */ bl func_800314B8
/* 800227B0 0001E6D0 4B FE 51 FD */ bl mathutil_mtxA_from_mtxB
/* 800227B4 0001E6D4 38 7F 00 18 */ addi r3, r31, 0x18
/* 800227B8 0001E6D8 4B FE 55 69 */ bl mathutil_mtxA_translate
/* 800227BC 0001E6DC 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 800227C0 0001E6E0 80 63 00 08 */ lwz r3, 8(r3)
/* 800227C4 0001E6E4 48 00 EA 4D */ bl func_80031210
/* 800227C8 0001E6E8 48 00 00 CC */ b lbl_80022894
.global lbl_800227CC
lbl_800227CC:
/* 800227CC 0001E6EC 4B FE 51 E1 */ bl mathutil_mtxA_from_mtxB
/* 800227D0 0001E6F0 80 6D 9A 5C */ lwz r3, currentCameraStructPtr@sda21(r13)
/* 800227D4 0001E6F4 38 63 00 0C */ addi r3, r3, 0xc
/* 800227D8 0001E6F8 4B FE 55 49 */ bl mathutil_mtxA_translate
/* 800227DC 0001E6FC A8 7F 00 26 */ lha r3, 0x26(r31)
/* 800227E0 0001E700 4B FE 58 1D */ bl mathutil_mtxA_rotate_y
/* 800227E4 0001E704 A8 7F 00 24 */ lha r3, 0x24(r31)
/* 800227E8 0001E708 4B FE 57 A1 */ bl mathutil_mtxA_rotate_x
/* 800227EC 0001E70C 3C 60 00 01 */ lis r3, 0x00008000@ha
/* 800227F0 0001E710 38 63 80 00 */ addi r3, r3, 0x00008000@l
/* 800227F4 0001E714 4B FE 57 95 */ bl mathutil_mtxA_rotate_x
/* 800227F8 0001E718 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 800227FC 0001E71C 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 80022800 0001E720 48 00 EA 11 */ bl func_80031210
/* 80022804 0001E724 48 00 00 90 */ b lbl_80022894
.global lbl_80022808
lbl_80022808:
/* 80022808 0001E728 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 8002280C 0001E72C C0 02 87 98 */ lfs f0, lbl_802F2F98@sda21(r2)
/* 80022810 0001E730 80 63 00 08 */ lwz r3, 8(r3)
/* 80022814 0001E734 38 63 00 18 */ addi r3, r3, 0x18
/* 80022818 0001E738 D0 03 00 30 */ stfs f0, 0x30(r3)
/* 8002281C 0001E73C C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 80022820 0001E740 D0 03 00 34 */ stfs f0, 0x34(r3)
/* 80022824 0001E744 D0 03 00 38 */ stfs f0, 0x38(r3)
/* 80022828 0001E748 4B FE 51 85 */ bl mathutil_mtxA_from_mtxB
/* 8002282C 0001E74C 38 7F 00 18 */ addi r3, r31, 0x18
/* 80022830 0001E750 4B FE 54 F1 */ bl mathutil_mtxA_translate
/* 80022834 0001E754 C8 22 87 E8 */ lfd f1, lbl_802F2FE8@sda21(r2)
/* 80022838 0001E758 C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 8002283C 0001E75C FC 21 00 32 */ fmul f1, f1, f0
/* 80022840 0001E760 FC 20 08 18 */ frsp f1, f1
/* 80022844 0001E764 4B FE 55 85 */ bl mathutil_mtxA_scale_s
/* 80022848 0001E768 C8 22 87 E8 */ lfd f1, lbl_802F2FE8@sda21(r2)
/* 8002284C 0001E76C C0 1F 00 38 */ lfs f0, 0x38(r31)
/* 80022850 0001E770 FC 21 00 32 */ fmul f1, f1, f0
/* 80022854 0001E774 FC 20 08 18 */ frsp f1, f1
/* 80022858 0001E778 48 00 E3 51 */ bl func_80030BA8
/* 8002285C 0001E77C 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 80022860 0001E780 C0 22 87 C4 */ lfs f1, lbl_802F2FC4@sda21(r2)
/* 80022864 0001E784 80 63 00 08 */ lwz r3, 8(r3)
/* 80022868 0001E788 48 00 EC 51 */ bl func_800314B8
/* 8002286C 0001E78C 4B FE 51 41 */ bl mathutil_mtxA_from_mtxB
/* 80022870 0001E790 38 7F 00 18 */ addi r3, r31, 0x18
/* 80022874 0001E794 4B FE 54 AD */ bl mathutil_mtxA_translate
/* 80022878 0001E798 A8 7F 00 26 */ lha r3, 0x26(r31)
/* 8002287C 0001E79C 4B FE 57 81 */ bl mathutil_mtxA_rotate_y
/* 80022880 0001E7A0 A8 7F 00 24 */ lha r3, 0x24(r31)
/* 80022884 0001E7A4 4B FE 57 05 */ bl mathutil_mtxA_rotate_x
/* 80022888 0001E7A8 80 6D 99 24 */ lwz r3, lbl_802F1B04@sda21(r13)
/* 8002288C 0001E7AC 80 63 00 F0 */ lwz r3, 0xf0(r3)
/* 80022890 0001E7B0 48 00 E9 81 */ bl func_80031210
lbl_80022894:
/* 80022894 0001E7B4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80022898 0001E7B8 83 E1 00 24 */ lwz r31, 0x24(r1)
/* 8002289C 0001E7BC 38 21 00 28 */ addi r1, r1, 0x28
/* 800228A0 0001E7C0 7C 08 03 A6 */ mtlr r0
/* 800228A4 0001E7C4 4E 80 00 20 */ blr
.global func_800228A8
func_800228A8:
/* 800228A8 0001E7C8 7C 08 02 A6 */ mflr r0
/* 800228AC 0001E7CC 3C 80 80 1F */ lis r4, lbl_801EFC88@ha
/* 800228B0 0001E7D0 90 01 00 04 */ stw r0, 4(r1)
/* 800228B4 0001E7D4 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800228B8 0001E7D8 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800228BC 0001E7DC 3B E4 FC 88 */ addi r31, r4, lbl_801EFC88@l
/* 800228C0 0001E7E0 4B FF EE 4D */ bl func_8002170C
/* 800228C4 0001E7E4 C0 1F 09 9C */ lfs f0, 0x99c(r31)
/* 800228C8 0001E7E8 D0 1F 3D 64 */ stfs f0, 0x3d64(r31)
/* 800228CC 0001E7EC C0 1F 09 A0 */ lfs f0, 0x9a0(r31)
/* 800228D0 0001E7F0 D0 1F 3D 68 */ stfs f0, 0x3d68(r31)
/* 800228D4 0001E7F4 C0 1F 09 A4 */ lfs f0, 0x9a4(r31)
/* 800228D8 0001E7F8 D0 1F 3D 6C */ stfs f0, 0x3d6c(r31)
/* 800228DC 0001E7FC C0 1F 09 A8 */ lfs f0, 0x9a8(r31)
/* 800228E0 0001E800 D0 1F 3D 70 */ stfs f0, 0x3d70(r31)
/* 800228E4 0001E804 C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 800228E8 0001E808 D0 1F 09 9C */ stfs f0, 0x99c(r31)
/* 800228EC 0001E80C C0 02 87 D0 */ lfs f0, lbl_802F2FD0@sda21(r2)
/* 800228F0 0001E810 D0 1F 09 A0 */ stfs f0, 0x9a0(r31)
/* 800228F4 0001E814 D0 1F 09 A4 */ stfs f0, 0x9a4(r31)
/* 800228F8 0001E818 D0 1F 09 A8 */ stfs f0, 0x9a8(r31)
/* 800228FC 0001E81C 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80022900 0001E820 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 80022904 0001E824 38 21 00 18 */ addi r1, r1, 0x18
/* 80022908 0001E828 7C 08 03 A6 */ mtlr r0
/* 8002290C 0001E82C 4E 80 00 20 */ blr
.global func_80022910
func_80022910:
/* 80022910 0001E830 7C 08 02 A6 */ mflr r0
/* 80022914 0001E834 3C 80 80 1F */ lis r4, lbl_801EFC88@ha
/* 80022918 0001E838 90 01 00 04 */ stw r0, 4(r1)
/* 8002291C 0001E83C 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 80022920 0001E840 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80022924 0001E844 3B E4 FC 88 */ addi r31, r4, lbl_801EFC88@l
/* 80022928 0001E848 4B FF ED E5 */ bl func_8002170C
/* 8002292C 0001E84C C0 1F 09 9C */ lfs f0, 0x99c(r31)
/* 80022930 0001E850 D0 1F 3D 64 */ stfs f0, 0x3d64(r31)
/* 80022934 0001E854 C0 1F 09 A0 */ lfs f0, 0x9a0(r31)
/* 80022938 0001E858 D0 1F 3D 68 */ stfs f0, 0x3d68(r31)
/* 8002293C 0001E85C C0 1F 09 A4 */ lfs f0, 0x9a4(r31)
/* 80022940 0001E860 D0 1F 3D 6C */ stfs f0, 0x3d6c(r31)
/* 80022944 0001E864 C0 1F 09 A8 */ lfs f0, 0x9a8(r31)
/* 80022948 0001E868 D0 1F 3D 70 */ stfs f0, 0x3d70(r31)
/* 8002294C 0001E86C C0 02 87 78 */ lfs f0, lbl_802F2F78@sda21(r2)
/* 80022950 0001E870 D0 1F 09 9C */ stfs f0, 0x99c(r31)
/* 80022954 0001E874 C0 02 87 C4 */ lfs f0, lbl_802F2FC4@sda21(r2)
/* 80022958 0001E878 D0 1F 09 A0 */ stfs f0, 0x9a0(r31)
/* 8002295C 0001E87C D0 1F 09 A4 */ stfs f0, 0x9a4(r31)
/* 80022960 0001E880 D0 1F 09 A8 */ stfs f0, 0x9a8(r31)
/* 80022964 0001E884 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 80022968 0001E888 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 8002296C 0001E88C 38 21 00 18 */ addi r1, r1, 0x18
/* 80022970 0001E890 7C 08 03 A6 */ mtlr r0
/* 80022974 0001E894 4E 80 00 20 */ blr
.global lbl_80022978
lbl_80022978:
/* 80022978 0001E898 38 00 00 01 */ li r0, 1
/* 8002297C 0001E89C 98 0D 9A C0 */ stb r0, lbl_802F1CA0@sda21(r13)
/* 80022980 0001E8A0 4E 80 00 20 */ blr
.global setup_vtx_attrib_fmt
setup_vtx_attrib_fmt:
/* 80022984 0001E8A4 7C 08 02 A6 */ mflr r0
/* 80022988 0001E8A8 90 01 00 04 */ stw r0, 4(r1)
/* 8002298C 0001E8AC 94 21 FF F8 */ stwu r1, -8(r1)
/* 80022990 0001E8B0 48 0B B9 79 */ bl GXClearVtxDesc
/* 80022994 0001E8B4 48 07 80 15 */ bl func_8009A9A8
/* 80022998 0001E8B8 38 60 00 00 */ li r3, 0
/* 8002299C 0001E8BC 38 80 00 09 */ li r4, 9
/* 800229A0 0001E8C0 38 A0 00 01 */ li r5, 1
/* 800229A4 0001E8C4 38 C0 00 04 */ li r6, 4
/* 800229A8 0001E8C8 38 E0 00 00 */ li r7, 0
/* 800229AC 0001E8CC 48 0B B9 A9 */ bl GXSetVtxAttrFmt
/* 800229B0 0001E8D0 38 60 00 00 */ li r3, 0
/* 800229B4 0001E8D4 38 80 00 0A */ li r4, 0xa
/* 800229B8 0001E8D8 38 A0 00 00 */ li r5, 0
/* 800229BC 0001E8DC 38 C0 00 04 */ li r6, 4
/* 800229C0 0001E8E0 38 E0 00 00 */ li r7, 0
/* 800229C4 0001E8E4 48 0B B9 91 */ bl GXSetVtxAttrFmt
/* 800229C8 0001E8E8 38 60 00 00 */ li r3, 0
/* 800229CC 0001E8EC 38 80 00 0B */ li r4, 0xb
/* 800229D0 0001E8F0 38 A0 00 01 */ li r5, 1
/* 800229D4 0001E8F4 38 C0 00 05 */ li r6, 5
/* 800229D8 0001E8F8 38 E0 00 00 */ li r7, 0
/* 800229DC 0001E8FC 48 0B B9 79 */ bl GXSetVtxAttrFmt
/* 800229E0 0001E900 38 60 00 00 */ li r3, 0
/* 800229E4 0001E904 38 80 00 0D */ li r4, 0xd
/* 800229E8 0001E908 38 A0 00 01 */ li r5, 1
/* 800229EC 0001E90C 38 C0 00 04 */ li r6, 4
/* 800229F0 0001E910 38 E0 00 00 */ li r7, 0
/* 800229F4 0001E914 48 0B B9 61 */ bl GXSetVtxAttrFmt
/* 800229F8 0001E918 38 60 00 00 */ li r3, 0
/* 800229FC 0001E91C 38 80 00 0E */ li r4, 0xe
/* 80022A00 0001E920 38 A0 00 01 */ li r5, 1
/* 80022A04 0001E924 38 C0 00 04 */ li r6, 4
/* 80022A08 0001E928 38 E0 00 00 */ li r7, 0
/* 80022A0C 0001E92C 48 0B B9 49 */ bl GXSetVtxAttrFmt
/* 80022A10 0001E930 38 60 00 00 */ li r3, 0
/* 80022A14 0001E934 38 80 00 0F */ li r4, 0xf
/* 80022A18 0001E938 38 A0 00 01 */ li r5, 1
/* 80022A1C 0001E93C 38 C0 00 04 */ li r6, 4
/* 80022A20 0001E940 38 E0 00 00 */ li r7, 0
/* 80022A24 0001E944 48 0B B9 31 */ bl GXSetVtxAttrFmt
/* 80022A28 0001E948 38 60 00 00 */ li r3, 0
/* 80022A2C 0001E94C 38 80 00 10 */ li r4, 0x10
/* 80022A30 0001E950 38 A0 00 01 */ li r5, 1
/* 80022A34 0001E954 38 C0 00 04 */ li r6, 4
/* 80022A38 0001E958 38 E0 00 00 */ li r7, 0
/* 80022A3C 0001E95C 48 0B B9 19 */ bl GXSetVtxAttrFmt
/* 80022A40 0001E960 38 60 00 00 */ li r3, 0
/* 80022A44 0001E964 38 80 00 11 */ li r4, 0x11
/* 80022A48 0001E968 38 A0 00 01 */ li r5, 1
/* 80022A4C 0001E96C 38 C0 00 04 */ li r6, 4
/* 80022A50 0001E970 38 E0 00 00 */ li r7, 0
/* 80022A54 0001E974 48 0B B9 01 */ bl GXSetVtxAttrFmt
/* 80022A58 0001E978 38 60 00 00 */ li r3, 0
/* 80022A5C 0001E97C 38 80 00 12 */ li r4, 0x12
/* 80022A60 0001E980 38 A0 00 01 */ li r5, 1
/* 80022A64 0001E984 38 C0 00 04 */ li r6, 4
/* 80022A68 0001E988 38 E0 00 00 */ li r7, 0
/* 80022A6C 0001E98C 48 0B B8 E9 */ bl GXSetVtxAttrFmt
/* 80022A70 0001E990 38 60 00 00 */ li r3, 0
/* 80022A74 0001E994 38 80 00 13 */ li r4, 0x13
/* 80022A78 0001E998 38 A0 00 01 */ li r5, 1
/* 80022A7C 0001E99C 38 C0 00 04 */ li r6, 4
/* 80022A80 0001E9A0 38 E0 00 00 */ li r7, 0
/* 80022A84 0001E9A4 48 0B B8 D1 */ bl GXSetVtxAttrFmt
/* 80022A88 0001E9A8 38 60 00 00 */ li r3, 0
/* 80022A8C 0001E9AC 38 80 00 14 */ li r4, 0x14
/* 80022A90 0001E9B0 38 A0 00 01 */ li r5, 1
/* 80022A94 0001E9B4 38 C0 00 04 */ li r6, 4
/* 80022A98 0001E9B8 38 E0 00 00 */ li r7, 0
/* 80022A9C 0001E9BC 48 0B B8 B9 */ bl GXSetVtxAttrFmt
/* 80022AA0 0001E9C0 38 60 00 01 */ li r3, 1
/* 80022AA4 0001E9C4 38 80 00 09 */ li r4, 9
/* 80022AA8 0001E9C8 38 A0 00 01 */ li r5, 1
/* 80022AAC 0001E9CC 38 C0 00 03 */ li r6, 3
/* 80022AB0 0001E9D0 38 E0 00 0D */ li r7, 0xd
/* 80022AB4 0001E9D4 48 0B B8 A1 */ bl GXSetVtxAttrFmt
/* 80022AB8 0001E9D8 38 60 00 01 */ li r3, 1
/* 80022ABC 0001E9DC 38 80 00 0A */ li r4, 0xa
/* 80022AC0 0001E9E0 38 A0 00 00 */ li r5, 0
/* 80022AC4 0001E9E4 38 C0 00 03 */ li r6, 3
/* 80022AC8 0001E9E8 38 E0 00 0E */ li r7, 0xe
/* 80022ACC 0001E9EC 48 0B B8 89 */ bl GXSetVtxAttrFmt
/* 80022AD0 0001E9F0 38 60 00 01 */ li r3, 1
/* 80022AD4 0001E9F4 38 80 00 0B */ li r4, 0xb
/* 80022AD8 0001E9F8 38 A0 00 01 */ li r5, 1
/* 80022ADC 0001E9FC 38 C0 00 05 */ li r6, 5
/* 80022AE0 0001EA00 38 E0 00 00 */ li r7, 0
/* 80022AE4 0001EA04 48 0B B8 71 */ bl GXSetVtxAttrFmt
/* 80022AE8 0001EA08 38 60 00 01 */ li r3, 1
/* 80022AEC 0001EA0C 38 80 00 0D */ li r4, 0xd
/* 80022AF0 0001EA10 38 A0 00 01 */ li r5, 1
/* 80022AF4 0001EA14 38 C0 00 03 */ li r6, 3
/* 80022AF8 0001EA18 38 E0 00 0D */ li r7, 0xd
/* 80022AFC 0001EA1C 48 0B B8 59 */ bl GXSetVtxAttrFmt
/* 80022B00 0001EA20 38 60 00 01 */ li r3, 1
/* 80022B04 0001EA24 38 80 00 0E */ li r4, 0xe
/* 80022B08 0001EA28 38 A0 00 01 */ li r5, 1
/* 80022B0C 0001EA2C 38 C0 00 03 */ li r6, 3
/* 80022B10 0001EA30 38 E0 00 0D */ li r7, 0xd
/* 80022B14 0001EA34 48 0B B8 41 */ bl GXSetVtxAttrFmt
/* 80022B18 0001EA38 38 60 00 01 */ li r3, 1
/* 80022B1C 0001EA3C 38 80 00 0F */ li r4, 0xf
/* 80022B20 0001EA40 38 A0 00 01 */ li r5, 1
/* 80022B24 0001EA44 38 C0 00 03 */ li r6, 3
/* 80022B28 0001EA48 38 E0 00 0D */ li r7, 0xd
/* 80022B2C 0001EA4C 48 0B B8 29 */ bl GXSetVtxAttrFmt
/* 80022B30 0001EA50 38 60 00 01 */ li r3, 1
/* 80022B34 0001EA54 38 80 00 10 */ li r4, 0x10
/* 80022B38 0001EA58 38 A0 00 01 */ li r5, 1
/* 80022B3C 0001EA5C 38 C0 00 04 */ li r6, 4
/* 80022B40 0001EA60 38 E0 00 00 */ li r7, 0
/* 80022B44 0001EA64 48 0B B8 11 */ bl GXSetVtxAttrFmt
/* 80022B48 0001EA68 38 60 00 01 */ li r3, 1
/* 80022B4C 0001EA6C 38 80 00 11 */ li r4, 0x11
/* 80022B50 0001EA70 38 A0 00 01 */ li r5, 1
/* 80022B54 0001EA74 38 C0 00 04 */ li r6, 4
/* 80022B58 0001EA78 38 E0 00 00 */ li r7, 0
/* 80022B5C 0001EA7C 48 0B B7 F9 */ bl GXSetVtxAttrFmt
/* 80022B60 0001EA80 38 60 00 01 */ li r3, 1
/* 80022B64 0001EA84 38 80 00 12 */ li r4, 0x12
/* 80022B68 0001EA88 38 A0 00 01 */ li r5, 1
/* 80022B6C 0001EA8C 38 C0 00 04 */ li r6, 4
/* 80022B70 0001EA90 38 E0 00 00 */ li r7, 0
/* 80022B74 0001EA94 48 0B B7 E1 */ bl GXSetVtxAttrFmt
/* 80022B78 0001EA98 38 60 00 01 */ li r3, 1
/* 80022B7C 0001EA9C 38 80 00 13 */ li r4, 0x13
/* 80022B80 0001EAA0 38 A0 00 01 */ li r5, 1
/* 80022B84 0001EAA4 38 C0 00 04 */ li r6, 4
/* 80022B88 0001EAA8 38 E0 00 00 */ li r7, 0
/* 80022B8C 0001EAAC 48 0B B7 C9 */ bl GXSetVtxAttrFmt
/* 80022B90 0001EAB0 38 60 00 01 */ li r3, 1
/* 80022B94 0001EAB4 38 80 00 14 */ li r4, 0x14
/* 80022B98 0001EAB8 38 A0 00 01 */ li r5, 1
/* 80022B9C 0001EABC 38 C0 00 04 */ li r6, 4
/* 80022BA0 0001EAC0 38 E0 00 00 */ li r7, 0
/* 80022BA4 0001EAC4 48 0B B7 B1 */ bl GXSetVtxAttrFmt
/* 80022BA8 0001EAC8 38 60 00 07 */ li r3, 7
/* 80022BAC 0001EACC 38 80 00 09 */ li r4, 9
/* 80022BB0 0001EAD0 38 A0 00 01 */ li r5, 1
/* 80022BB4 0001EAD4 38 C0 00 04 */ li r6, 4
/* 80022BB8 0001EAD8 38 E0 00 00 */ li r7, 0
/* 80022BBC 0001EADC 48 0B B7 99 */ bl GXSetVtxAttrFmt
/* 80022BC0 0001EAE0 38 60 00 07 */ li r3, 7
/* 80022BC4 0001EAE4 38 80 00 0D */ li r4, 0xd
/* 80022BC8 0001EAE8 38 A0 00 01 */ li r5, 1
/* 80022BCC 0001EAEC 38 C0 00 04 */ li r6, 4
/* 80022BD0 0001EAF0 38 E0 00 00 */ li r7, 0
/* 80022BD4 0001EAF4 48 0B B7 81 */ bl GXSetVtxAttrFmt
/* 80022BD8 0001EAF8 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80022BDC 0001EAFC 38 21 00 08 */ addi r1, r1, 8
/* 80022BE0 0001EB00 7C 08 03 A6 */ mtlr r0
/* 80022BE4 0001EB04 4E 80 00 20 */ blr
.section .sdata2
.global lbl_802F2C18
lbl_802F2C18:
# ROM: 0x1EC638
.4byte 0
.global lbl_802F2C1C
lbl_802F2C1C:
# ROM: 0x1EC63C
.byte 0x3F, 0xAA, 0xAA, 0xAB
.global lbl_802F2C20
lbl_802F2C20:
# ROM: 0x1EC640
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.global lbl_802F2C28
lbl_802F2C28:
# ROM: 0x1EC648
.byte 0x3F, 0xE3, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2C30
lbl_802F2C30:
# ROM: 0x1EC650
.4byte 0
.4byte 0
.global lbl_802F2C38
lbl_802F2C38:
# ROM: 0x1EC658
.byte 0x3F, 0x71, 0x11, 0x11
.byte 0x11, 0x11, 0x11, 0x11
.global lbl_802F2C40
lbl_802F2C40:
# ROM: 0x1EC660
.byte 0xBE, 0xC0, 0x00, 0x00
.4byte 0
.global lbl_802F2C48
lbl_802F2C48:
# ROM: 0x1EC668
.byte 0x40, 0x00, 0x00, 0x00
.4byte 0
.global lbl_802F2C50
lbl_802F2C50:
# ROM: 0x1EC670
.byte 0xBE, 0x99, 0x99, 0x9A
.global lbl_802F2C54
lbl_802F2C54:
# ROM: 0x1EC674
.byte 0xBF, 0x0A, 0x3D, 0x71
.global lbl_802F2C58
lbl_802F2C58:
# ROM: 0x1EC678
.byte 0x43, 0x36, 0x0B, 0x61
.4byte 0
.global lbl_802F2C60
lbl_802F2C60:
# ROM: 0x1EC680
.byte 0x3F, 0xF0, 0x00, 0x00
.4byte 0
.global lbl_802F2C68
lbl_802F2C68:
# ROM: 0x1EC688
.byte 0x43, 0x30, 0x00, 0x00
.byte 0x80, 0x00, 0x00, 0x00
.global lbl_802F2C70
lbl_802F2C70:
# ROM: 0x1EC690
.4byte 0
.global lbl_802F2C74
lbl_802F2C74:
# ROM: 0x1EC694
.4byte 0
.global lbl_802F2C78
lbl_802F2C78:
# ROM: 0x1EC698
.byte 0x42, 0x6F, 0xFC, 0x40
.global lbl_802F2C7C
lbl_802F2C7C:
# ROM: 0x1EC69C
.byte 0x3D, 0xCC, 0xCC, 0xCD
.global lbl_802F2C80
lbl_802F2C80:
# ROM: 0x1EC6A0
.byte 0x46, 0x9C, 0x40, 0x00
.4byte 0
.global lbl_802F2C88
lbl_802F2C88:
# ROM: 0x1EC6A8
.byte 0x43, 0x30, 0x00, 0x00
.4byte 0
.global lbl_802F2C90
lbl_802F2C90:
# ROM: 0x1EC6B0
.byte 0x3F, 0x00, 0x00, 0x00
.global lbl_802F2C94
lbl_802F2C94:
# ROM: 0x1EC6B4
.4byte 0
.global lbl_802F2C98
lbl_802F2C98:
# ROM: 0x1EC6B8
.4byte 0
.global lbl_802F2C9C
lbl_802F2C9C:
# ROM: 0x1EC6BC
.byte 0x3B, 0xB4, 0x00, 0x00
.global lbl_802F2CA0
lbl_802F2CA0:
# ROM: 0x1EC6C0
.byte 0x3E, 0x31, 0x5C, 0xAD
.global lbl_802F2CA4
lbl_802F2CA4:
# ROM: 0x1EC6C4
.4byte 0
.global lbl_802F2CA8
lbl_802F2CA8:
# ROM: 0x1EC6C8
.4byte 0
.global lbl_802F2CAC
lbl_802F2CAC:
# ROM: 0x1EC6CC
.byte 0x41, 0x20, 0x00, 0x00
.global lbl_802F2CB0
lbl_802F2CB0:
# ROM: 0x1EC6D0
.byte 0x3F, 0xE8, 0x00, 0x00
.4byte 0
.global lbl_802F2CB8
lbl_802F2CB8:
# ROM: 0x1EC6D8
.byte 0x3F, 0xEB, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2CC0
lbl_802F2CC0:
# ROM: 0x1EC6E0
.byte 0x43, 0x8C, 0x00, 0x00
.global lbl_802F2CC4
lbl_802F2CC4:
# ROM: 0x1EC6E4
.byte 0x44, 0xD9, 0x80, 0x00
.global lbl_802F2CC8
lbl_802F2CC8:
# ROM: 0x1EC6E8
.byte 0x44, 0xE7, 0x40, 0x00
.global lbl_802F2CCC
lbl_802F2CCC:
# ROM: 0x1EC6EC
.byte 0x44, 0xF4, 0x40, 0x00
.global lbl_802F2CD0
lbl_802F2CD0:
# ROM: 0x1EC6F0
.byte 0x45, 0x01, 0x00, 0x00
.global lbl_802F2CD4
lbl_802F2CD4:
# ROM: 0x1EC6F4
.byte 0x45, 0x1C, 0x20, 0x00
.global lbl_802F2CD8
lbl_802F2CD8:
# ROM: 0x1EC6F8
.byte 0x45, 0x35, 0x60, 0x00
.4byte 0
.global lbl_802F2CE0
lbl_802F2CE0:
# ROM: 0x1EC700
.byte 0x3F, 0xE0, 0x00, 0x00
.4byte 0
.global lbl_802F2CE8
lbl_802F2CE8:
# ROM: 0x1EC708
.byte 0x40, 0x40, 0x00, 0x00
.4byte 0
.global lbl_802F2CF0
lbl_802F2CF0:
# ROM: 0x1EC710
.byte 0xBF, 0xD3, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2CF8
lbl_802F2CF8:
# ROM: 0x1EC718
.byte 0x3F, 0x84, 0x7A, 0xE1
.byte 0x47, 0xAE, 0x14, 0x7B
.global lbl_802F2D00
lbl_802F2D00:
# ROM: 0x1EC720
.byte 0x3F, 0xC9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2D08
lbl_802F2D08:
# ROM: 0x1EC728
.byte 0x3F, 0xD9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2D10
lbl_802F2D10:
# ROM: 0x1EC730
.byte 0x3F, 0xE9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2D18
lbl_802F2D18:
# ROM: 0x1EC738
.byte 0x42, 0x28, 0x00, 0x00
.4byte 0
.global lbl_802F2D20
lbl_802F2D20:
# ROM: 0x1EC740
.byte 0x40, 0x08, 0x00, 0x00
.4byte 0
.global lbl_802F2D28
lbl_802F2D28:
# ROM: 0x1EC748
.byte 0xC0, 0x00, 0x00, 0x00
.4byte 0
.global lbl_802F2D30
lbl_802F2D30:
# ROM: 0x1EC750
.byte 0x40, 0x3F, 0x40, 0x00
.4byte 0
.global lbl_802F2D38
lbl_802F2D38:
# ROM: 0x1EC758
.byte 0x41, 0xFA, 0x00, 0x00
.global lbl_802F2D3C
lbl_802F2D3C:
# ROM: 0x1EC75C
.byte 0x34, 0x00, 0x00, 0x00
.global lbl_802F2D40
lbl_802F2D40:
# ROM: 0x1EC760
.byte 0x3F, 0xB9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2D48
lbl_802F2D48:
# ROM: 0x1EC768
.byte 0x40, 0x14, 0x00, 0x00
.4byte 0
.global lbl_802F2D50
lbl_802F2D50:
# ROM: 0x1EC770
.byte 0x40, 0x22, 0x00, 0x00
.4byte 0
.global lbl_802F2D58
lbl_802F2D58:
# ROM: 0x1EC778
.byte 0x40, 0x65, 0x40, 0x00
.4byte 0
.global lbl_802F2D60
lbl_802F2D60:
# ROM: 0x1EC780
.byte 0x40, 0x52, 0x80, 0x00
.4byte 0
.global lbl_802F2D68
lbl_802F2D68:
# ROM: 0x1EC788
.byte 0x3F, 0xB7, 0x0A, 0x3D
.byte 0x70, 0xA3, 0xD7, 0x0A
.global lbl_802F2D70
lbl_802F2D70:
# ROM: 0x1EC790
.byte 0x3F, 0xD3, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2D78
lbl_802F2D78:
# ROM: 0x1EC798
.byte 0x3F, 0xEF, 0x0A, 0x3D
.byte 0x70, 0xA3, 0xD7, 0x0A
.global lbl_802F2D80
lbl_802F2D80:
# ROM: 0x1EC7A0
.byte 0x3F, 0xEE, 0x8F, 0x5C
.byte 0x28, 0xF5, 0xC2, 0x8F
.global lbl_802F2D88
lbl_802F2D88:
# ROM: 0x1EC7A8
.byte 0x3F, 0xD0, 0x00, 0x00
.4byte 0
.global lbl_802F2D90
lbl_802F2D90:
# ROM: 0x1EC7B0
.byte 0x46, 0xFF, 0xFE, 0x00
.4byte 0
.global lbl_802F2D98
lbl_802F2D98:
# ROM: 0x1EC7B8
.byte 0x3F, 0xEE, 0xE8, 0xDD
.byte 0x47, 0x4A, 0x3F, 0xB5
.global lbl_802F2DA0
lbl_802F2DA0:
# ROM: 0x1EC7C0
.byte 0x3F, 0xD0, 0x90, 0x7D
.byte 0xC1, 0x92, 0x55, 0x2E
.global lbl_802F2DA8
lbl_802F2DA8:
# ROM: 0x1EC7C8
.byte 0x42, 0x70, 0x00, 0x00
.4byte 0
.global lbl_802F2DB0
lbl_802F2DB0:
# ROM: 0x1EC7D0
.byte 0x3F, 0xC3, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2DB8
lbl_802F2DB8:
# ROM: 0x1EC7D8
.byte 0xBF, 0x84, 0x7A, 0xE1
.byte 0x47, 0xAE, 0x14, 0x7B
.global lbl_802F2DC0
lbl_802F2DC0:
# ROM: 0x1EC7E0
.byte 0x3F, 0xB4, 0x7A, 0xE1
.byte 0x47, 0xAE, 0x14, 0x7B
.global lbl_802F2DC8
lbl_802F2DC8:
# ROM: 0x1EC7E8
.byte 0x40, 0x30, 0x00, 0x00
.4byte 0
.global lbl_802F2DD0
lbl_802F2DD0:
# ROM: 0x1EC7F0
.byte 0x40, 0x04, 0x00, 0x00
.4byte 0
.global lbl_802F2DD8
lbl_802F2DD8:
# ROM: 0x1EC7F8
.byte 0x3F, 0x94, 0x7A, 0xE1
.byte 0x47, 0xAE, 0x14, 0x7B
.global lbl_802F2DE0
lbl_802F2DE0:
# ROM: 0x1EC800
.byte 0x40, 0x00, 0x00, 0x00
.4byte 0
.global lbl_802F2DE8
lbl_802F2DE8:
# ROM: 0x1EC808
.byte 0x3F, 0xD6, 0x66, 0x66
.byte 0x66, 0x66, 0x66, 0x66
.global lbl_802F2DF0
lbl_802F2DF0:
# ROM: 0x1EC810
.byte 0x40, 0x10, 0x00, 0x00
.4byte 0
.global lbl_802F2DF8
lbl_802F2DF8:
# ROM: 0x1EC818
.byte 0x40, 0x20, 0x00, 0x00
.global lbl_802F2DFC
lbl_802F2DFC:
# ROM: 0x1EC81C
.byte 0x40, 0xA0, 0x00, 0x00
.global lbl_802F2E00
lbl_802F2E00:
# ROM: 0x1EC820
.byte 0x3F, 0xEF, 0x5C, 0x28
.byte 0xF5, 0xC2, 0x8F, 0x5C
.global lbl_802F2E08
lbl_802F2E08:
# ROM: 0x1EC828
.byte 0x40, 0x28, 0x00, 0x00
.4byte 0
.global lbl_802F2E10
lbl_802F2E10:
# ROM: 0x1EC830
.byte 0x3F, 0xA4, 0x7A, 0xE1
.byte 0x47, 0xAE, 0x14, 0x7B
.global lbl_802F2E18
lbl_802F2E18:
# ROM: 0x1EC838
.byte 0x3F, 0xA9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2E20
lbl_802F2E20:
# ROM: 0x1EC840
.byte 0xC0, 0x80, 0x00, 0x00
.4byte 0
.global lbl_802F2E28
lbl_802F2E28:
# ROM: 0x1EC848
.byte 0x3F, 0xED, 0x70, 0xA3
.byte 0xD7, 0x0A, 0x3D, 0x71
.global lbl_802F2E30
lbl_802F2E30:
# ROM: 0x1EC850
.byte 0xBF, 0xF6, 0x66, 0x66
.byte 0x66, 0x66, 0x66, 0x66
.global lbl_802F2E38
lbl_802F2E38:
# ROM: 0x1EC858
.byte 0xBE, 0xCC, 0xCC, 0xCD
.global lbl_802F2E3C
lbl_802F2E3C:
# ROM: 0x1EC85C
.byte 0xC0, 0xA0, 0x00, 0x00
.global lbl_802F2E40
lbl_802F2E40:
# ROM: 0x1EC860
.byte 0xC0, 0x66, 0x66, 0x66
.4byte 0
.global lbl_802F2E48
lbl_802F2E48:
# ROM: 0x1EC868
.byte 0xBF, 0x02, 0x49, 0x24
.byte 0x92, 0x49, 0x24, 0x92
.global lbl_802F2E50
lbl_802F2E50:
# ROM: 0x1EC870
.byte 0xBF, 0x00, 0x00, 0x00
.4byte 0
.global lbl_802F2E58
lbl_802F2E58:
# ROM: 0x1EC878
.byte 0x40, 0x24, 0x00, 0x00
.4byte 0
.global lbl_802F2E60
lbl_802F2E60:
# ROM: 0x1EC880
.byte 0x3F, 0xEE, 0x66, 0x66
.byte 0x66, 0x66, 0x66, 0x66
.global lbl_802F2E68
lbl_802F2E68:
# ROM: 0x1EC888
.byte 0x40, 0x80, 0x00, 0x00
.global lbl_802F2E6C
lbl_802F2E6C:
# ROM: 0x1EC88C
.byte 0x3E, 0x4C, 0xCC, 0xCD
.global lbl_802F2E70
lbl_802F2E70:
# ROM: 0x1EC890
.byte 0x43, 0xF0, 0x00, 0x00
.global lbl_802F2E74
lbl_802F2E74:
# ROM: 0x1EC894
.byte 0x44, 0x07, 0x00, 0x00
.global lbl_802F2E78
lbl_802F2E78:
# ROM: 0x1EC898
.byte 0xC0, 0xC0, 0x00, 0x00
.4byte 0
.global lbl_802F2E80
lbl_802F2E80:
# ROM: 0x1EC8A0
.byte 0x46, 0x00, 0x00, 0x00
.global lbl_802F2E84
lbl_802F2E84:
# ROM: 0x1EC8A4
.byte 0x43, 0x25, 0x00, 0x00
.global lbl_802F2E88
lbl_802F2E88:
# ROM: 0x1EC8A8
.byte 0x40, 0x04, 0xCC, 0xCC
.byte 0xCC, 0xCC, 0xCC, 0xCD
.global lbl_802F2E90
lbl_802F2E90:
# ROM: 0x1EC8B0
.byte 0x40, 0x2E, 0x00, 0x00
.4byte 0
.global lbl_802F2E98
lbl_802F2E98:
# ROM: 0x1EC8B8
.byte 0x43, 0x70, 0x00, 0x00
.4byte 0
.global lbl_802F2EA0
lbl_802F2EA0:
# ROM: 0x1EC8C0
.byte 0x40, 0x4E, 0x00, 0x00
.4byte 0
.global lbl_802F2EA8
lbl_802F2EA8:
# ROM: 0x1EC8C8
.byte 0x40, 0x6E, 0x00, 0x00
.4byte 0
.global lbl_802F2EB0
lbl_802F2EB0:
# ROM: 0x1EC8D0
.byte 0x40, 0x66, 0x80, 0x00
.4byte 0
.global lbl_802F2EB8
lbl_802F2EB8:
# ROM: 0x1EC8D8
.byte 0x3F, 0xF8, 0x00, 0x00
.4byte 0
.global lbl_802F2EC0
lbl_802F2EC0:
# ROM: 0x1EC8E0
.byte 0x3F, 0xC0, 0x00, 0x00
.4byte 0
.global lbl_802F2EC8
lbl_802F2EC8:
# ROM: 0x1EC8E8
.byte 0xBF, 0xB9, 0x99, 0x99
.byte 0x99, 0x99, 0x99, 0x9A
.global lbl_802F2ED0
lbl_802F2ED0:
# ROM: 0x1EC8F0
.byte 0x40, 0x18, 0x00, 0x00
.4byte 0
.global lbl_802F2ED8
lbl_802F2ED8:
# ROM: 0x1EC8F8
.byte 0x3E, 0x80, 0x00, 0x00
.4byte 0
.global lbl_802F2EE0
lbl_802F2EE0:
# ROM: 0x1EC900
.byte 0x40, 0x34, 0x00, 0x00
.4byte 0
.global lbl_802F2EE8
lbl_802F2EE8:
# ROM: 0x1EC908
.byte 0x41, 0xA0, 0x00, 0x00
.global lbl_802F2EEC
lbl_802F2EEC:
# ROM: 0x1EC90C
.byte 0x38, 0xD1, 0xB7, 0x17
.global lbl_802F2EF0
lbl_802F2EF0:
# ROM: 0x1EC910
.byte 0x41, 0x70, 0x00, 0x00
.global lbl_802F2EF4
lbl_802F2EF4:
# ROM: 0x1EC914
.byte 0x3E, 0xCC, 0xCC, 0xCD
.global lbl_802F2EF8
lbl_802F2EF8:
# ROM: 0x1EC918
.byte 0x3F, 0x75, 0xC2, 0x8F
.global lbl_802F2EFC
lbl_802F2EFC:
# ROM: 0x1EC91C
.byte 0x3F, 0x6B, 0x85, 0x1F
.global lbl_802F2F00
lbl_802F2F00:
# ROM: 0x1EC920
.byte 0x45, 0x80, 0x00, 0x00
.4byte 0
.global lbl_802F2F08
lbl_802F2F08:
# ROM: 0x1EC928
.byte 0x40, 0x0C, 0x00, 0x00
.4byte 0
.global lbl_802F2F10
lbl_802F2F10:
# ROM: 0x1EC930
.byte 0x3F, 0x8C, 0x6A, 0x7F
.global lbl_802F2F14
lbl_802F2F14:
# ROM: 0x1EC934
.byte 0x40, 0x32, 0xC0, 0x83
.global lbl_802F2F18
lbl_802F2F18:
# ROM: 0x1EC938
.byte 0x3F, 0xC1, 0x47, 0xAE
.global lbl_802F2F1C
lbl_802F2F1C:
# ROM: 0x1EC93C
.byte 0xBF, 0x60, 0x41, 0x89
.global lbl_802F2F20
lbl_802F2F20:
# ROM: 0x1EC940
.byte 0x41, 0xF0, 0x00, 0x00
.4byte 0
.global lbl_802F2F28
lbl_802F2F28:
# ROM: 0x1EC948
.byte 0x40, 0x02, 0x66, 0x66
.byte 0x66, 0x66, 0x66, 0x66
.global lbl_802F2F30
lbl_802F2F30:
# ROM: 0x1EC950
.byte 0x3F, 0xF3, 0x33, 0x33
.byte 0x33, 0x33, 0x33, 0x33
.global lbl_802F2F38
lbl_802F2F38:
# ROM: 0x1EC958
.byte 0x43, 0x4C, 0x00, 0x00
.4byte 0
.global lbl_802F2F40
lbl_802F2F40:
# ROM: 0x1EC960
.byte 0x3F, 0xE6, 0x66, 0x66
.byte 0x66, 0x66, 0x66, 0x66
.global lbl_802F2F48
lbl_802F2F48:
# ROM: 0x1EC968
.byte 0xBF, 0x80, 0x00, 0x00
.4byte 0
.global lbl_802F2F50
lbl_802F2F50:
# ROM: 0x1EC970
.byte 0x40, 0x66, 0xC1, 0x6C
.byte 0x20, 0x00, 0x00, 0x00
.global lbl_802F2F58
lbl_802F2F58:
# ROM: 0x1EC978
.byte 0x3F, 0xE0, 0x00, 0x00
.4byte 0
.global lbl_802F2F60
lbl_802F2F60:
# ROM: 0x1EC980
.byte 0x43, 0x36, 0x0B, 0x61
.global lbl_802F2F64
lbl_802F2F64:
# ROM: 0x1EC984
.4byte 0
.global lbl_802F2F68
lbl_802F2F68:
# ROM: 0x1EC988
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.global lbl_802F2F70
lbl_802F2F70:
# ROM: 0x1EC990
.byte 0x3F, 0xF0, 0x00, 0x00
.4byte 0
.global lbl_802F2F78
lbl_802F2F78:
# ROM: 0x1EC998
.4byte 0
.global lbl_802F2F7C
lbl_802F2F7C:
# ROM: 0x1EC99C
.byte 0xBF, 0x80, 0x00, 0x00
.global lbl_802F2F80
lbl_802F2F80:
# ROM: 0x1EC9A0
.byte 0x46, 0x1C, 0x40, 0x00
.global lbl_802F2F84
lbl_802F2F84:
# ROM: 0x1EC9A4
.byte 0x43, 0x7F, 0x00, 0x00
.global lbl_802F2F88
lbl_802F2F88:
# ROM: 0x1EC9A8
.byte 0x40, 0x59, 0x00, 0x00
.4byte 0
.global lbl_802F2F90
lbl_802F2F90:
# ROM: 0x1EC9B0
.byte 0x3D, 0x4C, 0xCC, 0xCD
.global lbl_802F2F94
lbl_802F2F94:
# ROM: 0x1EC9B4
.byte 0xC2, 0xAA, 0x00, 0x00
.global lbl_802F2F98
lbl_802F2F98:
# ROM: 0x1EC9B8
.byte 0x3F, 0x80, 0x00, 0x00
.global lbl_802F2F9C
lbl_802F2F9C:
# ROM: 0x1EC9BC
.byte 0x3F, 0x73, 0x33, 0x33
.global lbl_802F2FA0
lbl_802F2FA0:
# ROM: 0x1EC9C0
.byte 0xBD, 0xCC, 0xCC, 0xCD
.4byte 0
.global lbl_802F2FA8
lbl_802F2FA8:
# ROM: 0x1EC9C8
.4byte 0
.4byte 0
.global lbl_802F2FB0
lbl_802F2FB0:
# ROM: 0x1EC9D0
.byte 0x40, 0x03, 0x33, 0x33
.global lbl_802F2FB4
lbl_802F2FB4:
# ROM: 0x1EC9D4
.byte 0x3E, 0xCC, 0xCC, 0xCD
.global lbl_802F2FB8
lbl_802F2FB8:
# ROM: 0x1EC9D8
.byte 0x3F, 0x19, 0x99, 0x9A
.global lbl_802F2FBC
lbl_802F2FBC:
# ROM: 0x1EC9DC
.byte 0x3F, 0x66, 0x66, 0x66
.global lbl_802F2FC0
lbl_802F2FC0:
# ROM: 0x1EC9E0
.byte 0x3E, 0xB3, 0x33, 0x33
.global lbl_802F2FC4
lbl_802F2FC4:
# ROM: 0x1EC9E4
.byte 0x3F, 0x00, 0x00, 0x00
.global lbl_802F2FC8
lbl_802F2FC8:
# ROM: 0x1EC9E8
.byte 0x3E, 0x99, 0x99, 0x9A
.global lbl_802F2FCC
lbl_802F2FCC:
# ROM: 0x1EC9EC
.byte 0x3F, 0x0C, 0xCC, 0xCD
.global lbl_802F2FD0
lbl_802F2FD0:
# ROM: 0x1EC9F0
glabel string__333_4
.asciz "?333"
.balign 4
.global lbl_802F2FD8
lbl_802F2FD8:
# ROM: 0x1EC9F8
.byte 0x43, 0x30, 0x00, 0x00
.4byte 0
.global lbl_802F2FE0
lbl_802F2FE0:
# ROM: 0x1ECA00
.byte 0x40, 0x00, 0x00, 0x00
.global lbl_802F2FE4
lbl_802F2FE4:
# ROM: 0x1ECA04
.byte 0x42, 0x34, 0x00, 0x00
.global lbl_802F2FE8
lbl_802F2FE8:
# ROM: 0x1ECA08
.byte 0x40, 0x00, 0x00, 0x00
.4byte 0
.section .rodata
.global lbl_80110230
lbl_80110230:
# ROM: 0x10D230
.4byte 0
.4byte 0
.4byte 0
.global lbl_8011023C
lbl_8011023C:
# ROM: 0x10D23C
.4byte 0
.4byte 0
.byte 0xBF, 0x80, 0x00, 0x00
.global lbl_80110248
lbl_80110248:
# ROM: 0x10D248
.4byte 0
.byte 0x3F, 0x11, 0xEB, 0x85
.byte 0xBF, 0xCC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0xBF, 0x80, 0x00, 0x00
.global lbl_80110260
lbl_80110260:
# ROM: 0x10D260
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.byte 0x00, 0x00, 0x00, 0x01
.byte 0x00, 0x00, 0x00, 0x03
.byte 0x00, 0x00, 0x00, 0x01
.byte 0x00, 0x00, 0x00, 0x01
.4byte 0
.byte 0x00, 0x00, 0x00, 0x01
.4byte 0
.byte 0x00, 0x00, 0x00, 0x01
.4byte 0
.byte 0x00, 0x00, 0x00, 0x01
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.4byte 0
.byte 0x00, 0x00, 0x00, 0x03
.global lbl_80110310
lbl_80110310:
# ROM: 0x10D310
.4byte 0
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0xBF, 0x00, 0x00, 0x00
.4byte 0
.section .data
.global lbl_80176200
lbl_80176200:
# ROM: 0x173200
.4byte func_80019D74 ;# ptr
.4byte func_80019EB0 ;# ptr
.4byte func_8001A34C ;# ptr
.4byte func_8001A70C ;# ptr
.4byte func_8001A840 ;# ptr
.4byte func_8001A96C ;# ptr
.4byte func_8001AC80 ;# ptr
.4byte func_8001AC84 ;# ptr
.4byte camera_sub_ringout_main ;# ptr
.4byte func_8001B13C ;# ptr
.4byte camera_sub_ready_init ;# ptr
.4byte camera_sub_ready_main ;# ptr
.4byte func_800193AC ;# ptr
.4byte camera_sub_13 ;# ptr
.4byte func_8001B140 ;# ptr
.4byte camera_sub_goal_main ;# ptr
.4byte func_8001B478 ;# ptr
.4byte camera_sub_17 ;# ptr
.4byte func_8001BDDC ;# ptr
.4byte func_8001C0C4 ;# ptr
.4byte func_8001C368 ;# ptr
.4byte func_8001C5FC ;# ptr
.4byte camera_sub_22_23_24 ;# ptr
.4byte camera_sub_22_23_24 ;# ptr
.4byte camera_sub_22_23_24 ;# ptr
.4byte func_8001C7D8 ;# ptr
.4byte camera_sub_26 ;# ptr
.4byte func_80018DC8 ;# ptr
.4byte func_80018E34 ;# ptr
.4byte func_80018E38 ;# ptr
.4byte func_80018E6C ;# ptr
.4byte func_8001CAB8 ;# ptr
.4byte func_8001CBB0 ;# ptr
.4byte func_8001CD4C ;# ptr
.4byte func_8001CF28 ;# ptr
.4byte func_8001D32C ;# ptr
.4byte camera_sub_36 ;# ptr
.4byte func_8001D708 ;# ptr
.4byte func_80019CA4 ;# ptr
.4byte func_8001D968 ;# ptr
.4byte func_8001D96C ;# ptr
.4byte func_8001D970 ;# ptr
.4byte camera_sub_42 ;# ptr
.4byte func_80019284 ;# ptr
.4byte func_8001DDF0 ;# ptr
.4byte func_8001E0A8 ;# ptr
.4byte func_8001E2E8 ;# ptr
.4byte camera_sub_47 ;# ptr
.4byte func_8001E924 ;# ptr
.4byte camera_sub_49 ;# ptr
.4byte func_8001F524 ;# ptr
.4byte func_8001F560 ;# ptr
.4byte func_800196E8 ;# ptr
.4byte func_800197AC ;# ptr
.4byte func_80018FA4 ;# ptr
.4byte func_80018FE4 ;# ptr
.4byte func_8001F698 ;# ptr
.4byte func_8001F864 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_8001A7A4 ;# ptr
.4byte func_8001FAA4 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_8001FADC ;# ptr
.4byte func_80020A88 ;# ptr
.4byte func_8001FB14 ;# ptr
.4byte func_8001FBA8 ;# ptr
.4byte func_8002049C ;# ptr
.4byte camera_sub_71 ;# ptr
.4byte func_80020910 ;# ptr
.4byte camera_sub_73 ;# ptr
.4byte func_80020A88 ;# ptr
.global lbl_8017632C
lbl_8017632C:
# ROM: 0x17332C
.4byte lbl_80017DB0 ;# ptr
.4byte lbl_80017CFC ;# ptr
.4byte lbl_80017D08 ;# ptr
.4byte lbl_80017D08 ;# ptr
.4byte lbl_80017DA4 ;# ptr
.4byte lbl_80017DBC ;# ptr
.4byte lbl_80017E70 ;# ptr
.4byte lbl_80017ED0 ;# ptr
.4byte lbl_80017EDC ;# ptr
.4byte lbl_80017F3C ;# ptr
.4byte lbl_80017EE8 ;# ptr
.4byte lbl_80017F3C ;# ptr
.4byte lbl_80017F08 ;# ptr
.4byte 0
.4byte 0
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0x80176360 # ptr
.4byte 0x80176370 # ptr
.4byte 0x80176390 # ptr
.4byte 0x801763C0 # ptr
glabel string_camera_c
.asciz "camera.c"
.balign 4
glabel string_Ielligal_player_number
.asciz "Ielligal player number"
.balign 4
.4byte 0
.byte 0xC1, 0x76, 0x9F, 0xBE
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC1, 0x6C, 0x04, 0x19
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC1, 0x6C, 0x04, 0x19
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB1
.byte 0xC1, 0x6C, 0x04, 0x19
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xBE, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0xC0, 0x34, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC3, 0xE2, 0x95, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC3, 0xE2, 0x95, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0x40, 0x24, 0x49, 0xBA
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0x40, 0x24, 0x49, 0xBA
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x41, 0x11, 0x22, 0xD1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x41, 0x11, 0x22, 0xD1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xC2, 0x6A, 0x2F, 0x1B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC2, 0x6A, 0xF9, 0xDB
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC2, 0x6A, 0xF9, 0xDB
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB1
.byte 0xC2, 0x6A, 0xF9, 0xDB
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xBC, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0x3F, 0x76, 0x87, 0x2B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC2, 0x39, 0xCE, 0xD9
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC2, 0x39, 0xB3, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0x3F, 0x9D, 0x4F, 0xDF
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0x3F, 0x9D, 0x4F, 0xDF
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x3E, 0xFE, 0xF9, 0xDB
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x3E, 0xFE, 0xF9, 0xDB
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xC2, 0x35, 0x57, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC2, 0x32, 0x29, 0xFC
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC2, 0x32, 0x29, 0xFC
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xC2, 0x32, 0x29, 0xFC
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xBF, 0x47, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0xC0, 0x9C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC3, 0x6D, 0x3B, 0xE7
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC3, 0x6D, 0x3B, 0xE7
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0xC0, 0x1C, 0x6A, 0x7F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0xC0, 0x1C, 0x6A, 0x7F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x41, 0x0B, 0x3B, 0x64
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x41, 0x0B, 0x3B, 0x64
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.byte 0xC2, 0x21, 0x0F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC1, 0xA5, 0x2D, 0x0E
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC1, 0xA5, 0x2D, 0x0E
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xC1, 0xA9, 0xF1, 0xAA
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0x3E, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0x3E, 0x6B, 0x85, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC3, 0xDB, 0x7B, 0x64
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC3, 0xDB, 0x7B, 0x64
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0xC0, 0x43, 0x22, 0xD1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0xC0, 0x43, 0x22, 0xD1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.byte 0xC2, 0xA1, 0x5A, 0xA0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.byte 0x42, 0x8F, 0x05, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x42, 0x92, 0x06, 0x25
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x42, 0x92, 0x06, 0x25
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xC2, 0x4F, 0x9D, 0xB2
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC2, 0x4D, 0x35, 0x3F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC2, 0x4D, 0x35, 0x3F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xC1, 0xA2, 0x70, 0xA4
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0x3F, 0xD6, 0xC8, 0xB4
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC2, 0x3D, 0x48, 0xB4
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC2, 0x3D, 0x48, 0xB4
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0x3F, 0x8D, 0x0E, 0x56
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0x3F, 0x8D, 0x0E, 0x56
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.byte 0x41, 0x9A, 0x78, 0xD5
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.byte 0x3F, 0x4A, 0xC0, 0x83
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x3F, 0x0B, 0x85, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x3F, 0x0B, 0x85, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xC1, 0xF7, 0xAC, 0x08
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x00, 0xA5
.byte 0xC1, 0x36, 0xD9, 0x17
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0x4A
.byte 0xC1, 0x36, 0xD9, 0x17
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0xC1, 0xF8, 0xCA, 0xC1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x01, 0xB2
.byte 0x3F, 0x11, 0xEB, 0x85
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8B
.byte 0xBD, 0x1F, 0xBE, 0x77
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x02, 0x8C
.byte 0xC3, 0x58, 0x2F, 0xDF
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x65
.byte 0xC3, 0x58, 0x2F, 0xDF
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x03, 0x66
.byte 0xBF, 0xB4, 0x39, 0x58
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x3F
.byte 0xBF, 0xB4, 0x39, 0x58
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0x40
.byte 0x43, 0x11, 0x81, 0x06
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xAE
.byte 0x42, 0xAB, 0x9E, 0xB8
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x04, 0xCC
.byte 0x42, 0xC8, 0x12, 0x6F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x19
.byte 0x42, 0xC8, 0x12, 0x6F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0x3F, 0x3D, 0x70, 0xA4
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.byte 0x3F, 0x8F, 0x5C, 0x29
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0xBF, 0x42, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0xBF, 0x42, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.byte 0xBF, 0x87, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0xC0, 0x8B, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0xC0, 0x3A, 0xE1, 0x48
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0x3F, 0xD3, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.byte 0x3F, 0x51, 0xEB, 0x85
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x40, 0xEF, 0x2B, 0x02
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x41, 0x11, 0xEB, 0x85
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.byte 0xBF, 0x59, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.byte 0xBF, 0x59, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0xC0, 0x83, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xC0, 0x5E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0x3F, 0x3A, 0xE1, 0x48
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0x40, 0xAD, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0xBE, 0xCC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.byte 0x3E, 0x19, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0x3E, 0x2E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0x3E, 0x2E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.byte 0x3E, 0x2E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0xBF, 0xE3, 0x74, 0xBC
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0xBF, 0xEF, 0x5C, 0x29
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0x3D, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.byte 0x3D, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x3E, 0x94, 0x7A, 0xE1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x3F, 0x17, 0x0A, 0x3D
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0x3E, 0x42, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xBC, 0x23, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0xBE, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0x3F, 0x91, 0xEB, 0x85
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.byte 0xC2, 0x2A, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.byte 0xC2, 0x29, 0xB8, 0x52
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.byte 0xC2, 0x29, 0xB8, 0x52
.4byte 0
.4byte 0
.4byte 0
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0xBE, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.byte 0xBF, 0x02, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0x3F, 0x90, 0xA3, 0xD7
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0x3F, 0x90, 0xA3, 0xD7
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0xC0, 0xA0, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0xC0, 0x99, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0x3F, 0x02, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x3E, 0x61, 0x47, 0xAE
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x40, 0x22, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.byte 0x3F, 0x47, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.byte 0x3F, 0x47, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0xBE, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xBF, 0x6E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0xBF, 0xF3, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0xBF, 0x66, 0x66, 0x66
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.byte 0x42, 0xF8, 0x9E, 0xB8
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.byte 0x42, 0xE7, 0x1E, 0xB8
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.byte 0x42, 0xE7, 0x1E, 0xB8
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0xBC, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.byte 0x3C, 0x44, 0x9B, 0xA6
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0x3E, 0x99, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0x3E, 0x99, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.byte 0x3F, 0x9C, 0x28, 0xF6
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0x3F, 0xB3, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0xBF, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0xC0, 0x85, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.byte 0xC0, 0x81, 0xEB, 0x85
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x40, 0xD0, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x40, 0xCE, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.byte 0x3F, 0xEC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.byte 0x3F, 0xEC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0xBF, 0xB3, 0x33, 0x33
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xBF, 0x63, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0xC0, 0x9C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0xBF, 0xA1, 0x47, 0xAE
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0x3E, 0x42, 0x8F, 0x5C
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0xBD, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0xBD, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0xC0, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0xC0, 0x40, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0xBD, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.byte 0xBD, 0x4C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x3E, 0xAE, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.byte 0xBD, 0xCC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.byte 0xBD, 0xCC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0x3F, 0x9C, 0x28, 0xF6
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xBC, 0xF5, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0xBD, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0xBF, 0xE7, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.byte 0xC2, 0x27, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.byte 0xC2, 0x21, 0x85, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.byte 0xC2, 0x21, 0x85, 0x1F
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0x1A
.byte 0xBD, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF5
.byte 0xBD, 0x75, 0xC2, 0x8F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x05, 0xF6
.byte 0xBF, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0x64
.byte 0xBF, 0xA3, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCB
.byte 0xBF, 0x2E, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x06, 0xCC
.byte 0x41, 0x01, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x39
.byte 0x41, 0x09, 0x99, 0x9A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0x3A
.byte 0x3F, 0x38, 0x51, 0xEC
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA1
.byte 0x3F, 0x8B, 0x85, 0x1F
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x07, 0xA2
.byte 0x40, 0x2C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x0F
.byte 0x40, 0x7C, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x10
.byte 0xBF, 0xA6, 0x66, 0x66
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x77
.byte 0xBF, 0xA6, 0x66, 0x66
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0x78
.byte 0xC0, 0x57, 0xAE, 0x14
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE5
.byte 0xBC, 0x23, 0xD7, 0x0A
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x08, 0xE6
.byte 0x40, 0xAE, 0x14, 0x7B
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC1
.byte 0x40, 0x55, 0x1E, 0xB8
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x09, 0xC2
.byte 0x42, 0xE8, 0x9E, 0xB8
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0A, 0x2A
.byte 0x42, 0xD6, 0xFA, 0xE1
.4byte 0
.4byte 0
.byte 0x00, 0x00, 0x0B, 0x56
.byte 0x42, 0xD6, 0xFA, 0xE1
.4byte 0
.4byte 0
.global lbl_80177214
lbl_80177214:
# ROM: 0x174214
.byte 0x00, 0x00, 0x00, 0x04
.4byte 0
.4byte 0
.4byte 0
.byte 0x42, 0x48, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x0E
.4byte 0
.4byte 0
.4byte 0
.byte 0x42, 0x48, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x90
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xFA, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x40, 0x13, 0x33, 0x33
.byte 0xC0, 0x80, 0x00, 0x00
.4byte 0
.byte 0x3E, 0xCC, 0xCC, 0xCD
.byte 0xC0, 0x80, 0x00, 0x00
.4byte 0
.byte 0x3E, 0xCC, 0xCC, 0xCD
.byte 0xC0, 0x40, 0x00, 0x00
.4byte 0
.byte 0x3E, 0xCC, 0xCC, 0xCD
.4byte 0
.4byte 0
.byte 0x40, 0x80, 0x00, 0x00
.byte 0xC0, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC3, 0x16, 0x00, 0x00
.byte 0x44, 0x11, 0x00, 0x00
.global lbl_801772AC
lbl_801772AC:
# ROM: 0x1742AC
.4byte lbl_8001E1F4 # ptr
.4byte lbl_8001E28C # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E1F4 # ptr
.4byte lbl_8001E28C # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E28C # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E16C # ptr
.4byte lbl_8001E2B0 # ptr
.4byte lbl_8001E264 # ptr
.4byte 0
.global lbl_80177358
lbl_80177358:
# ROM: 0x174358
glabel string_INFINITE
.asciz "INFINITE"
.balign 4
glabel string_POINT_POW
.asciz "POINT_POW"
.balign 4
glabel string_SPOT_POW
.asciz "SPOT_POW"
.balign 4
glabel string_POINT_DARKPOW
.asciz "POINT_DARKPOW"
.balign 4
glabel string_SPOT_DARKPOW
.asciz "SPOT_DARKPOW"
.balign 4
glabel string_POINT_DARK
.asciz "POINT_DARK"
.balign 4
glabel string_SPOT_DARK
.asciz "SPOT_DARK"
.balign 4
.4byte string_INFINITE # ptr
.4byte string_POINT # ptr
.4byte string_SPOT # ptr
.4byte string_POINT_POW # ptr
.4byte string_SPOT_POW # ptr
.4byte string_POINT_DARKPOW # ptr
.4byte string_SPOT_DARKPOW # ptr
.4byte string_POINT_DARK # ptr
.4byte string_SPOT_DARK # ptr
glabel string_BG_PILLAR
.asciz "BG_PILLAR"
.balign 4
glabel string_BG_COUNTER
.asciz "BG_COUNTER"
.balign 4
.4byte string_TEST # ptr
.4byte string_STAGE # ptr
.4byte string_BUMPER # ptr
.4byte string_AUTO # ptr
.4byte 0x802F0348 # ptr
.4byte string_BG_PILLAR # ptr
.4byte string_BG_WALL # ptr
.4byte string_BG_COUNTER # ptr
glabel string_SINGLE_UNIT
.asciz "SINGLE_UNIT"
glabel string_DEF_MINIMAP
.asciz "DEF_MINIMAP"
glabel string_DEF_GMAT
.asciz "DEF_GMAT"
.balign 4
.4byte string_DEFAULT # ptr
.4byte string_SINGLE # ptr
.4byte string_SINGLE_UNIT # ptr
.4byte string_DEF_MINIMAP # ptr
.4byte string_DEF_GMAT # ptr
.4byte string_DEF_MIR # ptr
.4byte string_BG_0 # ptr
.4byte string_BG_1 # ptr
.4byte string_BG_2 # ptr
.4byte string_BG_3 # ptr
.4byte string_BG_4 # ptr
.4byte string_BG_5 # ptr
.4byte string_BG_6 # ptr
.4byte string_BG_7 # ptr
.4byte string_BG_8 # ptr
.4byte string_BG_9 # ptr
.4byte string_BG_a # ptr
.4byte string_BG_b # ptr
.4byte string_BG_c # ptr
.4byte string_BG_d # ptr
.4byte string_BG_e # ptr
.4byte string_BG_f # ptr
.global lbl_8017748C
lbl_8017748C:
# ROM: 0x17448C
.byte 0x01, 0x03, 0x00, 0x01
.byte 0x01, 0x00, 0x00, 0x00
.byte 0x96, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x41, 0x68, 0x00, 0x14
.byte 0x40, 0x20, 0x00, 0x00
.byte 0xC1, 0xA8, 0x00, 0x17
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xBF, 0x80, 0x00, 0x00
.byte 0x40, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.byte 0x01, 0x03, 0x00, 0x01
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x86, 0x00, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xB7, 0xD4
.byte 0x40, 0x4E, 0x9B, 0x7C
.byte 0x3E, 0x4C, 0xC2, 0x50
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xBF, 0x80, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.byte 0x01, 0x03, 0x00, 0x01
.byte 0x03, 0x00, 0x00, 0x00
.byte 0x5C, 0x00, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xB7, 0xD4
.byte 0x40, 0x4E, 0x9B, 0x7C
.byte 0x3E, 0x4C, 0xC2, 0x50
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0xBF, 0x80, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.byte 0x01, 0x03, 0x00, 0x01
.byte 0x02, 0x00, 0x00, 0x04
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x19, 0x99, 0x9A
.4byte 0
.byte 0x41, 0xB8, 0x00, 0x1B
.4byte 0
.byte 0xBE, 0x80, 0x60, 0x00
.4byte 0
.byte 0x3C, 0xD5, 0x36, 0x93
.byte 0xBF, 0x7F, 0xD3, 0x91
.byte 0xBC, 0xD5, 0x36, 0x93
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3E, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x42, 0x20, 0x00, 0x14
.byte 0x01, 0x03, 0x00, 0x02
.byte 0x02, 0x00, 0x00, 0x04
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x19, 0x99, 0x9A
.byte 0x41, 0x70, 0x00, 0x16
.byte 0x41, 0xB8, 0x00, 0x1B
.4byte 0
.byte 0xBE, 0x80, 0x60, 0x00
.4byte 0
.byte 0x3C, 0xD5, 0x36, 0x93
.byte 0xBF, 0x7F, 0xD3, 0x91
.byte 0xBC, 0xD5, 0x36, 0x93
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3E, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x42, 0x20, 0x00, 0x14
.byte 0x01, 0x03, 0x00, 0x03
.byte 0x02, 0x00, 0x00, 0x04
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x19, 0x99, 0x9A
.byte 0xC1, 0x70, 0x00, 0x16
.byte 0x41, 0xB8, 0x00, 0x1B
.4byte 0
.byte 0xBE, 0x80, 0x60, 0x00
.4byte 0
.byte 0x3C, 0xD5, 0x36, 0x93
.byte 0xBF, 0x7F, 0xD3, 0x91
.byte 0xBC, 0xD5, 0x36, 0x93
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x3E, 0xCC, 0xCC, 0xCD
.byte 0x3D, 0xCC, 0xCC, 0xCD
.byte 0x42, 0x20, 0x00, 0x14
.byte 0x01, 0x05, 0x00, 0x01
.byte 0x01, 0x00, 0x00, 0x01
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0x2A, 0xCC, 0xAE
.byte 0x41, 0xFB, 0x33, 0x5E
.byte 0xC1, 0xC4, 0xCC, 0xCC
.byte 0xDE, 0x80, 0x24, 0x80
.4byte 0
.byte 0xC5, 0xA6, 0x0D, 0xA4
.byte 0xC5, 0xE4, 0xF4, 0x58
.byte 0xC5, 0x84, 0xE6, 0x66
.byte 0x40, 0xB6, 0x67, 0xEA
.byte 0x41, 0x44, 0xCC, 0xD6
.byte 0x3F, 0xFA, 0xE1, 0x3F
.byte 0x3F, 0xDA, 0xE1, 0x3F
.byte 0x41, 0xA0, 0x00, 0x00
.byte 0x01, 0x05, 0x00, 0x02
.byte 0x02, 0x00, 0x00, 0x01
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.byte 0x3F, 0x19, 0x99, 0x9A
.byte 0xC2, 0x0C, 0x00, 0x00
.byte 0x42, 0x16, 0x00, 0x00
.byte 0x41, 0xC8, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0xBE, 0xCD, 0x8D, 0x7A
.byte 0xBF, 0x80, 0x00, 0x00
.byte 0x3E, 0x96, 0xBC, 0xE8
.byte 0x42, 0x48, 0x00, 0x00
.byte 0x3F, 0xC0, 0x00, 0x00
.byte 0xBC, 0xA3, 0xD7, 0x0A
.4byte 0
.byte 0x41, 0xA0, 0x00, 0x00
.byte 0x01, 0x05, 0x00, 0x03
.byte 0x01, 0x00, 0x00, 0x00
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x42, 0x4A, 0x66, 0x28
.byte 0x42, 0x16, 0x00, 0x00
.byte 0xC1, 0xC8, 0x00, 0x00
.byte 0x9C, 0x00, 0x6E, 0x00
.4byte 0
.4byte 0
.4byte 0
.byte 0xC6, 0x1C, 0x40, 0x00
.byte 0x41, 0xA0, 0xCD, 0x45
.byte 0x41, 0x4E, 0x66, 0x74
.byte 0x3D, 0xB8, 0x51, 0xEC
.4byte 0
.byte 0x41, 0x79, 0x99, 0x88
.byte 0x01, 0x05, 0x00, 0x04
.byte 0x02, 0x00, 0x00, 0x00
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x4C, 0xCC, 0xCD
.4byte 0
.byte 0x42, 0x0C, 0x00, 0x0A
.byte 0x42, 0x16, 0x00, 0x00
.byte 0x41, 0xC8, 0x00, 0x1F
.byte 0xE2, 0x00, 0x8A, 0x80
.4byte 0
.byte 0x45, 0x0F, 0x26, 0x9A
.byte 0xC5, 0x89, 0x11, 0x4D
.byte 0x46, 0x07, 0xC7, 0xE2
.byte 0x41, 0xF0, 0x00, 0x8C
.byte 0x3F, 0xC0, 0x00, 0x00
.byte 0x3F, 0x19, 0x99, 0x9A
.byte 0x3C, 0x23, 0xD7, 0x0A
.byte 0x41, 0xC8, 0x00, 0x0A
.byte 0x01, 0x06, 0x00, 0x01
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x42, 0xA0, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x8F, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x02
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0x42, 0x20, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x8F, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x03
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x8F, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x04
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0x20, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x8F, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x05
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0xA0, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x8F, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x06
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0xC3, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0x42, 0x20, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x07
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0xC3, 0x00, 0x00
.4byte 0
.byte 0x42, 0x20, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x06, 0x00, 0x08
.byte 0x01, 0x00, 0x00, 0x03
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.byte 0xC2, 0xC3, 0x00, 0x00
.byte 0x41, 0x20, 0x00, 0x00
.byte 0xC2, 0x20, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.byte 0x41, 0xF0, 0x00, 0x29
.byte 0x3F, 0x00, 0x00, 0x00
.byte 0x3F, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x01, 0x07, 0x00, 0x01
.byte 0x02, 0x00, 0x00, 0x01
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x33, 0x33, 0x33
.byte 0x3E, 0x99, 0x99, 0x9A
.byte 0x41, 0xE2, 0x00, 0x00
.byte 0x42, 0x0C, 0x00, 0x00
.byte 0xC2, 0x80, 0x00, 0x00
.byte 0xB4, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0xBF, 0x75, 0xDE, 0xCE
.byte 0x3E, 0x8E, 0x9A, 0x2C
.byte 0x41, 0x70, 0x00, 0x14
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x41, 0xC8, 0x00, 0x00
.byte 0x01, 0x07, 0x00, 0x02
.byte 0x02, 0x00, 0x00, 0x01
.byte 0xB4, 0x00, 0x00, 0x00
.byte 0x3F, 0x80, 0x00, 0x00
.byte 0x3F, 0x33, 0x33, 0x33
.byte 0x3E, 0x99, 0x99, 0x9A
.byte 0xC1, 0xD6, 0x00, 0x00
.byte 0x42, 0x0C, 0x00, 0x00
.byte 0xC2, 0x80, 0x00, 0x00
.byte 0xB4, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0xBF, 0x75, 0xDE, 0xCE
.byte 0x3E, 0x8E, 0x9A, 0x2C
.byte 0x41, 0x70, 0x00, 0x14
.byte 0x3F, 0x80, 0x00, 0x00
.4byte 0
.4byte 0
.byte 0x41, 0xC8, 0x00, 0x00
.byte 0xFF, 0x00, 0x00, 0x00
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment